ROS实战(十)ROS2之工作空间

摘要:转眼间三年已经过去,而我也开始面临毕业的问题。由于导师放养式的教学,导致我的论文一直没什么长进。抱怨没有用,一切靠自己。还是得把之前丢下的捡起来。

本文主要介绍ROS2上的工作空间。

关键词:ROS2

工作空间:开发过程中的大本营

什么是工作空间

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

工作空间是一个存放项目于开发相关文件的文件夹,是开发过程中存放所有资料的大本营。

ROS系统中一个典型的工作空间如下,一般会有四个子目录:

image-20220524111415729
  • src,代码空间:编写的代码、脚本都需要放在这里;

  • build,编译空间:保存编译过程中产生的中间文件;

  • install,安装空间:放置编译过程得到的可执行文件和脚本;

  • log,日志空间:编译和运行过程中,保存各种警告、错误、信息等日志。

总体来说,这四个空间的文件夹,我们绝大部分的操作都是在src进行的,编译成功后,会执行install里面的结果,build和log两个文件很少用。

工作空间里的名称我们也可以自己定义,数量也不是唯一的.

创建工作空间

执行以下命令创建工作空间

1
2
3
mkdir -p ~/dev_ws/src
cd ~/dev_ws/src
git clone https://gitee.com/guyuehome/ros2_21_tutorials.git

自动安装依赖

一般使用rosdep工具进行自动安装,而rosdep默认会使用国外的源进行安装,而一般国内的网络无法正常连接,因此有开发者开发了rosdepc模块,c的含义就是china,这个软件使用了清华源进行了替换。

1
2
3
4
5
sudo pip install rosdepc
sudo rosdepc init
rosdepc update
cd ..
rosdepc install -i --from-path src --rosdistro foxy -y

编译工作空间

依赖安装完毕,可以使用以下命令编译工作空间,如果有缺少的依赖,或者代码有错误,编译过程中会有报错,否则编译过程中不会出现任何错误:

1
2
3
sudo apt install python3-colcon-ros
cd ~/dev_ws/
colcon build

编译成功后,就可以在工作空间后就可以看到构建后的文件夹了

设置环境变量

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

1
2
source install/local_setup.sh # 仅在当前终端生效
echo "source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 全局生效

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