ROS2官网教程学习笔记理解ROS2参数服务器篇
学习目标:了解如何获得、设置、保存修改参数
背景
参数是节点的配置参数值。你可以认为参数是节点配置的一部分。参数为整数,浮点数,布尔值,字符串和列表。在ROS2中,每个节点都有自己的参数。所有参数都是可动态重新配置的,并且是基于ROS2服务构建的。
准备条件
需要Turtlesim
学习内容
1. 运行节点
和之前一样启动两个需要用的节点
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
2. ros2 param list
通过下面的命令我们可以查看每个节点的参数,这个相比ros1个人感觉还是方便不少
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
3. ros2 param get
通过下面命令我们可以得到一个节点的一个参数的值
ros2 param get <node_name> <parameter_name>
例如我们得到乌龟背景颜色g通道的值
扫描二维码关注公众号,回复:
9282272 查看本文章
ros2 param get /turtlesim background_g
我们得到下面的结果
Integer value is: 86
4. ros2 param set
我们可以通过下面的命令对参数进行相关的设置
ros2 param set <node_name> <parameter_name> <value>
例如我们改变乌龟的背景颜色
ros2 param set /turtlesim background_r 150
终端输出如下的信息
Set parameter successful
然后我们可以看到乌龟界面的背景颜色也发生了相应的变化
5. ros2 param dump
我们可以使用下面的命令将一个节点的参数保存到文件里
ros2 param dump <node_name>
例如
ros2 param dump /turtlesim
终端会输出下面的信息
Saving to: ./turtlesim.yaml
我们可以看到命令将当前节点的参数保存到了当前目录下一个名为turtlesim.yaml的文件
我们可以打开文件查看文件内容
turtlesim:
ros__parameters:
background_b: 255
background_g: 86
background_r: 150
use_sim_time: false
如果后面要从文件中加载参数这个操作就比较方便
6. Load parameter file
用下面的命令我们可以在程序运行的时候从文件中加载参数
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
先把当前乌龟的节点关掉,我们通过下面的命令重新打开这个节点
ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml
我们发现一个很神奇的事情发生了,乌龟背景的颜色就是刚刚我们设置的颜色
总结
相比ros1,ros2在这部分改进还是挺多的,感觉这样的参数服务器比ros1要好用一点