debugging 使用roslaunch调试VS代码中的ROS节点

lh80um4z  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(187)

我有ROS节点,并在VS代码中调试它,启动任务如下:

{
        "name": "(gdb) Launch  ROS node",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/build/catkin_ws/devel/lib/my_ros_node/my_ros_node",
        "args": [
            <some cmd-line arguments>
        ],
        "cwd": "${workspaceFolder}/build/catkin_ws/devel/lib/my_ros_node/",
        "environment": [{"name": "LD_LIBRARY_PATH", "value": "${workspaceFolder}/build/lib/:/opt/ros/melodic/lib"} ],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ]
    },

所有的工作都很好。但是在一个时刻我必须重新Map主题。最简单的方法是使用roslaunch。我为它写了启动文件:

<launch>
  <remap from="topicA" to="topicB" />
  <remap from="topicD" to="topicC" />
  <node name="my_ros_node" pkg="my_ros_node" type="my_ros_node" args="<some args>"/>
</launch>

我应该更正VS代码启动目标。我无法找到如何启动在VS代码启动目标ROS节点通过roslaunch命令。VS代码扩展ROS不工作正常可能的情况下,我的ROS节点只是我的工作空间的一小部分。
我只找到一个解决办法:在roslaunch上单独启动ros节点。然后在VS代码中连接到进程。它工作正常,但要求授予root访问权限。
还有比我更简单的解决方案吗?

omvjsjqw

omvjsjqw1#

checkout vscode ROS扩展(ms-iot.vscode-ros):
https://marketplace.visualstudio.com/items?itemName=ms-iot.vscode-ros
这增加了对指定"target": "<path_to_your_launch_file>""type": "ros", "request": "launch"调试配置的支持。

相关问题