系统环境
ros --version == melodic
ubuntu --version == 18.04LTS
安装vscode:ubuntu18.04已经可以再ubuntu software中找到并进行安装
在VSCode的插件处安装C/C++,python,ROS插件。其中ROS插件的作用是在识别到catkin_make等命令创建的ROS工作空间后会向工作空间中添加:setting.json,c_cpp_properties.json等配置文件。
我们还需要按下[^ctrl+shift+P] 并输入[^Tasks:Configure Default Build Tasks]生成tasks.json文件
接下来我们先src文件夹中添加一个cpp文件并按下F5选择C++ GDB选项即可生成launch.json文件
如果没有生成这些文件请见此处手动进行添加
对tasks.json文件进行配置,这里参考的是一位up主的笔记
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"label": "catkin_make:debug", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin_make",//这个是我们需要运行的命令
"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
}
]
}
接下来是修改launch.json文件
{
// 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": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/devel/lib/beginner_tutorial/talker",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
//"preLaunchTask": " g++-7 build active file ver(1)",
"preLaunchTask": "catkin_make: build",//这里跟的是tasks.json文件中的定义,意在debug前进行build操作
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
关键在于program中的${workspaceFolder}/devel/lib/beginner_tutorial/talker,假如你需要调试不同的节点请修改此处的program值为该节点的可执行文件所在路径。
2021/9/18补充:
我们还需要在CMakeLists.txt中的project下补上下面这一句话:
SET(CMAKE_BUILD_TYPE Debug)
在Vscode的终端编译时输入以下指令
$ catkin_make -DCMAKE_BUILD_TYPE=Debug
由于已经安装ROS插件,所以可以从vscode中启动roscore
启动roscore:通过按Ctrl + Shift + P,输入ros:start core启动roscore。
当工作空间中有多个功能包时可以使用如下方式指定编译哪个功能包
$ catkin_make -DCMAKE_BUILD_TYPE=Debug -DCATKIN_WHITELIST_PACKAGES="package1;package2"
在调试的时候需要先在terminal中启动roscore再选择debug中左上角的绿色三角启动按钮 。