迁移参数
在ROS 1中,参数与一个中央服务器相关联,允许通过网络API在运行时检索参数。在ROS 2中,参数与每个节点相关联,并且可以在运行时通过ROS服务进行配置。
请参阅 ROS 2参数设计文档 了解有关系统模型的更多详细信息。
请参阅 ROS 2 CLI用法 以更好地理解CLI工具的工作原理及其与ROS 1工具的区别。
迁移YAML参数文件
本指南介绍如何调整ROS 1参数文件以适应ROS 2。
YAML文件示例
在ROS 1和ROS 2中都使用YAML编写参数文件。在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
应该在任何命名空间中的任何节点上设置。