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通道的值

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要好用一点

发布了63 篇原创文章 · 获赞 50 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38649880/article/details/104397951
今日推荐