1

当我在寻找解决方案时,我在这篇文章如何使用 ROS2 中的参数启动节点?.

不幸的是,这似乎在 ROS2 dashing 下不起作用。我创建了 ROS2 realsense 驱动程序的一个分支(https://github.com/AndreasAZiegler/ros2_intel_realsense/tree/serial_no_param/realsense_ros2_camera),我的目标是能够通过参数传递序列号。和

ros2 run realsense_ros2_camera realsense_ros2_camera  __params:=/paht/to/config/parameters.yaml

传递参数工作正常,但是当我使用启动 python 文件启动节点时

ros2 launch realsense_ros2_camera ros2_intel_realsense.launch.py

它忽略参数。parameters.yaml 的路径是正确的(我在启动 python 脚本中打印它)。

4

1 回答 1

1

在您的启动文件中,您将节点名称更改为:node_name='realsense_ros2_camera'

但是,节点的默认名称以及您在配置文件中使用的名称RealSenseCameraNode就是当您从 cmd 行运行它时它起作用的原因(不传递新名称)。

# RealSense parameters
---

RealSenseCameraNode_ns:
    RealSenseCameraNode:
      ros__parameters:
        serial_no: 845112070204

将其更改为

# RealSense parameters
---

RealSenseCameraNode_ns:
  realsense_ros2_camera:
    ros__parameters:
      serial_no: 845112070204

它应该可以工作(或者在启动文件中保留默认名称)。小事:我将 yaml 配置更改为每个新行只有 2 个空格,不确定是否重要。

于 2019-08-06T00:55:38.750 回答