前言
- 学了蛮久的Ros,最近第一次有一个项目去复现,通过C++实现。实现过程中必然需要Debug一步步的解决问题。然后发现VsCode上Debug Ros还是有点麻烦的,(不同于IDEA非常简明的Debug方式,这里要谴责一下微软,新建项目还要整includepath ,Debug也麻烦)。网上搜了一堆都讲的不清不楚。自己略微总结了一下分享给大家。
- 一开始我一直想通过 【打断点】+【跑
rosrun package node
】 +【按Debug按钮】(IDEA就是这么做!),其中node对应了几个C++文件。但问题来了,一个节点node既不是launch文件也不是C++/python文件,捣鼓了很久,看了几篇教程设置gdb什么的都不行。
Debug流程
1.记得先在编译时设置为调试模式
catkin_make -DCMAKE_BUILD_TYPE=Debug
2.记得先打好断点
这就不多演示了
3.文件配置工作
- 一番实践后发现 :
- 把
rosrun package node
改为launch文件,比如我这样改:
- 把
- 调出VsCode中launch文件专用的Debug配置文件。具体就是先点左边有个小爬虫的图片,然后可以直接勾选ROS:Launch 或者先Add Configuration里再添加Ros:Launch。
- 然后会发现,他给我们自动添加了一个叫
launch.json
的文件,我们只要配置好这个文件就可以正常Debug了。 - 其实要修改的只有
"target"
这一项,我这里直接把他改成了我launch文件的绝对地址。
- 或者你也可以直接添加launch.json,在下面的基础上改就好了
//最简单的文件实例,只要修改target里的位置,改为绝对地址就可以了
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "ROS: Launch",
"type": "ros",
"request": "launch",
"target": "/home/zhangshidi/GitHub/automated_gluing_system/src/motion_planning/launch/tpn.launch"
},
]
}
- 注意!先启动
roscore
- 然后我们点击 绿色的 按钮,就可以开始Debug流程了
- Debug开始后 ,右上角有一小排的按钮可以供我们利用。
其实流程也很简单,网上很多教程表述的太不清楚。不同软件厂商的对编译工具的设计也不一样,在Debug上我觉得IntelliJ IDEA 远远优于VsCode的,VsCode胜在轻便。希望不同的厂商能互相学习吧,尽量统一设计语言和操作逻辑。