4、ROS2工作空间
1、工作空间简介
在ROS机器人开发中,我们针对机器人某些功能进行开发时,各种编写的代码、参数、脚本等文件,需要放置在某一个文件夹里进行管理,这个文件夹在ROS系统中就叫做工作空间。所以工作空间是一个存放项目开发相关文件的文件夹,也是开发过程中存放所有资料的大本营。
2、创建工作空间
- 创建一个文件夹,作为存放工程文件的工作空间,yahboomcar_ws是文件夹名称,可以任意命名
xxxxxxxxxx mkdir -p yahboomcar_ws/src
- 切换到工作空间文件夹
xxxxxxxxxx cd ~/yahboomcar_ws
3、编译工作空间
xxxxxxxxxx colcon build
构建完成后,我们应该看到build、install和log目录:
ROS系统中一个典型的工作空间结构如上所示,这个yahboomcar_ws就是工作空间的根目录,里边会有四个子目录,或者叫做四个子空间。
- src,代码空间 ,未来编写的代码、脚本,都需要人为的放置到这里;
- build,编译空间 ,保存编译过程中产生的中间文件;
- install,安装空间 ,放置编译得到的可执行文件和脚本;
- log,日志空间 ,编译和运行过程中,保存各种警告、错误、信息等日志。
总体来讲,这四个空间的文件夹,我们绝大部分操作都是在src中进行的,编译成功后,就会执行install里边的结果,build和log两个文件夹用的很少。
这里也要强调一点,工作空间的名称我们可以自己定义 ,数量也并不是唯一的,比如:
xxxxxxxxxx 工作空间1:ros2_ws_a , 用于A机器人的开发 工作空间1:ros2_ws_b , 用于B机器人的开发 工作空间1:ros2_ws_c , 用于C机器人的开发
以上情况是完全允许的,就像是我们在集成开发环境中创建了多个新工程一样,都是并列存在的关系。
4、设置环境变量
编译成功后,为了让系统能够找到我们的功能包和可执行文件,还需要设置环境变量:
xxxxxxxxxx # 仅在当前终端生效 source install/setup.bash # 所有终端均生效 echo "source ~/yahboomcar_ws/install/setup.bash" >> ~/.bashrc
至此,我们就完成了工作空间的创建、编译和配置。