参数为ROS2系统中的全局字典,类似于编程语言里的全局变量,具有以下特点:
1 全局共享字典
2 由键和值构成
3 可以动态监控,在一个程序里对参数的修改在其他程序里也会生效
在终端操作参数:
1 查询参数列表
ros2 param list
2 获取参数描述
ros2 param describe (节点名) (参数名)
3 获取参数
ros2 param get (节点名)(参数名)
4 修改参数
ros2 param set (节点名) (参数名)(设置值)
5 保存参数
保存一个节点全部参数
ros2 param dump (节点名)
如果要保存参数到另一个文件,可以使用重定向将终端信息保存到一个yaml文件里(参数文件类型为yaml)
ros2 param dump (节点名) >> (文件名).yaml
6 读取参数
将一个节点所有参数设为保存的参数文件里的值
ros2 param load (节点名)(参数文件)
示例1
在程序中创建,读取,修改参数
import rclpy
from rclpy.node import Node
class ParameterNode(Node):
def __init__(self, name):
super().__init__(name)
self.timer = self.create_timer(2, self.timer_callback)
self.declare_parameter('robot_name', 'mbot')
def timer_callback(self):
robot_name_param = self.get_parameter('robot_name').get_parameter_value()