ROS2教程 01 创建工作空间

一、什么是工作空间

在开发机器人过程中,将某个机器人的代码、参数、脚本等文件放在文件夹中管理,这个文件夹就是工作空间。
就像在vscode中创建了某个工程一样

二、ROS1和ROS2工作空间的区别

ROS1

曾经的ROS1使用Catkin编译系统,在经历catkin编译后会产生四个空间
src 代码空间:用于存储所有功能包的代码
build 编译空间:用于存储编译过程产生的缓存和中间文件
devel 开发空间:用于放置编译生成的可执行文件
install 安装空间:非必须的,可在工作目录下用catkin_make install生成,可以将可执行文件安装到此空间

ROS2

ROS2使用colcon编译,编译后产生的四个文件夹分别为
src 代码空间:用于存储所有功能包的代码、脚本等
build 编译空间:用于存储编译过程产生的缓存和中间文件
install 安装空间:用于放置编译生成的可执行文件和脚本
log 日志空间:用于保存编译和运行过程中警告、报错等日志的空间

三、创建工作空间

ROS官方关于创建工作空间的教程

1.创建工作空间文件夹

mkdir -p ~/ROSLearningWorkspace/src
#mkdir -p中的 -p为-parent意思,如果该路径下有父目录不存在,则一并创建父目录
#“~”默认为系统根目录
cd ~/ROSLearningWorkspace/src

2.更新包依赖

将他人分享的功能包等放入工作空间时,这些功能包或多或少会有依赖的文件,此时需要更新一下这些功能包的依赖包

首次更新

首次更新时,需要

sudo apt install -y python3-pip
#安装pip3
sudo pip3 install rosdepc
#通过pip3安装rosdepc,rosdepc是中国区适配的rosdep
sudo rosdepc init
#rosdepc初始化
rosdepc update
#rosdepc更新
cd ~/ROSLearningWorkspace
#到工作空间目录下
rosdepc install -i --from-path src --rosdistro humble -y
#安装/更新依赖,此处版本为ROS2 Humble LTS

正常更新

之后更新时,只需要

sudo rosdepc init
#rosdepc初始化
rosdepc update
#rosdepc更新
cd ~/ROSLearningWorkspace
#到工作空间目录下
rosdepc install -i --from-path src --rosdistro humble -y
#安装/更新依赖,此处版本为ROS2 Humble LTS

当为工作空间下的包安装好对应的依赖时,将获得如下反馈

All required rosdeps installed successfully

3.编译工作空间

在完成对依赖的更新后,就可以编译工作空间了

安装编译工具colcon

当没有colcon时需要先获取colcon

sudo apt update
sudo apt upgrade
sudo apt install python3-colcon-ros

开始编译

cd ~/ROSLearningWorkspace
#到工作空间根目录下
colcon build
#colcon build 将编译文件夹下的所有源码并完成相应配置

进阶

1.需要单独编译某个包时,添加后缀–packages-select,可以节省时间

colcon build --packages-select package_name

2.若希望python脚本修改后,不再需要每次重新编译
警告:可能出现代码的不适配

colcon build --symlink-install

在colcon编译成功后,会在工作空间的install目录下生成对应的执行文件,因为python是解释性语言,因此会copy一份到install里面,ROS执行的是install里面的内容,如果不每次重新编译,ROS执行的在install里的copy版本不会更新

4.设置工作空间的环境变量

source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录
执行setup.bash来设置工作空间的环境变量,便于调用新生成的文件

. install/setup.bash
# “.”为运行

与ros1区别

需要区别于ros1中的方式
这是在ros1中的方式,请不要使用:

source devel/setup.bash

自动设置环境变量

通过进一步设置可以使得该环境变量在每次打开终端时都自动生效
工作空间的目录可以用pwd命令来查看当前目录路径
此处WORKSPACE需要替换成需要设置的工作空间的目录

echo "source WORKSPACE/install/setup.bash" >> ~/.bashrc

例子:

echo "source /home/mtbotpc/ROSLearningWorkspace/install/setup.bash" >> ~/.bashrc

猜你喜欢

转载自blog.csdn.net/m0_56661101/article/details/124877689#comments_28987665