当前位置:网站首页>ROS2——工作空间(五)
ROS2——工作空间(五)
2022-07-05 06:35:00 【我与nano】
ROS2机器人操作系统
前言
前面大致了解了ROS2是什么,也做好了学习的准备,ROS2的核心概念大概分为以下几点
一、工作空间
在ROS机器人开发中,我们针对机器人某些功能进行代码开始时,各种编写的代码、参数、脚本等文件,也需要放置在某一个文件夹里进行管理,这个文件夹在ROS系统中就叫做工作空间。
所以工作空间是一个存放项目开发相关文件的文件夹,也是开发过程中存放所有资料的大本营。
ROS系统中一个典型的工作空间结构如图所示,这个dev_ws就是工作空间的根目录,里边会有四个子目录,或者叫做四个子空间。
src,代码空间,未来编写的代码、脚本,都需要人为的放置到这里;
build,编译空间,保存编译过程中产生的中间文件;
install,安装空间,放置编译得到的可执行文件和脚本;
log,日志空间,编译和运行过程中,保存各种警告、错误、信息等日志。
总体来讲,这四个空间的文件夹,我们绝大部分操作都是在src中进行的,编译成功后,就会执行install里边的结果,build和log两个文件夹用的很少。
工作空间的名称我们可以自己定义,数量也并不是唯一的,比如:
工作空间1:dev_w_a,用于A机器人的开发;
工作空间2:dev_ws_b,用于B机器人的一部分功能;
工作空间3:dev_ws_b2,用于开发B机器人另外一些功能。
二、工作空间具体操作
1.创建工作空间
接下来我们可以使用如下命令创建一个工作空间,并且下载代码:
mkdir -p ~/dev_ws/src
cd ~/dev_ws/src
git clone https://gitee.com/guyuehome/ros2_21_tutorials.git
2.自动安装依赖
我们从社区中下载的各种代码,多少都会有一些依赖,我们可以手动一个一个安装,也可以使用rosdep工具自动安装:
sudo apt install -y python3-pip
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update
cd ..
rosdepc install -i --from-path src --rosdistro humble -y
这里如果Pip安装失败,可以使用脚本安装
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
这些操作是在src中进行的,也就是初始化,然后更新,最后安装依赖实在src前一级进行的,记得cd …
3.编译工作空间
依赖安装完成后,就可以使用如下命令编译工作空间啦,如果有缺少的依赖,或者代码有错误,编译过程中会有报错,否则编译过程应该不会出现任何错误:
sudo apt install python3-colcon-ros
cd ~/dev_ws/
colcon build
编译成功后你就会看到四个文件都出来了
4.设置环境变量
编译成功后,为了让系统能够找到我们的功能包和可执行文件,还需要设置环境变量:
source install/local_setup.sh # 仅在当前终端生效
echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效
总结
至此,我们就完成了工作空间的创建、编译和配置。
边栏推荐
- 时间很快,请多做有意义的事情
- The problem of Chinese garbled code in the vscode output box can be solved once for life
- confidential! Netease employee data analysis internal training course, white whoring! (attach a data package worth 399 yuan)
- 6-2 sequence table operation set
- Inclusion exclusion principle acwing 890 Divisible number
- Preemption of CFS scheduling
- vim
- [Gaode map POI stepping pit] amap Placesearch cannot be used
- ethtool 原理介绍和解决网卡丢包排查思路(附ethtool源码下载)
- Utf8 encoding
猜你喜欢
Vant weapp swippecell set multiple buttons
Ret2xx---- common CTF template proposition in PWN
confidential! Netease employee data analysis internal training course, white whoring! (attach a data package worth 399 yuan)
International Open Source firmware Foundation (osff) organization
What is linting
Skywalking全部
Marvell 88E1515 PHY loopback模式测试
Client use of Argo CD installation
Chinese remainder theorem acwing 204 Strange way of expressing integers
Volcano 资源预留特性
随机推荐
Skywalking全部
摄像头的MIPI接口、DVP接口和CSI接口
*P++, (*p) + +, * (p++) differences
Relevant information of National Natural Science Foundation of China
Database mysql all
6-4 search by serial number of linked list
ethtool 原理介绍和解决网卡丢包排查思路(附ethtool源码下载)
【高德地图POI踩坑】AMap.PlaceSearch无法使用
June 29, 2022 daily
在新线程中使用Handler
6-3 find the table length of the linked table
Find the combination number acwing 888 Find the combination number IV
Vant weave swipecell sets multiple buttons
Design specification for mobile folding screen
Utf8 encoding
Financial risk control practice -- feature derivation based on time series
2048 project realization
Vscode creates its own code template
Genesis builds a new generation of credit system
[Chongqing Guangdong education] National Open University 2018 autumn 0702-22t contemporary Chinese political system reference questions