第2章 · ROS与MoveIt环境搭建

说实话,环境搭建是很多人入门时最头疼的一步。我见过不少同学卡在依赖冲突上,一卡就是半天。但换个角度想——把地基打牢,后面跑起仿真来才顺风顺水。这一章我们就来把 ROS Noetic 和 MoveIt 装好,再建个工作空间跑个测试。

环境搭建 ROS Noetic 安装 MoveIt 安装 工作空间创建 测试验证

▲ 本章知识脉络:从系统准备到跑通第一个测试

2.1 ROS Noetic 安装与配置

我个人的习惯是——用 Ubuntu 20.04 装 ROS Noetic,这是目前最稳定的组合。你想想看,Noetic 是 ROS1 的长期支持版,2025 年才 EOL,现在用正合适。

打开终端,先把源配好:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update

然后安装桌面完整版(包含 RViz、仿真器、各种库):

sudo apt install ros-noetic-desktop-full
装完之后别忘了初始化 rosdep。我遇到过几次因为 rosdep 没更新导致后续依赖解析失败的情况。
sudo rosdep init && rosdep update

最后把环境变量写进 bashrc,这样每次开终端就不用再 source 了:

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

验证一下:roscore 能正常启动就说明 ROS 核心装好了。嗯,这里要注意——如果 roscore 报端口冲突,八成是之前有残留进程,killall -9 roscore rosmaster 清一下就好。

2.2 MoveIt 安装与依赖

MoveIt 的安装其实比想象中简单。官方提供了 metapackage,一行命令搞定:

sudo apt install ros-noetic-moveit

但别急着高兴——我建议额外装几个常用插件,不然后面做运动学配置时会缺胳膊少腿。比如:

  • ros-noetic-moveit-visual-tools —— RViz 辅助显示
  • ros-noetic-moveit-commander —— Python 接口
  • ros-noetic-moveit-ros-planning-interface —— C++ 规划接口

你可以一口气装完:

sudo apt install ros-noetic-moveit-visual-tools ros-noetic-moveit-commander ros-noetic-moveit-ros-planning-interface
我曾经在旧项目里直接 apt install ros-noetic-moveit 就开干,结果发现缺少 OMPL 规划器插件,导致运动规划一直失败。后来排查半天,其实只要装 ros-noetic-ompl 就行。所以建议把 ros-noetic-moveit 依赖的所有包都检查一遍,或者直接用 ros-noetic-moveit-full。

另外,如果你打算用 Gazebo 做仿真,别忘了:

sudo apt install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control

2.3 工作空间创建与测试

工作空间是 ROS 项目的“工地”。我习惯用 catkin_tools 来管理,比原生的 catkin_make 更直观。装一下:

sudo apt install python3-catkin-tools

然后创建并初始化:

mkdir -p ~/moveit_ws/src
cd ~/moveit_ws
catkin init

为了验证 MoveIt 是否正常工作,我们拉一个官方的示例包:

cd ~/moveit_ws/src
git clone https://github.com/ros-planning/moveit_tutorials.git -b master
cd ~/moveit_ws
rosdep install --from-paths src --ignore-src -r -y
catkin build

编译完成后,source 一下:

source ~/moveit_ws/devel/setup.bash
快速测试: 打开终端运行 roslaunch moveit_tutorials demo.launch,如果能看到 RViz 界面里出现一个 Panda 机械臂,并且可以拖拽拖动——恭喜,环境搭建成功了!

这里有个小坑——如果你在虚拟机里跑,记得给虚拟机至少分配 4GB 内存,不然 RViz 加载模型时会卡死。我当年用 2GB 内存的虚拟机,等模型加载等了五分钟……后来直接换了物理机。

2.4 避坑指南 & 个人经验

  • Python 版本:ROS Noetic 只支持 Python 3,别再用 Python 2 的脚本了。我见过有人把 ROS Kinetic 的脚本直接拿过来用,结果报错一堆。
  • 网络问题:rosdep update 如果超时,试试挂代理或者换国内源。我在公司内网经常遇到,后来直接配了 raw.githubusercontent.com 的 hosts。
  • 工作空间覆盖:如果你之前装过其他 ROS 版本,记得检查 ~/.bashrc 里有没有多个 source 语句,避免冲突。

说白了,环境搭建就是“细心 + 耐心”。按照上面的步骤走,一般不会出大问题。如果真遇到奇怪的报错,别慌——把错误信息复制到搜索引擎,八成能找到答案。我自己也经常这么干。