机器人操作系统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的对比授课。

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

----

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS2编程基础课程文档 ROS 2(机器人操作系统2)是用于机器人应用的开源开发套件。ROS 2之目的是为各行各业的开发人员提供标准的软件平台,从研究和原型设计再到部署和生产。 ROS 2建立在ROS 1的成功基础之上,ROS 1目前已在世界各地的无数机器人应用中得到应用。 特色 缩短上市时间 ROS 2提供了开发应用程序所需的机器人工具,库和功能,可以将时间花在对业务非常重要的工作上。因为它 是开源的,所以可以灵活地决定在何处以及如何使用ROS 2,以及根据实际的需求自由定制,使用ROS 2 可以大幅度提升产品和算法研发速度! 专为生产而设计 凭借在建立ROS 1作为机器人研发的事实上的全球标准方面的十年经验,ROS 2从一开始就被建立在工业级 基础上并可用于生产,包括高可靠性和安全关键系统。 ROS 2的设计选择、开发实践和项目管理基于行业利 益相关者的要求。 多平台支持 ROS 2在Linux,Windows和macOS上得到支持和测试,允许无缝开发和部署机器人自动化,后端管理和 用户界面。分层支持模型允许端口到新平台,例如实时和嵌入式操作系统,以便在获得兴趣和投资时引入和推 广。 丰富的应用领域 与之前的ROS 1一样,ROS 2可用于各种机器人应用,从室内到室外、从家庭到汽车、水下到太空、从消费 到工业。 没有供应商锁定 ROS 2建立在一个抽象层上,使机器人库和应用程序与通信技术隔离开来。抽象底层是通信代码的多种实现, 包括开源和专有解决方案。在抽象顶层,核心库和用户应用程序是可移植的。 建立在开放标准之上 ROS 2中的默认通信方法使用IDL、DDS和DDS-I RTPS等行业标准,这些标准已广泛应用于从工厂到航空 航天的各种工业应用中。 开源许可证 ROS 2代码在Apache 2.0许可下获得许可,在3条款(或“新”)BSD许可下使用移植的ROS 1代码。这两个 许可证允许允许使用软件,而不会影响用户的知识产权。 全球社区 超过10年的ROS项目通过发展一个由数十万开发人员和用户组成的全球社区,为机器人技术创建了一个庞大 的生态系统,他们为这些软件做出贡献并进行了改进。 ROS 2由该社区开发并为该社区开发,他们将成为未 来的管理者。 行业支持 正如ROS 2技术指导委员会成员所证明的那样,对ROS 2的行业支持很强。除了开发顶级产品外,来自世界 各地的大大小小公司都在投入资源为ROS 2做出开源贡献。 与ROS1的互操作性 ROS 2包括到ROS 1的桥接器,处理两个系统之间的双向通信。如果有一个现有的ROS 1应用程序, 可 以通过桥接器开始尝试使用ROS 2,并根据要求和可用资源逐步移植应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值