机器人操作系统ROS 1.0 和 2.0 发展规划2018-2025(Open Robotics)译

部分博文是翻译ROS官方新闻,如需查看原文,请至官网进行浏览。目前,ROS支持全部主流操作系统,windows,macos,linux,如有需要查看之前博文。

关注开发团队的目标,是依据现有资源制作机器人课程和方案的充要条件。每年每月每次课程都要更新,以适应日新月异的技术变革!

----翻译----

Open Robotics计划在2020年5月发布针对Python 3的ROS 1发行版,但需要帮助才能使其成功。

在最近几年中,每年5月由Open Robotics(OR)发布一次ROS 1发行版。在偶数年份(2014Indigo,2016Kinetic,2018Melodic),ROS发行版具有5年的支持(长期支持,或LTS),而在奇数年,只有2年的支持(非LTS)。由于非LTS ROS分布未被社区大量使用,于是今年早些时候决定不进行非LTS发布,而是每两年发布一次LTS ROS发行版

今后只有ROS 1.0的LTS版本!!!

鉴于ROS 2获得更多支持,热度持续上升,最近出现了这对ROS 1发布的意义问题1 的讨论。这些讨论包括两个方面(这里只是对两个主要方向的简要描述):

  • 一方面,研发团队大部分的努力和资金都花在了ROS 2上。因此,在已经发布的长期支持版本Melodic之后,目前并没有继续发布ROS1.0长期支持版本的规划。这意味着Noetic支持将由2020-2025,并可能成为ROS1.0的最终重要版本!!!

  • 另一方面,目前机器人开源社区仍然大量使用ROS 1而没有(立即)计划迁移到ROS 2,并且ROS 2此时并不像ROS 1那样功能丰富和完整

开发团队需要仔细权衡并综合考量未来ROS 1发行版的利弊。一方面,团队希望两个ROS版本在可行的情况下共存,允许随时间迁移,但另一方面,团队受资源约束的限制。这里说的不仅仅包括OR,而是所有ROS 1软件包维护者,无论他们在哪里工作。正如已通过@Pyo指出1 每一个新的ROS 1的发行版创建初期开发和那些发布功能包的开发者都需要承担新发行后续的维护负担。正如@gerkey 所说,OR没有获得针对此类工作的资金,可以猜想其他组织也类似如此。

再看一下ROS 2当前的状态,它确实在核心部分具备很多功能,许多重要功能(如导航Navigation、移动MoveIt!、图像管道pipeline)的移植工作正在进行中。话虽如此,仍然有一些方法可以在各个方面与ROS 1相匹配,只提一个方面:文档和教程2 

从目前的ROS 1支持时间表来看,最新的Melodic发行版于2018年发布,并将持续到2023年。虽然原则上给出的时间表为4.5年,但有两个因素限制了有效的支持范围:

  • 在未来的某个时刻,ROS 2将针对更新版本的Ubuntu(即20.04)。通常用于在Ubuntu LTS可用之后发布的下一个ROS发行版的ROS发行版。虽然具体的时间点可以讨论,但在某些时候这种情况会发生 - 很可能在2023年之前发生。然后没有针对新版Ubuntu的新ROS发行版会让我们陷入“分裂”的境地(只有一个ROS版本,即ROS 2.0):在同一个Ubuntu发行版中不支持ROS 1和ROS 2的版本,这将使异构系统更具挑战性。因此,这种分裂也会使任何渐进的迁移工作变得更加困难。这个方面缩短了支持的时间窗口,缩短了ROS 1和ROS 2发行版之间的重叠,这个平台不到4.5年 - 更像是2 - 3年(也是由@mikeferguson 注意到)。

  • 第二个方面限制ROS 1 Melodic的有效支持窗口是Python 2中的EOL 3 在2020年开始在现有的发行版和功能包将继续存在,安全补丁的维护停止可能会显著阻碍继续的使用Python 2软件。因此,有效时间窗口变得更短 - 更实际的是大约1.5 - 2年

基于这些考虑因素,或者已决定投入一些资源来创建一个代号为Noetic Ninjemys(Noetic)的ROS 1版本该版本将于2020年5月以Python 3(而不是Python 2)为目标ROS 1发行版的可用性将解决上述限制并有效确保ROS 1和ROS 2共存至少2025年。而在2022年,新的ROS 2发行版可能会针对较新的Ubuntu发行版(ROS 1不支持,如Noetic)这对于共存/迁移来说不是一个问题,因为那时开发团队当然希望从2020/2021年发布的ROS 2成为用户可以坚持的可行平台。(目前情况要少得多,而重要功能仍处于开发状态,以前的版本不一定处于可行状态。)

因此,在ROS 1中从Python 2到Python 3的过渡肯定是一个重要的过程。虽然OR将​​于在2020年创建Noetic版本,但工作范围要高得多。它需要整个社区为这项工作做出贡献 - 否则Noetic只会包含以前ROS 1版本的一小部分软件包,或者如果没有进行广泛测试,质量可能会低于标准。

在ROS 1 Noetic版本和ROS 2移植工作的背景下,可以看到Python 3过渡对两个ROS世界都有好处。首先将包与Noetic的Python 3兼容,然后移植到ROS 2其次将包移植到ROS 2(这涉及使其与Python 3一起使用),然后可以移植Python 3特定的更改Noetic发布。无论哪种方式,Python 3的步骤都是必要的。

与任何ROS发行版一样,由软件包维护人员决定是否以及何时将其软件包发布到Noetic中。和往常一样,欢迎所有社区成员加强帮助以获得功能包。如果发现任何受支持的ROS发行版中缺少某些内容,请考虑自愿花时间帮助发布。如果这是非常关心的一揽子计划,请考虑自愿成为共同维护者,甚至承担单独的维护工作。你很可能从软件包维护者那里得到积极的回应。考虑到Python 3过渡所带来的额外努力,开发团队比以往更需要社区的帮助,以便Noetic成为一个完整的发行版。

对Noetic之外的ROS 1意味着什么?目前,或者无法继续将资源投入到Noetic之后的ROS 1版本中。所以OR并不打算O-turtle ROS 1上发挥作用。如果社区有很大的兴趣,这绝不意味着不会有更多的ROS 1版本。所有基础设施都是开放的,如果一个或多个实体愿意负责推出未来的ROS 1发行版,或者非常乐意帮助他们开始这项工作。

开发团队希望这篇文章为ROS 1在可预见的未来提供了一个明确的方向,并且确定了OR的预期。

ROS开发团队@Open Robotics

ROS Melodic的迷失与救赎::https://blog.csdn.net/column/details/28058.html

GitChat::沉迷机器人操作系统的一个理由和四种修仙秘籍

基于Windows和Ubuntu的ROS Melodic课程已经开发完毕,包括Navigation和MoveIt!,将win和linux进行融合讲解,并同步进行ROS1.0和ROS2.0的对比授课。

----更多资讯----

----

猜你喜欢

转载自blog.csdn.net/ZhangRelay/article/details/83269409