系列文章目录
前言
一、简介
1.1. Isaac Sim Interface
1.1.1. 学习目标
本教程介绍了Omniverse Isaac Sim中最常用的用户界面按钮、菜单和控件。学完本教程后,您应该能够更自信地在 Isaac Sim 界面中浏览和查找内容。
1.1.2. 入门
首先在场景中添加一个立方体。转到顶部菜单栏,单击 "创建">"形状">"立方体"(Create > Shapes > Cube)。
现在视口中央应该有一个立方体。立方体已被选中(以橙色高亮显示),移动 (W) 命令默认已启用。
练习变换立方体:
- 将鼠标悬停在立方体上,然后单击 "移动小工具 "拖动并移动立方体。
- 按 "E "键切换到旋转小工具,然后单击并拖动小工具来旋转立方体。
- 按 "R "键切换到 "缩放 "小工具,然后单击并拖动小工具旋转立方体。
- 按 "W "键切换回移动小工具。
- 再次按下 "W "切换到 "使用本地坐标移动"。单击并拖动小工具,以在其本地坐标轴上移动立方体。
- 按 "ESCAPE "键取消选择立方体。
在视口中移动、旋转和缩放立方体也会更新工作区右下方 "属性(Property) "面板中立方体的 "变换属性"。
现在,请练习通过 "属性 "面板变换立方体:
- 选择立方体以填充属性面板。
- 在 "变换 > 平移(Transform > Translate) "字段中,单击并左右拖动 X 值,使立方体沿 X 轴移动。
- 双击 Y 值并键入 "1",将立方体移动到 Y=1。
- 单击 Z 值右侧的蓝色方块,将平移值(Translate)重置为默认设置(0,0,0)。
- 将旋转(Rotate)和缩放值(Scale)重置为默认设置。
- 双击相应的 X、Y、Z 值并输入数值,将立方体的平移值设置为{X: 0, Y: -2, Z: -0.5},旋转值设置为{X: 0, Y: 22.5, Z: 0}。
1.1.2.1. 切换本地和世界坐标
- 多次按 "W "键可在 "移动全局 "和 "移动局部 "之间切换。
- 多次按 "E "键可在 "旋转全局 "和 "旋转局部 "之间切换。
- 长按工具栏上的移动/旋转图标也可用于选择坐标系。
- 当本地坐标系处于活动状态时,每个工具栏图标都将变为橙色。
1.1.3. 浏览视口
让我们在场景中添加一个球体。转到顶部菜单栏,单击 "创建">"形状">"球体"(Create > Shapes > Sphere)。现在视口中应该有一个立方体和一个球体,默认情况下球体被选中。
- 将球体平移到{X: 0, Y: 2, Z: 0}。
- 按 "F "键将视口相机居中并缩放至选定的球体上。
- 按 "LMB"(鼠标左键)+"ALT "键绕球体运行。
- 使用 "滚轮 "或按 "RMB"(鼠标右键)+ "ALT "键放大。
- 按 "MMB"(鼠标中键)平移。
- 按 "ESCAPE "键取消选择球体。
- 当没有选择任何内容时按 "F "键放大所有内容。
1.1.4. 使用 "舞台(Stage) "和 "属性(Properties) "面板
可以直接在视口或工作区右上角的 "舞台(Stage) "面板中选择对象。舞台是一个功能强大的树形部件,用于组织和结构化 Omniverse Isaac Sim 场景中的所有内容。
关于这个工具有很多需要学习的地方,这些步骤将带您了解基础知识:
- 转到顶部菜单栏,单击 "创建">"Xform"(Create > Xform)。现在,在 "舞台(Stage) "面板中应该有一个空的 Xform 底图,嵌套在 "世界 "下面。
- 从 "舞台(Stage) "中选择 "立方体 "行项目,然后拖放到 Xform 上。然后,选择球体,同样将其拖放到 Xform 上。
- 视口中没有任何变化,但您已经在 Xform、Sphere 和 Cube 之间创建了父子关系。
- 选择 Xform,按 "W "键启用 "移动小工具",然后抓取并移动 Xform。
- 现在移动 Xform 将同时移动球体和立方体,因为子对象继承了父对象的变换。
- 这是 Omniverse Isaac Sim 构建机器人等铰接对象的一个重要概念。
- 现在只选择立方体。请注意,无论您如何移动 Xform,"属性 "面板中的 "变换属性( Transform Properties) "都是相同的。
- 对象的变换属性是相对于其父对象的局部变换。
- 从舞台上选择立方体,然后将其拖放到 "世界 "行项目上,从而取消立方体的父对象。右键单击 Xform 并单击 "删除"。
- 请注意,立方体的变换属性现在反映了世界变换。
- 请注意球体也被删除了,因为它是 Xform 的子对象。
我们一直在探索 "属性 "面板中的 "变换属性"。不过,这个面板还有很多有用的用户界面输入,可以直接连接几何、材质、视觉和 USD 属性。
- 从舞台上选择立方体(Cube)并滚动浏览其属性面板。单击每个子面板的页眉可以折叠或显示该面板。
- 从舞台上选择默认光源(defaultLight)。滚动浏览其属性面板,注意与立方体相比,它显示的信息有所不同。
- 从舞台上选择世界(World,defaultPrim),注意其属性面板的不同之处。
每个属性面板中的数据之所以不同,是因为在 Omniverse Isaac Sim 中,World (defaultPrim)、Cube 和 defaultLight 都是不同的数据类型(详见 USD Prim)。如舞台最右边一栏所述,世界是 Xform,默认光线是 DistantLight,立方体是立方体。
这些不同数据结构的细节将在后面的教程中介绍。
1.1.4.1. 原始 USD 属性
属性面板中最重要的子面板是 "原始 USD 属性 "子面板--它总是最后一个。原始美元属性子面板包含所选对象的所有活动美元属性。在使用 Omniverse Isaac Sim 开发更高级的应用程序时,该子面板是非常有用的参考资料。
请注意,该子面板中的信息按字母顺序排列。
1.1.5. 自定义工作空间
Omniverse Isaac Sim 的工作空间非常容易自定义。调整用户界面的大小、停靠、取消停靠、添加和移除面板都非常容易。
在工作区中添加另一个视口,即可开始自定义用户界面:
- 进入顶部菜单栏,单击下拉菜单最下方的窗口 > 视口 > 视口 2(Window > Viewport > Viewport 2)。
- 现在工作区中应该会出现一个名为 "视口 2 "的新视口。
- 如果您想创建更多的视口,请按照相机检查器扩展进行操作。
- 单击并拖动视口 2 的顶部标题以激活停靠部件。拖放到原始视口的右侧,将两个视口并排放置。
- 单击并向左拖动视口 2 的左侧,使视口大小相等。
- 在视口 2 的按钮叠加区域,单击左上角的透视相机按钮,将相机更改为俯视图。
我们可以使用窗口 > 视口 > 视口 2 (Window > Viewport > Viewport 2)下拉菜单动态隐藏/显示视口 2。
- 返回顶部菜单栏并单击窗口。
- 视口 2(旁边有复选标记)。
- 单击视口 2 隐藏新视口,再次单击可将其打开。或者,单击视口选项卡旁的 x 关闭视口,然后使用相机检查器扩展创建视口。
- 查看 "窗口 "下拉菜单中的其他项目。带复选标记的项目在工作区中已经可见。
- 点击一些关闭或打开的项目,查看工作区中发生了什么(例如控制台、舞台、属性、剖析器(Console, Stage, Property, Profiler))。
1.1.6. 运行仿真
要使用 Omniverse Isaac Sim 中的任何模拟功能,如关节、脚本或碰撞网格,模拟必须正在运行。
- 按下 "工具栏 "中的 "播放 "按钮开始模拟。
- 按下按钮后,"播放 "按钮会变成 "暂停 "按钮,可用于暂时停止模拟,但允许从当前状态继续模拟。
- 在模拟运行或暂停时,"播放/暂停 "按钮下方还可以看到 "停止 "按钮。停止 "按钮可结束模拟并将其重置,使其可以从起始配置重新开始。
1.1.6.1. 时间轴
时间轴是一个扩展功能,允许开发人员查看和修改可滚动和自定义时间轴的设置。时间轴默认为禁用,要启用它,请进入窗口 > 扩展,在搜索栏中输入 omni.anim.window.timeline,然后点击切换。然后,屏幕底部就会出现时间轴小工具。
按下播放按钮后,时间轴标记将开始移动,并在时间轴上循环。
模拟的开始/停止进度也可在默认布局底部的时间轴上查看。
1.1.7. 总结
本教程涵盖以下话题:
为场景添加内容
导航视口
导航 "舞台 "和 "属性 "面板
添加、停靠和移除窗口面板
启动/停止时间线和模拟
1.1.7.1. 下一步
继续下一教程 "环境设置",了解更多有关为虚拟世界准备环境的信息。
1.1.7.2. 进一步学习
要更深入地了解本教程中涉及的概念,请参阅以下参考资料:
为场景添加内容
有关菜单项、用户界面元素和键盘快捷键的概述,请参阅《用户界面参考资料》。
浏览视口
视频教程 "Omniverse 中的导航基础 "介绍了 Omniverse Kit 应用程序视口中的导航和控件。该视频演示了使用鼠标、滚轮和键盘命令的组合来浏览场景。请注意,使用修改器(Ctrl、Alt、Opt)的热键在 Linux 下可能与本 Windows 教程不同。
下表重点介绍了用于视口控制和导航的最常用输入键。我们建议您熟练掌握这些热键组合,以便有效地导航视口。
Input | Result |
---|---|
LMB | Select |
ESCAPE | Deselect |
Select + ‘F’ | Zoom Camera to Selected Object(s) |
Deselect + ‘F’ | Zoom Camera to All |
LMB + ‘OPT’ | Orbit about the Viewport Center |
RMB + ‘OPT’ | Zoom |
Scroll Wheel | Zoom |
MMB | Pan |
RMB + ‘W’ | Move Forward |
RMB + ‘S’ | Move Backward |
RMB + ‘A’ | Move Left |
RMB + ‘D’ | Move Right |
RMB + ‘W/S/A/D’ + SHIFT | Move at Double Speed |
RMB + ‘W/S/A/D’ + CTRL | Move at Half Speed |
二、GUI
2.1. 环境设置
Omniverse Isaac Sim 是使用 Omniverse Kit 中提供的工具在英伟达 Omniverse 上构建的。Omniverse Kit 自带默认用户界面,允许用户轻松编辑 USD 舞台。在本系列教程中,我们将介绍设置环境、添加和编辑简单对象及其在 USD 舞台上的属性、用关节和关节连接刚体以及添加相机和传感器的基本步骤。在本系列课程结束时,您将掌握浏览 Omniverse Isaac Sim 的基本技能,熟悉常用术语,并能够通过图形界面构建环境和设置机器人。
2.1.1. 学习目标
本教程详细介绍了如何使用 Omniverse Isaac Sim 图形用户界面提供的工具构建一个支持物理的虚拟世界。我们将介绍如何
- 设置全局舞台属性
- 设置全局物理属性
- 添加地平面
- 添加照明
2.1.2. 入门
我们先从 Omniverse Isaac Sim 开启时提供的简洁舞台开始。如果您已经在舞台上添加了对象,请进入 "文件 "菜单点击 "新建"。提供给您的舞台有一个默认的 "世界 Xform(World
Xform) "和一个默认的 "灯光"(defaultLight)。这两个对象都可以在左侧舞台树的舞台标签下找到。
2.1.3. 设置舞台属性
在向舞台添加任何东西之前,最好先检查一下当前的舞台属性设置是否符合您所期望的惯例。前往 "编辑">"首选项"(Edit > Preferences),打开 "首选项 "面板。在这里,您可以浏览 Omniverse Kit 中的多种类型设置,这些设置按面板左侧栏中的类别进行分组。从左侧栏中选择 "舞台"。在这里,您可以查看以下属性:
- 决定 "向上(Up) "的轴。Omniverse Isaac Sim 的默认轴为 Z 轴。如果您的资产是在不同的向上轴程序中创建的,则导入资产时将会旋转。
- 舞台单位(units)。Omniverse Isaac Sim 2022.1 之前的版本以厘米为舞台单位,现在默认为米。不过,Omniverse Kit 的默认单位仍然是厘米。如果您看到 USD 单位似乎偏差了 100 倍,请记住这一点。
- 默认旋转顺序。默认设置为先以 X 轴旋转,然后以 Y 轴旋转,最后以 Z 轴旋转。
2.1.4. 创建物理场景
我们将首先添加一个物理场景(Physics Scene),为世界提供一般物理模拟属性,如重力和物理时间步长。进入菜单栏,单击 "创建">"物理">"物理场景"(Create > Physics > Physics Scene)。一个物理场景(PhysicsScene)将被添加到舞台树中。单击该场景查看其属性。可以看到重力被设置为指向 -Z 方向,重力大小为 9.8,这提醒我们默认的长度单位是米。除非您要模拟数百个刚体和机器人,否则使用 CPU 解算器比使用 GPU 解算器更有效率,因此在本教程中,请禁用 GPU 动力学(disable GPU dynamics)并在 "物理场景(Physics Scene) "的 "属性(Property) "选项卡中使用 MBP Broadphase。
2.1.5. 添加地平面
接下来,我们将在虚拟环境中添加一个地平面。地平面将防止任何启用了物理功能的物体掉落到其下方。转到顶部菜单栏,单击 "创建">"物理">"地平面"(Create > Physics > Ground Plane)。尽管地平面在每个方向上的可见距离只有 25 米,但它的碰撞属性会无限延伸。打开网格,使地平面更容易看到。
2.1.6. 灯光
每个新舞台都预置了一个默认灯光,否则你什么也看不到。不过,作为练习,让我们来创建一个额外的聚光灯。
- 如果还没有地平面,请添加一个,这样我们就能看到灯光的反射。创建 > 物理 > 地平面。
- 转到 "创建">"光源">"球形光源"(Create > Light > Sphere Light)。
- 将其向上移动 7 个单位,并在 X 轴和 Y 轴上取消旋转,使其朝下。
- 在 "属性(Property) "选项卡中,在 "主要 > 颜色(Main > Color) "中更改其颜色,只需点击颜色条并选择一种颜色即可。
- 在 "主要">"强度(Main > Intensity) "中将其强度改为 1e6;"主要">"半径(Main > Radius) "中将其半径改为 0.05;在 "塑形"->"锥形:角度(Shaping -> cone:angle) "中将聚光灯的范围限制为 45 度;在 "塑形"->"锥形:柔和度(Shaping -> cone:softness) "中将聚光灯的边缘柔和为 0.05。
- 为了让新的聚光灯更容易看到,我们将降低默认灯光的强度,方法是进入 "属性(Property) "选项卡,将 "主要 > 强度(Main > Intensity) "设置为 300。
2.1.7. 总结
本教程开始了创建适合物理模拟和测试 Omniverse Isaac Sim 的虚拟世界的一系列步骤。涉及以下话题:
- 添加地平面、照明和物理场景。
2.2. 添加简单对象
在本教程中,我们将展示在舞台上添加简单对象的基本图形用户界面功能,以及检查和修改其物理和材料属性的功能。
2.2.1. 学习目标
本教程将详细介绍如何在场景中添加简单的主要形状并编辑其属性。我们将介绍如何
- 添加和操作简单的形状
- 在对象中启用物理属性
- 检查碰撞属性
- 编辑摩擦等物理属性
- 编辑颜色和反射率等材料属性
2.2.3. 为场景添加对象
- 我们将首先在舞台上添加一个立方体作为移动机器人的身体。进入菜单栏,单击 "创建">"形状">"立方体"(Create > Shapes > Cube)。
- 要更改立方体的大小,请在舞台树中选择立方体,然后转到属性选项卡,找到几何体 > 大小(Geometry > Size)。现在输入 1.0。
- 将其移动到地面上方,使用小工具改变其形状。保持打开立方体的属性选项卡,你会发现小工具的移动会反映在物体的变换中。
- 您也可以直接在属性窗口中键入进行更改。让我们将立方体的平移(变换 > 平移(Transform > translate))值固定为 (0, 0, 1),缩放(变换 > 缩放(Transform > Scale))值固定为 (2, 1, 0.5)。
- 以同样的方式在舞台上添加一个圆柱体,将其 "几何体 > 半径(Geometry > Radius) "改为 0.5,"几何体 > 高度(Geometry > Height) "改为 1.0。然后将其放置在 y = 1.5 和 z = 1.0 处,并绕 x 轴旋转 90 度。
- 在舞台树上右击刚才制作的圆柱体并复制,然后将其移动到 y = -1.5 处,同时保持所有其他参数不变。
重要问题
在 2022.2.0 版本中存在一个已知错误,即直接在属性窗口中键入欧拉角无法进行方向变换。可以通过输入四元数角度或直接使用小工具来解决这一问题。
2.2.4. 添加物理属性
首次添加对象时,它们只是可视对象,没有附加物理或碰撞属性。如果按下 "播放(Play) "键开始模拟,并施加重力,这些对象不会移动,因为它们不受物理影响。让我们把它们变成具有碰撞属性的刚体,就像机器人一样。
- 在舞台树上选择立方体和两个圆柱体,按住 Ctrl + Shift 键的同时单击以选择每个对象,如果它们在树上连续列出,则只需按住 Shift 键即可。
- 在 "属性 "选项卡中点击 "+ 添加(+ Add) "按钮,然后选择 "物理">"带碰撞预设的刚体(Physics > Rigid Body with Colliders Preset)"。
- 按下 "播放(Play) "键,现在所有三个物体都应坠落到地面上。
"带碰撞器的刚体预设(Rigid Body with Colliders Preset) "会自动为对象添加刚体 API 和碰撞 API。尽管这两个 API 可以分开应用。您可以拥有有质量并受重力影响但没有碰撞属性的对象,这样您就可以直接穿过它们;您也可以拥有可以撞到但悬在空中且不受重力影响的对象。要查看所选对象具有哪些 API,请进入其 "属性(Property) "选项卡,向下滚动找到标有 "刚体(Rigid Body) "和 "碰撞器(Collider) "的部分。要分别添加 API,请在相同的 "+ 添加(+ Add) "按钮下找到它们。要删除 API,只需点击 "X "删除该部分。
2.2.4.1. 检查碰撞网格
有时您可能需要目视检查对象的碰撞网格。要查看碰撞网格的轮廓,请找到视口顶部的眼睛图标,然后单击 "按类型显示">"物理">"碰撞器">"全部"(Show By Type > Physics > Colliders > All)。任何应用了碰撞 API 的物体周围都会显示紫色轮廓。在本例中,应该是长方体、圆柱体以及地平面。
2.2.4.2. 添加接触和摩擦参数
要修改摩擦属性,我们需要首先创建不同的物理材料,然后将其分配给所需对象。进入菜单栏,单击 "创建">"物理">"物理材料",在弹出框中选择 "刚体材料"。一个新的物理材料将出现在舞台树上。摩擦系数和回复等参数可在其属性选项卡中进行调整。
要将指定的物理材料应用到对象上,请在舞台树中选择对象,在 "属性 "选项卡中找到菜单项 "所选模型上的材料",然后在下拉菜单中选择所需的材料。