目标:了解如何在 ROS 2 中获取、设置、保存和重新加载参数。
教程级别:初学者
时间: 5分钟
内容
-
背景
-
先决条件
-
任务
-
1 设置
-
2 ros2参数列表
-
3 ros2参数获取
-
4 ros2 参数集
-
5 ros2 参数转储
-
6 加载参数文件
-
-
概括
-
下一步
背景
参数是节点的配置值。您可以将参数视为节点设置。节点可以将参数存储为整数、浮点数、布尔值、字符串和列表。在 ROS 2 中,每个节点都维护自己的参数。所有参数都可动态重新配置,并基于ROS 2 服务构建。
先决条件
本教程使用turtlesim 包。
任务
1 设置
启动两个 turtlesim 节点,/turtlesim
和/teleop_turtle
。
打开一个新的终端并运行:
ros2 run turtlesim turtlesim_node
打开另一个终端并运行:
ros2 run turtlesim turtle_teleop_key
2 ros2参数列表
要查看属于您的节点的参数,请打开一个新终端并输入命令:
ros2 param list
您将看到节点命名空间,/teleop_turtle
和/turtlesim
,后跟每个节点的参数:
/teleop_turtle:scale_angularscale_linearuse_sim_time /turtlesim:background_bbackground_gbackground_ruse_sim_time
每个节点都有参数use_sim_time
;它不是 turtlesim 独有的。
根据它们的名称,看起来/turtlesim
的参数使用 RGB 颜色值确定 turtlesim 窗口的背景颜色。
要确定参数的类型,您可以使用 :ros2 param get
3 ros2参数获取
要显示参数的类型和当前值,请使用以下命令:
ros2 param get <node_name> <parameter_name>
让我们找出 的/turtlesim
参数的当前值background_g
:
ros2 param get /turtlesim background_g
这将返回值:
Integer value is: 86
现在你知道background_g
拥有一个整数值。
background_r
如果您对和运行相同的命令background_b
,您将分别获得值69
和255
。
4 ros2 参数集
要在运行时更改参数的值,请使用以下命令:
ros2 param set <node_name> <parameter_name> <value>
让我们改变 的/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: 255background_g: 86background_r: 150use_sim_time: false
6 加载参数文件
要使用您在上一节中手动“转储”的参数设置启动节点,请运行命令
ros2 run turtlesim turtlesim_node __params:=./turtlesim.yaml
__params:
你的参数文件的路径在哪里。
概括
节点具有定义其默认配置值的参数。您可以从命令行get
获取参数值。set
您还可以将参数设置保存到文件中,以便在以后的会话中重新加载。
下一步
回到 ROS 2 通信方法,在下一个教程中您将了解操作。
本文链接:https://my.lmcjl.com/post/5212.html
4 评论