ROS开发环境:vscode调试

系统环境

    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中左上角的绿色三角启动按钮 。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值