ROS2学习之旅(7)——理解ROS2 Graph中的参数(Parameter)
参数是节点的配置值,可以将参数视为节点设置,节点可以以整数、浮点数、布尔值、字符串和列表的形式存储参数。在ROS2中,每个节点保持自己的参数。所有参数都是动态、可重新配置的,在ROS2服务的基础上构建。
1.准备
运行/turtlesim
和/teleop_turtle
两个节点,分别在两个终端运行:
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
此时,出现窗口:
2.ros2 param list
为了查看节点具有那些参数,可以运行:
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窗口的背景颜色,下面对此进行设置。
3.ros2 param get
为了得到当前参数的类型和值,可以运行:
ros2 param get <node_name> <parameter_name>
接下来,找到turtlesim
中的background_g
参数的值:
ros2 param get /turtlesim background_g
此时,终端返回:
Integer value is: 86
由返回结果可以知道,background_g
是一个整数值。
4.ros2 param set
为了改变参数值,可以使用:
ros2 param set <node_name> <parameter_name> <value>
改变turtlesim
的背景颜色:
ros2 param set /turtlesim background_r 150
此时,终端返回:
Set parameter successful
并且turtlesim
的背景颜色发生改变:
使用set
命令设置参数只会在当前会话中更改它们,而不是永久更改。但是,可以保存设置,并在下次启动节点时重新加载它们。
5.ros2 param dump
可以“dump”(转储)一个节点的所有当前参数值到一个文件保存,使用以下命令:
ros2 param dump <node_name>
保存当前turtlesim
节点中的参数,可以使用:
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.加载参数文件
要使用保存的参数值启动节点,可以使用:
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
以启动turtlesim
为例:
ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml
此时,出现窗口:
7.总结
节点有参数来定义它们的默认配置值,可以从命令行获取和设置参数值,还可以将参数设置保存到一个文件中,以便在将来的使用中重新加载。
如果给您带来帮助,希望能给点个关注,以后还会陆续更新有关机器人的内容,点个关注不迷路~欢迎大家一起交流学习。
都看到这了,点个推荐再走吧~
未经允许,禁止转载。