2. ROS2 开发环境搭建:Ubuntu 系统安装、ROS2 Humble 安装、colcon 构建工具、工作空间创建与配置

说实话,搞机器人开发,环境搭建往往是第一道坎。很多同学兴致勃勃地买了激光雷达,结果卡在装系统这一步,一卡就是一整天。我个人习惯是先把地基打牢,后面才能跑得快。这一章,咱们就把 Ubuntu、ROS2 Humble、colcon 和工作空间这四件事一次性搞定。

本章核心脉络:从裸机到可编译的工作空间,一共四步走。下面这张图帮你一眼看明白整个流程。

ROS2 开发环境搭建流程 ROS2 开发环境搭建四步走 ① Ubuntu 22.04 系统安装与配置 ② ROS2 Humble 安装与环境配置 ③ colcon 工具 构建系统安装 ④ 工作空间 创建与编译 ⚠️ 关键提醒 • ROS2 Humble 只支持 Ubuntu 22.04 (Jammy),版本不对后面全白搭 • 建议使用双系统或物理机,虚拟机性能损失较大,尤其对激光雷达实时数据

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 控制器虚拟化的问题。所以——能用物理机就别用虚拟机。

安装步骤其实很简单,我列个清单:

  1. 去 Ubuntu 官网下载 22.04 LTS 桌面版 ISO 镜像
  2. 用 Rufus(Windows)或 dd 命令(Linux)制作启动 U 盘
  3. BIOS 设置 U 盘启动,进入安装界面
  4. 分区时建议:/ 根目录 50GB+,/home 根据需求分配,swap 给 8GB 左右
  5. 安装完成后,先执行 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 是工具,工作空间是战场。后面所有章节的代码、驱动、配置,都会在这个环境里运行。嗯,地基打牢了,接下来就可以放心地往上盖楼了。