迁移参数 [15959]

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

迁移YAML参数文件 [15963]

本指南介绍如何调整ROS 1参数文件以适应ROS 2。 [15964]

YAML文件示例 [15965]

在ROS 1和ROS 2中都使用YAML编写参数文件。在ROS 2中的主要区别是必须使用节点名称来引用参数。除了完全限定的节点名称外,我们还使用键“ros__parameters”来表示节点参数的起始。 [15966]

例如,这是一个在ROS 1中的参数文件示例: [15967]

lidar_name: foo
lidar_id: 10
ports: [11312, 11311, 21311]
debug: true

假设前两个参数是给名为 /lidar_ns/lidar_node_name 的节点使用的,下一个参数是给名为 /imu 的节点使用的,最后一个参数我们想要在这两个节点上设置。 [15968]

我们将按照以下方式构建我们的ROS 2参数文件: [15969]

/lidar_ns:
  lidar_node_name:
    ros__parameters:
      lidar_name: foo
      id: 10
imu:
  ros__parameters:
    ports: [2438, 2439, 2440]
/**:
  ros__parameters:
    debug: true

注意使用通配符(/**)来表示参数 debug 应该在任何命名空间中的任何节点上设置。 [15970]

功能对等 [15971]

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