機器人作業系統ROS 1.0 和 2.0 發展規劃2018-2025(Open Robotics)譯

zhangrelay發表於2018-10-22

部分博文是翻譯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的對比授課。

----更多資訊----

----

相關文章