Robot Operating System——使用VSCode调试ROS2代码

工欲善其事必先利其器。直接使用GDB调试代码毕竟不是很方便,我们将探索如何使用VSCode调试ROS2的代码。

我们以《Robot Operating System——创建最简单项目的步骤》的代码为基础,讲解如何配置和调试。

安装插件/组件

VSCode插件

在VSCode的插件页面,我们在远程开发环境中安装CMake Tools和C/C++。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

调试组件

然后在远程环境(Linux)中安装必须的调试组件

sudo apt-get update
sudo apt-get install build-essential gdb

自定义cmake命令

由于ROS2在编译运行前,都要通过下面命令初始化环境

source /opt/ros/jazzy/setup.bash

而CMake Tools没有设置该行为的机会,我们只能自定义一个文件,然后通过它来代理cmake的执行。

 sudo vim ~/ros2-cmake.sh

然后填入以下内容

#!/bin/bash

# 检查是否提供了至少一个参数
if [ "$#" -lt 1 ]; then
    echo "Usage: $0 <cmake-arguments>"
    exit 1
fi

# Source 环境设置脚本
source /opt/ros/jazzy/setup.bash

# 运行传递进来的 cmake 命令
cmake "$@"

保存文件后,我们赋予其执行权限。

sudo chmod +x ~/ros2-cmake.sh

然后将其软链接到/usr/bin目录下

sudo ln -s ~/ros2-cmake.sh /usr/bin/ros2-cmake

后面我就可以使用ros2-cmake来编译我们的ROS2相关的工程了。

配置CMake Tools

新增CMakePresets.json

我们在CMakeLists.txt同级目录下新增CMakePresets.json,其内容如下

{
    "version": 3,
    "cmakeMinimumRequired": {
        "major": 3,
        "minor": 10,
        "patch": 0
    },
    "configurePresets": [
        {
            "name": "Debug",
            "hidden": false,
            "description": "Debug build",
            "generator": "Unix Makefiles",
            "binaryDir": "${sourceDir}/build/",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug",
                "CMAKE_EXPORT_COMPILE_COMMANDS": "YES"
            },
            "environment": {
                "CC": "gcc",
                "CXX": "g++"
            }
        },
        {
            "name": "Release",
            "hidden": false,
            "description": "Release build",
            "generator": "Unix Makefiles",
            "binaryDir": "${sourceDir}/build/",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Release"
            },
            "environment": {
                "CC": "gcc",
                "CXX": "g++"
            }
        }
    ]
}

修改默认的cmake

Ctrl+P打开命令输入创建,输入并选择

> CMake:Open CMake Tools Extension Settings

在这里插入图片描述
定位到Workspace下,并找到CMake: Cmake Path,将其值改成ros2-cmake。这样只有我们测试的工程的cmake被修改,而不会影响到整个实例。
在这里插入图片描述

编译Debug版

Ctrl+P唤出命令输入框,输入并选择

> CMake:Select Configure Preset

在这里插入图片描述
然后选择Debug
在这里插入图片描述
这一步会触发编译
在这里插入图片描述

配置测试环境

修改./bashrc文件

 sudo vim ~/.bashrc

在其末尾新增一行,输入source /opt/ros/jazzy/setup.bash
在这里插入图片描述
这样启动的测试环境也将准备好环境。

启动测试

我们先在main函数中下断点
在这里插入图片描述
然后在侧边栏CMake Tools的PROJECT OUTLINE下找到我们要调试的文件,然后右击它,选择Debug
在这里插入图片描述
然后我们看到代码中断到断点处
在这里插入图片描述

总结

  1. 需要配置CMakePresets.json文件。
  2. 需要自定义cmake命令,用于编译链接。
  3. 需要修改当前用户shell打开时的环境,用于调试。

参考资料

  • 31
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

breaksoftware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值