掌握机器人的 Omniverse#

NVIDIA Omniverse 提供了一套丰富的用于 3D 内容工作流程的工具。Omniverse 中有三个主要组件(与机器人技术相关):

  • USD Composer: 这是基于动画(最初源自 Pixar)社区中使用的一种新颖文件格式(Universal Scene Description),在 Omniverse 中被应用

  • PhysX SDK: 这是 Omniverse 背后的主要物理引擎,利用基于 GPU 的并行化处理大规模场景

  • 支持 RTX 的渲染器: 这利用 NVIDIA RTX GPU 中的光线追踪核心实现实时基于物理的渲染

其中,前两者需要更深入的理解才能开始使用 Omniverse 及其组成应用程序(Isaac Sim 和 Isaac Lab)。

需要学习的主要内容:

  • 如何高效使用 Composer GUI?

  • USD prims 和 schemas 是什么?

  • 如何组合一个 USD 场景?

  • 在 USD 中引用和载荷(payloads)的区别是什么?

  • 什么是场景图实例化(scene-graph instancing)?

  • 如何在 prims 上应用 PhysX schemas?所有可能的 schemas 是什么?

  • 如何在 USD 中编写基本操作来创建 prims 并修改它们的属性?

第一部分: 使用 USD Composer#

虽然 NVIDIA Omniverse 上有很多 视频教程文档资料 ,但要浏览所有这些资源将花费大量时间和精力。因此,我们精心策划了这些资源,以指导您专门学习在机器人技术中使用 Omniverse。

Omniverse 和 USD 简介

使用 Omniverse USD Composer

材质和 MDL

Omniverse 物理和 PhysX SDK

导入资产

第二部分: 在 Omniverse 中编写脚本#

上述链接主要介绍了如何使用 USD Composer 及其功能,通过 UI 操作。然而,开发人员通常需要编写脚本来执行操作。特别是当您想要自动化某些任务或创建使用 Omniverse 作为后端的自定义应用程序时。本节将介绍如何在 Omniverse 中编写脚本。

USD 是 Omniverse 操作的主要文件格式。因此,修改 USD 的 APIs(来自 OpenUSD)是 Omniverse 的核心。大多数 APIs 使用 C++ 编写,并为它们提供了 Python 绑定。因此,在 Omniverse 中编写脚本,您需要了解 USD 的 APIs。

备注

虽然 Isaac Sim 和 Isaac Lab 尝试 “减轻” 用户对核心 USD 概念和 APIs 的理解,但一旦开始深入了解代码库并为自己的应用程序进行修改,了解这些基础知识仍然会有所帮助。

在深入研究 USD 脚本之前,熟悉 USD 中使用的术语是很重要的。我们建议通过 Houdini 提供的以下 USD 基础介绍 ,Houdini 是一款 3D 动画软件。请确保阅读以下部分:

作为理解的测试,确保您能回答以下问题:

  • 什么是 prims?在场景中,什么是 prim 路径?

  • 属性和原语有什么关系?

  • 模式和原语有什么关系?

  • 属性和模式之间有什么区别?

  • 什么是资产实例化?

第三部分: 更多资源#