ROS 版本

ROS 和 ROS2

由于历史原因,ROS 有两个大版本 —— ROS1(通常用 ROS 替代)和 ROS2,两者的差别如下图所示。

我们知道 ROS 始于2007年11月,最早是“柳树车库”用于 PR2 机器人的开发,同时希望 ROS 能用于其他机器人。因此,柳树车库花费了大量精力定义了抽象级别(通常是通过消息的接口),允许软件重用。按照最初的设想,ROS 是用于单个机器人、板载工作站级别的计算资源、没有实时性需求,以及理想的网络连接场景的学术研究项目。ROS 强调最大的灵活性,没有过多的约定或者禁止。

然而,出乎意料的是,ROS 发布以来就被应用于各种各样的机器人,包括轮式机器人、腿式机器人、工业手臂、室外无人车辆、自动驾驶汽车、无人机、无人艇等等。随着大量基于 ROS 的产品进入市场,比如制造业机器人、农业机器人、商业清洁机器人等,甚至连 NASA 也将运行 ROS 的 Robonaut 2 部署到国际空间站。ROS 已经从最初的学术研究项目,演变成一个工业界应用广泛的商业项目,已经成为机器人领域的事实标准。

随着应用场景的扩大,ROS 最初设计时的局限性已经难以满足更多新需求。比如说实时性和网络延迟,以及 ROS 严重依赖 Ubuntu 系统,导致无法在小型嵌入式平台运行等等。因此,社区开发者对新一代 ROS 的呼声越来越大,ROS2.0 的消息也不绝于耳。

在 ROSCon 2014 上,新一代 ROS 的设计架构(Next-generation ROS:Building on DDS)正式公布。2015年8月第一个 ROS2.0 的 Alpha 版本落地,2016年12月 ROS2.0 的 Beta 版本正式发布,2017年12月8日,万众瞩目的 ROS2.0 终于发布了第一个正式版 —— Ardent Apalone。

ROS2 的核心是 DDS(Data Distribution Service,数据分发服务),它是由对象管理组织 OMG(Object Management Group)在 2014 年发布的一种专门为实时系统设计的数据分发/订阅标准。关于 DDS 的更多介绍我们将在后面进行讲解。

版本代号

Ubuntu 和 ROS1 部分版本对应关系及官方支持结束时间如下表所示。

Ubuntu ROS1 发布时间 支持期限
14.04 LTS Indigo Igloo 2014年5月 2019年4月
16.04 LTS Kinetic Kame 2016年5月 2021年4月
18.04 LTS Melodic Morenia 2018年5月 2023年5月
20.04 LTS Noetic Ninjemys 2020年5月 2025年5月
22.04 LTS

Ubuntu 和 ROS2 部分版本对应关系及官方支持结束时间如下表所示。

Ubuntu ROS2 发布时间 支持期限
18.04 LTS Crystal Clemmys 2018年12月 2019年12月
18.04 LTS Dashing Diademata 2019年5月 2021年5月
20.04 LTS Foxy Fitzroy 2020年6月 2023年5月
22.04 LTS Humble Hawksbill 2022年5月 2027年5月

更多 >> ROS DistributionsROS2 Distributions