Ubuntu 20.04 / 18.04 双版本 ROS1 安装保姆级教程

【ROS 入门第一步】Ubuntu 20.04 / 18.04 双版本 ROS1 安装保姆级教程(Noetic & Melodic)

摘要

本文手把手带你在 Ubuntu 20.04 (Focal) 上安装 ROS Noetic ,以及在 Ubuntu 18.04 (Bionic) 上安装 ROS Melodic ,包含换源、密钥、依赖、环境变量、rosdep 初始化以及常见报错的解决办法,附带验证小乌龟示例。


一、写在前面

ROS1 (Robot Operating System 1) 与 Ubuntu 的版本是严格绑定的:

Ubuntu 版本 推荐 ROS1 发行版 维护状态
Ubuntu 20.04 (Focal) ROS Noetic Ninjemys ROS1 最后一个 LTS(EOL: 2025-05)
Ubuntu 18.04 (Bionic) ROS Melodic Morenia 已 EOL(2023-05),仍广泛使用
Ubuntu 16.04 (Xenial) ROS Kinetic 已 EOL

二、Ubuntu 20.04 安装 ROS Noetic

1. 设置软件源(清华镜像,国内推荐)

bash 复制代码
sudo sh -c '. /etc/lsb-release && echo "deb https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

2. 添加密钥

bash 复制代码
sudo apt install curl -y
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

如果上面命令访问 GitHub 失败,可以使用国内镜像:

bash 复制代码
curl -sSL 'http://packages.ros.org/ros.key' | sudo apt-key add -

3. 更新索引并安装

bash 复制代码
sudo apt update
sudo apt install ros-noetic-desktop-full -y

💡 desktop-full 包含 ROS 核心、rqt、rviz、常用机器人库(urdf、kdl)和 2D/3D 模拟器(gazebo、stage)。

如果空间紧张,可选 ros-noetic-desktop 或最小的 ros-noetic-ros-base。

4. 配置环境变量

bash 复制代码
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

使用 zsh 用户请改为 ~/.zshrc。

5. 安装构建依赖

bash 复制代码
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y

6. 初始化 rosdep

bash 复制代码
sudo rosdep init
rosdep update

⚠️ rosdep init / update 经常因 raw.githubusercontent.com 被墙而失败。

解决方案见 第四节常见问题。


三、Ubuntu 18.04 安装 ROS Melodic

Melodic 与 Noetic 流程几乎一致,主要差别在于 Python 版本:Melodic 默认 Python 2.7,Noetic 默认 Python 3。

1. 设置软件源

bash 复制代码
sudo sh -c '. /etc/lsb-release && echo "deb https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

2. 添加密钥

bash 复制代码
sudo apt install curl -y
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

3. 安装

bash 复制代码
sudo apt update
sudo apt install ros-melodic-desktop-full -y

4. 环境变量

bash 复制代码
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

5. 安装构建依赖(注意是 python- 而不是 python3-)

bash 复制代码
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential -y

6. 初始化 rosdep

bash 复制代码
sudo rosdep init
rosdep update

四、常见问题与解决方案

❶ sudo rosdep init 报 Website may be down / 连接超时

这是 GitHub raw 被墙导致的。推荐做法:使用 小鱼 ROS 一键安装的 rosdepc:

bash 复制代码
sudo pip install rosdepc          # Melodic
sudo pip3 install rosdepc         # Noetic
sudo rosdepc init
rosdepc update

或者使用社区维护的离线 yaml(修改 /etc/ros/rosdep/sources.list.d/20-default.list)。

❷ 公钥过期:NO_PUBKEY F42ED6FBAB17C654

bash 复制代码
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key F42ED6FBAB17C654

❸ roscore 启动报 command not found

环境变量没生效,重新执行:

bash 复制代码
source /opt/ros/noetic/setup.bash    # 或 melodic

五、安装验证:小乌龟示例

打开 三个终端:

bash 复制代码
# Terminal 1
roscore
bash 复制代码
# Terminal 2
rosrun turtlesim turtlesim_node
bash 复制代码
# Terminal 3
rosrun turtlesim turtle_teleop_key

在 Terminal 3 中用方向键控制小乌龟移动,效果如下:

图片来源:ROS Wiki turtlesim 页面 (CC-BY 3.0)


六、写在最后

至此,你已经在 Ubuntu 20.04 / 18.04 上安装好了 ROS1。下一篇我们会带大家创建第一个 catkin workspace 并编写 Hello World 节点。如果对你有帮助,欢迎点赞收藏 ⭐。


参考资料

  1. ROS Wiki 官方安装文档(Noetic): http://wiki.ros.org/noetic/Installation/Ubuntu
  2. ROS Wiki 官方安装文档(Melodic): http://wiki.ros.org/melodic/Installation/Ubuntu
  3. 清华大学开源镜像站 ROS 源说明: https://mirrors.tuna.tsinghua.edu.cn/help/ros/
  4. 小鱼 ROS rosdepc 项目: https://github.com/fishros/rosdepc
  5. ROS Distributions 官方维护周期: http://wiki.ros.org/Distributions

图片版权说明

本文 turtlesim 截图来自 ROS Wiki,遵循 CC-BY 3.0 协议。

相关推荐
云上先途41 分钟前
对话智能体和普通聊天机器人有什么区别?能不能对接企业自有知识库?
大数据·人工智能·机器人
zhangrelay1 小时前
ROS2 Lyrical实验5导航Nav2
linux·笔记·学习·ubuntu·机器人
随性而行3601 小时前
企业微信二次开发如何接入大模型工具?API接口实现智能任务调用的技术思路
java·前端·人工智能·python·微信·机器人·企业微信
XMAIPC_Robot2 小时前
RK3588+CODESYS+RK182X AI 扩展机器人控制器解决方案|硬实时运动控制 + 大算力边缘 AI 融合实战
人工智能·机器人·rk3588+codesys·arm+codesys
m0_739312874 小时前
【自动驾驶与机器人技术】之惯性导航与组合导航
算法·机器人·自动驾驶
风合星语5 小时前
2026 机器人工程实例(六):日志显示“抓住了”,机械手却还差 187.7 mm——MuJoCo 抓取假成功排查
机器人·具身智能·机器人仿真·逆运动学·mujoco·机器人抓取
别动我齐刘海5 小时前
ROS2 Jazzy + C++ 时间系统——Time / Clock / Duration
linux·c++·人工智能·学习·机器学习·机器人·自动驾驶
明志数科14 小时前
具身智能数据供给的分层:分布式采集与入厂采集的工程边界分析
人工智能·机器学习·机器人
微小冷15 小时前
Python凸优化cvxpy初步
python·机器人·凸优化·数学规划·cvxpy
XMAIPC_Robot19 小时前
CODESYS 实时控制 + RK182X 大模型算力扩展|RK3576 工业边缘控制器设计
人工智能·fpga开发·机器人·rk3588+fpga