3. 环境搭建:Ubuntu + ROS Noetic安装、MoveIt1完整安装、工作空间与依赖配置
说实话,环境搭建这一步,劝退了太多初学者。我见过不少朋友,代码写得挺溜,结果卡在安装上,一折腾就是两三天。嗯,咱们今天就把这事彻底捋清楚。
我个人习惯把环境搭建分成三个层次:操作系统层 → ROS框架层 → MoveIt应用层。每一层都有它的坑,咱们一层一层来填。
3.1 操作系统层:Ubuntu 20.04 LTS
为什么非得是 Ubuntu 20.04?说白了,ROS Noetic 官方只支持这个版本。你装个 22.04 或者 18.04,后面会有一堆兼容性问题等着你。我在项目中吃过这个亏——有次图省事用了 22.04,结果编译 MoveIt 时一堆依赖报错,最后老老实实重装了系统。
安装方式我建议两种:
- 双系统:如果你有独立显卡,或者需要实时控制,双系统是唯一选择。虚拟机没法直接访问硬件。
- 虚拟机(VMware/VirtualBox):纯学习用途完全够用。记得给虚拟机分配至少 4GB 内存、2 个 CPU 核心、40GB 硬盘。
装完系统后,先做三件事:
- 换国内源(清华/阿里/中科大),不然下载速度会让你怀疑人生。
- 更新系统:
sudo apt update && sudo apt upgrade -y - 安装基础工具:
sudo apt install -y git curl wget vim net-tools
3.2 ROS框架层:安装 ROS Noetic
ROS 的安装流程其实很固定,但每一步都有讲究。我建议装完整桌面版(desktop-full),因为它包含了 rviz、gazebo、各种常用库。你想想看,如果装个基础版,后面每用到一个工具都要手动装,多麻烦。
# 1. 添加 ROS 源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# 2. 添加密钥
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
# 3. 安装完整桌面版
sudo apt update
sudo apt install ros-noetic-desktop-full
# 4. 初始化 rosdep
sudo rosdep init
rosdep update
# 5. 设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 6. 安装构建工具
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo rosdep init 时,如果提示「找不到命令」,说明 python3-rosdep 没装好。另外,rosdep update 经常因为网络问题失败,我一般会配置代理,或者直接手动下载 rosdep 的 yaml 文件。
验证安装是否成功:
# 打开一个新终端,输入
roscore
# 如果看到类似 "started core service [/rosout]" 的信息,说明 ROS 核心跑起来了。
3.3 MoveIt应用层:安装 MoveIt1
MoveIt1 的安装有两种方式:二进制安装和源码编译。我个人建议初学者先用二进制安装,省时省力。等你对 MoveIt 熟悉了,再考虑源码编译——那样你可以修改底层代码,做深度定制。
sudo apt install ros-noetic-moveit
这条命令会安装 MoveIt 的核心库、运动规划器、碰撞检测、可视化插件等。大概 200MB 左右,等几分钟就好。
如果你需要源码编译(比如要修改规划算法):
# 创建工作空间
mkdir -p ~/moveit_ws/src
cd ~/moveit_ws/src
# 克隆 MoveIt 源码
git clone https://github.com/ros-planning/moveit.git
git clone https://github.com/ros-planning/moveit_resources.git
git clone https://github.com/ros-planning/moveit_tutorials.git
# 安装依赖
cd ~/moveit_ws
rosdep install --from-paths src --ignore-src -r -y
# 编译
catkin_make
# 或者用 catkin build(需要安装 python3-catkin-tools)
rosdep install 这一步可能会报缺少某些依赖。我曾经遇到过 libfcl-dev 版本不对的问题,手动安装指定版本才解决。如果遇到类似问题,别慌,看报错信息,缺什么装什么。
3.4 工作空间与依赖配置
工作空间(workspace)是 ROS 项目的组织方式。说白了,就是一个文件夹,里面放你的代码、配置文件、启动文件。我习惯把工作空间命名为 xxx_ws,比如 moveit_ws、robot_ws。
创建工作空间的流程:
- 创建目录结构:
mkdir -p ~/my_robot_ws/src - 初始化工作空间:
cd ~/my_robot_ws && catkin_make - 设置环境变量:
echo "source ~/my_robot_ws/devel/setup.bash" >> ~/.bashrc
依赖配置这块,我重点说三点:
| 依赖类型 | 管理工具 | 常用命令 |
|---|---|---|
| 系统依赖 | apt | sudo apt install <package-name> |
| ROS 包依赖 | rosdep | rosdep install --from-paths src --ignore-src -r -y |
| Python 依赖 | pip | pip install <package-name> |
rosdep install 时遇到「timeout」错误,原因是网络问题。解决办法是:1. 设置代理:
export http_proxy=http://你的代理:端口2. 或者手动下载 rosdep 的 yaml 文件,放到本地路径。
3. 最粗暴的方法:多试几次,有时候就是网络波动。
最后,验证整个环境是否就绪:
# 检查 ROS 环境
echo $ROS_PACKAGE_PATH
# 应该输出类似 /opt/ros/noetic/share:/home/你的用户名/工作空间/src
# 检查 MoveIt 是否安装成功
rospack find moveit_core
# 如果输出 /opt/ros/noetic/share/moveit_core,说明安装成功
嗯,到这里,你的环境就搭好了。整个过程大概需要 30 分钟到 1 小时,取决于你的网速和运气。别急,慢慢来,环境搭好了,后面写代码才顺手。