機器人作業系統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的對比授課。
----更多資訊----
- 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
- Ongoing Apex work with them:
- 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
- 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
- Gazebo ROS packages
- [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
- 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
- With release coming we might want to have multiple meetings before the release.
- @gerkey to coordinate offline.
----
相關文章
- 【2018.04.19 ROS機器人作業系統】機器人控制:運動規劃、路徑規劃及軌跡規劃簡介之一ROS機器人作業系統
- 實現ARM+ROS(機器人作業系統)之執行ROS!ROS機器人作業系統
- ROS 2 Crystal Clemmys版機器人作業系統補充說明ROS機器人作業系統
- ROS 2 Crystal Clemmys版機器人作業系統安裝說明ROS機器人作業系統
- 還可以這樣實現ARM+ROS(機器人作業系統)ROS機器人作業系統
- 實現ARM+ROS(機器人作業系統)之環境搭建!ROS機器人作業系統
- 部落格關於ROS機器人作業系統內容調整說明ROS機器人作業系統
- 一文讀懂自動駕駛中的機器人作業系統ROS自動駕駛機器人作業系統ROS
- ROS機器人作業系統資料與資訊(2018年11月)ROS機器人作業系統
- ROS機器人作業系統資料與資訊(2018年12月)ROS機器人作業系統
- 為什麼推薦使用Ubuntu 18.04 LTS學習機器人作業系統ROS 1和2Ubuntu機器人作業系統ROS
- Webots R2019和ROS使用筆記(機器人模擬軟體與作業系統)WebROS筆記機器人作業系統
- 【機器人】工業機器人典型控制系統及結構;中國工業機器人系統整合行業發展趨勢;工業機器人在PCB行業的應用機器人行業
- ROS | ROS機器人開發案例(古月)學習ROS機器人
- 百度全新無人挖掘機作業系統登上國際權威期刊《Science Robotics》作業系統
- 機器人移動的規劃和導航機器人
- 作業系統引導和虛擬機器作業系統虛擬機
- Vector人工智慧情感機器人SDK釋出和說明(ROS2GO 2.0 + Vector 2.0)人工智慧機器人ROSGo
- 機器人路徑規劃 A*與D*機器人路徑規劃演算法詳述機器人演算法
- BNB智慧鏈FTM1.0智慧機器人系統開發(技術分析)機器人
- 不迷茫系列之技術人員的職業發展規劃
- ROS 和Web 帶來更智慧的機器人ROSWeb機器人
- 嵌入式Linux作業系統學習規劃Linux作業系統
- (GitChat)沉迷機器人作業系統的一個理由和四種修仙祕籍Git機器人作業系統
- FTM1.0智慧機器人(BNB智慧鏈)系統技術開發詳情機器人
- 國產作業系統生態發展趨勢作業系統
- 微機結構和作業系統作業系統
- 作業-安裝虛擬機器以及CentOS作業系統虛擬機CentOS作業系統
- 量化機器人系統開發(方案)機器人
- 【工業機器人】工業機器人技術最新知識大全;工業機器人驅動與控制系統機器人
- 計算機作業系統|作業系統引論計算機作業系統
- 三個規則劃分企業商機管理系統
- 20人研發團隊的管理與發展規劃概要
- ROS2GO之慕課《機器人作業系統入門》配置與使用(2018-2019-2)ROSGo機器人作業系統
- BNB智慧鏈FTM1.0智慧機器人系統技術開發/python語言機器人Python
- 量化交易機器人開發運營版丨量化機器人系統開發(成熟技術)丨量化機器人系統原始碼機器人原始碼
- 炒幣機器人系統開發功能丨量化炒幣機器人系統開發案例原始碼機器人原始碼
- js判斷手機瀏覽器和作業系統程式碼JS瀏覽器作業系統