机器人

使用 NVIDIA Isaac Lab 为工业机器人装配应用弥合仿真与现实之间的差距

多个部件的组装在几乎每个主要行业 (如制造、汽车、航空航天、电子和医疗设备) 中都发挥着关键作用。尽管机器人组装应用广泛,但它仍然是一项重大挑战。它涉及复杂的交互,机器人必须通过持续的物理接触来操纵物体,这需要较高的精度和准确性。如今的机器人装配系统长期以来一直受到固定自动化的限制。这些系统专为需要大量人工设计和部署的特定任务而构建,限制了其适应性和可扩展性。

机器人装配的未来在于灵活的自动化。未来的机器人必须快速适应新的部件、姿势和环境。将 机器人技术与仿真和 AI 集成 可以突破这些限制。多年来,NVIDIA 一直在 推进这一领域的研究 ,我们与 Universal Robots (UR) 的持续合作正在推动这一从研究创新到现实世界工业应用的转型。

在本文中,我们展示了 UR10e 机器人上齿轮组件任务的 零样本仿真到现实传输 。该任务在 NVIDIA Isaac Lab 中进行设计和训练,并使用 NVIDIA Isaac ROS 和 UR10e 低电平转矩接口进行部署。我们的目标是让任何人都能复制这项工作,并将 Isaac Lab 和 Isaac ROS 用于自己的仿真到现实应用。

Isaac Lab 是一个用于机器人学习的开源模块化训练框架。Isaac ROS 基于开源 ROS 2 软件框架构建,是加速计算包和 AI 模型的集合,为世界各地的 ROS 开发者带来 NVIDIA 加速。它为导航和感知等常见任务提供即用型软件包。

Isaac Lab 中的 Contact-rich 模拟

Isaac Lab 通过实现准确的物理特性和大规模的接触模拟 强化学习 (RL) 在数千个并行环境中反复试验或学习。曾经难以计算的东西,比如模拟复杂的交互,现在可以实现了。

Isaac Lab 包含来自 Factory 富有挑战性的工业任务 ,例如 peg 插入、gear meshing 和 nut-bolt 紧固。Isaac Lab 支持模仿学习 (mimicking 演示数据) 和 RL,可为任何 机器人化身 提供灵活的训练方法。

Three side-by-side gifs showing contact-rich simulation environments in Isaac Lab.
图 1。NVIDIA Isaac Lab 中具有丰富接触的仿真环境

RL 是一种强大而有效的组装问题技术,因为它不需要人类演示,并且对于感知、控制和固定中的错误非常可靠。然而,现实差距(reality gap)——仿真与现实世界之间的差异——仍然是一项关键挑战。本文中介绍的工作流使用 IndustReal 的概念弥合了这一差距,IndustReal 是一套算法和工具,可实现强大的 RL 训练技能,从而从仿真转移到现实世界的机器人,以执行复杂的装配任务。

在 Isaac Lab 中训练齿轮装配任务

齿轮装配任务包括感知、抓取、运输和将所有齿轮插入到相应的轴上。图 2 显示了任务的不同状态,从一个齿轮的初始状态到目标状态。这需要三项核心技能:抓握生成、自由空间动作生成和插入。

Three side-by-side images showing the different states (grasp, transport and insert) of the gear assembly task on the UR10e robot.
图 2。UR10e 机器人上齿轮组装任务的抓取、运输和插入技能

抓握生成使用现成的抓握规划器来获取部件的可行抓握姿势。 动作生成 和插入使用 RL 来学习策略。虽然机械臂的运动生成已得到充分确认,并且可以使用传统的轨迹规划器实现,但在处理更具挑战性的插入任务之前,训练基于 RL 的运动生成策略可为策略学习框架提供有用的校准和调试步骤。

图 3 显示了使用 Isaac Sim 和 Isaac Lab 进行动作生成和插入任务的策略学习工作流。对于每个任务,资产和场景规范定义了 Isaac Sim 中的仿真环境,而 Isaac Lab 则提供训练环境。这两项任务的策略均依赖于 Isaac Lab 中实施的低电平阻抗控制器。

Policy learning for motion generation and insertion tasks using Isaac Sim for simulation and Isaac Lab for the training environment and impedance control.
图 3。使用 Isaac Sim 和 Isaac Lab 执行动作生成和插入任务的策略学习管道

运动生成和插入技能分别表述为单独的强化学习问题,并独立学习,如图 3 所示。

  • 动作生成:目标是让机器人从指定机器人工作空间内的随机初始关节角度开始,将其末端执行器移动到指定的目标姿势 (例如抓握姿势) 。 观察包括机器人的关节位置和目标末端执行器姿态,而动作空间由关节位置目标组成。奖励函数可最小化终端执行器与目标之间的距离,并对机器人突然或猛烈的动作进行惩罚。
  • 插入:在机器人的抓手中初始化齿轮,并在目标轴附近以随机采样的姿态定位。目标是将齿轮移动到轴的底部。观察包括机器人的关节位置和目标轴姿态,而动作空间由关节位置目标组成。奖励函数可最小化齿轮和目标之间的距离,并对突然或激进的机器人动作再次施加惩罚。

对于这两种技能,joint position targets 以 60 Hz 的频率生成,由低级 impedance controller 执行。

该智能体使用各种随机配置进行训练,例如不同的初始 robot arm 姿态、机械手中的齿轮姿态、齿轮尺寸以及整个任务的各个阶段 (例如,尚未插入齿轮或插入了一些齿轮) 。为 促进 sim-to-real 传输 ,domain randomization 应用于机器人动力学 (关节摩擦和阻尼) 和控制器增益,以及策略观察噪声。训练在并行环境中进行,使智能体能够获得丰富而宝贵的经验,这些经验对于有效学习任务至关重要。

网络架构和 RL 算法详情

每个策略的结构均为具有 256 个单元的 Long Short-Term Memory (LSTM) 网络,然后是具有三层分别包含 256、128 和 64 个神经元的多层感知器 (MLP) 。这些策略使用 rl-games 库中的 Proximal Policy Optimization (PPO) 算法进行训练。训练在 Isaac Sim 4.5 Isaac Lab 2.1 上的 NVIDIA RTX 4090 GPU 中完成。

结果 

图 4 显示了经过训练的策略在 UR10e 机器人上的实际应用,左侧为 motion generation,右侧为 insertion。

图 4。在 Isaac Lab 模拟运动生成 (左) 和插入 (右) 中,在 UR10e 机器人上测试了经过训练的策略

图 5 展示了所学技能的组合。借助所学到的技能,机器人能够通过重复抓握规划器和所学到的技能,组装随机放置的三个齿轮。这些策略对齿轮组装顺序和齿轮的初始姿态十分可靠。

图 5。经过训练的 RL 策略经过排序,可在一个循环中执行多个机器人装配步骤:移动到 gear 1 → 抓取 → 插入 → 移动到 gear 2 → 抓取 → 插入,以此类推

UR 扭矩控制接口,支持 sim-to-real 传输

这项工作采用 impedance control 技术,使机器人能够与物体进行安全且合规的 (软) 交互。虽然 position controllers 具有很高的准确性,但其刚度会因感知或现实世界的对齐挑战而限制适应性,最终造成巨大的意外作用力。 impedance control 提供了一种更灵活的替代方案。

与工业机器人中常见的刚位置控制器不同,阻抗控制需要直接的 torque 命令,而这在工业机器人中并不常见。 UR 现在提供对其直接 torque 控制接口的抢先体验 ,以实现此类控制。

NVIDIA 团队与 UR 合作,使用 Isaac Lab 和论文《 IndustReal:Transferring Contact-Rich Assembly Tasks from Simulation to Reality 》中的方法来训练策略,并使用 Isaac ROS 和 UR torque 接口在 UR10e 机器人上部署策略。使用了 Isaac ROS 的 Segment Anything FoundationPose 软件包。

使用 Isaac ROS 和 UR torque 接口在 UR10e 上实现 Sim-to-real 转移

图 6 显示了在部署 Isaac Lab 中经过训练的策略时使用的 sim-to-real 传输框架。工作流始于感知工作流,将 RGB 图像输入 Segment Anything ,然后输出 segmentation mask。然后,该遮罩与深度图像一起传递给 FoundationPose ,以估计齿轮塞的 6D 姿态。

Flowchart describing the sim-to-real transfer workflow on the real UR10e robot, including perception pipeline, UR10e manipulator robot, joint positions, joint torques, object pose.
图 6。UR10e 机器人上的 Sim-to-real transfer 工作流

“UR 关节编码器的齿轮姿态和关节位置构成观察结果,这些观察结果将传递至策略,以预测增量关节位置。增量关节位置转换为绝对目标关节位置,并作为阻抗控制器的输入。使用 URScript 制作的自定义低级阻抗控制器以 500 Hz 频率运行,并计算控制 UR 机器人执行任务所需的关节转矩。结果如 Video 1 所示。”

视频 1。使用 Isaac Lab 经过训练的策略在 UR10e 机器人上执行齿轮装配任务

开始使用 

本文展示了 UR10e 机器人上齿轮组件任务的零样本仿真到现实传输。该任务在 NVIDIA Isaac Lab 中进行设计和训练,并使用 NVIDIA Isaac ROS 和 UR10e 低电平转矩接口进行部署。

准备好开始为机器人装配任务开发您自己的 contact-rich 的操作策略了吗?查看以下资源:

请持续关注 Isaac Lab 环境和训练代码,让任何人都能测试这些策略并训练自己的策略,以及支持您在自己的 UR 机器人上部署这些策略的参考工作流。

订阅我们的时事通讯,并在 LinkedIn、Instagram、X 和 Facebook 上关注 NVIDIA Robotics,及时了解最新动态。探索 NVIDIA 文档和 YouTube 频道,并加入 NVIDIA Developer Robotics 论坛。要开启您的机器人开发之旅,请立即注册我们的免费 NVIDIA Robotics Fundamentals 课程。

开始使用 NVIDIA Isaac 库和 AI 模型 开发物理 AI 系统。

致谢 

我们要感谢 Yashraj Narang 和 Buck Babich 为开发 UR sim-to-real 演示提供建议。我们感谢 Universal Robots 的 Rune Søe-Knudsen 为新开发的 direct torque control 接口提供技术支持。我们还要感谢 Bingjie Tang、Michael A. Lin、Iretiayo Akinola、Ankur Handa、Gaurav S. Sukhatme、Fabio Ramos、Dieter Fox 和 Yashraj Narang 主导撰写本次演示所依据的 IndustReal 论文。

 

标签