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(noetic)代码开发环境 -> 正文阅读

[开发工具]vscode配置ROS(noetic)代码开发环境

目录

一、安装环境

二、安装插件

三、 配置过程

3.1 创建ROS工作空间

3.2? 打开 vscode

3.3? 开发脚本说明

3.4 如何创建三个脚本

3.5 脚本配置

四、在vscode 使用ROS

4.1? 编译节点文件

4.2? 使用vscode打开roscore

4.3? 运行功能包节点


一、安装环境

ubuntu :20.04

ROS:? ? noetic? ?//一定要注意自己的ROS 环境

二、安装插件

打开VSCode,在左侧栏点击Extensions,并在搜索框中需要的插件,如下图所示

其中C/C++、CMake 、CMake Tools、ROS,是必须要装的?

三、 配置过程

3.1 创建ROS工作空间

首先创建一个工作空间,而且是已经catkin_make好了的。具体过程可以看看其他教程

3.2? 打开 vscode

? ? ?在创建的工作空间下打开终端,运行? ?code .?

? ? ?我的工作空间如下

XXXXXXXX-VM:~/px4_tools/catkin_ws$  code.

?3.3? 开发脚本说明

打开之后,安装的ROS插件就会自动识别到这个workspace,同时生成产生.vscode 文件夹。

? ? 一般来说,.vscode 文件需要创建三个脚本,用于代码开发,分别如下:

1. c_cpp_properties.json? 2. launch.json? 3. tasks.json

简单说一下这三个文件的作用:

  1. c_cpp_properties.json: C++配置文件,处理ros头文件的关系
  2. launch.json: 启动代码调试相关的配置文件,主要用于调试的
  3. tasks.json: 自定义任务列表

3.4 如何创建三个脚本

可以手动在.vscode文件夹下创建三个脚本的,就是? ?菜单栏-->新建文件-->创建-->选择语言-->JSON? 这么一步步走下去

不过,也可以简单点,如下

1.? ?c_cpp_properties.json:

.vscode 文件会自动产生 c_cpp_properties.json脚本和settings.json脚本

2.? ?tasks.json:

点击菜单栏: Terminal(终端)->Configure default build task(配置默认生成任务)

然后生成在.vscode的文件夹出现并同时打开一个task.json文件。如图所示

3.? ?launch.json:

在未配置过调试前,是没有launch.json文件的。

可以通过输入快捷键Ctrl + Shift + D或选择点击vscode上的Run and Debug 按钮,去到调试界面

然后选择 Create a launch.json file,如图所示

?那么三个脚本创建完毕。

3.5 脚本配置

1.? c_cpp_properties.json:

直接复制如下代码,注意 "includePath":和?"compilerPath":,还有?"compileCommands":参数

{
    "configurations": [
        {
            "browse": {
                "databaseFilename": "",
                "limitSymbolsToIncludedHeaders": true
            },
            "name": "ROS",   //这个可以随意写
            "includePath": [  //头文件和环境变量路径,这个一定要包含ros的头文件,否则就会报错
                "${workspaceFolder}/**",
                "/opt/ros/noetic/include",
                "/opt/ros/noetic/include/**", //ROS的头文件路径如下,不同版本修改中间的版本名
                                              //我的版本是noetic,改的话就改这里
                "/usr/include/**"
        
            ],
            "compileCommands": "${workspaceFolder}/build/compile_commands.json", 
                    // catkin_make 后在devel自动生成一个compile_commands.json的文件
                    //现在先添加好,省得后面再加

            "defines": [],
            "compilerPath": "/usr/bin/gcc",  //一定要选择gcc,否则一定报错头文件缺失,
            "cStandard": "c11", //C 语言标准
            "cppStandard": "c++17", //C++ 语言标准
            "intelliSenseMode": "gcc-x64"  // 
        }
    ],
    "version": 4
}

?2.??tasks.json:

直接复制如下代码

{
	"version": "2.0.0",
	"tasks": 
	[
		{
			"label": "catkin_make", // 
			"type": "shell",
			"command": "catkin_make",
			"args": [
				"-j4",
				"-DCMAKE_BUILD_TYPE=Release",
				"-DCMAKE_EXPORT_COMPILE_COMMANDS=1",
				"-DCMAKE_CXX_STANDARD=14"
			],
			"problemMatcher": [
				"$catkin-gcc"
			],
			"group": 
			{
				"kind": "build",
				"isDefault": true
			},
			"presentation": 
			{
				"echo": true,
				"reveal": "always",
				"focus": false,
				"panel": "new", //改成new之后每个进程创建新的终端,就不会出现终端重复使用啦
				"showReuseMessage": true,
				"clear": false
			}
		}
	]

}

3.? launch.json:

复制如下代码,主要关注的是“program”: 是要调试的程序的路径,要写对,否则无法调试

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch", // 配置名称,将会在调试配置下拉列表中显示
            "type": "cppdbg",  // 调试器类型 该值自动生成
            "request": "launch",  // 调试方式,还可以选择attach
            "program": "${workspaceFolder}/devel/lib/learning_topic/pose_subscriber", 
                             //要调试的程序(完整路径,支持相对路径)
            "args": [],  // 传递给上面程序的参数,没有参数留空即可
            "stopAtEntry": false,  // 是否停在程序入口点(停在main函数开始)
            "cwd": "${workspaceRoot}",  // 调试程序时的工作目录
            "environment": [], //针对调试的程序,要添加到环境中的环境变量. 例如: [ { "name": "squid", "value": "clam" } ]
            "externalConsole": false,   //如果设置为true,则为应用程序启动外部控制台。 如果为false,则不会启动控制台,并使用VS Code的内置调试控制台。
            "MIMode": "gdb",  // VSCode要使用的调试工具
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

四、在vscode 使用ROS

4.1? 编译节点文件

? ? 按下快捷键:Ctrl +Shift+b(或者直接在vscode终端输入catkin_make)

? ? ?就可以进行(catkin_make)编译

ps : 记得在CMakelist文件中添加相应的语句

4.2? 使用vscode打开roscore

按下快捷键:Ctrl +Shift+p,输入?

?ROS:Start Core

?启动ROS内核(或者直接在vscode终端输入roscore)

4.3? 运行功能包节点

按下快捷键:Ctrl +Shift+p,输入? ? ? ? ? ? ? ? ? ? (启动rosrun)

ROS:Run a Ros excutable (rosrun)

回车,输入并按照提示选择 (选择需运行的功包)

beginer_tutorials

回车,输入并按照提示选择(选择节点运行)

talker

?OK,整个配置流程就是这样的了。

ps:上面的命令都是 ROS插件 上的,更多指令可以去插件详情查看

?还有什么ROS:stop 关闭内核命令的

  开发工具 最新文章
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常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 12:04:28  更:2021-08-27 12:05:39 
 
开发: 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/16 8:18:01-

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