前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器人操作系统ROS 1.0 和 2.0 发展规划2018-2025(Open Robotics)译

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

作者头像
zhangrelay
发布2022-04-29 19:22:30
6460
发布2022-04-29 19:22:30
举报

部分博文是翻译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的对比授课。

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

  • Attendees:
    • OR: Brian Gerkey, Tully Foote, Louise Pouble, Dirk Thomas
    • Apex: Dejan Pangercic
    • Bosch: Karsten Knese
    • LG: Seonman Kim
    • Robotis: Pyo Yoonseok
    • Microsoft: Lou Amadio
    • TRI: Allison Thackston
    • Amazon: Doug Fulop
    • Intel: Matthew K Hansen
  • [discussion & decision] New TSC members to consider
    • Interest from multiple companies to participate.
    • Decision: @gerkey to follow up with each to get more information:
      • How they will help accelerate ROS2 development?
      • What projects are they interested in working on?
  • [update] Status on ROS trademark application
    • Iterating with lawyers still
  • [update] Status on DCO process for ROS 2 repos
    • Reviewed draft from Bosch, have not tried integrating into Github
    • Should be able to have it rolled out by Crystal
  • [update] Review of ongoing work for Crystal:
    • Gazebo ROS packages
      • Mostly completed, one PR remaining
    • Launch
      • On track. Always more to be done, but looking good for well-featured release.
    • memory audit
      • Slow start, but should show some results for Crystal.
    • docs v2
      • https://index.ros.org 1 prototype live, will include/replace github wiki content
    • IDL
      • Parsing complete, working on AST to object representation. Next step generators
    • Actions
      • Design doc up for review https://github.com/ros2/design/pull/193
      • In parallel implementation in progress https://github.com/ros2/examples/pull/216 1
    • build farm
      • Upgrading CI options: https://github.com/ros-infrastructure/ros_buildfarm/pull/575
      • Looking to upgrade Jenkins version
    • performance testing
      • Working on setting up Apex’s performance testing on the buildfarm
    • secure services: https://discourse.ros.org/t/ros2-security-working-group-online-meeting/6393/17
    • secure key management: https://discourse.ros.org/t/ros2-security-tools-for-development-and-production/6487
    • logging: https://discourse.ros.org/t/ros2-logging/6469
    • rqt (via PickNik): https://discourse.ros.org/t/rqt-in-ros2/6428 1
    • DDS improvements with eProsima (not in time for Crystal)
      • Ongoing Apex work with them:
        • “More” static / real time regarding memory allocation
        • Shared memory transport
        • Minimum DDS profile for compatibility
    • Migration tools: https://discourse.ros.org/t/ros1-to-ros2-migration-tools/6505
    • QoS https://github.com/ros2/rclcpp/issues/572
    • Testing and fuzzing https://gitlab.com/AutowareAuto/AutowareAuto/issues/19
      • Formalizing integration testing need to move to new launch implementation
    • Rosbag https://github.com/ros2/rosbag2
      • Presented at ROSCon video slides
    • Navigation https://discourse.ros.org/t/ros2-navigation-wg-next-thursday-10-18-18-10am-pacific-gmt-7-00/6443/7 1
      • Many components working not all of them yet, still running a bunch of components in ros1 via bridge for now such as rviz.
      • Waiting for gazebo and rviz in ros2
        • Links to be sent for latest development branches
        • Are we making tags/branches for crystal prerelease?
          • During development we’re keeping all default branches coordinated. There should never be a synchronization issue between the default branches.
    • Image_pipeline - https://github.com/ros-perception/image_pipeline/issues/360
    • geometry2/message_filters - https://github.com/ros-planning/navigation2/issues/171
    • Performance improvements (Python bindings)
    • Superflore (ROS2 for OpenEmbedded, webOS)
    • ROS/ROS2 Simulator for Autonomous Driving and Robotics
    • Windows buildfarm targeted to be ready for Crystal
    • Working on ROS1 including `ros1_bridge` for compatibility https://discourse.ros.org/t/introducing-ros1-on-windows/6210 and Moveit
    • TB3 on ROS 2 https://discourse.ros.org/t/tb3-introducing-ros2-tutorials/5959 1
    • TB3 on ROS2 in Gazebo
      • Tutorials on how to use GazeboROS2pkgs
      • http://gazebosim.org/tutorials?tut=ros2_overview&branch=ros2
      • http://gazebosim.org/tutorials?tut=ros2_installing&branch=ros2
      • Coordinate with Intel about testing navigation stack and availability of TB3 simulator for navigation testing.
    • ros2arduino https://discourse.ros.org/t/ros2arduino-discussion-for-development-ros2-library-for-arduino/6498
  • [update] Review of unclaimed tasks for Crystal:
    • https://docs.google.com/spreadsheets/d/14GY9shcwa2QKnw5u5T7F_2-4XuuwLkS3W20-tVp8EOY/edit#gid=0 2
    • Any blockers that we need to start work on now?
      • Follow up offline
  • [discussion] How to track work being done for Crystal
    • Too many options now: Waffle, spreadsheets, Discourse, random emails
    • Proposal: converge on issues in github and which then show in https://waffle.io/ros2/ros2?milestone=crystal
    • The high level features / tasks being worked on for Crystal are described in https://github.com/ros2/ros2/issues/529 1 and then each item has a more detailed reference linked from there
  • [discussion] How best to support ROS 1->2 transition?
    • Idea: facilitate ROS 1->2 transition by supporting release of ROS 1 N-turtle (Noetic) as LTS in May 2020 targeting Ubuntu 20.04, with public intent to make it the last ROS 1 release driven by OSRF
      • Extends ROS 1 support by 2 years until 2025
      • Requires Python 2->3 transition for packages released into Noetic
      • Allows longer period of overlap between ROS 1 & 2, in particular to support bridging
      • Avoids supporting multiple Ubuntu LTS distros for a single ROS (1 or 2) distro
    • Idea: No ROS-1 Noetic unless community takes this on themselves; We should take the stand that all work goes to ROS2 particularly with the LTS expiration of M
    • @gerkey and @dirk-thomas will consider all feedback and develop an official position of Open Robotics
  • With release coming we might want to have multiple meetings before the release.
    • @gerkey to coordinate offline.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档