3、ROS Noetic 安装:版本选择、软件源配置、完整安装步骤、环境变量设置
好,咱们开始动手装 ROS。这一章我带你走一遍完整的安装流程。别担心,每一步我都会拆开讲清楚。
ROS 版本很多,为什么我推荐 Noetic?说白了,它是最后一个完全支持 Python 2 的长期支持版,但同时也完美兼容 Python 3。我在 2020 年刚接触它时,就被它的稳定性折服。后来好几个项目都跑在 Noetic 上,没出过幺蛾子。
ROS 版本选择:为什么是 Noetic?
ROS 的版本跟 Ubuntu 版本是绑定的。你想想看,选错了版本,后面编译报错能让你怀疑人生。我见过太多新手在版本上栽跟头。
| ROS 版本 | 对应 Ubuntu | 支持状态 | 推荐场景 |
|---|---|---|---|
| ROS Noetic Ninjemys | Ubuntu 20.04 (Focal) | 官方支持至 2025 年 | 新项目首选,生态最成熟 |
| ROS Melodic Morenia | Ubuntu 18.04 (Bionic) | 已停止更新 | 旧项目维护 |
| ROS 2 Foxy Fitzroy | Ubuntu 20.04 | 活跃开发中 | 工业级、实时性要求高 |
我个人习惯:做教学或原型验证,首选 Noetic。它的包最全,社区最活跃。你遇到问题,网上随便一搜就有答案。
核心结论:如果你用的是 Ubuntu 20.04,直接装 Noetic。别犹豫。
软件源配置:把源头搞对
安装 ROS 的第一步,是让系统知道去哪下载。这一步很多人忽略,结果装到一半报 404 错误。嗯,这里要注意。
打开终端,先更新一下系统源:
sudo apt update
sudo apt upgrade -y
然后添加 ROS 的官方软件源。我建议用中科大的镜像,速度比官方快很多。我曾经在项目现场用官方源,下载速度只有几十 KB,等了一个小时还没装完……后来换成国内镜像,五分钟搞定。
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 -
小技巧:如果密钥下载失败,可以手动从 ROS 官网下载 .asc 文件,然后用 sudo apt-key add ros.asc 导入。
最后再更新一次:
sudo apt update
看到源列表里有 ros-noetic 相关的包,就说明配置成功了。
完整安装步骤:一步步来
ROS 的安装方式有好几种。我推荐你装完整桌面版,省得后面缺包再补。你想想看,编译到一半报缺少某个依赖,多闹心。
安装命令很简单:
sudo apt install ros-noetic-desktop-full -y
这个命令会安装 ROS 核心、可视化工具(Rviz、Rqt)、仿真器(Gazebo)等。大概需要 1-2 GB 空间,下载时间取决于你的网速。
安装过程中,终端会滚动输出很多信息。别慌,这是正常的。等它回到命令行提示符,就装好了。
注意:安装过程中如果报依赖错误,先执行 sudo apt --fix-broken install 修复,再重新安装。
装完之后,可以验证一下:
dpkg -l | grep ros-noetic
如果看到一堆 ros-noetic-* 的包,说明安装成功。
环境变量设置:让系统认识 ROS
安装完只是第一步。你还得告诉系统,ROS 的命令在哪、怎么找到你的工作空间。这一步不做,你输入 roscore 会提示命令找不到。
我个人习惯把环境变量加到 .bashrc 里,这样每次打开终端自动生效。
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证一下:
echo $ROS_PACKAGE_PATH
如果输出包含 /opt/ros/noetic/share,就说明环境变量生效了。
避坑指南:我曾经在服务器上装 ROS,忘了 source 环境变量,结果所有 ROS 命令都报错。排查了半天才发现是这个问题。所以,每次新开终端,记得先 source /opt/ros/noetic/setup.bash。
核心流程一览
我把整个安装流程画成了一张图,方便你对照操作:
验证安装:跑个 Hello World
装完不验证,等于白装。我们来启动 ROS 的核心服务——roscore。
roscore
如果看到类似下面的输出,就说明核心启动成功了:
... logging to /home/yourname/.ros/log/...
started roslaunch server http://localhost:11311/
ros_comm version 1.15.14
再开一个新终端,试试 ROS 的经典命令:
rosnode list
输出 /rosout,说明 ROS 节点管理器正常工作。
恭喜!到这里,ROS Noetic 就装好了。你的机械臂仿真环境已经搭好了第一块基石。
避坑总结
最后,我把这些年踩过的坑总结一下:
- 版本不对:Ubuntu 20.04 装 Noetic,Ubuntu 18.04 装 Melodic。混着装会报依赖错误。
- 源没配好:用国内镜像,别用官方源。我曾经在客户现场用官方源,下载速度慢到怀疑人生。
- 环境变量没 source:每次新开终端都要 source。我建议直接写进
.bashrc。 - 权限问题:ROS 的日志目录在
~/.ros,如果遇到权限错误,直接删掉这个目录重建。