第1章:环境搭建——Ubuntu 22.04 + ROS2 Humble 安装,MoveIt2 二进制与源码安装,工作空间配置
说实话,做机器人运动规划这几年,我踩过最多的坑就是环境问题。很多同学兴致勃勃地开始学 MoveIt2,结果卡在安装上,一卡就是好几天。所以我决定把环境搭建放在第一章,咱们先把地基打牢。
这一章我会带你完成三件事:装好 Ubuntu 22.04 和 ROS2 Humble,搞定 MoveIt2 的两种安装方式,最后配好工作空间。嗯,跟着我来,不会让你走弯路。
1.1 为什么是 Ubuntu 22.04 + ROS2 Humble?
你可能要问:为什么非得是这个组合?
我个人的经验是,ROS2 的版本和 Ubuntu 版本是严格绑定的。Humble 是 ROS2 的一个长期支持版本(LTS),对应 Ubuntu 22.04。说白了,用这个组合最稳。我在项目里试过其他组合,比如 Ubuntu 20.04 配 ROS2 Galactic,结果有些包死活装不上,后来一查,官方早就不维护了。
所以记住:Ubuntu 22.04 配 ROS2 Humble,这是目前最靠谱的选择。
核心要点:
- Ubuntu 22.04 LTS —— 系统稳定,社区活跃
- ROS2 Humble —— 长期支持,2024年才停止维护
- MoveIt2 —— 专为 ROS2 设计的运动规划框架
1.2 安装 Ubuntu 22.04
这一步我假设你已经装好了系统。如果还没装,去官网下载镜像,用 Rufus 或 balenaEtcher 做个启动盘就行。这里我提几个我踩过的坑:
- 分区建议:至少给根目录 50GB,/home 给 100GB 以上。我刚开始只给了 30GB,结果装了几个仿真环境就满了。
- 显卡驱动:如果你用 NVIDIA 显卡,装完系统后记得装驱动。不然 RViz 跑起来卡得你想哭。
- 换源:装完系统第一件事,换国内源。清华、中科大、阿里云都行。不然下载速度会让你怀疑人生。
1.3 安装 ROS2 Humble
ROS2 的安装其实很简单,官方文档写得很清楚。但我还是把关键步骤列出来,顺便加点我的经验。
1.3.1 设置 locale
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 对 locale 有要求,不设好后面编译会报一些莫名其妙的错。
1.3.2 添加 ROS2 源
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
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 $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
小技巧:如果你在墙内,可以把上面的源地址换成清华的镜像。具体方法去清华 TUNA 官网查,速度能快好几倍。
1.3.3 安装 ROS2 Humble
这里有两种装法:桌面版(推荐)和基础版。
# 桌面版(包含 RViz、Gazebo 等工具)
sudo apt install ros-humble-desktop
# 基础版(只装核心库)
sudo apt install ros-humble-ros-base
我个人建议装桌面版。虽然大了点,但 RViz 和 Gazebo 后面都会用到。省得后面再单独装,麻烦。
1.3.4 设置环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
这一步别忘了。我见过有人装完 ROS2 后没 source,然后跑来问我为什么 ros2 命令找不到……
1.3.5 验证安装
ros2 run demo_nodes_cpp talker
打开另一个终端,运行:
ros2 run demo_nodes_py listener
如果你看到两个节点在通信,恭喜你,ROS2 装好了。
1.4 安装 MoveIt2
MoveIt2 有两种安装方式:二进制安装和源码安装。我两种都试过,给你分析一下各自的优缺点。
| 安装方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 二进制安装 | 简单快速,一行命令搞定 | 不能修改源码,版本固定 | 初学者、只想用 MoveIt2 做应用 |
| 源码安装 | 可以修改源码,版本最新 | 编译时间长,容易出问题 | 开发者、需要定制功能 |
1.4.1 二进制安装(推荐初学者)
sudo apt install ros-humble-moveit
就这么简单。装完后你可以直接开始用 MoveIt2 了。我在刚开始学的时候用的就是这种方式,省心。
1.4.2 源码安装(进阶玩家)
如果你需要修改 MoveIt2 的源码,或者想用最新的特性,那就得源码安装了。
第一步,创建工作空间:
mkdir -p ~/moveit2_ws/src
cd ~/moveit2_ws/src
git clone https://github.com/ros-planning/moveit2.git -b humble
git clone https://github.com/ros-planning/moveit2_tutorials.git -b humble
git clone https://github.com/ros-planning/moveit_resources.git -b humble
第二步,安装依赖:
cd ~/moveit2_ws
rosdep install -r --from-paths src --ignore-src --rosdistro humble -y
注意:rosdep 可能会报一些包找不到。别慌,手动装一下就行。我遇到过 libompl-dev 装不上,后来发现是源的问题,换个源就好了。
第三步,编译:
cd ~/moveit2_ws
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
这一步会花点时间,去泡杯咖啡吧。我第一次编译用了将近 40 分钟,取决于你的机器配置。
第四步,设置环境变量:
echo "source ~/moveit2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
1.5 工作空间配置
工作空间是 ROS2 开发的基础。说白了,就是你把代码放在哪里、怎么组织的问题。
1.5.1 创建工作空间
mkdir -p ~/robot_ws/src
cd ~/robot_ws
colcon build
这样你就有了一个空的工作空间。以后你的所有代码都放在 src 目录下。
1.5.2 配置 .bashrc
我习惯在 .bashrc 里加几个别名,方便日常使用:
alias cw='cd ~/robot_ws'
alias cs='cd ~/robot_ws/src'
alias cb='cd ~/robot_ws && colcon build'
alias cbs='cd ~/robot_ws && colcon build --symlink-install'
source /opt/ros/humble/setup.bash
source ~/robot_ws/install/setup.bash
这样你每次打开终端,ROS2 环境和你的工作空间就自动加载好了。
我的习惯:用 --symlink-install 参数编译,这样你修改 Python 脚本后不用重新编译,直接运行就能看到效果。C++ 代码还是得重新编译。
1.6 本章知识体系
下面这张图帮你理清这一章的核心逻辑:
1.7 常见问题与避坑指南
最后,我把自己遇到过的问题列出来,你遇到了可以直接对照着解决。
问题1:rosdep update 失败
我曾经被这个问题卡了一下午。后来发现是网络问题,解决办法是挂代理或者用 raw.githubusercontent.com 的镜像。
问题2:colcon build 报错找不到包
多半是依赖没装全。运行 rosdep install 时加上 --ignore-src 参数,它会自动安装所有缺失的依赖。
问题3:RViz 启动后一片空白
检查一下你的显卡驱动。我遇到过好几次,装完系统没装 NVIDIA 驱动,RViz 就罢工了。
我的建议:如果你是第一次接触 ROS2 和 MoveIt2,先用二进制安装。等熟悉了基本操作,再考虑源码安装。别一上来就挑战高难度,容易劝退。
好了,环境搭建就到这里。这一章的内容虽然多,但每一步都很关键。你按照我的步骤来,应该不会出大问题。如果卡住了,回头看看上面的常见问题,大概率能找到答案。
可可精品资料库