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 | 最新版 | 滚动更新 | ⭐⭐ |
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
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
- 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 本章知识体系
下面这张图,是我自己总结的环境搭建全流程。你照着这个顺序走,基本不会出问题。
环境搭建是枯燥的,但也是最重要的。我见过太多人因为这一步没做好,后面调试时各种莫名其妙的问题。花点时间,把基础打牢,后面你会感谢自己的。