利用 NVIDIA Isaac Lab 缩小工业机器人装配应用中“仿真到现实”的差距

image

多部件装配在制造、汽车、航空航天、电子、医疗设备等绝大多数行业中都扮演着关键角色。虽然应用广泛,但是机器人装配仍是一项极具挑战性的任务。这类任务涉及复杂的交互,机器人必须通过持续的物理接触来操控物体,对精度和准确性有极高要求。当前的机器人装配系统长期受限于固定自动化模式。这些系统往往为特定任务量身打造,需要大量人工工程来完成设计与部署,因而限制了其适应性和可扩展性。

未来的机器人装配将走向灵活自动化。下一代机器人必须能快速适应新的零件、位姿和环境。将机器人技术与仿真和 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 中接触密集型操作的仿真

Isaac Lab 让接触密集型仿真成为可能,它支持精确的物理仿真和大规模强化学习(RL,即“通过试错学习”),可在数千个并行环境中运行。而过去,这类复杂交互仿真在计算上难以处理和实现。

Isaac Lab 包含多个具有挑战性的工业级任务,如插入销钉、啮合齿轮、旋紧螺栓。它支持模仿学习(基于演示数据的模仿)和强化学习两种训练方法,适用于不同类型的机器人形态。

image
图 1. Isaac Lab 中的接触密集型仿真环境

强化学习是一种适用于装配问题的强大方法,因为它不需要人类演示,并且对感知、控制和夹具中的误差具有很强的鲁棒性。然而,“现实差距”(仿真与现实世界之间的差距)仍然是一个关键挑战。本文所展示的工作流基于 IndustReal 框架,有效地弥合了这一差距。IndustReal 是使机器人能够通过强化学习在仿真中学习装配任务,并将其迁移到真实世界的一套算法和系统工具包。

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

齿轮装配任务包括识别、抓取、搬运并将多个齿轮插入对应的轴上。图 2 展示了任务从初始状态到一个齿轮插入完成的过程。整个过程依赖三项核心技能:抓取、自由空间运动、插入。

image
图 2. 在 UR10e 机器人上齿轮装配任务的

抓取、运输和插入技能

抓取生成使用现成的抓取规划器来获取零件的可行抓取位姿,运动与插入动作则使用强化学习策略进行训练。尽管机械臂的运动生成技术已较为成熟,可通过经典轨迹规划器实现,但训练基于强化学习的运动生成策略,能在应对更具挑战性的插入任务前,为策略学习框架提供有效的校准与调试步骤。

图 3 展示了基于 Isaac Sim 与 Isaac Lab 进行运动生成和插入任务的策略学习流程。仿真环境由 Isaac Sim 提供的资产与场景配置构成,训练环境由 Isaac Lab 提供。这两项任务的策略均依赖于在 Isaac Lab 中实现的底层阻抗控制器。

image
图 3. 使用 Isaac Sim 和 Isaac Lab 进行运动生成和插入任务的策略学习流程

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

运动生成:目标是让机器人从指定工作空间内的随机初始关节角度出发,将末端执行器移动到指定目标位姿(例如抓取位姿)。观测数据包括机器人的关节位置和目标末端执行器位姿,动作空间则由关节位置目标构成。奖励函数会最小化末端执行器与目标之间的距离,同时对机器人的突然或剧烈动作进行惩罚。

插入任务:齿轮初始位于机器人夹具中,处于目标轴附近的随机采样位姿。任务目标是将齿轮移动到轴的底部。观测数据包括机器人的关节位置和目标轴位姿,动作空间同样由关节位置目标构成。奖励函数会最小化齿轮与目标位置之间的距离,并同样对突然或剧烈动作进行惩罚。

这两项技能的关节位置目标均以 60Hz 的频率生成,由底层阻抗控制器执行。

智能体在多种随机配置下进行训练,包括不同的初始机械臂位姿、夹具中齿轮的位姿、齿轮尺寸以及任务整体阶段(例如尚未插入任何齿轮或已插入部分齿轮)。为实现仿真到现实的迁移,还对机器人动力学参数(关节摩擦和阻尼)、控制器增益以及策略观测噪声均应用了域随机化。训练在并行环境中进行,使智能体能够获得多样化且有价值的经验,这对有效学习任务至关重要。

神经网络架构与强化学习算法

每个策略均采用含 256 个单元的长短期记忆 (LSTM) 网络结构,其后连接三层多层感知器 (MLP),分别含 256、128 和 64 个神经元。训练使用 rl-games 库中的近端策略优化 (PPO) 算法,在 Isaac Sim 4.5 与 Isaac Lab 2.1 环境中,基于 NVIDIA GPU 完成训练。

训练结果

图 4 展示了 UR10e 机器人执行训练策略的效果,左侧为运动生成环节,右侧为插入环节。

image
image
图 4. UR10e 机器人在 Isaac Lab 仿真中测试训练策略:运动生成(上)与插入(下)

图 5 展示了所学技能的组合应用。通过重复调用抓取规划器及两项训练技能,机器人能够完成随机摆放的三个齿轮的装配。策略对齿轮的初始位姿与装配顺序均具有鲁棒性。

image
image
图 5. 训练后的强化学习策略按顺序循环执行多步装配:移动至齿轮 1→抓取→插入→移动至齿轮 2→抓取→插入,依此类推

支持仿真-现实迁移的 UR 扭矩控制接口

本研究采用阻抗控制技术,使机器人在与物体接触时实现更安全、顺应性更高(软性)的交互。相比之下,尽管位置控制器精度高,但其刚性特性可能因感知误差或现实对准问题限制适应性,甚至导致意外冲击力。阻抗控制则提供了更灵活的解决方案。

与工业机器人常见的刚性位置控制器不同,阻抗控制需要直接扭矩命令,这在传统工业机器人中并不常见。UR 目前已提供早期访问版本,开发者可以使用其直接力矩控制接口,从而实现上述控制策略。

NVIDIA 团队与 UR 合作,基于 Isaac Lab 和《IndustReal:将接触密集型装配任务从仿真迁移至现实》论文中的方法训练策略,通过 Isaac ROS 和 UR 扭矩接口在 UR10e 机器人上部署。过程中使用了 Isaac ROS 的 Segment Anything 和 FoundationPose 软件包。

基于 Isaac ROS 与 UR 扭矩接口的 UR10e 仿真-现实迁移

图 6 展示了从 Isaac Lab 部署训练策略的仿真-现实迁移框架。感知模块首先将 RGB 图像送入 Segment Anything,生成分割掩码。掩码与深度图像结合后输入 FoundationPose,输出齿轮的 6D 位姿。

image
图 6. UR10e 机器人仿真-现实迁移工作流

然后,将齿轮位姿与来自 UR 关节编码器的位置数据一并输入策略,预测关节位置增量。增量值转换为绝对目标关节位置后,作为阻抗控制器的输入。自定义底层阻抗控制器采用 URScript 编写,以 500 Hz 频率运行,计算控制 UR 机器人执行任务所需的关节扭矩。视频 1 展示了具体的效果。

开始开发

本文展示了在 UR10e 机器人上实现齿轮装配任务的零样本仿真到现实迁移——整个任务在 Isaac Lab 中完成设计与训练,并通过 Isaac ROS 和 UR10e 底层扭矩接口实现部署。

通过以下资源,为您的机器人装配任务开发接触密集型操作策略:

下载 Isaac Sim 与 Isaac Lab,探索针对接触密集型环境的训练

Isaac Sim:

https://docs.isaacsim.omniver...

Isaac Lab:

https://isaac-sim.github.io/I...

阅读论文“IndustReal:将接触密集型装配任务从仿真迁移至现实”,进一步了解本文介绍的算法

https://arxiv.org/abs/2305.17110

查阅 Isaac ROS 相关文档

https://nvidia-isaac-ros.gith...

下载 UR 支持直接扭矩命令的机器人软件的早期访问版本

https://ur.centercode.com/key...

阅读“NVIDIA 机器人研究与开发摘要 (R²D²)”,了解更多机器人装配中接触密集型操作的突破性进展

请持续关注 Isaac Lab 环境和训练代码的发布,这些资源将支持开发者测试现有策略,以及训练自定义策略,同时我们还将提供参考工作流,以帮助开发者在自己的 UR 机器人上部署这些策略。

即刻通过 NVIDIA Isaac 库和 AI 模型,开启物理 AI 系统的开发之旅。

https://developer.nvidia.com/...

推荐阅读
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息