2. ROS2 开发环境搭建:从 Ubuntu 到工作空间
搭建开发环境,是每个机器人工程师的必修课。说实话,我见过太多人在这一步卡住,然后就开始怀疑人生。别担心,跟着我的节奏来,半小时内你就能跑起来第一个 ROS2 节点。
这一章,我们搞定四件事:装系统、装 ROS2 Humble、配环境、建工作空间。每一步我都会告诉你「为什么这么做」,而不是让你死记命令。
本章核心目标:让你的电脑变成一个标准的 ROS2 开发工作站。完成后,你能用 ros2 run 启动任何官方示例。
2.1 Ubuntu 22.04 系统安装
ROS2 Humble 官方推荐 Ubuntu 22.04(Jammy)。为什么是 22.04?因为它的 LTS 支持到 2027 年,而且 ROS2 Humble 的二进制包就是针对这个版本编译的。你换其他版本,可能会遇到依赖冲突——我踩过这个坑。
2.1.1 准备工作
- 下载镜像:去 Ubuntu 官网下载 22.04.3 LTS 桌面版。别下服务器版,除非你只用命令行。
- 制作启动盘:用 Rufus(Windows)或
dd命令(Linux/Mac)。我个人习惯用 Rufus,选「DD 模式」写入,成功率最高。 - 磁盘分区:建议至少留 60GB 给 Ubuntu。如果你打算双系统,先压缩 Windows 卷,再留出未分配空间。
我的经验:如果你用虚拟机,给 4 核 CPU、8GB 内存、80GB 动态磁盘。别给太少,否则编译 ROS2 包时会卡到怀疑人生。
2.1.2 安装步骤
- 插入启动盘,重启电脑,按 F2/F12/Del 进入 BIOS,设置 U 盘启动。
- 选择「Install Ubuntu」,语言选 English(避免终端乱码问题)。
- 网络建议连上,安装时下载更新。
- 分区选「Erase disk and install Ubuntu」或「Something else」手动分区。我建议手动:
/分 30GB,/home分剩余空间,swap 设 8GB。 - 设置用户名和密码——记住它,后面 sudo 要用。
注意:双系统用户一定要先备份 Windows 数据。我曾经手滑选错磁盘,把工作文件全清了……从那以后,我装系统前都会拔掉其他硬盘。
2.2 ROS2 Humble 安装
ROS2 的安装方式有两种:二进制包(推荐)和源码编译。我们选二进制包,省时省力。源码编译留给进阶玩家。
2.2.1 设置软件源
先确保 Ubuntu 能访问 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
sudo apt update
这里有个细节:ros.key 是 ROS2 的 GPG 密钥,用来验证包的安全性。如果下载失败,检查网络或手动下载放到对应路径。
2.2.2 安装 ROS2 Humble 桌面版
桌面版包含 GUI 工具(如 rviz2、rqt),推荐安装:
sudo apt install ros-humble-desktop
这个命令会下载大约 1.5GB 的包。网速慢的话,可以去喝杯咖啡。安装完成后,验证一下:
ros2 --version
如果输出类似 ros2 humble,说明安装成功。
避坑指南:如果你在安装过程中遇到依赖缺失,试试 sudo apt --fix-broken install。我曾经因为之前装过 ROS1,导致依赖冲突,这条命令救了我。
2.3 ROS2 环境配置
安装完只是第一步。每次打开终端,你都需要加载 ROS2 的环境变量。否则,ros2 命令会提示「command not found」。
2.3.1 配置 bashrc
把下面这行加到 ~/.bashrc 文件末尾:
source /opt/ros/humble/setup.bash
怎么加?用 echo 命令最方便:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
现在,你打开任何新终端,ROS2 环境都自动加载。你可以用 echo $ROS_DISTRO 验证,输出应该是 humble。
2.3.2 安装常用工具
除了核心包,我建议你装上这些:
| 工具 | 安装命令 | 用途 |
|---|---|---|
| colcon | sudo apt install python3-colcon-common-extensions |
编译 ROS2 工作空间 |
| rosdep | sudo apt install python3-rosdep |
自动安装依赖 |
| rviz2 | 已包含在 desktop 版 | 可视化机器人模型和传感器数据 |
| turtlesim | sudo apt install ros-humble-turtlesim |
ROS2 入门小海龟仿真 |
装完后,跑一下小海龟测试:
ros2 run turtlesim turtlesim_node
如果出现一个蓝色窗口,里面有一只小海龟——恭喜,你的 ROS2 环境完全正常!
注意:如果你在虚拟机里运行,确保 3D 加速已开启。否则 rviz2 可能打不开,或者画面卡顿。我遇到过这个问题,折腾了半天才发现是虚拟机设置的问题。
2.4 创建工作空间
工作空间(workspace)是 ROS2 项目的根目录。所有你写的代码、下载的包,都放在这里。ROS2 使用 colcon 来管理编译。
2.4.1 创建目录结构
打开终端,执行:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
解释一下:
~/ros2_ws是工作空间根目录,名字可以改,但建议统一。src文件夹放你的代码包。colcon build会生成build、install、log三个文件夹。
2.4.2 配置工作空间环境
每次编译后,你需要 source 工作空间的 setup 文件,才能使用你编译的包:
source ~/ros2_ws/install/setup.bash
为了省事,我习惯把它也加到 ~/.bashrc 里:
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
但注意:如果你有多个工作空间,后 source 的会覆盖前面的。所以一般只 source 当前项目的工作空间。
2.4.3 验证工作空间
创建一个测试包,确保一切正常:
cd ~/ros2_ws/src
ros2 pkg create test_pkg --build-type ament_cmake
cd ~/ros2_ws
colcon build
如果编译成功,没有红色错误,说明工作空间搭建完成。你可以用 ros2 pkg list | grep test_pkg 看到你的包。
我的习惯:每次 colcon build 后,我都会 source install/setup.bash 一次。否则新编译的包不会被识别。你可以在 ~/.bashrc 里加一个别名:alias cb='colcon build && source install/setup.bash',省得每次打两行命令。
2.5 本章知识体系
下面这张图,帮你理清整个环境搭建的脉络:
这张图展示了从系统安装到最终验证的完整链路。每一步都依赖上一步,所以别跳步。我见过有人直接装 ROS2 然后报错,结果发现是 Ubuntu 版本不对——嗯,这种问题排查起来最浪费时间。
2.6 常见问题与解决
| 问题 | 原因 | 解决方法 |
|---|---|---|
ros2: command not found |
未 source setup.bash | 检查 ~/.bashrc 是否包含 source 命令 |
colcon: command not found |
未安装 colcon | sudo apt install python3-colcon-common-extensions |
| 编译报错:找不到依赖 | 缺少系统依赖 | rosdep install --from-paths src --ignore-src -r -y |
| 小海龟窗口打不开 | 虚拟机 3D 加速未开 | 虚拟机设置中启用 3D 加速,或安装 mesa-utils |
最后提醒:如果你用的是 Windows + WSL2,ROS2 的 GUI 工具(rviz2、turtlesim)需要额外配置 X11 转发。我建议直接用原生 Ubuntu 或虚拟机,省去这些麻烦。WSL2 更适合做后台节点开发,不适合做可视化调试。