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