2. 开发环境搭建:Ubuntu 22.04 + ROS2 Humble 安装、MoveIt2 安装、Gazebo 仿真环境配置、工作空间创建
说实话,做机器人开发这么多年,我见过太多人在环境搭建这一步就卡住了。不是装错版本,就是依赖冲突,折腾一整天连个节点都跑不起来。嗯,这一章咱们就把这事彻底搞定。
我个人习惯把环境搭建分成四步走:装系统 → 装ROS2 → 装工具链 → 建工作空间。每一步都有坑,我当年踩过的,今天帮你填平。
2.1 系统准备:Ubuntu 22.04 LTS
ROS2 Humble 官方推荐 Ubuntu 22.04(Jammy)。别问能不能用 20.04 或者 24.04——能是能,但你会遇到各种奇奇怪怪的兼容问题。我在项目里吃过这个亏,后来老老实实按官方版本来。
系统要求速查
- 操作系统:Ubuntu 22.04 LTS (Jammy Jellyfish)
- 架构:x86_64(amd64)或 arm64(树莓派等)
- 磁盘空间:至少 20GB 空闲
- 内存:建议 8GB 以上(Gazebo 比较吃内存)
装好系统后,第一件事是换源。你想想看,从国外服务器下载 ROS2 包,那个速度...我当年等过一个小时还没下完。换成清华或中科大的源,速度直接起飞。
# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换为清华源(Ubuntu 22.04)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
# 更新
sudo apt update && sudo apt upgrade -y
我的小习惯:装完系统先装 vim、git、curl 这几个基础工具。后面编译、改配置都用得上。
2.2 ROS2 Humble 安装
ROS2 的安装其实就三步:加源 → 装包 → 配环境。但每一步都有细节,咱们慢慢来。
2.2.1 添加 ROS2 软件源
# 设置 locale(ROS2 需要 UTF-8)
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
# 添加 ROS2 GPG key
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] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
2.2.2 安装 ROS2 Humble
我个人建议装 desktop 版本。它包含了 ROS2 核心、可视化工具、demo 节点等,省得后面缺这缺那。
sudo apt install ros-humble-desktop -y
这个过程大概 5-10 分钟,取决于你的网速。装完之后,记得配环境变量。
# 添加到 bashrc,这样每次打开终端自动生效
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 验证安装
ros2 --version
注意:如果你同时装了 ROS1 和 ROS2,千万别把两个 setup.bash 都 source 了。它们会冲突。我见过有人两个都 source 了,结果 rosrun 和 ros2 run 都找不到命令。
2.2.3 安装常用工具
# 编译工具
sudo apt install python3-colcon-common-extensions -y
# 可视化工具
sudo apt install ros-humble-rviz2 -y
# 其他依赖
sudo apt install python3-pip python3-rosdep -y
2.3 MoveIt2 安装
MoveIt2 是机械臂运动规划的核心框架。说白了,它就是帮你算「机械臂从 A 点到 B 点怎么走不撞东西」的那个大脑。
安装方式有两种:二进制安装(推荐)和源码编译。咱们做课程,用二进制就够了。
sudo apt install ros-humble-moveit -y
这个包有点大,大概 200MB 左右。装完之后,你可以跑个 demo 测试一下:
ros2 launch moveit2_tutorials demo.launch.py
避坑指南:我曾经在源码编译 MoveIt2 上浪费了两天。如果你不是要改 MoveIt2 核心代码,千万别碰源码编译。二进制安装稳定又省心。
2.4 Gazebo 仿真环境配置
Gazebo 是 ROS2 生态里最常用的仿真器。咱们后面要在里面搭机械臂模型、放障碍物、做抓取测试。
2.4.1 安装 Gazebo
# 安装 Gazebo 与 ROS2 的桥接包
sudo apt install ros-humble-gazebo-ros-pkgs -y
# 安装 Gazebo 本体
sudo apt install gazebo -y
2.4.2 验证安装
# 启动 Gazebo(会打开一个空世界)
gazebo --verbose
# 或者通过 ROS2 启动
ros2 launch gazebo_ros gazebo.launch.py
如果看到 Gazebo 窗口弹出来,没有报错,那就成了。我第一次看到那个灰色网格世界的时候,心里还挺激动的——终于有个能跑的环境了。
注意:Gazebo 启动时如果报错 libGL error 或者黑屏,通常是显卡驱动问题。可以试试 export LIBGL_ALWAYS_SOFTWARE=1 强制软件渲染,或者更新一下显卡驱动。
2.5 创建工作空间
工作空间就是咱们写代码、编译、测试的「大本营」。ROS2 里最常用的是 colcon 工作空间。
2.5.1 创建目录结构
# 创建工作空间目录
mkdir -p ~/robot_ws/src
cd ~/robot_ws
# 初始化(生成 src/CMakeLists.txt 等)
colcon init
2.5.2 编译测试
# 编译空工作空间(测试环境是否正常)
cd ~/robot_ws
colcon build
# 配置环境变量
echo "source ~/robot_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
如果编译成功,你会看到类似这样的输出:
Summary: 0 packages finished [0.32s]
嗯,0 个包是正常的——因为我们还没往里放代码呢。
工作空间目录说明
| 目录 | 作用 |
|---|---|
src/ | 存放你的 ROS2 包源码 |
build/ | 编译中间文件(不用管它) |
install/ | 编译产物,setup.bash 就在这里 |
log/ | 编译日志,出问题时查这里 |
2.6 环境验证
所有东西都装好了,咱们跑个简单的测试,确保一切正常。
# 1. 检查 ROS2 版本
ros2 --version
# 2. 检查 MoveIt2 是否可用
ros2 pkg list | grep moveit
# 3. 检查 Gazebo 是否可用
gazebo --version
# 4. 运行一个简单的 talker-listener 测试
ros2 run demo_nodes_cpp talker &
ros2 run demo_nodes_cpp listener
如果看到 talker 在发 "Hello World",listener 在收,那就说明你的 ROS2 环境完全 OK 了。
我的经验:每次装完新环境,我都会跑一遍这个 talker-listener 测试。它虽然简单,但能快速验证 ROS2 核心通信是否正常。如果这一步都过不了,后面就别想了。
2.7 本章小结
到这一步,你的开发环境就搭好了。咱们装了:
- Ubuntu 22.04 + ROS2 Humble
- MoveIt2 运动规划框架
- Gazebo 仿真环境
- colcon 工作空间
说实话,环境搭建是最枯燥的部分,但也是最重要的基础。我当年刚开始学 ROS 的时候,光装环境就重装了三次系统。你按我这套流程走,应该一次就能过。
下一章,咱们就要开始写真正的 ROS2 节点了。准备好了吗?