2. 开发环境搭建:Ubuntu 22.04 + ROS2 Humble 安装、MoveIt2 安装、Gazebo 仿真环境配置、工作空间创建

说实话,做机器人开发这么多年,我见过太多人在环境搭建这一步就卡住了。不是装错版本,就是依赖冲突,折腾一整天连个节点都跑不起来。嗯,这一章咱们就把这事彻底搞定。

我个人习惯把环境搭建分成四步走:装系统 → 装ROS2 → 装工具链 → 建工作空间。每一步都有坑,我当年踩过的,今天帮你填平。

开发环境搭建四步走 ① 系统准备 Ubuntu 22.04 LTS ② ROS2 安装 Humble Hawksbill ③ 工具链 MoveIt2 + Gazebo ④ 工作空间 colcon 构建 语言环境 / 编码 / 源 ros-humble-desktop moveit2 + gazebo-ros src / build / install 核心原则:版本匹配 + 依赖完整 + 一次配好,长期复用

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 节点了。准备好了吗?