隨著現實場景中部署的自主機器人越來越多,對高保真多機器人仿真環境的需求也在迅速增長。本文將回顧筆者過去在 Cogniteam 使用的仿真多機器人的方法、目前使用NVIDIA Isaac Sim所取得的進步,以及 Nimbus 如何通過 Isaac Sim 加速多機器人仿真的開發和維護。
使用 Unreal Tournament
游戲引擎進行多機器人仿真
大約 20 年前,我和 Cogniteam 的朋友們開始進行機器人開發。大家想要構建一個用于多機器人任務分配和團隊工作的機器人框架。該系統最初被命名為 CogniTAO,后來又發布了簡化版本 ROS decision_making。
當時,多機器人的用例還很少,而且也無法對這些機器人進行 3D 仿真。所以我為 Unreal Tournament 2000-2004 游戲引擎寫了一個可以仿真四個機器人的 mod。我們這支由四名程序員組成的小團隊花了大約 3 年時間,開發出一個可以順利運行 15 分鐘的仿真環境。
圖 1. 四個機器人的仿真(左)
以及這些機器人的視頻(右)
該環境能夠在五臺先進的臺式電腦上仿真四個帶有攝像頭、Hokuyo 激光雷達、測向儀和測繪功能的機器人,并且能夠遠程接收每臺機器人的視頻資料。我們的一位工程師寫了一個 C++ 的 TCP 客戶端,可以直接從本地網絡傳輸游戲引擎的數據并全屏顯示。必須嚴格按照順序運行代碼,這樣才能讓機器人按時抵達正確的位置。
使用 Gazebo 進行多機器人仿真
到了 2013 年,在 Gazebo 成為實際中的機器人仿真平臺后,我們把工作轉移到了 Gazebo 上。三個程序員花了大約 2 年時間,在兩臺英特爾 Xeon 上仿真了 10 個機器人。他們使用了 ROS move_base 導航堆棧和 OpenCV Hough Circle Transform 進行模板檢測,在 TensorFlow 出現之前,機器人團隊都是用這個辦法來做演示的。我們當時的同事花了 6 個月的時間構建了 RQT 插件,來控制和顯示來自多個機器人的數據串流(圖 2)。
圖 2. 10 個帶有 RQT 插件的機器人
所拍攝的視頻影像和地圖視圖
這些機器人必須能夠相互通信,也必須能夠在無法通信的情況下運行。為了實現這一點,每個機器人都必須運行自己的 ROS 主程序,并通過 ROS 多主程序網絡進行同步。
使用 NVIDIA Isaac Sim 進行多機器人仿真
幾個月前,我請 Cogniteam 算法團隊的計算機科學學生 Saar Moseri 使用云機器人生態 Nimbus 和 NVIDIA Isaac Sim 建立了一個多機器人仿真場景。我和內部測試團隊都希望使用 Nimbus 來控制機器人,并查看它們所產生的數據。
Saar 花了大約兩周時間熟悉環境和配置系統。圖 3 所示的是這項工作的成果,運行在 Cogniteam 實驗室一臺裝有 NVIDIA GeForce RTX 3080 的標準(單體)臺式機上。
圖 3. NVIDIA Isaac Sim 多機器人默認設置
Saar 依據了NVIDIA NGC 上的 Isaac Sim 文檔來安裝和設置環境。他使用 Nimbus 在仿真機上設置了代理并創建了一個網關節點,通過 ROS 接收來自仿真機的數據。
圖 4. Nimbus 機器人編輯器(左)
和 Nimbus 配置編輯器(右)
然后我們創建了圖 5 所示的節點配置。
圖 5. 帶有 move_base 導航的 Nimbus 簡單任務配置
這兩個已經容器化的構建模塊分別是一個網關節點和一個 move_base 導航的節點。該配置被部署到 Cogniteam 實驗室仿真桌面上運行的代理中。其他更復雜的配置連同來源,包括用于 GMapping、路徑追蹤等的節點,都可以在 Nimbus Hub(https://app.cognimbus.com/nimbushub)獲取。
我和團隊都被這種方法的無限可能性震驚到了。在上述配置中,仿真感官數據從Isaac Sim通過 ROS 網關到達,ROS 網關同時支持 ROS 和 ROS 2。Nimbus 可實現查看和控制功能。
這個開箱即用的設置使我們的團隊能夠執行基本的仿真任務,并在實驗室里仿真機器人車隊的控制。不僅如此,還可以完成許多其他功能,比如記錄機器人的仿真運行情況和感官數據、通過遠程 SSH 連接到仿真機器、對仿真數據進行全局監控,甚至向驗證團隊發送有關仿真進展的電子郵件和短信通知。所有這些都可以在一個網絡瀏覽器上完成。
將 Isaac Sim 與 Nimbus 組合成統一的系統,其功能與現有的云仿真產品相似,但在本地機器上運行且不會產生額外的云仿真計算成本。此外,它還開辟了一些新的先進仿真流程,比如硬件在環仿真等。這在云中運行仿真時是不可能做到的。圖 6 顯示了 Nimbus 中的控制、導航和繪圖情況。
圖 6. Nimbus 機器人 WebRTC 視頻監控(左)
以及 Nimbus 地圖視圖和自主控制(右)
如要拷貝上述提到的設置,請參考 Isaac Simdocumentation(https://catalog.ngc.nvidia.com/orgs/nvidia/containers/isaac-sim)文檔。然后在 Nimbus 上創建一個免費賬戶,登錄后按照說明即可創建一個機器人。
在將機器人代理安裝在 Isaac Sim 以 headless 模式運行的桌面上后,您就能夠通過遠程 SSH 配置仿真并在 Nimbus 網站上監控仿真機。
視頻1. Nimbus 和 NVIDIA Isaac Sim 演示視頻
您可在 Nimbus hub 部署 Isaac Sim 配置。由于一切都已經容器化(包括 Isaac Sim)并且可在瀏覽器上進行控制,因此不需要安裝任何應用。機器上的代理將設置好執行所需的一切。
然后,您可以在該代理的監控頁面上監控任何與您的設置相關的數據。在代理設置中,您可以通過在 ROS 串流上添加條件來定義通知,比如:
“if GoalStatus == ABORTED”
sendsms/mailtosimulation@your-company.com
總結
仿真是成功部署自主機器人的關鍵。多次運行同一場景對測試來說至關重要,但多機器人仿真則有所不同。開發一個高保真的多機器人仿真環境十分復雜且耗時,但正如本文所述,您可以使用 NVIDIA Isaac Sim 和 Nimbus 簡化這一過程。
如要進一步了解 Isaac Sim,請訪問 NVIDIA DeveloperIsaac ROS Forum (https://forums.developer.nvidia.com/c/agx-autonomous-machines/isaac/67)。
點擊“閱讀原文”,或掃描下方海報二維碼,觀看 NVIDIA 創始人兼 CEO 黃仁勛在 COMPUTEX 2023 的主題演講直播回放,主題演講中文字幕版已上線,了解 AI、圖形及其他領域的最新進展!
原文標題:使用 NVIDIA Isaac Sim、ROS 和 Nimbus 開發多機器人環境
文章出處:【微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
-
英偉達
+關注
關注
22文章
3748瀏覽量
90843
原文標題:使用 NVIDIA Isaac Sim、ROS 和 Nimbus 開發多機器人環境
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論