如何在ROS2虚线中启动带有参数的节点?

时间:2019-06-18 14:30:52

标签: ros2

在寻找解决方案时,我在此How to launch a node with a parameter in ROS2?上遇到了ROS2晶体的解决方案。

不幸的是,在ROS2破折号下这似乎不起作用。我创建了ROS2 realsense驱动程序(https://github.com/AndreasAZiegler/ros2_intel_realsense/tree/serial_no_param/realsense_ros2_camera)的派生文件,我的目标是能够通过参数传递序列号。与

Sub Test()
    Dim WorkRng As Range
    Dim OutRng As Range
    Dim Rng As Range
    'On Error Resume Next
    'Set WorkRng = Application.ActiveSheet.UsedRange
    Set WorkRng = Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column))
    Application.ScreenUpdating = False
    For Each Rng In WorkRng
        If Rng.Locked = False Then
            'If OutRng.Count = 0 Then
            If OutRng Is Nothing Then
                Set OutRng = Rng
            Else
                Set OutRng = Union(OutRng, Rng)
            End If
        End If
    Next
    If OutRng.Count > 0 Then OutRng.Select
    Application.ScreenUpdating = True

End Sub

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

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

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

1 个答案:

答案 0 :(得分: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个空格,不确定是否重要。