参数也是ROS2中很重要的一个概念,主要作用是对节点功能的配置,在ROS2中,每个节点都有自己的参数,这些参数可以用整型数、浮点数、布尔型数、字符串和列表来描述。   依然是以小海龟仿真器为例,看看里边有哪些参数。  

1.启动小海龟仿真器

熟悉的两行命令:
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
 

2.查看系统中的参数列表

来看看当前运行的系统中,有哪些参数:
ros2 param list
  终端中可以看到,以每个节点名为命名空间,每个节点都有一些参数:     从参数的命名上,我们也能猜的七七八八,比如turtlesim节点中有三个rgb参数,可以用来设置海龟仿真器的背景颜色。  

3.获取参数值

在以上列表中,如果我们想查看某个参数的值,就可以这样来操作:
ros2 param get <node_name> <parameter_name>
  比如看下背景颜色中的g值:
ros2 param get /turtlesim background_g
  可以看到如下反馈,是一个整型数:    

4.设置参数值

除了查看参数值之外,还可以通过命令行设置某一个参数的值:
ros2 param set <node_name> <parameter_name> <value>
  比如修改仿真器背景色中的r值为150:
ros2 param set /turtlesim background_r 150
  终端中会看到设置成功的日志,仿真器的背景也很快变色了:       这种方式只能修改一次参数值,下次重新启动就失效了,如果要下次继续生效,就得保存参数了。  

5.保存参数

我们可以使用dump命令来保存节点所有的参数到文件中:
ros2 param dump <node_name>
  比如保存turtlesim节点的参数:
ros2 param dump /turtlesim
  终端中可以看到保存成功的提示:     很快就可以在你运行终端的路径下看到保存好的文件啦,打开之后的内容如下:  

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参数值,还可以利用文件保存和加载参数。