2、ROS2环境搭建:ROS2 Humble安装、工作空间创建、Colcon编译工具使用

好,咱们直接进入正题。

ROS2的环境搭建,说白了就是给你的机器人装上“操作系统的大脑”。我见过太多新手卡在这一步,装到一半报错,然后心态就崩了。别急,跟着我的节奏来,保证你一次过。

2.1 为什么选ROS2 Humble?

ROS2有很多发行版,比如Foxy、Galactic、Humble。我个人习惯用Humble,为什么?

  • 长期支持(LTS):Humble是2022年的LTS版本,支持到2027年。你想想看,学一个东西至少要用两三年吧?选LTS准没错。
  • 生态成熟:我在项目中遇到过一些坑,比如某些驱动在Foxy上跑不起来,但换到Humble就稳了。说白了,社区的力量是巨大的。
  • Ubuntu 22.04 绝配:Humble官方推荐搭配Ubuntu 22.04 Jammy。嗯,这里要注意,千万别用Ubuntu 20.04去装Humble,会有一堆依赖冲突。

核心结论:如果你用的是Ubuntu 22.04,闭眼选ROS2 Humble。如果你还在用20.04,建议先升级系统,别偷懒。

2.2 安装ROS2 Humble

安装过程其实就三步:设置源、安装、配置环境。我直接给你最稳的步骤。

2.2.1 设置软件源

先确保你的系统能访问ROS2的官方仓库。打开终端,一行一行敲:

sudo apt update
sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

这里有个小细节:lsb_release -cs会自动识别你的Ubuntu版本。如果你手动写死了版本号,换系统时就会出问题。我刚开始学的时候犯过这个错,后来就学乖了。

2.2.2 安装ROS2 Humble

我建议你装桌面版(Desktop),包含了常用的工具和可视化库。如果你硬盘空间紧张,可以只装基础版(Base),但后面调试时会缺很多东西。

sudo apt update
sudo apt install ros-humble-desktop

这个过程大概要下载1-2GB,取决于你的网速。趁这个时间,你可以去泡杯咖啡。

小技巧:如果你在墙内,下载速度很慢,可以换成国内镜像源。比如中科大的源:sudo sed -i 's/packages.ros.org/mirrors.ustc.edu.cn\/ros\/packages/g' /etc/apt/sources.list.d/ros2.list

2.2.3 配置环境变量

安装完成后,需要把ROS2的环境变量加到你的bash配置里。不然每次打开终端都要手动source,烦不烦?

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

验证一下是否安装成功:

ros2 run demo_nodes_cpp talker

如果看到类似“Publishing: 'Hello World'”的输出,恭喜你,ROS2已经跑起来了。

避坑指南:我曾经遇到过source了但依然找不到命令的情况。后来发现是.bashrc文件里写错了路径。记住,Humble的路径是/opt/ros/humble/,不是/opt/ros/foxy/。

2.3 创建工作空间

工作空间(Workspace)就是你存放ROS2项目的文件夹。我习惯把它叫做ros2_ws,简单明了。

2.3.1 创建目录结构

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws

src文件夹用来放你的代码包。为什么要有这个结构?因为Colcon编译工具只认这个目录格式。你想想看,如果没有规范,每个人的项目结构都不一样,那协作起来得多痛苦。

2.3.2 初始化工作空间

虽然现在src里是空的,但我们可以先编译一下,让ROS2认识这个工作空间:

cd ~/ros2_ws
colcon build

第一次编译会生成build、install、log三个文件夹。别怕,这是正常的。

重要:每次编译完成后,记得source一下工作空间的环境:source install/setup.bash。不然你写的节点ROS2找不到。

2.4 Colcon编译工具使用

Colcon是ROS2的官方编译工具,替代了ROS1时代的Catkin。说实话,Colcon比Catkin快多了,而且支持并行编译。

2.4.1 基本用法

最常用的命令就这几个:

命令 作用 我的经验
colcon build 编译所有包 第一次用这个,后面看情况
colcon build --packages-select 包名 只编译指定包 我经常用,省时间
colcon build --symlink-install 使用符号链接安装 调试Python代码时必用
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release Release模式编译 发布前用,性能更好

2.4.2 常用技巧

  • 只编译一个包:当你只修改了一个包时,别傻傻地全量编译。用colcon build --packages-select my_package,几秒钟就搞定。
  • Python包用符号链接:如果你写的是Python节点,加上--symlink-install参数。这样你修改了Python代码后,不需要重新编译,直接运行就能看到效果。我在调试传感器驱动时经常用这个,效率翻倍。
  • 清理编译产物:如果编译出了问题,试试rm -rf build install log,然后重新colcon build。这招能解决90%的编译问题。

小技巧:我习惯在~/.bashrc里加一个别名:alias cb='colcon build --symlink-install'。这样每次编译只需要敲cb两个字母,省事。

2.5 知识体系总览

为了让你更直观地理解这一章的内容,我画了一张图。你可以看到,ROS2环境搭建其实就三个核心环节:安装、建工作空间、用Colcon编译。三者环环相扣,缺一不可。

ROS2环境搭建核心流程 安装ROS2 Humble 设置源 → 安装 → 配置环境 创建工作空间 mkdir -p ~/ros2_ws/src Colcon编译 colcon build 输出:可运行的ROS2节点 build/ install/ log/ 三个步骤完成后,你的机器人开发环境就准备好了 1 2 3

2.6 验证环境是否正常

装完了,总得试试能不能用吧?我教你一个最简单的测试方法:

  1. 打开第一个终端,运行:ros2 run demo_nodes_cpp talker
  2. 打开第二个终端,运行:ros2 run demo_nodes_py listener

如果listener能收到talker发的消息,说明你的ROS2环境完全正常。我第一次看到这个“Hello World”在终端里跳动时,心里还是挺激动的。

注意:如果listener收不到消息,先检查一下两个终端是不是都source了同一个工作空间的环境。我遇到过有人一个终端source了,另一个没source,结果折腾了半天。

好了,ROS2的环境搭建就到这里。记住,这一步是基础中的基础。后面所有的传感器接入、仿真调试,都建立在这个环境之上。别嫌麻烦,一次配好,后面就顺了。

可可精品资料库