熱門
ROS 2與Unity合作提升自主機器人性能
Unity在新版本中添加了ROS 2的官方支持,其強大的框架,加上模擬,將支持無數全新用例。
機器人操作系統(ROS)是從2007年開始開發機器人應用程序的流行框架。盡管最初是為了加速機器人研究而設計的,但它很快在工業和商業機器人中被廣泛采用。ROS 2建立在ROS可靠框架的基礎上,同時改進了對現代應用程序的支持,如多機器人系統、實時系統和生產環境。Unity目前已經將其對ROS生態系統的官方支持擴展到ROS 2。
?
現代機器人技術正在將其重點轉向“自主性”,即研究和開發能夠在沒有人類開發者定義的嚴格規則的情況下做出決策的算法,而模擬算法則是通過實現比現實世界測試更大的靈活性和更快的實驗時間來實現這一轉變。在本篇文章中將演示如何模擬由Unity和ROS 2創建的自主移動機器人(AMR)的同時定位和映射(SLAM)以及導航功能。
ROS 2為現代機器人技術提供動力
雖然ROS仍然是機器人原型開發的優秀框架,但它已經接近生命周期的盡頭,并且缺少一些在機器人系統中實現超越原型,全面生產和部署所必需的功能。ROS 2的技術路線圖由行業專家委員會定義了明確的原則,以確保將ROS 2打造成為服務機器人最終用戶的合適框架。ROS 2支持更多的操作系統和通信協議,并且設計得比ROS分類更加精確。
自主模擬供電
ROS 2的許多新興用例都側重于自動化。引入自主性意味著機器人做出的決策以及這些決策的結果不完全可以僅使用狀態機和一組數學公式來進行預測,就像它們可能在許多工業機器人的案例中一樣。與工業機器人相比,自主機器人的操作環境呈指數級增長。它所遇到的輸入的排列遠遠超過了在受控的實驗室環境中所能復制的水平。為了完全驗證自主機器人的行為符合制造商的預期,制造商們也可以在機器人上進行編輯。在以Unity創建的模擬世界中,時間變得毫無意義,因此制造商們可以根據他們的需要對機器人進行:適當強度的模擬學習。
如果在模擬中期望機器人能夠感知周邊環境,那么該模擬必須在不對環境模擬拓撲和物理精度方面做出妥協的情況下實現對機器人身上的傳感器進行精確建模才能實現。如果該環境中有其他干擾,即人或其他機器人,則模擬過程必須能夠實現代理行為的建模,同時仍然保持其傳感器模擬、拓撲展示和物理建模的準確性。為了讓機器人在所有可能遇到的情況下都能充分得到鍛煉,這個模擬需要運行很多很多次。這就意味著,要實現自主機器人模擬過程就需要工業機器人模擬不常用到的四個特點:靈活性、可擴展性、可量測性和保真度。而Unity正好位于所有這些需求的交叉點,目前Unity平臺中已經包含了更多的功能來更好的支持自主機器人的開發。
通過Unity的Robotics軟件包,用戶將可以訪問已經完成構建的接口,使與ROS或ROS 2的通信變得更加容易。用戶將能夠直接從Unity的URDF?Importer導入帶有機器人配置的URDF文件,并使用Unity高質量、高效的渲染管道和高性能、高精確度的物理模擬來訓練他們的機器人。通過Unity的資產商店,用戶可以瀏覽各種額外的預制環境和道具,以幫助他們為機器人的特定環境和任務建模。只需點擊幾下鼠標,模擬就可以構建并部署到任何主流操作系統上,如Windows 10、Mac OS和Linux等。通過使用C#腳本、Bolt可視化腳本或Unity資產庫中可用的許多腳本和實用工具包,用戶可以繼續自定義特定模擬的功能,以適配特定的用例。
一鍵式ROS 2支持
事實上將Unity項目移動到ROS 2很簡單。在ROS-TCP-Connector包中,Unity添加了一個下拉菜單,允許用戶在ROS和ROS 2集成之間切換。更改協議后,Unity將根據用戶選擇的消息定義和序列化協議自動重新編譯包。用戶只需在自己的項目中進行這種更改,或者選擇示例存儲庫中的Robotics-Nav2-SLAM,即可完成測試。
?
上圖中的示例項目演示了如何使用Unity來模擬在ROS 2中運行的導航系統。導航的概念很簡單,在自主機器人模擬的內容中變化不大。導航算法旨在找到一條直通下一步流程的道路。然而,要從我在什么地方到我要去什么地方,必須首先做SLAM——同時定位和制圖。SLAM描述了一組算法,用來回答“我現在在哪里,我去過哪里?”作為感官和大腦之間處理管道的固有部分,人類一直在執行SLAM。對于自主機器人來說,執行精確的SLAM對于大多數現實環境來說仍然是一個具有挑戰性的命題。一個自主移動機器人到底需要什么,才能讓它始終知道自己在哪里,相對于它曾經去過的任何地方,這仍然是一個活躍的研究領域。對于給定的用例,真正能夠回答這個問題的唯一方法就是進行多次模擬試驗(對于傳感器、算法等)。
在示例中,我們會發現這是一個簡單的倉庫環境,一個帶有模擬雷達和電機控制器的Turtlebot 3移動機器人的完全鉸接模型,以及一個用于構建圖像的Dockerfile,該圖像包含模擬練習Nav2和slam_toolbox堆棧所需的所有ROS 2依賴關系。
?
左圖:在Unity中生成并發送的ROS 2消息的RViz顯示。右圖:TurtleBot 3在Unity中執行SLAM和自主導航。
電話:010-50951355 傳真:010-50951352 郵箱:sales@www.gentlemenlisten.com ;點擊查看區域負責人電話
手機:13811546370 / 13720091697 / 13720096040 / 13811548270 /
13811981522 / 18600440988 /13810279720 /13581546145