2. ROS2 开发环境搭建:Ubuntu 系统安装、ROS2 Humble 安装、colcon 构建工具、工作空间创建与配置
说实话,搞机器人开发,环境搭建往往是第一道坎。很多同学兴致勃勃地买了激光雷达,结果卡在装系统这一步,一卡就是一整天。我个人习惯是先把地基打牢,后面才能跑得快。这一章,咱们就把 Ubuntu、ROS2 Humble、colcon 和工作空间这四件事一次性搞定。
本章核心脉络:从裸机到可编译的工作空间,一共四步走。下面这张图帮你一眼看明白整个流程。
2.1 Ubuntu 22.04 系统安装
ROS2 Humble 官方支持的 Ubuntu 版本是 22.04 LTS,代号 Jammy Jellyfish。这一点千万别搞错。我记得有个学员用 Ubuntu 20.04 硬装 Humble,折腾了两天,最后发现官方压根没提供二进制包——全是源码编译,那叫一个痛苦。
安装方式我推荐两种:
- 双系统安装:Windows 和 Ubuntu 共存,开机时选择启动哪个。适合需要保留 Windows 做其他事的同学。
- 物理机纯安装:整块硬盘全给 Ubuntu。如果你这台电脑专门用来做机器人开发,选这个最省心。
⚠️ 虚拟机警告:虽然 VirtualBox 或 VMware 也能装,但激光雷达驱动涉及 USB 设备直通、实时性要求高的数据流,虚拟机经常掉链子。我曾经在虚拟机上调试雷达,数据总是丢包,折腾半天才发现是 USB 控制器虚拟化的问题。所以——能用物理机就别用虚拟机。
安装步骤其实很简单,我列个清单:
- 去 Ubuntu 官网下载 22.04 LTS 桌面版 ISO 镜像
- 用 Rufus(Windows)或 dd 命令(Linux)制作启动 U 盘
- BIOS 设置 U 盘启动,进入安装界面
- 分区时建议:
/根目录 50GB+,/home根据需求分配,swap给 8GB 左右 - 安装完成后,先执行
sudo apt update && sudo apt upgrade -y更新系统
💡 我的习惯:装完系统第一件事,把软件源换成国内镜像(清华、阿里、中科大都可以)。不然下载 ROS2 包的时候,那个速度……你懂的。
2.2 ROS2 Humble 安装
ROS2 的版本命名很有意思,Humble 的全称是 Humble Hawksbill,中文叫「谦逊的玳瑁」。嗯,名字挺低调,但功能一点都不含糊。
安装方式我推荐用 Debian 二进制包,省时省力。源码编译虽然也能用,但没必要跟自己过不去。
直接上命令,一行一行来:
# 1. 设置 locale
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
# 2. 添加 ROS2 软件源
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
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 $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 3. 安装 ROS2 Humble 桌面版(推荐)
sudo apt update
sudo apt install ros-humble-desktop -y
# 4. 安装开发工具
sudo apt install ros-dev-tools -y
安装完成后,别忘了配置环境变量。我个人习惯把它写到 ~/.bashrc 里,这样每次打开终端自动加载:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证一下是否装好了:
ros2 --version
如果看到类似 ros2 humble 的输出,恭喜你,环境搭好了。
📌 关于桌面版 vs 基础版:ros-humble-desktop 包含了 RViz2、Gazebo 等可视化工具,做激光雷达调试时非常有用。ros-humble-ros-base 只有核心通信库,适合嵌入式或服务器场景。我建议你装桌面版,省得后面缺东西再补。
2.3 colcon 构建工具
ROS2 的构建工具从 ROS1 的 catkin 换成了 colcon。说白了,colcon 就是 catkin 的升级版,支持更多类型的包(CMake、Python、ament 等),编译速度也更快。
安装 colcon 很简单:
sudo apt install python3-colcon-common-extensions -y
装完之后,我建议你记住这几个最常用的 colcon 命令:
| 命令 | 作用 | 常用场景 |
|---|---|---|
colcon build |
编译工作空间所有包 | 日常开发,第一次编译或修改代码后 |
colcon build --packages-select 包名 |
只编译指定包 | 只修改了某个包,不想全量编译 |
colcon build --symlink-install |
使用符号链接安装 | Python 包开发,修改代码后不用重新编译 |
colcon test |
运行测试 | 提交代码前检查 |
💡 避坑指南:我第一次用 colcon 时,编译完发现找不到自己写的节点。后来才意识到——每次编译后必须 source 工作空间的 setup.bash。不然系统根本不知道你新编译了什么东西。
2.4 工作空间创建与配置
工作空间(workspace)是 ROS2 项目的根目录。所有你自己写的包、下载的第三方包,都放在这里统一管理。
创建一个标准的工作空间,通常叫 ros2_ws:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
编译完成后,你会看到工作空间里多了几个文件夹:
| 目录 | 作用 |
|---|---|
src |
存放所有 ROS2 包的源代码 |
build |
编译过程中的中间文件,一般不用手动管 |
install |
编译产物的安装目录,包含可执行文件、库、配置文件等 |
log |
编译日志,编译出错时可以来这里查原因 |
接下来,把工作空间的环境变量也加到 ~/.bashrc 里:
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
⚠️ 注意顺序:~/.bashrc 里先 source ROS2 系统级的 /opt/ros/humble/setup.bash,再 source 你自己工作空间的 ~/ros2_ws/install/setup.bash。这样系统包和你的包都能找到,而且你的包会覆盖系统级的同名包——这在调试时非常有用。
最后,验证一下工作空间是否生效:
echo $ROS_PACKAGE_PATH
如果输出里包含了 /home/你的用户名/ros2_ws/src,说明一切正常。
🎯 本章小结:到这一步,你的开发环境已经全部就绪。Ubuntu 22.04 是地基,ROS2 Humble 是框架,colcon 是工具,工作空间是战场。后面所有章节的代码、驱动、配置,都会在这个环境里运行。嗯,地基打牢了,接下来就可以放心地往上盖楼了。