ros vscode配置

1. 插件

  • C / C++ (vscode官方cpp插件)
  • CMake (CMakeLists.txt文件)
  • CMake Tools
  • vscode-icons (区分不同格式的文件)
  • Bracket Pair Colorizer (区分不同的括号)
  • ROS (调试ROS)

2.自动补全

ROS自动补全需要在.vscode文件下配置c_cpp_properties.json文件。C / C ++扩展使用它来搜索节点引用的所有包含文件夹,其内容如下:

{
    "configurations": [
        {
            "name": "Linux",
            "browse": {
                "databaseFilename": "",
                "limitSymbolsToIncludedHeaders": true
            },
            "includePath": [
                "${workspaceFolder}/devel/include",
                "/opt/ros/melodic/include",
                "/usr/include/**",
                "${workspaceFolder}/**"
            ],
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "/usr/bin/g++",
            "cStandard": "c11",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}

主要配置头文件的查找地址includePath"${workspaceFolder}/devel/include"主要包含ROS中的自定义消息、服务等头文件。
嫌麻烦的,可以在vscode默认的setting.json文件写入以下内容,那么打开新的ros工程,无需配手动c_cpp_properties.json文件,系统会自动生成相应的配置项。

"C_Cpp.default.includePath": [
    "${workspaceFolder}/**",
    "/opt/ros/kinetic/include/**",
    "/usr/local/include/**",
    "/usr/include/**"
],
"C_Cpp.default.browse.path": [
    "${workspaceFolder}/**",
    "/opt/ros/kinetic/include/**",
    "/usr/local/include/**",
    "/usr/include/**"
]

3.编译配置

快捷编译ROS中的包需要配置tasks.json文件,自己在.vscode文件夹下创建tasks.json文件,其内容如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "ROS: catkin_make",
            "type": "shell",
            "command": "catkin_make",
            "args": [
                // "--pkg",
				// "your package name",
				"-j8",
				"-DCMAKE_BUILD_TYPE=Debug",
				// "-DCMAKE_EXPORT_COMPILE_COMMANDS=1",
				// "-DCMAKE_CXX_STANDARD=14"
            ],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

"label":该任务的名称,随意取;
"type": 任务的类型,可设置成shellprocess。前者将任务当成命令,启动终端运行,后者直接运行。
"command":命令
"args"command的参数,"--pkg"单独编译catkin_ws中的某个包,"-DCMAKE_BUILD_TYPE=Debug"编译类型为Debug,方便后续的调试,如果需要进行调试,需要设置为Debug模式,并且要检查相应package中的CMakeLists.txt中有没有设置成Release模式,CMake中txt的设置优先级是最高的。
可以在需要调试的package中的CMakeLists.txt加入以下内容:

# debug
SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

4.调试ROS节点

调试ROS节点需要配置.vscode下的launch.json,共有两种方式,第一种以ROS中的launch文件启动节点,主要用于调试的node参数较多,如movebase节点,其launch.json如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "movebase.launch",
            "type": "ros",
            "request": "launch",
            "target": "/home/chelizi/biyesehji_ws/src/rbx1/rbx1_bringup/launch/movebase.launch"
        }
    ]
}

"target"launch文件所在的绝对路径
第二种方式以二进制文件的方式启动节点,若该节点无需太多的参数可用这种方式,其launch.json内容如下:

{
    "configurations": [
        {
            "name": "kindynamic_path_node",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/devel/lib/kindynamic_planner/test",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

program:所调试节点二进制文件所在的绝对位置

参靠文献:

1、https://github.com/RoboGnome/VS_Code_ROS
2、https://haoqchen.site/2019/08/15/debug-ros-with-vscode/
3、https://github.com/ms-iot/vscode-ros/blob/master/doc/debug-support.md#attach

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值