迁移参数
在 ROS 1 中,参数与中央服务器相关联,该服务器允许通过使用网络 API 在运行时检索参数。 在 ROS 2 中,参数与每个节点相关联,并可在运行时使用 ROS 服务进行配置。
有关系统模型的更多详细信息,请参阅 ROS 2 参数设计文档。
请参阅 ROS 2 CLI 使用,以更好地了解 CLI 工具的工作原理及其与 ROS 1 工具的区别。
迁移 YAML 参数文件
本指南介绍如何将 ROS 1 参数文件适配到 ROS 2。
YAML 文件示例
YAML 用于在 ROS 1 和 ROS 2 中编写参数文件。 ROS 2 中的主要区别在于必须使用节点名称来寻址参数。 除了完全限定的节点名称外,我们还使用键“ros__parameters”来表示节点参数的开始。
例如,这是 ROS 1 中的一个参数文件:
lidar_name: foo
lidar_id: 10
ports: [11312, 11311, 21311]
debug: true
假设前两个参数用于名为“/lidar_ns/lidar_node_name”的节点,下一个参数用于名为“/imu”的节点,最后一个参数我们想在两个节点上设置。
我们将按如下方式构建 ROS 2 参数文件:
/lidar_ns:
lidar_node_name:
ros__parameters:
lidar_name: foo
id: 10
imu:
ros__parameters:
ports: [2438, 2439, 2440]
/**:
ros__parameters:
debug: true
请注意使用通配符(“/**”)来表示应在任何命名空间中的任何节点上设置参数“debug”。
功能奇偶校验
ROS 1 参数文件的某些功能在 ROS 2 中不存在:
尚不支持列表中的混合类型(相关问题)
不支持“deg”和“rad”替换