2. ROS2与MoveIt2环境搭建:Ubuntu系统配置、ROS2 Humble安装、MoveIt2源码编译

说实话,环境搭建这一步,劝退了很多人。

我见过不少同学,兴致勃勃想学MoveIt2,结果卡在安装上,一卡就是两三天。其实说白了,只要把顺序理清楚,这事没那么玄乎。今天我就带你一步步把地基打牢。

2.1 为什么选择Ubuntu 22.04 + ROS2 Humble?

ROS2和Ubuntu版本是绑定的。Humble Hawksbill对应Ubuntu 22.04,这是目前最稳定的组合之一。我个人习惯用LTS版本,省心。

ROS2 发行版 对应Ubuntu 支持周期 推荐指数
Humble 22.04 LTS 2027年 ⭐⭐⭐⭐⭐
Iron 22.04 LTS 2025年 ⭐⭐⭐
Rolling 最新版 滚动更新 ⭐⭐
我的建议:别追新。Humble是目前MoveIt2支持最完善的版本,我在项目里踩过的坑,基本都是用Humble绕过去的。

2.2 系统基础配置

拿到一台新装的Ubuntu 22.04,第一件事不是装ROS,而是把源换好。

# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为清华源(国内用户强烈推荐)
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

嗯,这里要注意:一定要先装好基础开发工具。我曾经在一台裸机上直接装ROS,结果编译时缺了一堆依赖,折腾了大半天。

sudo apt install -y \
    git \
    cmake \
    build-essential \
    python3-pip \
    python3-colcon-common-extensions \
    python3-rosdep \
    wget \
    curl

2.3 ROS2 Humble 安装

ROS2的安装其实就三步:加源、装包、设环境。但每一步都有坑。

2.3.1 添加ROS2软件源

# 设置编码
sudo apt install -y software-properties-common
sudo add-apt-repository universe

# 添加ROS2 GPG key
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
避坑指南:我曾经遇到过GPG key过期导致apt update失败的情况。如果报错,手动重新下载一次key就行。

2.3.2 安装ROS2 Humble

这里有两个选择:ros-humble-desktop(带GUI工具)和ros-humble-base(纯命令行)。做MoveIt仿真,必须装desktop版。

sudo apt install -y ros-humble-desktop

# 安装额外的开发工具
sudo apt install -y \
    ros-humble-tf2-tools \
    ros-humble-rviz2 \
    ros-humble-gazebo-ros-pkgs

你想想看,装完大概要占2-3GB空间。如果磁盘不够,提前清理一下。

2.3.3 配置环境变量

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

# 验证安装
ros2 --version

如果看到版本号,恭喜你,ROS2已经跑起来了。

2.4 MoveIt2 源码编译

为什么不用apt直接装?因为MoveIt2的apt包版本往往滞后,而且有些功能模块需要自己定制。我建议你从源码编译,虽然慢一点,但后面调试起来方便得多。

2.4.1 创建工作空间

mkdir -p ~/moveit2_ws/src
cd ~/moveit2_ws
colcon build --symlink-install

这里用--symlink-install,方便后面改代码不用重新编译。

2.4.2 克隆MoveIt2源码

cd ~/moveit2_ws/src
git clone https://github.com/ros-planning/moveit2.git -b humble

# 安装依赖
cd ~/moveit2_ws
rosdep update
rosdep install -r --from-paths src --ignore-src --rosdistro humble -y
核心知识点:MoveIt2的源码结构主要分为三块:
  • moveit_core:核心算法,包括运动学、规划、碰撞检测
  • moveit_ros:ROS接口层,包括规划器、控制器、可视化
  • moveit_planners:各种运动规划器实现

2.4.3 编译MoveIt2

cd ~/moveit2_ws
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

# 设置环境
echo "source ~/moveit2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

编译时间取决于你的机器配置。我自己的笔记本(i7-12700H,32GB内存)大概要15分钟。如果编译过程中报错,多半是缺依赖,用rosdep install补上就行。

2.5 验证环境

装完了,怎么知道对不对?跑一个最简单的demo看看。

# 启动MoveIt2的demo节点
ros2 launch moveit2_tutorials demo.launch.py

# 另开终端,查看话题
ros2 topic list

如果能看到/planning_scene、/compute_ik这些话题,说明MoveIt2已经正常工作了。

小技巧:第一次启动如果报错说找不到moveit2_tutorials,说明你漏装了demo包。回到src目录,再clone一个moveit2_tutorials仓库就行。

2.6 本章知识体系

下面这张图,是我自己总结的环境搭建全流程。你照着这个顺序走,基本不会出问题。

MoveIt2 环境搭建全流程 Ubuntu 22.04 ROS2 Humble MoveIt2 源码 步骤1:系统配置 → 换源、安装基础工具、配置网络 步骤2:ROS2安装 → 加源、安装desktop版、配置环境变量 步骤3:MoveIt2编译 → 创建工作空间、克隆源码、安装依赖、编译 步骤4:验证测试 → 启动demo、检查话题、确认功能正常 常见问题排查: • 编译报错 → 检查依赖是否完整,运行 rosdep install • 启动失败 → 确认环境变量已source,检查ROS_DOMAIN_ID

环境搭建是枯燥的,但也是最重要的。我见过太多人因为这一步没做好,后面调试时各种莫名其妙的问题。花点时间,把基础打牢,后面你会感谢自己的。