ROS 2参数-parameters-

举报
zhangrelay 发表于 2021/07/15 04:20:42 2021/07/15
【摘要】 前序:ROS 2服务-services- 视频教程(Linux):https://www.bilibili.com/video/BV1Ui4y1G7QS/ 本节详细介绍参数param 1. 如何理解参数param: 参数是节点的配置值。 可以将参数视为节点设置。 节点可以将参数存储为整数,浮点数,布尔值,字符串和列表。 在ROS 2中,每个节点都维护自己的参数。 所有...

前序:ROS 2服务-services-

视频教程(Linux):https://www.bilibili.com/video/BV1Ui4y1G7QS/

本节详细介绍参数param

1. 如何理解参数param:

参数是节点的配置值。 可以将参数视为节点设置。 节点可以将参数存储为整数,浮点数,布尔值,字符串和列表。 在ROS 2中,每个节点都维护自己的参数。 所有参数都是可以动态重新配置的,并且是基于ROS 2服务构建的。

2. 参数param有哪些命令功能:

ros2 param -h

命令有:

  • delete:删除参数
  • describe:显示有关已声明参数的描述性信息
  • dump:将节点的参数转储到Yaml文件中
  • get:获取参数
  • list:列出可用参数表
  • set:设置参数

3. 参数命令实践

如之前一样,先开启:

  • ros2 run turtlesim turtlesim_node
       
  • ros2 run turtlesim turtle_teleop_key
       

3.1 参数列表

列出每个节点的参数:

ros2 param list

 

每个节点都有参数use_sim_time;它不是turtlesim特有的。

根据它们的名称,/turtlesim的参数看起来像是使用RGB颜色值来确定turtlesim窗口的背景色。

要确定参数类型,可以使用ros2 param get。

3.2 参数获取

使用如下命令获取当前参数值:

ros2 param get <node_name> <parameter_name>
 

查找节点turtlesim的background_g值命令如下:

ros2 param get /turtlesim background_g
 

现在知道background_g拥有一个整数值。

如果在background_r和background_b上运行相同的命令,则将分别获得值255和69。

如果想要设置丰富的RGB色彩,使用工具,例如黄色:

Yellow

Color Name RGB CODE HEX #
Pale Goldenrod 238-232-170 eee8aa
Light Goldenrod Yellow 250-250-210 fafad2
Light Yellow 255-255-224 ffffe0
Yellow 255-255-0 ffff00

这里选择250-250-210。

3.3 参数设置

使用如下命令设置参数:

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

使用上述250-250-210。

对应如下指令:

  1. ros2 param set /turtlesim background_r 250
  2. ros2 param set /turtlesim background_g 250 
  3. ros2 param set /turtlesim background_b 210 

背景色更改为下图:

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

如果不保存,下次启动仍然为默认背景色。

3.4 参数转存

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

ros2 param dump <node_name>
 

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

ros2 param dump /turtlesim

 

存储为名turtlesim.yaml

在运行工作空间的目录中找到一个新文件。如果打开此文件,则会看到以下内容为:


  
  1. turtlesim:
  2.   ros__parameters:
  3.     background_b: 210
  4.     background_g: 250
  5.     background_r: 250
  6.     use_sim_time: false

如果希望将来使用相同的参数重新加载节点,则转储参数会很方便。

3.5 参数加载

要使用保存的参数值启动同一节点,使用如下命令:

ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
 

这是一直以来启动turtlesim的同一命令,带有添加标志--ros-args和--params-file,后跟要加载的文件。

停止运行的turtlesim节点,以便尝试使用保存的参数重新加载它:

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

turtlesim窗口照常显示,但背景为之前设置的浅金黄色。

4. 小结

节点具有定义其默认配置值的参数。 可以从命令行获取和设置参数值,还可以保存参数设置在新窗口中重新加载。


 

文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/103495888

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。