将YAML参数文件从ROS 1迁移到ROS 2 [待校准@6401]
本指南介绍了如何适应ROS 2的ROS 1参数文件。 [待校准@6402]
YAML文件示例 [待校准@6403]
YAML用于写入ROS 1和ROS 2中的参数文件。ROS 2的主要区别在于必须使用节点名称来寻址参数。除了完全限定的节点名称之外,我们还使用键 "ros__parameters" 来表示节点参数的开始。 [待校准@6404]
例如,这里有一个ROS 1的参数文件: [待校准@6405]
lidar_name: foo
lidar_id: 10
ports: [11312, 11311, 21311]
debug: true
假设前两个参数用于一个名为 /lidar_ns/lidar_node_name
的节点,第二个参数用于一个名为 /imu
的节点,最后一个参数我们要在两个节点上设置。 [待校准@6406]
我们将构建ROS 2参数文件,如下所示: [待校准@6407]
/lidar_ns:
lidar_node_name:
ros__parameters:
lidar_name: foo
id: 10
imu:
ros__parameters:
ports: [2438, 2439, 2440]
/**:
ros__parameters:
debug: true
请注意通配符 ( /**
) 的使用,以指示应在任何命名空间中的任何节点上设置参数 debug
。 [待校准@6408]
特征奇偶校验 [待校准@6409]
ROS 2中不存在ROS 1参数文件的某些功能: [待校准@6410]
尚不支持列表中的混合类型 ( related issue ) [待校准@6411]
不支持``deg`` and
rad
substitutions [待校准@6412]