VS Code创建、调试ROS项目

VS Code创建、调试ROS项目

一、创建工作空间

首先创建一个cMake工作空间,用到了catkin_make其实就是 cmake … make 两个步骤的缩写。

$ mkdir -p ~/base_try/src
$ cd ~/base_try/
$ catkin_make

注意:每次打开工作空间base_try文件要source一下

cd ~/base_try
source devel/setup.bash

除此之外,启动ROS还需要source一下:

~/.bashrc 配置

接下来需要将当前ROS工程的环境变量配置,输入:

echo "source ~/ros_test/devel/setup.bash" >> ~/.bashrc

之后直接source即可

source ~/.bashrc

至此,已经创建好了工作空间,

二、创建ROS项目

用VSCode打开ros_test文件夹,会标示该文件为catkin_workspace,build、devel、src都在,除此之外,会自动生成vscod文件里面有两个json文件:c_cpp_properties.json和setting.json.
如果不生成文件夹请手动创建
目录结构如下在这里插入图片描述

c_cpp_properties.json

//cpp 调试配置
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",  //头文件位置
                "/opt/ros/melodic/include/**" //ros头文件位置
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json",
            "compilerArgs": [],
            "browse": {
                "path": [
                    "${workspaceFolder}/**"
                ],
                "limitSymbolsToIncludedHeaders": true
            }
        }
    ],
    "version": 4

}

若compileCommands行报错
使用

catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=Yes

生成build下面的compile_commands.jason文件

settings.json

{
    "python.autoComplete.extraPaths": [
        "/home/ubuntu/base_try/devel/lib/python2.7/dist-packages",
        "/opt/ros/melodic/lib/python2.7/dist-packages"
    ]
}

launch.jason

// 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

{
    
    "version": "0.2.0",
    "configurations": [
    
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/src/robot_bringup/src/bringup.cpp",//可执行文件路径
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
            //"preLaunchTask": "make build"//最好删了,不然会影响调试,每次调试都直接执行make build
        }
    ]
}

tasks.jason

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "catkin_make", //代表提示的描述性信息
            "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"
        },
    ]
}

三、创建ROS包

右键点击"src"文件夹,右键弹出选项中,点击"Create Catkin Package",输入包的名称bringup_base,按Enter确认,输入包的依赖“std_msgs rospy roscpp”,空格隔开,按Enter确认。

包创建完成

在src文件夹下创建的程序包bringup_baset,包含include、src和CMakeLists.txt、package.xml。

在程序包bring_up/src 目录下创建的cpp还是没有找到头文件
解决办法如下

Cmakelists.txt 配置

配置功能包内的Cmakelists.txt
添加下面n行

# 头文件路径
include_directories(
include
  ${catkin_INCLUDE_DIRS}
)
# 生成可执行文件
add_executable( bringup_base src/bringup.cpp )
# 链接库
target_link_libraries(bringup_base ${catkin_LIBRARIES})

再编译一次

cd ~/base_try
catkin_make

参考:

https://zhuanlan.zhihu.com/p/150331361

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值