一直以來,為機器人仿真構建逼真的 3D 環境是一項非常耗費人力的工作,往往需要數周的手動建模與配置。如今,借助生成式世界模型,開發者只需輸入文本提示,就能在極短時間內生成一個逼真、可直接用于仿真的虛擬世界。將開源機器人參考框架 NVIDIAIsaac Sim與生成式模型,比如World Labs 推出的 Marble等相結合,即可通過文本或圖像提示,為機器人開發創建完整的 3D 場景。
World Labs 近期發布了題為“借助 Marble 實現機器人仿真規模化”的案例研究,展示了研究人員如何利用 Marble 的生成式虛擬世界,加速機器人的訓練、測試及仿真到現實的遷移。
本教程將帶你完成一套端到端工作流:
場景導出:從 Marble 資源庫中導出 Gaussian splats(PLY 格式)與碰撞網格(GLB 格式)
場景格式轉換:通過 NVIDIA Omniverse NuRec 將 Marble 導出文件轉換為 USD 格式
場景導入與構建:將轉換后的文件導入 NVIDIA Isaac Sim
在Isaac Sim中開展仿真:添加機器人并運行仿真
完成全部步驟后,你將獲得一個支持機器人物理交互的逼真的虛擬環境,且整個生成過程耗時遠低于傳統方法。接下來,讓我們正式開始。
步驟1:從World Labs Marble獲取3D廚房場景
World Labs Marble 可生成包含豐富視覺細節與幾何數據(如深度信息、表面法向量)的場景,同時輸出可用于物理仿真的碰撞網格文件。
本教程不會從零生成新的廚房場景,而是直接使用 Marble 示例資源庫中現成的廚房場景模板。這一做法既能節省時間,又能確保我們獲得一個開箱即用的逼真的仿真環境。所選場景為細節豐富的廚房與客廳室內空間,內置全套家具及常見廚房用品。
Marble廚房場景導出步驟
登錄Marble平臺:在網頁端登錄你的 Marble 賬戶,登錄后導航至預制廚房場景模板。
打開場景:點擊目標場景,在 Marble 3D 查看器中加載。你可以像玩游戲一樣,通過 WASD 按鍵與鼠標操控視角瀏覽場景,確認場景效果是否符合預期。
下載場景文件:在 Marble 界面底部工具欄找到“下載”按鈕。
選擇“Splats(PLY)”下載場景的 Gaussian splat 表示文件。Marble 提供的 Gaussian splat 文件為 .ply 格式,內含數百萬個半透明粒子,可高精度還原場景細節。
選擇“Collider Mesh(GLB)”下載場景的三角網格文件。該文件為標準 glTF 模型格式,包含廚房場景的完整幾何結構。
注意:在 World Labs Marble 中導出 PLY 與 GLB 文件需訂閱付費套餐。若暫未訂閱,可使用 Marble 資源庫提供的示例 PLY 與 GLB 文件。本教程將以廚房場景的示例PLY與GLB文件進行演示,建議將文件分別命名為 MarbleKitchenwithLight.ply 和 MarbleKitchenwithLight_collider.glb 保存。
至此,我們已獲取兩種格式的廚房環境文件——Gaussian splats(PLY)與三角網格格式(GLB),二者功能各有側重:PLY 文件負責呈現場景的完整視覺細節,GLB 文件則提供仿真所需的物理碰撞幾何結構。
步驟2:將下載的PLY文件轉換為USDZ格式
NVIDIA Isaac Sim 采用通用場景描述(USD)作為標準場景格式。若要在 Isaac Sim 中使用 Marble 生成的場景,需先將導出的 PLY 文件轉換為 USD 格式,導入后,再借助 NVIDIA Omniverse NuRec 的功能,高效渲染基于點云的場景。
NuRec 的核心是基于高斯模型的重建與渲染算法 3DGUT。NVIDIA3DGRUT 代碼庫中提供了將 .ply splat 文件轉換為 USDZ 文件的腳本,USDZ 是一種基于 ZIP 壓縮的 USD 專用歸檔格式。具體轉換步驟如下:
1. 配置 3DGRUT 環境:克隆 3DGRUT 代碼庫并完成環境部署。本教程將在名為“3dgrut”的獨立 Conda 環境中進行配置。
該環境需運行于 Linux 系統,且需配備 NVIDIA GPU、CUDA 11.8 及以上版本、GCC 11 及以下版本。若你已擁有包含 PyTorch 等必要依賴庫的 Python 環境,也可直接在該環境中運行格式轉換腳本。
git clone --recursive https://github.com/nv-tlabs/3dgrut.git cd 3dgrut chmod +x install_env.sh ./install_env.sh 3dgrut conda activate 3dgrut
2.PLY 轉 USDZ 格式:完成 3DGRUT 環境配置后,運行以下腳本,將 Marble 點云文件轉換為 USDZ 格式:
$ python -m threedgrut.export.scripts.ply_to_usd \
/path/to/MarbleKitchenwithLight.ply \
--output_file /path/to/MarbleKitchenwithLight.usdz
該指令將讀取 .ply 文件并生成 .usdz 文件。USDZ 采用自定義 USD 架構(基于 UsdVolVolume 的擴展)存儲 Gaussian splats 數據,確保 Omniverse 可對其進行高效渲染。本質上,該格式將點云嵌入為體素基元,完整保留 Marble 場景的視覺逼真度。關于 NuRec 神經體渲染技術及其在 Omniverse 中的實現細節,可參考NuRec 渲染技術文檔。
此時,我們已獲得兩個關鍵文件:
MarbleKitchenwithLight.usdz——用于呈現視覺效果的 splat 場景文件
MarbleKitchenwithLight_collider.glb——用于物理仿真的碰撞網格文件
步驟3:將USDZ/GLB文件導入Isaac Sim并構建仿真場景
生成 USDZ 文件后,下一步需將廚房場景導入 Isaac Sim,完成網格與 Gaussian splats 的對齊,并添加物理屬性與光照系統,使其具備機器人交互條件。
由于需要編輯場景內容,我們需先解壓 USDZ 歸檔文件,打開生成的 default.usda 文件,再按以下步驟操作:
高斯體素模型幾何對齊:
為確保導入場景的原點與縮放比例適配 Isaac Sim,需執行以下對齊操作:
在場景中創建一個地面平面,作為導入高斯體素模型的地面參考基準,同時充當平滑的碰撞面。
導入的高斯體素模型包含在“xform”基元中,可通過該基元調整模型位置。選中 xform 基元,修改其“平移”參數,使廚房場景的地面與創建的地面平面完全貼合。以地面平面為視覺參考,移動高斯體素模型,直至點云模型的地面與參考平面重合。
生成的場景可能與真實世界比例存在偏差,可借助一個邊長為 1 米的默認立方體作為參考,調整場景在 X、Y、Z 三個軸向上的縮放比例。在本教程的廚房場景示例中,將縮放因子設為 2 時,櫥柜、爐灶等物體的尺寸基本符合真實比例。
調整 xform 基元的旋轉參數,確保高斯點云模型與地面平面精準對齊。一個簡便的驗證方法是:以廚房墻面瓷磚為參考,旋轉高斯模型,使瓷磚與地面平面保持完全平行。對齊完成后,將地面平面下移至與廚房地面完全貼合的位置。
為場景添加物理屬性與光照:
完成高斯模型對齊后,需為場景添加物理屬性與光照系統,確保陰影效果與物體交互符合物理規律。
我們可再次使用之前創建的立方體,調整場景縮放比例,同時測試陰影與物理效果:
在地面平面的碰撞網格設置中,啟用“無光物體”屬性,確保其能正常接收陰影。
在場景中添加穹頂光源。
在場景窗口中選中“gauss”體素基元,在屬性窗口中向下滾動至“原始 USD 屬性(Raw USD Properties)”,點擊展開更多設置;找到“代理(proxy)”字段,點擊“添加目標(Add Target)”;最后選擇地面平面的碰撞網格(GroundPlane CollisionMesh)作為關聯目標。
移動立方體,確認陰影效果是否符合預期。
將立方體設置為帶碰撞體的剛體,點擊仿真運行按鈕,此時立方體應能與地面平面產生符合預期的交互。但需注意,此時立方體會“直接穿過”高斯模型,因此我們還需為高斯模型配置物理屬性。
高斯體素模型的碰撞信息存儲在 GLB 文件中,需導入該網格文件并與高斯體素模型對齊,同時啟用其碰撞體功能:
將 MarbleKitchenwithlight_collider.glb 文件拖拽至高斯體素模型的層級下,確保層級結構正確,此時碰撞網格將顯示在場景中。
適當縮小場景視圖,將碰撞網格的 X 軸旋轉角度設為 -90°,使其坐標系統與高斯體素模型保持一致,完成渲染模型與碰撞網格的精準對齊。
為導入的碰撞網格啟用物理碰撞體預設。
關閉碰撞網格的可見性(因其與高斯體素模型重疊)。此操作僅影響場景視覺效果,物理仿真仍會使用已配置的碰撞體。
至此,場景的幾何結構、物理屬性與光照系統均已配置完畢:高斯體素模型負責呈現逼真的視覺效果,GLB 碰撞網格與地面平面則處理物理碰撞與陰影計算。現在,場景已具備添加機器人的條件。
步驟4:添加機器人并運行仿真
完成廚房場景的對齊與物理屬性配置后,最后一步是添加機器人,通過操控機器人驗證場景搭建效果:
將 NVIDIA Nova Carter 機器人拖拽至場景中。
為機器人添加差分控制器,并啟用鍵盤控制功能。系統將自動生成所需的動作圖譜,支持通過鍵盤操控機器人移動。
切換至機器人搭載的視角,點擊播放按鈕。使用 WASD 鍵操控機器人移動,同時驗證其是否遵循廚房場景的幾何約束:機器人應能穩定停留在地面上,與操作臺及家具發生碰撞,且不會穿透場景模型。
此時,Marble 廚房場景已作為支持物理仿真的環境,完全集成至 Isaac Sim 中,你可通過交互方式操控機器人在場景內移動。
總結
本教程演示了如何下載一個包含完整幾何結構的 AI 生成 3D 環境,并將其導入 Isaac Sim 構建可直接用于仿真的場景,最終在 AI 生成的虛擬世界中完成機器人部署。這套端到端流程僅需數小時即可完成。這種快速生成多樣化逼真虛擬世界的能力,為機器人仿真開發的規模化落地提供了可能。借助 Marble 與 Isaac Sim,只要你能描述出目標場景,當天即可開展機器人測試工作。
想要探索更多功能,可嘗試以下操作:
使用 World LabsMarble創建自定義環境:支持通過文本描述、單張圖片、多角度照片甚至粗略的 3D 布局作為輸入,生成專屬仿真場景。
基于輸入圖像創建自定義環境并用于 Isaac Sim:可借助 NVIDIA 研究項目Lyra實現——該項目基于視頻擴散模型,提供生成式 3D 場景重建能力。
更多仿真技術創新,敬請關注SIGGRAPH Asia的有關信息,與 NVIDIA 技術專家深入交流。SIGGRAPH Asia 于 12 月 15 至 18 日在香港會議展覽中心舉辦。
關于作者
Wonsik Han 是 NVIDIA 自動駕駛汽車集團的高級產品經理。他在全球汽車制造商和自動駕駛初創公司擔任戰略、業務開發和產品管理職務方面擁有十多年的經驗。Wonsik 擁有杜克大學工商管理碩士學位。
Rishabh Chadha 是 NVIDIA 的嵌入式工程實習生—— AI ,他專注于為 NVIDIA Jetson 平臺集成深度學習和機器人技術框架。他將于 2021 年畢業于伍斯特理工學院,獲得機器人學碩士學位。他的興趣主要包括深度學習、醫學成像和機器人感知。Daniel Lee 是 NVIDIA 的產品經理,專注于專業可視化解決方案的軟件。
Isaac Deutsch 是 NVIDIA 的一名高級研究科學家,將計算機視覺、成像和實時計算機圖形技術相結合。他為 Instant-NGP、NuRec 和 3DGRUT 做出了貢獻。他目前的工作重點是通過計算攝影實現高保真 3D 捕捉。Isaac 擁有蘇黎世聯邦理工學院的機器人碩士學位,并于 2018 年加入 NVIDIA。
Raffaello Bonghi 是 AI & Robotics 的開發者關系經理。自 2015 年以來,他一直是 NVIDIA Jetson 冠軍,設計用于戶外導航和教育應用的多 ROS / ROS 機器人。此外,他還參與為零售和機器人領域的眾多國際客戶開發人工智能解決方案。拉斐洛擁有博士學位。在控制理論和工業自動化領域,專注于機器人技術。
-
機器人
+關注
關注
213文章
31071瀏覽量
222162 -
NVIDIA
+關注
關注
14文章
5592瀏覽量
109711 -
仿真
+關注
關注
54文章
4482瀏覽量
138236
原文標題:借助 NVIDIA Isaac Sim 與 World Labs Marble 加速機器人仿真環境構建
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
用NVIDIA Omniverse ISAAC Sim加速機器人仿真
NVIDIA Isaac Sim 2022.1版本的亮點及功能
NVIDIA AI機器人開發— NVIDIA Isaac Sim入門
開發者使用NVIDIA Omniverse和Isaac Sim構建機器人
NVIDIA 公開課 | AI 機器人開發第二講 — Isaac Sim 高階開發
CES | NVIDIA 發布智能機器人高級模擬引擎 Isaac Sim 的重大更新
CES | 用 NVIDIA Isaac Sim 2022.2 模擬未來智能機器人
使用 NVIDIA Isaac Sim、ROS 和 Nimbus 開發多機器人環境
使用 NVIDIA Isaac 仿真并定位 Husky 機器人
智元機器人基于NVIDIA Isaac GR00T打造高效仿真數據采集方案
借助NVIDIA Isaac Sim與World Labs Marble加速機器人仿真環境構建
評論