掌握机器人的 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 路径?
属性和原语有什么关系?
模式和原语有什么关系?
属性和模式之间有什么区别?
什么是资产实例化?