目录
4.1. Hello World
NVIDIA Omniverse™ Kit是Omniverse Isaac Sim用来构建其应用程序的工具包,提供了一个用于脚本编写的Python解释器。这意味着每个GUI命令以及许多附加功能都可作为Python API使用。然而,使用Pixar的USD Python API来与Omniverse Kit进行交互的学习曲线陡峭,步骤经常繁琐。因此,我们提供了一组设计用于在机器人应用程序中使用的API,这些API抽象出了USD API的复杂性,并将多个步骤合并为一个以执行频繁的任务。
在本教程中,我们将介绍核心API的概念以及如何使用它们。我们将从将一个立方体添加到空舞台开始,并在此基础上构建,创建一个同时执行多个任务的多机器人场景,如下所示。
4.1.1. Learning Objectives
这个教程系列介绍了核心API。在本教程之后,你将学会:
- 根据核心API创建世界和场景。
- 如何在Omniverse Isaac Sim中使用Python添加刚性体到舞台并进行模拟。
- 在扩展工作流程与独立工作流程以及在Jupyter Notebook中运行Python的区别。
10-15分钟教程
4.1.2. Getting Started
先决条件:
本教程需要对Python和异步编程有中级知识。
在开始本教程之前,请下载并安装Visual Studio Code。
在开始本教程之前,请查阅Isaac Sim界面和Isaac Sim工作流程。
首先打开“Hello World”示例。转到顶部菜单栏,点击Isaac Examples > Hello World。
现在,Hello World示例扩展的窗口应该在工作区中可见。点击“Open Source Code”按钮,在Visual Studio Code中打开源代码以进行编辑。
点击“Open Containing Folder”按钮以打开包含示例文件的目录。该文件夹包含三个文件:hello_world.py、hello_world_extension.py和__init__.py。
hello_world.py脚本是应用程序逻辑的添加位置,而应用程序的UI元素将在hello_world_extension.py脚本中添加,并与逻辑相连接。
- 点击“LOAD”按钮加载世界。
- 点击“File” > “New From Stage Template” > “Empty”来创建一个新的舞台,在提示保存当前舞台时点击“Don’t Save”。
- 再次点击“LOAD”按钮加载世界。
- 打开hello_world.py并按下“Ctrl+S”以使用热重载功能。你会注意到菜单从工作区中消失了(因为它被重新启动了)。
- 再次打开示例菜单并点击“LOAD”按钮。
现在你可以开始向这个示例添加内容了。
4.1.3. Code Overview
该示例继承自BaseSample,这是一个样板扩展应用程序,为每个机器人扩展应用程序设置了基本框架。以下是BaseSample执行的一些操作示例:
- 使用按钮加载世界及其相应的资产
- 当创建新舞台时清除世界
- 将世界中的对象重置为它们的默认状态
- 处理热重载
World是一个核心类,它使您能够以简单和模块化的方式与模拟器进行交互。它处理许多与时间相关的事件,例如添加回调、执行物理步骤、重置场景、添加任务(稍后将在添加一个操纵机器人中介绍),等等。
世界包含一个场景的实例。Scene类管理USD阶段中感兴趣的模拟资产。它提供了一个简单的API,用于在阶段中添加、操作、检查和重置不同的USD资产。
4.1.3.1. Singleton World
World是一个单例(Singleton),这意味着在运行Omniverse Isaac Sim时只能存在一个World实例。下面的代码演示了如何在不同的文件和扩展中检索当前World实例。
4.1.4. Adding to the Scene
接下来,使用Python API将一个立方体添加到场景中作为刚体。
按下Ctrl+S保存代码并热重载Omniverse Isaac Sim。
再次打开菜单。
点击“File” > “New From Stage Template” > “Empty”,然后点击“LOAD”按钮。如果您在setup_scene中进行了任何更改,则需要执行此操作。否则,您只需要按下“LOAD”按钮。
按下“PLAY”按钮开始模拟动态立方体,并观察它下落。
4.1.5. Inspecting Object Properties
接下来,打印出立方体的世界位置和速度。下面的突出显示的行展示了如何使用名称获取对象并查询它们的属性。
4.1.5.1. Continuously Inspecting the Object Properties during Simulation
接下来,在每次执行物理步骤期间,在模拟过程中打印立方体的世界位置和速度。如Isaac Sim工作流程中所述,在这种工作流程中,应用程序是异步运行的,无法控制何时执行物理步骤。但是,您可以添加回调函数以确保在特定事件之前发生某些事情。
添加物理回调如下所示。
4.1.6. Adding a New Example in the Menu
到目前为止,您一直在编辑“Hello World”示例。接下来,您将在Isaac示例菜单下创建一个新示例。
标签:4.1,示例,Isaac,API,文档,isaac,World,添加,sim From: https://www.cnblogs.com/FrostyForest/p/18035192