從ROS1到ROS2,帶來託管啓動和數據分發服務

2018年,機器人操作系統2 (ROS2)作爲ROS1的繼任者推出。在ROSCon 2019大會上,幾位演講者分享了他們從ROS1轉到ROS2的經歷。他們分別在兩個單獨的演講中進行了分享:Autoware項目和Rover Robotics的演示。

Autoware項目藉此機會對他們的軟件進行了重新設計,以便更好地運行在ROS2上。Autoware項目以Autoware.AI爲起點,它是一款用於自動駕駛汽車的開源軟件。他們的軟件基於ROS1,非常適合進行原型設計。但Autoware不適合用於構建實際的產品,原因有三個。主要原因是ROS1未經認證,要實現認證需要很多年的時間和人們的努力。Autoware AI應用的決定論和內存安全性實現認證也不太可能。最後,由於ROS1的終結時間被定在2025年,它的受支持時間只剩下不到6年。因此,Autoware決定啓動autoware.auto,雖然這需要做更多的工作,但從長期來看將帶來更好的結果。

相比ROS1,ROS2帶來了幾個好處。一個好處是託管啓動,你可以指定節點啓動順序。另一個好處是數據分發服務(DDS)通信協議,它可以以零拷貝的方式傳遞消息,節省了CPU和內存資源。在開發方面,他們花了更多的精力來增加測試覆蓋率,提供更多更好理解的文檔,以及更多持續集成,以便實現軟件的認證。

爲了確保能夠愉快地使用現有的Autoware軟件棧,工程團隊對舊項目也提供了與新項目一樣的支持。這是通過添加ROS1橋接來實現的。通過這種方式,新的高質量特性被引入到新的項目中,同時又保持現有貢獻者的體驗不受影響。對貢獻者來說,由於他們對質量期望很高,所以Autoware需要提供更高的測試覆蓋率,每個發行版的設計文檔以及確定性執行測試用例。爲了鼓勵現有貢獻者和新貢獻者加入,Autoware的工作人員正在爲他們提供指導。

Nick Fragal和Nick Padilla進行了第二次演講,他們都在Rover Robotics公司工作。他們使用ROS1來共享通用的機器人代碼,並儘量減少常見任務的代碼重寫工作。他們希望使用ROS2來共享可靠的機器人代碼。ROS2的技術指導委員會中有很多來自大公司的人,他們非常重視可靠性,因此可以預料的是,很多公司將採用ROS2。可見ROS2大有前景。

Fragal談到了它們的應用:一種運送T恤的機器人,可以把T恤送到參會的人手中。他們用ROS1進行了一個演示,想把它移植到ROS2。移植最初看起來進行很順利,但是當他們用速度較慢的WIFI進行新的演示時,遇到了問題。

潛在的原因是DDS協議,它在慢WIFI環境下不能很好地運行。爲了解決這個問題,他們研究了可以調整哪些參數讓DDS在慢WIFI環境下運行得更好。他們還比較了DDS協議的不同實現,並與提供商合作改進它們的實現。最後,多個DDS實現都可以在10秒內讓軟件啓動起來。關鍵的是選擇具有零拷貝的DDS中間件,避免在內存中移動圖像。

總的來說,Rover Robotics估計在進行移植演示時大約花費了60%的時間在研究通信協議上。不過,現在它運行得更順暢了,他們希望以後把90%的精力放在導航和應用程序代碼上。

原文鏈接

Migrating Two Large Robotics ROS1 Codebases to ROS2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章