ROS2 基础概念 参数
- 1. Parameters
- 2. 参数
- 3. 参数查看
- 4. 参数设置
- 5. 参数保存
- 6. 参数加载
1. Parameters
指令 | 功能 |
---|---|
ros2 param delete /node parameter | 删除参数值 |
ros2 param describe /node parameter | 显示参数的相关描述 |
ros2 param dump /file | 将参数保存到一个文件中 |
ros2 param get /node parameter | 获取参数值 |
ros2 param list | 列出所有节点的参数 |
ros2 param load /node /file | 加载参数文件 |
ros2 param set /node parameter value | 设置参数值 |
2. 参数
还是启动海龟及其遥控节点为例:
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
要查看属于节点的参数,打开一个新终端并输入命令:
ros2 param list
# /teleop_turtle:
# qos_overrides./parameter_events.publisher.depth
# qos_overrides./parameter_events.publisher.durability
# qos_overrides./parameter_events.publisher.history
# qos_overrides./parameter_events.publisher.reliability
# scale_angular
# scale_linear
# use_sim_time
# /turtlesim:
# background_b
# background_g
# background_r
# qos_overrides./parameter_events.publisher.depth
# qos_overrides./parameter_events.publisher.durability
# qos_overrides./parameter_events.publisher.history
# qos_overrides./parameter_events.publisher.reliability
# use_sim_time
3. 参数查看
ros2 param get <节点名称> <参数名称>
比如查看一项背景色:
ros2 param get /turtlesim background_g
# Integer value is: 86
还要了解关于这个参数的详情,可以通过:
ros2 param describe /turtlesim background_g
# Parameter name: background_g
# Type: integer
# Description: Green channel of the background color
# Constraints:
# Min value: 0
# Max value: 255
# Step: 1
4. 参数设置
ros2 param set <节点名称> <参数名称> <参数数据>
比如改变一项背景色:
ros2 param set /turtlesim background_g 250
# Set parameter successful
窗口的背景应该改变颜色:
5. 参数保存
刚刚修改的背景色,只会在当前会话中更改参数,而不会永久更改
但是,可以保存设置并在下次启动节点时重新加载它们
ros2 param dump <节点名称>
比如,先只显示出来:
ros2 param dump /turtlesim --print
# /turtlesim:
# ros__parameters:
# background_b: 255
# background_g: 250
# background_r: 69
# use_sim_time: false
储存的话,还可以指定目录:
ros2 param dump /turtlesim --output-dir /
生产的默认文件名 turtlesim.yaml
节点名称相同
6. 参数加载
可以使用下面的命令从文件中加载参数到当前运行的节点:
ros2 param load <节点名称> <参数文件>
比如加载刚刚保存的文件:
ros2 param load /turtlesim turtlesim.yaml
# Set parameter background_b successful
# Set parameter background_g successful
# Set parameter background_r successful
# Set parameter use_sim_time successful
只读参数只能在启动时修改,而不能在启动后修改
在节点启动时加载参数文件:
ros2 run <功能包> <可执行文件> --ros-args --params-file <参数文件>
比如启动海龟时,加载刚刚的参数文件:
ros2 run turtlesim turtlesim_node --ros-args --params-file turtlesim.yaml
窗口应该像往常一样出现,但背景的颜色和之前设置一样
在这种情况下,参数在启动时被修改,因此指定的只读参数也将生效
谢谢