前言
记录ROS2学习的各项核心概念,便于后续复习。
一、工作空间workshop
1.什么是工作空间
在ROS机器人开发中,工作空间是一个存放项目开发相关文件的文件夹,各种编写的代码、参数、脚本等文件,放置在一个文件夹里进行管理,这个文件夹在ROS系统中就叫做工作空间。PS:就是一个文件夹,放置代码的地方,就像VS的工程文件夹。
ROS系统中一个典型的工作空间结构如图1所示,这个dev_ws就是工作空间的根目录,里边会有四个子目录,或者叫做四个子空间。
src,代码空间,未来编写的代码、脚本,都需要人为的放置到这里; PS:这个需要我们自己建立
build,编译空间,保存编译过程中产生的中间文件;PS:自动建立
install,安装空间,放置编译得到的可执行文件和脚本; PS:自动建立
log,日志空间,编译和运行过程中,保存各种警告、错误、信息等日志。PS:自动建立
这四个空间的文件夹,我们绝大部分操作都是在src中进行的,编译成功后,就会执行install里边的结果,build和log两个文件夹用的很少。
2.创建工作空间
#建立目录
$ mkdir -p ~/dev_ws/src
$ cd ~/dev_ws/src
#放点代码进去,这里直接拉去了古月君的课程代码
$ git clone https://gitee.com/guyuehome/ros2_21_tutorials.git
3.自动安装依赖
使用工具自动分析src目录下得源代码,并对源代码进行依赖安装。
$ sudo apt install -y python3-pip
#这里安装了fishros的国产依赖工具rosdepc
$ sudo pip3 install rosdepc
#初始化
$ sudo rosdepc init
#更新
$ rosdepc update
$ cd ..
$ rosdepc install -i --from-path src --rosdistro humble -y
PS:这里面涉及rosdep工具的使用,小伙伴可以自行查阅相关资料。
4.编译工作空间
依赖安装完成后,就可以使用如下命令编译工作空间啦,如果有缺少的依赖,或者代码有错误,编译过程中会有报错,否则编译过程应该不会出现任何错误:
#安装编译工具
$ sudo apt install python3-colcon-ros
#切换至工作空间主目录
$ cd ~/dev_ws/
#开始编译,colcon会分析src目录下的源代码并进行编译
$ colcon build
编译成功后,就可以在工作空间中看到自动生产的build、log、install文件夹了。
这里是我的学习记录
5.设置环境变量
编译成功后,为了让系统能够找到我们的功能包和可执行文件,还需要设置环境变量:
PS:
$ source install/local_setup.sh # 仅在当前终端生效
$ echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效
至此,我们就完成了工作空间的创建、编译和配置。