物理 AI 賦能的機器人 需要在物理世界中自主感知、規劃和執行復雜任務,其中包括在動態和不可預測的環境中安全、高效地運輸和操控物體。
借助機器人仿真,開發者可以通過虛擬機器人學習和測試來訓練、模擬和驗證這些先進的系統。在部署之前,這一切都發生在基于物理的數字環境表示中,如倉庫和工廠。
在本文中,我們將向您展示如何利用 ROS 2 軟件包和 NVIDIA Isaac Sim (基于 NVIDIA Omniverse 平臺構建的參考應用) 來模擬和驗證機器人堆棧。我們還將討論 NVIDIA Isaac Sim 可以為 AI 機器人解鎖的用例。
Isaac Sim 基于 Universal Scene Description (USD) 構建,后者是 Isaac Sim 中用于仿真的基礎框架。作為開發者,您可以使用 Isaac Sim 輕松高效地設計、導入、構建和共享機器人模型和虛擬訓練環境。USD 還有助于通過 ROS 2 接口、全功能 Python 腳本以及用于導入機器人和環境模型的通用插件簡化機器人大腦與虛擬世界之間的連接。
支持 ROS 2 工作流的 Isaac Sim?
Isaac Sim 到 ROS 2 的工作流類似于通過 Gazebo 等其他機器人模擬器執行的工作流。在高層次上講,它首先將您的機器人模型引入預構建的 Isaac Sim 環境。下一步是向機器人添加傳感器,然后將相關組件連接到 ROS 2 動作圖形,并通過您的 ROS 2 軟件包控制機器人來模擬機器人。

URDF:Isaac Sim 的通用起點
Isaac Sim 中的 ROS 2 工作流通常始于通過 URDF 導入器導入機器人模型。URDF 是一種廣泛接受的格式,用于在仿真工具中處理機器人模型。
此外,您還可以使用內置向導從第三方工具和服務中引入其他文件、數據和環境。通過回答幾個簡單的問題,您可以找到相關步驟,將正確的資產(例如 robot models、tools 和 sensors)引入仿真場景。

預填充場景和 SimReady 素材?
與任何機器人仿真類似,您需要一個用于仿真機器人動作的場景。從簡單的辦公室環境到倉庫等復雜的大型環境,Isaac Sim 提供了許多預構建的 3D 場景。此外,您還可以通過 USD Connections 從其他工具中引入更復雜的 3D 場景。

除了 3D 場景之外,您還可以利用 一千多個 SimReady 資產 ,這些資產是物理精準的 3D 對象,包含準確的物理屬性、行為和連接的數據流,以在模擬數字世界中表現現實世界。

添加傳感器?
傳感器使機器人能夠感知周圍環境并采取必要的行動。人形機器人、操縱器和自動移動機器人等機器人擁有多個板載傳感器,包括立體攝像頭、2D 和 3D 激光雷達以及雷達。此外,機器人還擁有接觸和慣性傳感器等物理傳感器。
Isaac Sim 包含許多來自 Intel、Orbbec、Stereolabs、HESAI、SICK、SLAMTEC 等制造商的 第三方傳感器 。你還可以為模擬構建自己的自定義傳感器。
利用 NVIDIA RTX 技術,您可以從物理級準確的模擬中生成逼真的圖像。然后,這些渲染的圖像可用于訓練 AI 模型和軟件在環中。
連接到 ROS 2?
Isaac Sim 通過 ROS 2 橋接器擴展程序 連接到 ROS 2.This 擴展程序由專為 ROS 開發者設計的各種 OmniGraph (OG) 節點 組成。OG 節點與 ROS 節點不同。OG 節點提供封裝的功能,可以在連接的圖形結構中使用,以在仿真中執行復雜的任務。
例如,要將時間發布到 ROS,我們將使用兩個主要 OG 節點。第一個節點將讀取模擬時間,即 Isaac 讀取模擬時間節點。此節點的輸出將是 ROS 2 時鐘發布 Clockr OG 節點的輸入。

ROS 2 橋接器提供對各種用于機器人任務的 OG 節點的訪問權限。這些 OG 節點可用于發布來自模擬攝像頭或激光雷達的數據,發布機器人的轉換樹以及訂閱速度消息。還可以修改隊列大小、主題名稱、上下文和 QoS 等參數。可以連接這些節點以構建 ROS 2 Action Graph,從而通過熱門的 ROS 2 軟件包實現導航和操作等復雜任務。
啟用 ROS 2 橋接器可訪問 rclpy (適用于 Python 的 ROS 2 客戶端庫)。這樣就可以編寫包含節點、服務和操作的自定義 ROS 2 代碼,這些節點、服務和操作可以在使用 Python 編寫腳本時直接訪問和修改場景和模擬機器人的數據。
通過在運行 Isaac Sim 之前獲取工作空間,可以啟用 ROS 2 自定義消息支持。還可以編寫自定義 Python 或 C++ OG 節點以滿足任務的特定要求(例如,發布自定義消息主題的聯系人傳感器狀態)。
轉向感知 AI 機器人?
前面的部分詳細介紹了 Isaac Sim 到 ROS 2 的工作流,該工作流應反映您現有的工作流。在以下部分中,我們將了解 Isaac Sim 的一些功能,這些功能適用于將使用感知和認知模型的 AI 機器人。
從簡單模擬擴展到復雜模擬?
要實現大規模自主,您需要在復雜多樣的環境中仿真機器人。Isaac Sim 的 OpenUSD 基礎使其在機器人工作流方面具有高度可擴展性和可擴展性。通過對真實工廠的所有關鍵元素進行建模,您可以快速將仿真從工作單元中的單個機器人擴展到工廠或倉庫等復雜環境中的多個機器人。以下視頻展示了在 Isaac Sim 中運行的復雜仿真示例。
生成用于模型訓練的合成數據?
訓練為這些機器人提供動力支持的感知 AI 模型需要大量數據。在大多數情況下,很難獲取真實數據。此外,真實數據的多樣性可能不足以捕捉大量場景和邊緣案例。
為了克服這種數據差距,可以使用 Isaac Sim 中的傳感器生成合成數據。該功能的主要功能之一是域隨機化,您可以在其中更改模擬場景中的許多參數(包括位置、光照、顏色、紋理、背景等),以生成各種訓練數據集。使用合成數據的另一個好處是,您可以快速迭代以改進模型 KPI。
FoundationPose 是一種用于對象姿態和跟蹤的統一基礎模型,完全基于 synthetic data 進行訓練,無需任何 fine-tuning 即可進行部署。通過從機器人擴展到更大的場景, synthetic data 被用于開發 AI 模型 ,這些模型用于提高零售和倉庫環境的運營效率。
多智能體軟件在環測試?
設施和倉庫通常位于多種類型的機器人中,例如工業機械臂、AMRs,甚至是需要自主執行復雜任務的人形機器人。Isaac Sim 可用于測試和驗證在現實世界中難以涵蓋的眾多場景中運行自己的感知堆棧的整個機器人群的行為和性能。

更多工作流程和用例?
Isaac Sim 可以靈活地根據您的特定需求創建定制的機器人模擬器和擴展程序,從而擴展到其他工作流程和用例。這種靈活性支持高級機器人學習技術和可擴展訓練,使其能夠適應各種用例。
機器人學習?
Isaac Sim 已進一步擴展到所需的機器人學習,以確保機器人能夠以可重復和高效的方式執行任務。例如, Isaac Lab ,這是一個基于 Isaac Sim 構建的輕量級開源參考框架,用于逼真和快速的模擬。Isaac Lab 使用強化學習和模仿學習等方法,為開發者提供在多 GPU 和多節點系統上擴展機器人策略訓練的方法。
自定義模擬器和擴展程序?
Isaac Sim 還可用于為您的用例構建自定義機器人模擬器或擴展程序。 Foxglove ,是 NVIDIA Inception 計劃為初創公司的成員,該公司為機器人開發者構建了可視化工具,使他們能夠獲得切實可行的見解,從而促進更有效的協作、驗證和更快的迭代。
Foxglove 擴展程序使用 WebSocket 協議 將任何 Isaac Sim 項目無縫鏈接到 Foxglove 可視化界面 。它會自動檢測模擬階段中的所有攝像頭、IMUs 和 articulations,從而在 Foxglove 中提供其數據以及完整的 Transform Tree。為防止數據流過多,只有當用戶在 Foxglove 中 toggled on 時,才會查詢 sensors。

開始使用機器人仿真?
本文介紹了如何將現有 ROS 工作流連接到 Isaac Sim 進行測試和驗證。此外,我們還探討了 Isaac Sim 支持的一些功能和工作流,這些功能和工作流可用于生成合成數據,以及對支持感知 AI 的機器人進行軟件在環測試。
要開始使用 NVIDIA Isaac Sim,請 免費下載標準許可證 。要開始在 Isaac Sim 上使用 ROS 工作流,請查看以下資源:
通過 NVIDIA 開發者論壇 、 Discord 服務器 和 YouTube 頻道 加入機器人社區。通過 LinkedIn 、 Instagram 、 X 和 Facebook 保持最新狀態。
?