当前位置: 首页 > news >正文

【ROS2 入门】ROS 2 参数服务器(parameters)概述

        大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,在上一篇中,我们一起了解ROS 2中Topic, 这一篇,我们主要会围绕ROS中另外一个重要的概念“Parameters ”,了解如何在ROS 2中获取、设置、保存和重新加载参数。

目录

1 、启动模拟节点

2、ros2 param list(参数列表)

3、 ros2 param get(获取参数值)

4、 ros2 param set(设置参数值)

5 、ros2 param dump(参数转存)

6 、Load parameter file(参数载入)


        参数是节点的配置值。可以将参数视为节点设置。节点可以将参数存储为整数、浮点数、布尔值、字符串和列表。在ROS 2中,每个节点都维护自己的参数。所有参数都可动态重新配置,并基于ROS 2服务构建。节点具有用于定义其默认配置值的参数。可以从命令行获取和设置参数值。也可以保存参数设置以在新任务中重新加载。

1 、启动模拟节点

到现在,你应该可以轻松地启动turtlesim。打开一个终端,执行如下命令:

ros2 run turtlesim turtlesim_node

打开一个新的终端,启动遥控节点:

ros2 run turtlesim turtle_teleop_key

2、ros2 param list(参数列表)

要查看属于节点的参数,请打开新终端并输入命令:

ros2 param list

您将看到节点子节点空间/teolep_turtle和/turtlesim,后跟每个节点的参数:

nvidia@ubuntu:~$ 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;这不是turtlesim独有的。根据它们的名称,/turtlesim的参数使用RGB颜色值确定了turtlesim窗口的背景颜色。要确定参数类型,可以使用ros2 param get。

3、 ros2 param get(获取参数值)

要获取参数的当前值,请使用以下命令:

ros2 param get <node_name> <parameter_name>

让我们找出/turtlesim参数background_g的当前值:

ros2 param get /turtlesim background_g

我们将得到如下回复:

nvidia@ubuntu:~$ ros2 param get /turtlesim background_g
Integer value is: 86

现在您知道background_g包含一个整数值。如果在background_r和background_b上运行相同的命令,将分别获得值69和255。

nvidia@ubuntu:~$ ros2 param get /turtlesim background_r
Integer value is: 69
nvidia@ubuntu:~$ ros2 param get /turtlesim background_b
Integer value is: 255

4、 ros2 param set(设置参数值)

要在运行时更改参数的值,请使用以下命令:

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

让我们改变/turtlesim的背景色:

ros2 param set /turtlesim background_r 150

turtlesim窗口的背景应改变颜色:

 使用set命令设置参数只会在当前会话中更改,而不会永久更改。但是,您可以保存设置更改,并在下次启动节点时重新加载它们。

5 、ros2 param dump(参数转存)

您可以使用以下命令将节点的所有当前参数值“转储”到一个文件中,以供以后保存:

ros2 param dump <node_name>

要保存/turtlesim参数的当前配置,请输入以下命令:

ros2 param dump /turtlesim

将得到如下回复:

nvidia@ubuntu:~$ ros2 param dump /turtlesim
Saving to:  ./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>

这是启动turtlesim时始终使用的命令,添加了标志--ros args和--params文件,后跟要加载的文件。

停止正在运行的turtlesim节点,以便您可以尝试使用保存的参数重新加载它,方法是:

ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml

turtlesim窗口应该像往常一样出现,但背景是您之前设置的紫色。

以上就是我今天要分享的内容。纠错,疑问,交流: 911946883@qq.com

相关文章:

  • 有多人做网站是个人备案/一键开发小程序
  • 上海做高端网站制/网络信息发布平台
  • wordpress cos插件/2022百度搜索风云榜
  • 网站开发需要的人员/长沙营销推广
  • 衡水做外贸网站/seo科技网
  • 网站备案号 怎么写/舆情信息网
  • 【异常】记一次因错误运用数据冗余,导致的数据不一致的生产事故
  • 【OpenCV 例程 300篇】256. 特征检测之 CenSurE(StarDetector)算法
  • 详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++
  • 【C++】map和set的使用
  • Pytorch DataLoader中的num_workers (选择最合适的num_workers值)
  • 第328场周赛2537. 统计好子数组的数目
  • JDK1.8使用的垃圾回收器和执行GC的时长以及GC的频率
  • 【Django项目开发】django的信号机制(八)
  • JUC面试(一)——JUCJMMvolatile 1.0
  • Xinlinx zynq7020国产替代 FMQL20S400 全国产化 ARM 核心板+扩展板
  • Go语言开发小技巧易错点100例(五)
  • 算法leetcode|31. 下一个排列(rust重拳出击)