当我在寻找解决方案的时候,我在这篇How to launch a node with a parameter in ROS2?上偶然发现了ROS2 crystal的一个解决方案。
不幸的是,这似乎在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脚本中打印它)。
发布于 2019-08-06 08:55:39
在启动文件中,将节点名更改为: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个空格,不确定这是否重要。
https://stackoverflow.com/questions/56651469
复制相似问题