目标:了解如何在 ROS 2 中获取、设置、保存和重新加载参数。
教程级别:初学者
时间: 5分钟
背景
参数是节点的配置值。您可以将参数视为节点设置。节点可以将参数存储为整数、浮点数、布尔值、字符串和列表。在 ROS 2 中,每个节点都维护自己的参数。所有参数都可动态重新配置,并基于ROS 2 服务构建。
先决条件
本教程使用turtlesim 包。
打开另一个终端并运行:
ros2 run turtlesim turtle_teleop_key
2 ros2参数列表
要查看属于您的节点的参数,请打开一个新终端并输入命令:
ros2 param list
您将看到节点命名空间,/teleop_turtle
和/turtlesim
,后跟每个节点的参数:
/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
让我们找出 的/turtlesim
参数的当前值background_g
:
ros2 param get /turtlesim background_g
这将返回值:
Integer value is: 86
现在你知道background_g
拥有一个整数值。
background_r
如果您对和运行相同的命令background_b
,您将分别获得值69
和255
。
让我们改变 的/turtlesim
背景颜色:
ros2 param set /turtlesim background_r 150
您的终端应返回消息:
Set parameter successful
你的 turtlesim 窗口的背景应该改变颜色:
使用set
命令设置参数只会在当前会话中更改它们,而不是永久更改。但是,您可以保存设置更改并在下次启动节点时重新加载它们。
5 ros2 参数转储
Dashing 没有命令。但是,可以使用保存的参数运行节点。相当于将您当前的参数值手动记录到 YAML 文件中。param dump
param dump
将以下内容保存在名为的文件中./turtlesim.yaml
:
turtlesim: ros__parameters: background_b: 255 background_g: 86 background_r: 150 use_sim_time: false
6 加载参数文件
要使用您在上一节中手动“转储”的参数设置启动节点,请运行命令
ros2 run turtlesim turtlesim_node __params:=./turtlesim.yaml
__params:
你的参数文件的路径在哪里。
概括
节点具有定义其默认配置值的参数。您可以从命令行get
获取参数值。set
您还可以将参数设置保存到文件中,以便在以后的会话中重新加载。