ROS2⼊门教程—理解参数(Parameter)
ROS2⼊门教程—理解参数(Parameter)
param name  参数也是ROS2中很重要的⼀个概念,主要作⽤是对节点功能的配置,在ROS2中,每个节点都有⾃⼰的参数,这些参数可以⽤整型数、浮点数、布尔型数、字符串和列表来描述。所有参数都是动态可重新配置的,并基于ROS 2服务构建。
1 启动⼩海龟仿真器
  打开新终端并运⾏:
ros2 run turtlesim turtlesim_node
  打开另⼀个终端并运⾏:
ros2 run turtlesim turtle_teleop_key
2 ros2 param list
  可以使⽤如下命令来查看当前运⾏的系统中,有哪些参数:
ros2 param list
  在终端中可以看到,以每个节点名为命名空间,每个节点都有⼀些参数:
/teleop_turtle:
scale_angular
scale_linear
use_sim_time
/turtlesim:
background_b
background_g
background_r
use_sim_time
  每个节点都有参数use_sim_time; 这不是/turtlesim节点独有的。/turtlesim节点中有三个rgb参数,可以⽤来设置海龟仿真器的背景颜⾊。
3 ros2 param get
  在以上列表中,如果我们想查看某个参数的值,可以执⾏以下命令:
ros2 param get <node_name> <parameter_name>
  ⽐如查看/turtlesim节点中参数background_g的值,可以使⽤以下命令:
ros2 param get /turtlesim background_g
  可以看到如下反馈,是⼀个整型数:
Integer value is: 86
4 ros2 param set
  除了查看参数值之外,还可以通过以下命令⾏设置某⼀个参数的值:
ros2 param set <node_name> <parameter_name> <value>
  ⽐如修改仿真器背景⾊中background_r的值为150:
ros2 param set /turtlesim background_r 150
  终端中会看到设置成功的⽇志,
Set parameter successful
  同时,仿真器的背景也很快变⾊了:
  这种⽅式只能修改⼀次参数值,下次重新启动就失效了,如果要下次继续⽣效,就得保存参数了。
5 ros2 param dump
  可以使⽤dump命令来保存节点所有的参数到⽂件中:
ros2 param dump <node_name>
  ⽐如保存/turtlesim节点的参数:
ros2 param dump /turtlesim
  终端中可以看到保存成功的提⽰:
Saving to:  ./turtlesim.yaml
  很快就可以在你运⾏终端的路径下看到保存好的⽂件啦,打开之后的内容如下:
turtlesim:
ros__parameters:
background_b: 255
background_g: 86
background_r: 150
use_sim_time: false
  如果想要更改保存的路径以及⽂件名,可以使⽤如下命令:
ros2 param dump /turtlesim > turtlesim1.yaml
6 加载参数⽂件
  保存好的参数⽂件可以在下次启动节点时加载,使⽤如下命令:
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
  关掉已经在运⾏的海龟仿真器,重新启动来加载启动海龟仿真器时,前边的命令不变,但是后边需要加上--ros-args和--params-file配置:
ros2 run turtlesim turtlesim_node --ros-args --params-file turtlesim.yaml
  可以看到海龟仿真器⼜启动了,这回背景变成了之前修改的颜⾊。这就是ROS2中的参数,我们可以通过命令⾏get或set参数值,还可以利⽤⽂件保存和加载参数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。