NVIDIA Isaac Sim 入门教程(二)

系列文章目录

 


前言

 


 

一、简介

1.1. Isaac Sim Interface


1.1.1. 学习目标


本教程介绍了Omniverse Isaac Sim中最常用的用户界面按钮、菜单和控件。学完本教程后,您应该能够更自信地在 Isaac Sim 界面中浏览和查找内容。

1.1.2. 入门

首先在场景中添加一个立方体。转到顶部菜单栏,单击 "创建">"形状">"立方体"(Create > Shapes > Cube)。

NVIDIA Isaac Sim 入门教程(二)_第1张图片

 

现在视口中央应该有一个立方体。立方体已被选中(以橙色高亮显示),移动 (W) 命令默认已启用。

练习变换立方体:

  1. 将鼠标悬停在立方体上,然后单击 "移动小工具 "拖动并移动立方体。
  2. 按 "E "键切换到旋转小工具,然后单击并拖动小工具来旋转立方体。
  3. 按 "R "键切换到 "缩放 "小工具,然后单击并拖动小工具旋转立方体。
  4. 按 "W "键切换回移动小工具。
  5. 再次按下 "W "切换到 "使用本地坐标移动"。单击并拖动小工具,以在其本地坐标轴上移动立方体。
  6. 按 "ESCAPE "键取消选择立方体。

 

 

在视口中移动、旋转和缩放立方体也会更新工作区右下方 "属性(Property) "面板中立方体的 "变换属性"。

现在,请练习通过 "属性 "面板变换立方体:

  1. 选择立方体以填充属性面板。
  2. 在 "变换 > 平移(Transform > Translate) "字段中,单击并左右拖动 X 值,使立方体沿 X 轴移动。
  3. 双击 Y 值并键入 "1",将立方体移动到 Y=1。
  4. 单击 Z 值右侧的蓝色方块,将平移值(Translate)重置为默认设置(0,0,0)。
  5. 将旋转(Rotate)和缩放值(Scale)重置为默认设置。
  6. 双击相应的 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)。现在视口中应该有一个立方体和一个球体,默认情况下球体被选中。

  1. 将球体平移到{X: 0, Y: 2, Z: 0}。
  2. 按 "F "键将视口相机居中并缩放至选定的球体上。
  3. 按 "LMB"(鼠标左键)+"ALT "键绕球体运行。
  4. 使用 "滚轮 "或按 "RMB"(鼠标右键)+ "ALT "键放大。
  5. 按 "MMB"(鼠标中键)平移。
  6. 按 "ESCAPE "键取消选择球体。
  7. 当没有选择任何内容时按 "F "键放大所有内容。

1.1.4. 使用 "舞台(Stage) "和 "属性(Properties) "面板

可以直接在视口或工作区右上角的 "舞台(Stage) "面板中选择对象。舞台是一个功能强大的树形部件,用于组织和结构化 Omniverse Isaac Sim 场景中的所有内容。

关于这个工具有很多需要学习的地方,这些步骤将带您了解基础知识:

  1. 转到顶部菜单栏,单击 "创建">"Xform"(Create > Xform)。现在,在 "舞台(Stage) "面板中应该有一个空的 Xform 底图,嵌套在 "世界 "下面。
  2. 从 "舞台(Stage) "中选择 "立方体 "行项目,然后拖放到 Xform 上。然后,选择球体,同样将其拖放到 Xform 上。
    1. 视口中没有任何变化,但您已经在 Xform、Sphere 和 Cube 之间创建了父子关系。
  3. 选择 Xform,按 "W "键启用 "移动小工具",然后抓取并移动 Xform。
    1. 现在移动 Xform 将同时移动球体和立方体,因为子对象继承了父对象的变换。
    2. 这是 Omniverse Isaac Sim 构建机器人等铰接对象的一个重要概念。
  4. 现在只选择立方体。请注意,无论您如何移动 Xform,"属性 "面板中的 "变换属性( Transform Properties) "都是相同的。
    1. 对象的变换属性是相对于其父对象的局部变换。
  5. 从舞台上选择立方体,然后将其拖放到 "世界 "行项目上,从而取消立方体的父对象。右键单击 Xform 并单击 "删除"。
    1. 请注意,立方体的变换属性现在反映了世界变换。
    2. 请注意球体也被删除了,因为它是 Xform 的子对象。

 

我们一直在探索 "属性 "面板中的 "变换属性"。不过,这个面板还有很多有用的用户界面输入,可以直接连接几何、材质、视觉和 USD 属性。

  1. 从舞台上选择立方体(Cube)并滚动浏览其属性面板。单击每个子面板的页眉可以折叠或显示该面板。
  2. 从舞台上选择默认光源(defaultLight)。滚动浏览其属性面板,注意与立方体相比,它显示的信息有所不同。
  3. 从舞台上选择世界(World,defaultPrim),注意其属性面板的不同之处。

每个属性面板中的数据之所以不同,是因为在 Omniverse Isaac Sim 中,World (defaultPrim)CubedefaultLight 都是不同的数据类型(详见 USD Prim)。如舞台最右边一栏所述,世界是 Xform,默认光线是 DistantLight,立方体是立方体。

这些不同数据结构的细节将在后面的教程中介绍。

1.1.4.1. 原始 USD 属性

属性面板中最重要的子面板是 "原始 USD 属性 "子面板--它总是最后一个。原始美元属性子面板包含所选对象的所有活动美元属性。在使用 Omniverse Isaac Sim 开发更高级的应用程序时,该子面板是非常有用的参考资料。

请注意,该子面板中的信息按字母顺序排列。

1.1.5. 自定义工作空间

Omniverse Isaac Sim 的工作空间非常容易自定义。调整用户界面的大小、停靠、取消停靠、添加和移除面板都非常容易。

在工作区中添加另一个视口,即可开始自定义用户界面:

  1. 进入顶部菜单栏,单击下拉菜单最下方的窗口 > 视口 > 视口 2(Window > Viewport > Viewport 2)。
    1. 现在工作区中应该会出现一个名为 "视口 2 "的新视口。
    2. 如果您想创建更多的视口,请按照相机检查器扩展进行操作。
  2. 单击并拖动视口 2 的顶部标题以激活停靠部件。拖放到原始视口的右侧,将两个视口并排放置。
  3. 单击并向左拖动视口 2 的左侧,使视口大小相等。
  4. 在视口 2 的按钮叠加区域,单击左上角的透视相机按钮,将相机更改为俯视图。

 

我们可以使用窗口 > 视口 > 视口 2 (Window > Viewport > Viewport 2)下拉菜单动态隐藏/显示视口 2。

  1. 返回顶部菜单栏并单击窗口。
    1. 视口 2(旁边有复选标记)。
  2. 单击视口 2 隐藏新视口,再次单击可将其打开。或者,单击视口选项卡旁的 x 关闭视口,然后使用相机检查器扩展创建视口。
  3. 查看 "窗口 "下拉菜单中的其他项目。带复选标记的项目在工作区中已经可见。
  4. 点击一些关闭或打开的项目,查看工作区中发生了什么(例如控制台、舞台、属性、剖析器(ConsoleStagePropertyProfiler))。

 

1.1.6. 运行仿真

要使用 Omniverse Isaac Sim 中的任何模拟功能,如关节、脚本或碰撞网格,模拟必须正在运行。

  1. 按下 "工具栏 "中的 "播放 "按钮开始模拟。
  2. 按下按钮后,"播放 "按钮会变成 "暂停 "按钮,可用于暂时停止模拟,但允许从当前状态继续模拟。
  3. 在模拟运行或暂停时,"播放/暂停 "按钮下方还可以看到 "停止 "按钮。停止 "按钮可结束模拟并将其重置,使其可以从起始配置重新开始。

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 轴旋转。

NVIDIA Isaac Sim 入门教程(二)_第2张图片

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. 灯光

每个新舞台都预置了一个默认灯光,否则你什么也看不到。不过,作为练习,让我们来创建一个额外的聚光灯。

  1. 如果还没有地平面,请添加一个,这样我们就能看到灯光的反射。创建 > 物理 > 地平面。
  2. 转到 "创建">"光源">"球形光源"(Create > Light > Sphere Light)。
  3. 将其向上移动 7 个单位,并在 X 轴和 Y 轴上取消旋转,使其朝下。
  4. 在 "属性(Property) "选项卡中,在 "主要 > 颜色(Main > Color) "中更改其颜色,只需点击颜色条并选择一种颜色即可。
  5. 在 "主要">"强度(Main > Intensity) "中将其强度改为 1e6;"主要">"半径(Main > Radius) "中将其半径改为 0.05;在 "塑形"->"锥形:角度(Shaping -> cone:angle) "中将聚光灯的范围限制为 45 度;在 "塑形"->"锥形:柔和度(Shaping -> cone:softness) "中将聚光灯的边缘柔和为 0.05。
  6. 为了让新的聚光灯更容易看到,我们将降低默认灯光的强度,方法是进入 "属性(Property) "选项卡,将 "主要 > 强度(Main > Intensity) "设置为 300。

2.1.7. 总结

本教程开始了创建适合物理模拟和测试 Omniverse Isaac Sim 的虚拟世界的一系列步骤。涉及以下话题:

  • 添加地平面、照明和物理场景。

2.2. 添加简单对象

在本教程中,我们将展示在舞台上添加简单对象的基本图形用户界面功能,以及检查和修改其物理和材料属性的功能。

2.2.1. 学习目标

本教程将详细介绍如何在场景中添加简单的主要形状并编辑其属性。我们将介绍如何

  • 添加和操作简单的形状
  • 在对象中启用物理属性
  • 检查碰撞属性
  • 编辑摩擦等物理属性
  • 编辑颜色和反射率等材料属性

2.2.3. 为场景添加对象

  1. 我们将首先在舞台上添加一个立方体作为移动机器人的身体。进入菜单栏,单击 "创建">"形状">"立方体"(Create > Shapes > Cube)。
  2. 要更改立方体的大小,请在舞台树中选择立方体,然后转到属性选项卡,找到几何体 > 大小(Geometry > Size)。现在输入 1.0。
  3. 将其移动到地面上方,使用小工具改变其形状。保持打开立方体的属性选项卡,你会发现小工具的移动会反映在物体的变换中。
  4. 您也可以直接在属性窗口中键入进行更改。让我们将立方体的平移(变换 > 平移(Transform > translate))值固定为 (0, 0, 1),缩放(变换 > 缩放(Transform > Scale))值固定为 (2, 1, 0.5)。
  5. 以同样的方式在舞台上添加一个圆柱体,将其 "几何体 > 半径(Geometry > Radius) "改为 0.5,"几何体 > 高度(Geometry > Height) "改为 1.0。然后将其放置在 y = 1.5 和 z = 1.0 处,并绕 x 轴旋转 90 度。
  6. 在舞台树上右击刚才制作的圆柱体并复制,然后将其移动到 y = -1.5 处,同时保持所有其他参数不变。

重要问题

在 2022.2.0 版本中存在一个已知错误,即直接在属性窗口中键入欧拉角无法进行方向变换。可以通过输入四元数角度或直接使用小工具来解决这一问题。

 2.2.4. 添加物理属性

首次添加对象时,它们只是可视对象,没有附加物理或碰撞属性。如果按下 "播放(Play) "键开始模拟,并施加重力,这些对象不会移动,因为它们不受物理影响。让我们把它们变成具有碰撞属性的刚体,就像机器人一样。

  1. 在舞台树上选择立方体和两个圆柱体,按住 Ctrl + Shift 键的同时单击以选择每个对象,如果它们在树上连续列出,则只需按住 Shift 键即可。
  2. 在 "属性 "选项卡中点击 "+ 添加(+ Add) "按钮,然后选择 "物理">"带碰撞预设的刚体(Physics > Rigid Body with Colliders Preset)"。
  3. 按下 "播放(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 的物体周围都会显示紫色轮廓。在本例中,应该是长方体、圆柱体以及地平面。

NVIDIA Isaac Sim 入门教程(二)_第3张图片

2.2.4.2. 添加接触和摩擦参数

要修改摩擦属性,我们需要首先创建不同的物理材料,然后将其分配给所需对象。进入菜单栏,单击 "创建">"物理">"物理材料",在弹出框中选择 "刚体材料"。一个新的物理材料将出现在舞台树上。摩擦系数和回复等参数可在其属性选项卡中进行调整。

要将指定的物理材料应用到对象上,请在舞台树中选择对象,在 "属性 "选项卡中找到菜单项 "所选模型上的材料",然后在下拉菜单中选择所需的材料。

 

 

你可能感兴趣的:(开发语言,机器人,自动驾驶,ROS,人工智能,机器人仿真,ROS2)