NVIDIA Isaac Sim与Marble加速机器人仿真环境构建

NVIDIA Isaac Sim与Marble加速机器人仿真环境构建 使用 NVIDIA Isaac Sim 和 World Labs Marble 更快地仿真机器人环境构建用于机器人仿真的逼真 3D 环境传统上是一个劳动密集型过程通常需要数周的手动建模和设置。现在借助生成式世界模型您可以在极短的时间内从文本提示转换到一个逼真、可用于仿真的世界。通过结合开源机器人参考框架 NVIDIA Isaac Sim 与 World Labs 的 Marble 等生成模型您可以从文本或图像提示创建用于机器人开发的完整 3D 场景。World Labs 最近发布了案例研究“使用 Marble 扩展机器人仿真”展示了研究人员如何利用 Marble 的生成式世界加速机器人训练、测试和仿真到现实的迁移。在本教程中我们将逐步介绍一个端到端的工作流程场景导出从 Marble 画廊将现有场景导出为高斯泼溅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)”下载高斯泼溅表示。Marble 的高斯泼溅以.ply文件形式提供其中包含数百万个代表场景的半透明粒子具有高保真度。选择“Collider Mesh (GLB)”下载场景的三角形网格。这将包含作为标准 glTF 模型的厨房几何体。请注意在 World Labs Marble 中导出 PLY 和 GLB 文件需要付费计划。如果没有World Labs 从其画廊提供示例 PLY 和 GLB 文件。本教程中我们将使用厨房场景 PLY 和 GLB 文件作为示例。将文件保存为MarbleKitchenwithLight.ply和MarbleKitchenwithLight_collider.glb。至此我们有了两种形式的厨房环境——高斯泼溅和三角形网格。每种形式服务于不同的目的PLY 捕获场景的完整视觉细节而 GLB 提供仿真中物理和碰撞所需的网格几何体。步骤 2将下载的 PLY 转换为 USDZNVIDIA 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。gitclone--recursivehttps://github.com/nv-tlabs/3dgrut.gitcd3dgrutchmodx 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-mthreedgrut.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– 用于物理的碰撞体网格步骤 3将 USDZ/GLB 导入 Isaac Sim 并构建场景生成 USDZ 文件后下一步是将厨房场景导入 Isaac Sim将网格与高斯泼溅对齐并添加物理和光照使其为交互做好准备。由于我们要编辑场景内容需要解压 USDZ 归档文件。解压文件并打开生成的default.usda文件然后执行以下步骤几何对齐高斯体积我们想确保导入场景的原点和比例与 Isaac Sim 匹配。为此向场景添加一个地面平面。这将用作导入高斯体积的地面参考并作为一个光滑的碰撞体。导入的高斯体积包含在一个 “xform” 图元中用于变换体积。为了使体积与地板对齐选择 xform 图元并调整其“平移”值使厨房地板正好位于地面平面上。使用地面平面作为视觉参考移动高斯体积直到点云的地板与其重合。生成的场景可能比现实世界的比例更小或更大。为了大致匹配现实世界的比例我们可以使用一个默认的立方体作为视觉参考其边长为 1 米。插入一个立方体对象后我们可以相应地调整 X、Y 和 Z 的整体缩放。对于我们的厨房场景示例缩放因子为 2 即可得到大致合适的尺寸例如对于橱柜和炉灶。最后微调 xform 图元的旋转以确保高斯点云尽可能准确地与地面对齐。验证这一点的一个简单方法是使用厨房墙上的瓷砖作为参考并旋转高斯使它们与创建的地面平面完全平行。对齐后将地面平面移回下方使其正好位于厨房地板水平。为场景添加物理和光照现在我们已经对齐了导入的高斯我们希望添加物理和光照以便阴影和物体交互按预期工作。我们将使用之前创建的立方体再次调整场景比例以测试阴影和物理。在地面平面的碰撞网格中打开“matte object”属性。这确保它能正常作为阴影接收器工作。向场景添加一个穹顶光。在“stage”窗口中选择“gauss”体积图元然后在“property”窗口中向下滚动到“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 Labs Marble 创建您自己的自定义环境 – 您可以从文本描述、单张图像、不同角度的多张照片甚至是粗略的 3D 布局开始。使用输入图像创建您自己的自定义环境并将其用于 Isaac Sim配合 LyraNVIDIA 的一个通过视频扩散模型进行生成式 3D 场景重建的研究计划。了解有关仿真创新的更多信息并与 NVIDIA 专家在 SIGGRAPH Asia 会面该会议于 12 月 15 日至 18 日在香港会议展览中心举行。FINISHED更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手或者 我的个人博客 https://blog.qife122.com/对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享