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