VScode+ubuntu配置ROS开发环境

embedded/2024/12/22 23:31:56/

ubuntuROS_0">VScode+ubuntu配置ROS开发环境

写在前面

vscode中先安装几个插件:中文语言包、Python插件、C++插件、CMake插件、vscode-icons、ROS插件、Visual Studio IntelliCode、URDF、Markdown All in One

一、工作空间是什么

在ROS机器人开发中,我们针对机器人某些功能进行代码开始时,各种编写的代码、参数、脚本等文件,需要放置在某一个文件夹里进行管理,这个文件夹在ROS系统中就叫做工作空间。

所以工作空间是一个存放项目开发相关文件的文件夹,也是开发过程中存放所有资料的大本营。
在这里插入图片描述
src,代码空间,未来编写的代码、脚本,都需要人为的放置到这里;
build,编译空间,保存编译过程中产生的中间文件;
install,安装空间,放置编译得到的可执行文件和脚本;
log,日志空间,编译和运行过程中,保存各种警告、错误、信息等日志。

我们编写的代码通常是放到src文件夹中,编译成功后,就会执行install里边的结果,build和log两个文件夹用的很少。

二、创建一个工作空间

$ mkdir -p ~/dev_ws_zl/src
$ cd ~/dev_ws_zl/src
$ code .//打开vscode

三、编译工作空间

$ sudo apt install python3-colcon-ros
$ cd ~/dev_ws_zl/
$ colcon build

编译成功后,就可以在工作空间中看到自动生产的build、log、install文件夹了。

四、设置环境变量

编译成功后,为了让系统能够找到我们的功能包和可执行文件,还需要设置环境变量。

$ source install/local_setup.sh # 仅在当前终端生效
$ echo " source ~/dev_ws_zl/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效

至此,我们就完成了工作空间的创建、编译和配置。

参考链接

https://docs.ros.org/en/humble/Tutorials/Workspace/Creating-A-Workspace.html


http://www.ppmy.cn/embedded/29445.html

相关文章

nginx的前世今生(三)

高手对决:武林盟主之路 1.不败之地,高可用江湖 技术角度讲,高可用(High Availability, HA)是指系统或服务能够在预定的时间内,以极高的概率持续提供服务的能力。具体来说,这通常涉及到系统的架…

『大模型笔记』MetaGPT: 多智能体框架:首家人工智能软件公司,走向自然语言编程

MetaGPT: 多智能体框架:首家人工智能软件公司,走向自然语言编程! 文章目录 一. MetaGPT: 多智能体框架二. MetaGPT-调研员-例子『大模型笔记』AI 智能体(Agent)在推理(Reasoning)、规划(Planning)与工具调度(Tool Calling)方面的研究:综合调查!一. MetaGPT: 多智能体框架 …

发电厂智能巡检机器人:让发电厂更安全、更高效

在发电厂的众多应用场景中,升压站、化学车间、空冷塔、输煤皮带、综合管廊等,一直以来都是人工巡检的主战场。然而,这些场所环境极为复杂,人工巡检面临着诸多难题,强度大、频率低、间隔长等问题突出。这使得设备在运行…

Go 语言基础(二)【数组、切片、指针、map、struct】

1、数组 特别需要注意的是:在 Go 语言中,数组长度也是数组类型的一部分!所以尽管元素类型相同但是长度不同的两个数组,它们的类型并不相同。 1.1、数组的初始化 1.1.1、通过初始化列表{}来设置值 var arr [3]int // int类型的数…

特别的时钟特别的倒计时

念念不忘的歌曲&#xff1a;Thats Why You Go Away <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

C++ | Leetcode C++题解之第58题最后一个单词的长度

题目&#xff1a; 题解&#xff1a; class Solution { public:int lengthOfLastWord(string s) {int index s.size() - 1;while (s[index] ) {index--;}int wordLength 0;while (index > 0 && s[index] ! ) {wordLength;index--;}return wordLength;} };

发表博客之:weight only int8 详细讲解,小白都可以看得懂,不懂请来打我!

发表博客之&#xff1a;weight only int8 详细讲解&#xff0c;小白都可以看得懂&#xff0c;不懂请来打我&#xff01; 考虑一个模型中有一个Gemm Op&#xff0c;有两个输入&#xff0c;假设都是fp16数据类型吧&#xff01; input0是 [ M , K ] [M,K] [M,K],input1是 [ K , N…

vue如何如何组合组件并通讯

在Vue中&#xff0c;组件的组合和通讯是构建复杂应用的关键部分。Vue提供了多种方式来组合组件&#xff0c;并允许组件之间进行通讯。以下是一些常见的方法&#xff1a; 1. 父子组件通讯 父组件向子组件传递数据&#xff1a; 通过props属性向子组件传递数据。 vue <!--…