从Ubuntu 18.04到24.04,ROS经历了从ROS 1末期到ROS 2全面成熟的技术换代。核心变化包括:通信架构去中心化、底层全面转向DDS标准、原生支持Python 3、工具链和API全面革新,以及安全性和实时性大幅增强。
📜 ROS & Ubuntu 版本全景图
下表详细列出了从Ubuntu 18.04到24.04各个主要ROS版本的对应关系、发布时间及官方支持状态。
| Ubuntu 版本 | 代号 | ROS 版本 | 代号 | 发布时间 | EOL (支持结束) | 备注 |
|---|---|---|---|---|---|---|
| 18.04 LTS | Bionic | ROS 1 Melodic | Morenia | 2018.05 | 2023.05 | ROS 1 重要的 LTS 版本之一 |
| ROS 2 Dashing | Diademata | 2019.05 | 2021.05 | ROS 2 首个官方 LTS 版本 | ||
| ROS 2 Eloquent | Elusor | 2019.11 | 2020.11 | ROS 2 短期支持版本 | ||
| 20.04 LTS | Focal | ROS 1 Noetic | Ninjemys | 2020.05 | 2025.05 | ROS 1 最终版本,官方推荐 |
| ROS 2 Foxy | Fitzroy | 2020.06 | 2023.06 | ROS 2 首个3年LTS版本,应用广泛 | ||
| ROS 2 Galactic | Geochelone | 2021.05 | 2022.12 | ROS 2 短期支持版本,优化了性能 | ||
| 22.04 LTS | Jammy | ROS 2 Humble | Hawksbill | 2022.05 | 2027.05 | ROS 2 首个5年LTS版本,主流选择 |
| ROS 2 Iron | Irwini | 2023.05 | 2024.11 | ROS 2 短期支持版本,引入新API | ||
| 24.04 LTS | Noble | ROS 2 Jazzy | Jalisco | 2024.05 | 2029.05 | 最新ROS 2 LTS版本,适配新系统 |
| 24.04 LTS | Noble | ROS 2 Rolling | Ridley | 持续更新 | 持续支持 | 滚动开发版,用于体验最新特性 |
注意 :ROS 1 Noetic 的官方支持已于 2025年5月 结束。
🚀 从18.04到24.04:ROS版本选型路线图
下图清晰地展示了从Ubuntu 18.04到24.04,你应该如何选择ROS版本。
Ubuntu 18.04
Bionic
选择路径
ROS 1 路线
ROS 2 路线
ROS 1 Melodic
LTS 至 2023.05
ROS 2 Dashing
LTS 至 2021.05
迁移至 Ubuntu 20.04
迁移至 Ubuntu 20.04
Ubuntu 20.04
Focal
选择路径
ROS 1 Noetic
最后一个 ROS 1 版本
LTS 至 2025.05
ROS 2 Foxy
ROS 2 首个 LTS
LTS 至 2023.06
建议转向 ROS 2
Ubuntu 22.04
Jammy
ROS 2 Humble
首个 5 年 LTS 版本
LTS 至 2027.05
Ubuntu 24.04
Noble
ROS 2 Jazzy
最新 LTS 版本
LTS 至 2029.05
⚙️ 关键变化:从ROS 1到ROS 2的深度革新
从Ubuntu 18.04到24.04,ROS版本的变化背后是ROS 2对ROS 1的全面重构。
- 核心架构 :从依赖中心节点的集中式,变为去中心化的分布式架构,通过DDS自动发现,从根本上解决了单点故障问题。
- 底层通信 :全面转向工业级的 DDS(数据分发服务) 标准,带来了可配置的QoS策略和更好的安全性。
- 语言与标准 :全面转向 Python 3 ,并将C++标准从C++11提升至C++14/17,代码更现代高效。
- 构建与工具 :编译系统从
catkin_make变更为**colcon build**,几乎所有命令行工具都从ros*变为了ros2 *的格式,更加清晰统一。 - 安全与实时性 :安全方面,ROS 2通过SROS2 提供了节点加密通信、权限控制等工业级功能。实时性方面,通过
Preempt_RT补丁和DDS的调优,ROS 2能实现微秒级(µs)的确定性延迟,远超ROS 1的毫秒级(ms)。
🎯 选型建议
面对如此多的版本,如何进行选择呢?
- 维护旧项目 :若你的旧项目基于ROS 1,可继续使用Ubuntu 20.04 + ROS 1 Noetic组合,但建议尽快规划向ROS 2的迁移。
- 新项目首选 :建议直接采用成熟的Ubuntu 22.04 + ROS 2 Humble组合,社区资源丰富,生态兼容性好,足以满足绝大多数新项目的需求。
- 尝鲜新技术 :如果你想第一时间体验ROS 2的最新特性,可以选择Ubuntu 24.04 + ROS 2 Jazzy。