ROS2入门教程——8. 理解参数(Parameter)

316
0
2020年8月12日 10时39分

参数也是ROS2中很重要的一个概念,主要作用是对节点功能的配置,在ROS2中,每个节点都有自己的参数,这些参数可以用整型数、浮点数、布尔型数、字符串和列表来描述。

 

依然是以小海龟仿真器为例,看看里边有哪些参数。

 

1.启动小海龟仿真器

熟悉的两行命令:

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

 

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

来看看当前运行的系统中,有哪些参数:

ros2 param list

 

终端中可以看到,以每个节点名为命名空间,每个节点都有一些参数:

 

ROS2入门教程——8. 理解参数(Parameter)插图

 

从参数的命名上,我们也能猜的七七八八,比如turtlesim节点中有三个rgb参数,可以用来设置海龟仿真器的背景颜色。

 

3.获取参数值

在以上列表中,如果我们想查看某个参数的值,就可以这样来操作:

ros2 param get <node_name> <parameter_name>

 

比如看下背景颜色中的g值:

ros2 param get /turtlesim background_g

 

可以看到如下反馈,是一个整型数:

 

ROS2入门教程——8. 理解参数(Parameter)插图(1)

 

4.设置参数值

除了查看参数值之外,还可以通过命令行设置某一个参数的值:

ros2 param set <node_name> <parameter_name> <value>

 

比如修改仿真器背景色中的r值为150:

ros2 param set /turtlesim background_r 150

 

终端中会看到设置成功的日志,仿真器的背景也很快变色了:

 

ROS2入门教程——8. 理解参数(Parameter)插图(2)

 

ROS2入门教程——8. 理解参数(Parameter)插图(3)

 

这种方式只能修改一次参数值,下次重新启动就失效了,如果要下次继续生效,就得保存参数了。

 

5.保存参数

我们可以使用dump命令来保存节点所有的参数到文件中:

ros2 param dump <node_name>

 

比如保存turtlesim节点的参数:

ros2 param dump /turtlesim

 

终端中可以看到保存成功的提示:

 

ROS2入门教程——8. 理解参数(Parameter)插图(4)

 

很快就可以在你运行终端的路径下看到保存好的文件啦,打开之后的内容如下:

 

ROS2入门教程——8. 理解参数(Parameter)插图(5)

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

 

发表评论

后才能评论