IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> VScode联合ROS编程调试 -> 正文阅读

[开发工具]VScode联合ROS编程调试

作为一款常用的IDE,如何使用vscode与ros进行开发,debug需要进行一系列配置,本文将进行详细的说明分享。

1、首先分享我的插件

2、创建工作空间

$ mkdir -p ~/catkin_ws/src 
$ cd ~/catkin_ws/src 
$ catkin_init_workspace

3、task.json的配置

{
	"version": "2.0.0",
	"tasks": [
		{
			"label": "catkin_make",
			"type": "shell",
			"command": "catkin_make",
			"args": [],
			"problemMatcher": [
				"$catkin-gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
		
	]
}

其中

"group": {"kind":"build",
        "isDefault":true}


代表将我们定义的这个task添加到build组里面,这样就可以中Ctrl+Shift+B快捷键来找到编译命令,命令名称就是在label里面定义的,如果"isDefault":true那么就代表直接执行command,如果为false还需要在build下拉里面选一下,我们这里就是label名字:catkin_make

(ros项目调试:vscode下配置开发ROS项目_Coulson的博客的博客-CSDN博客_ros vscode

这个来进行自动化的指令catkin_make操作,Ctrl+Shift+B相当于catkin_make。

4、自动生成compile_commands.json

在CMakeLists.txt中添加

set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 

自动生成compile_commands.json,用于c_cpp_properties中的compileCommands,规定了到哪里去编译什么文件。。

在c_cpp_properties.json添加

"compileCommands": "${workspaceFolder}/build/compile_commands.json"

更为简洁的方法是在task.json的配置

"args": [

				"-DCMAKE_EXPORT_COMPILE_COMMANDS=YES"// automatic  generation  compile_commands.json instractions
			],

c_cpp_properties.json

{
  "configurations": [
    {
      "browse": {
        "databaseFilename": "",
        "limitSymbolsToIncludedHeaders": true
      },
      "includePath": [
        "/opt/ros/noetic/include/**",
        "/home/javanliu/catkin_ws/src/learning_communication/include/**",
        "/usr/include/**"
      ],
      "name": "ROS",
      "intelliSenseMode": "gcc-x64",
      "compilerPath": "/usr/bin/g++",
      "cStandard": "c11",
      "cppStandard": "c++11",
     "compileCommands": "${workspaceFolder}/build/compile_commands.json"
    }
  ],
  "version": 4
}

5、创建功能包且加依赖

?src右键,或者用命令行皆可。

在对应功能包CMakeLists.txt添加

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

6、配置launch.json文件

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "cpp - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/devel/lib/helloworld/communication",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "catkin_make",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

有三个地方值得注意:

?"program": "${workspaceRoot}/devel/lib/helloworld/communication",对应的参数是需要自己给定的,比如我要调试一个ROS节点,那么就需要找到这个节点生成的可执行目标,就是可执行的二进制文件,然后添加到“program”参数后面,如果要调试其他节点,那么还需要手动修改这里。

"request"参数里面,gdb在vscode里面提供了launch和attach两个配置任务。两者的区别是launch实际上是启动一个node执行指定代码,同时可以在vscode里面打断点调试。 attach是执行监听的任务。

"preLaunchTask": "catkin_make",执行task标签为catkin_make的操作。

7、运行roscore后开始调试吧。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:12:07  更:2022-03-21 21:12:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:39:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码