Nvidia Isaac Lab 8 - 在 Isaac Lab 中,训练第二个机器人 - 1. Isaac Lab 设置

1. 配置 UR10 机器人和夹爪模型

1.1. 任务

本教程的任务是训练配备 Robotiq 2F-140 夹爪的 UR10 机器人。训练将机器人的当前位姿与指令中的目标位姿对齐的策略。

上图是 Isaac Sim 中,配备 Robotiq 2F-140 夹爪的 UR10 机器人。

本教程先在 Isaac Sim 中配置包含自定义机器人配置的 USD 文件,然后使用 Isaac Lab 框架为该机器人创建 Python 配置类。

OpenUSD 为机器人和仿真应用提供许多强大功能。比如通过引用现有机器人模型,可以以非破坏性的方式组合现有的夹爪和机器人模型。

提示

理解 OpenUSD 的基础概念,比如 Reference、Payload 和 Strength Ordering,对机器人和 3D 工作流开发大有裨益。Isaac Sim 和 Omniverse 都基于 OpenUSD 构建,用它实现协作、非破坏性编辑等功能。

在整个过程中,请记住:Isaac Lab 基于 Isaac Sim 仿真器。先在 Sim 中设置机器人,然后用 Lab 进行训练,之后回到 Sim 中做进一步验证。


2. 以引用的形式添加机器人 USD

  1. 打开新终端
  1. 进入 Isaac Lab 文件夹。
  1. 运行如下命令启动 Isaac Sim
    ./isaaclab.sh --sim

    在 Isaac Lab 中使用如上命令可以很容易地启动 Isaac Sim。如果安装的是独立二进制版本,也可以从那里启动。

  1. 导航到 Edit > Preferences,然后在面板左侧找到 Stage 选项。
  1. 在 Import 下,将 Drag & Drop USD Method 设置为 reference。这样就可以将 USD 资源作为 reference 而非 payload 添加到场景中。
  1. 回到 Content 浏览器,导航到 /Isaac/IsaacLab/Robots/UniversalRobots/UR10/
  1. 选择 ur10_instanceable.usd,将其拖入 Stage 面板。这样做,可以将它作为引用添加到当前场景中。

3. 以引用的形式添加夹爪 USD

下面对 Robotiq 2F-140 夹爪重复同样的过程。

  1. 在 Content 浏览器左侧,导航到 /Isaac/Robots/Robotiq/2F-140/
  1. 选择 Robotiq_SF_140_physics_edit.usd,将其拖入 Stage 面板。

4. 移除多余的 Articulation Root

  1. 在 Stage 面板中,找到及选择 Robotiq_2F_140_physics_edit
  1. 在 Property 编辑器中,找到 Physics Articulation Root,然后点击红色 X 图标将其移除。机器人只能有一个 Articulation。

下面组合这两个部件。实现方式有多种,本节演示简单的手动连接方法 - 先将夹爪放到空间中的正确位置,然后使用 Fixed Joint 将它与机器人进行物理连接。


5. 将夹爪连接到机器人

5.1. 将夹爪放到机器人末端

  1. 进入 Edit > Preferences
  1. 在 Stage > Authoring 下,找到 Keep World Transform When Reparenting,将其禁用。

    在 Isaac Sim 5.0 中显示为下拉菜单。将 Keep World Transform When Reparenting 设置为 Ask

  1. 在 Stage 面板中,将夹爪 Prim 拖到 ur10_instanceable/ee_link 下方,将夹爪设为机器人末端的子级。在 Isaac Sim 5.0 中,出现提示时选择 Keep Prim Transform

    现在夹爪已经位于机器人末端!为便于整理,将重新组织 Stage,但先恢复偏好设置。

    临时修改该设置是为了将末端执行器挂到机器人末端(所谓的 “End Effector” Link)下。使用该技巧可以节省一些工作。

  1. 进入 Edit > Preferences
  1. 在 Stage 下,找到及重新启用 Keep World Transform When Reparenting
  1. 将夹爪的 Xform Robotiq_2F_140_physics_edit 拖回到 World 下。

    在 Isaac Sim 5.0 中,设置应该仍然是 Ask。出现提示时,选择 Inherit Parent Transform

5.2. 关于 Parenting

USD Stage 中的 Prim 被放置在层级结构中,将一个 Prim 放到另一个 Prim “下面”的过程被称为 Parenting。默认情况下,在 Isaac Sim 这类基于 Omniverse 开发的应用中,对 Prim 进行 Parenting 时,将保持该 Prim 原本的世界变换。换言之,重新设定父级后,位置改变。

现在已正确放置夹爪!

虽然夹爪在位置上已经位于机器人末端,但从物理意义上讲,还没连接到机器人。如果点击 Play,夹爪将直接掉进深渊。

5.3. 建立物理连接

物理连接夹爪时,需要利用物理引擎将其与机器人的关节系统(即一系列关节)相连接。

提示

这只是将夹爪连接到机器人的一种方法。想了解如何使用 Robot Assembler,请查看 Isaac Sim 文档