迁移参数

在ROS 1中,参数与一个中央服务器相关联,允许通过网络API在运行时检索参数。在ROS 2中,参数与每个节点相关联,并且可以在运行时通过ROS服务进行配置。

迁移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 应该在任何命名空间中的任何节点上设置。

功能对等

ROS 1参数文件的一些功能在ROS 2中不存在:

  • 列表中的混合类型尚不支持 (相关问题)

  • 不支持``deg``和``rad``的替换