时间:2026-03-22 13:04
人气:
作者:admin
使用 NVIDIA Isaac Sim 和 World Labs Marble 更快地仿真机器人环境
构建用于机器人仿真的逼真 3D 环境传统上是一个劳动密集型过程,通常需要数周的手动建模和设置。现在,借助生成式世界模型,您可以在极短的时间内从文本提示转换到一个逼真、可用于仿真的世界。通过结合开源机器人参考框架 NVIDIA Isaac Sim 与 World Labs 的 Marble 等生成模型,您可以从文本或图像提示创建用于机器人开发的完整 3D 场景。
World Labs 最近发布了案例研究“使用 Marble 扩展机器人仿真”,展示了研究人员如何利用 Marble 的生成式世界加速机器人训练、测试和仿真到现实的迁移。
在本教程中,我们将逐步介绍一个端到端的工作流程:
通过本教程,您将获得一个逼真的虚拟环境,机器人可以在其中进行物理交互,并且其生成速度远远快于传统方法。让我们开始吧。
World Labs Marble 生成丰富的视觉细节和几何数据,如深度和表面法线,以及可用于物理仿真的可导出碰撞体网格。本教程中,我们不会从头生成一个新的厨房,而是使用 Marble 示例库中提供的预制的厨房场景。这可以节省时间,并确保我们有一个现成的逼真环境。所选场景是一个详细的厨房和客厅内部,配有家具和典型的厨房物品。
从 Marble 导出厨房世界的步骤:
.ply 文件形式提供,其中包含数百万个代表场景的半透明粒子,具有高保真度。请注意,在 World Labs Marble 中导出 PLY 和 GLB 文件需要付费计划。如果没有,World Labs 从其画廊提供示例 PLY 和 GLB 文件。本教程中,我们将使用厨房场景 PLY 和 GLB 文件作为示例。将文件保存为 MarbleKitchenwithLight.ply 和 MarbleKitchenwithLight_collider.glb。
至此,我们有了两种形式的厨房环境——高斯泼溅和三角形网格。每种形式服务于不同的目的:PLY 捕获场景的完整视觉细节,而 GLB 提供仿真中物理和碰撞所需的网格几何体。
NVIDIA Isaac Sim 使用通用场景描述(USD)作为其场景格式。为了在 Isaac Sim 中使用我们由 Marble 生成的世界,我们需要将导出的 PLY 转换为 USD 格式。然后,我们将利用 NVIDIA Omniverse NuRec 的能力来高效渲染基于点的场景。
NuRec 的核心是基于高斯的重建和渲染算法 3DGUT。NVIDIA 3DGRUT 仓库包含一个脚本,用于将 .ply 泼溅文件转换为 USDZ 文件,这是一个包含 USD 特定数据的 zip 压缩包。我们将使用它来转换我们的 Marble PLY:
设置 3DGRUT:克隆 3DGRUT 仓库并安装其环境。在本教程中,我们在一个名为 “3dgrut” 的专用 Conda 环境中设置 3DGRUT。
git clone --recursive https://github.com/nv-tlabs/3dgrut.git
cd 3dgrut
chmod +x install_env.sh
./install_env.sh 3dgrut
conda activate 3dgrut
该环境需要配备 NVIDIA GPU、CUDA 11.8+ 和 GCC 11 或更低版本的 Linux 系统。如果您已经拥有一个包含所需库(如 PyTorch 等)的 Python 环境,也可以选择在该环境中直接运行转换 Python 脚本。
将 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 的扩展)来表示高斯泼溅,以便 Omniverse 能够渲染。本质上,它将点云嵌入为体积图元,保留了 Marble 场景的视觉保真度。
现在,我们有了一个 USDZ 文件和一个 GLB 文件:
MarbleKitchenwithLight.usdz – 视觉泼溅世界MarbleKitchenwithLight_collider.glb – 用于物理的碰撞体网格生成 USDZ 文件后,下一步是将厨房场景导入 Isaac Sim,将网格与高斯泼溅对齐,并添加物理和光照,使其为交互做好准备。由于我们要编辑场景内容,需要解压 USDZ 归档文件。解压文件并打开生成的 default.usda 文件,然后执行以下步骤:
几何对齐高斯体积:
我们想确保导入场景的原点和比例与 Isaac Sim 匹配。为此:
为场景添加物理和光照:
现在我们已经对齐了导入的高斯,我们希望添加物理和光照,以便阴影和物体交互按预期工作。
我们将使用之前创建的立方体再次调整场景比例,以测试阴影和物理。
高斯的碰撞信息在 GLB 文件中。导入此网格,将其与高斯体积对齐,并将其启用为碰撞体。
MarbleKitchenwithlight_collider.glb 文件拖放到高斯体积下。确保它位于高斯体积下,因为层级结构很重要。碰撞体将显示在场景中。场景的几何、物理和光照现在都已就绪:高斯体积提供逼真的视觉效果,而 GLB 碰撞体和地面平面处理物理和阴影。场景现在已准备好添加机器人。
厨房场景对齐并启用物理后,最后一步是添加机器人并驾驶它以验证设置。
至此,Marble 厨房场景已完全集成到 Isaac Sim 中,成为一个启用物理的环境,您可以交互式地驾驶机器人穿过其中。
在本教程中,我们下载了一个包含几何结构的 AI 生成的 3D 环境,然后将其带入 Isaac Sim 作为一个可用于仿真的场景。我们在一个 AI 生成的世界中设置了机器人。这里的端到端工作流程现在只需几个小时即可完成。这种快速生成各种高保真世界的能力,为仿真中的机器人开发解锁了更高的可扩展性。借助 Marble 和 Isaac Sim,只要您能描述一个世界,您很可能就能在同一天开始测试它。
要了解更多信息,请尝试以下操作:
了解有关仿真创新的更多信息,并与 NVIDIA 专家在 SIGGRAPH Asia 会面,该会议于 12 月 15 日至 18 日在香港会议展览中心举行。FINISHED
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)