Bootstrap

DexterityGEN:前所未有灵活度的基础控制器

25年2月来自伯克利 BAIR 和 Meta FAIR 的论文“DexterityGEN: Foundation Controller for Unprecedented Dexterity”。

教授机器人灵巧的操作技能(例如使用工具)是一项艰巨的挑战。当前的方法大致可分为两种策略:人类遥控(用于模仿学习)和模拟-到-现实的强化学习。第一种方法很难,因为人类很难在没有触觉反馈的情况下在不同实施例上做出安全灵巧的动作。第二种基于 RL 的方法则难以解决域差距问题,并且涉及对复杂任务进行高度任务特定的奖励工程。本文主要见解是,RL 擅长学习低级运动原语,而人类擅长为复杂的长期任务提供粗略的运动命令。因此,最佳解决方案可能是两种方法的结合。本文介绍 DexterityGen(Dex-Gen),它使用 RL 预训练大规模灵巧运动原语,例如手中旋转或平移。然后,利用这个学习的数据集来训练灵巧的基础控制器。在现实世界中,使用人类远程操作作为控制器的提示,产生高度灵巧的行为。在模拟和现实世界中评估 DexGen 的有效性,证明它是一种通用控制器,可以实现输入灵巧的操作命令,以在不同任务中握住目标的持续时间来衡量,提高了 10-100 倍。值得注意的是,借助 DexGen,首次展示灵巧技能,包括各种物体重定位和灵巧使用工具,例如笔、注射器和螺丝刀。

DexterityGen(Dex-Gen)如图所示:

请添加图片描述

灵巧的机械手因其在制造业、家务和医疗保健等各个领域的潜力而越来越受到关注 [37]。这些机器人系统可以复制人手的精细运动技能,从而实现复杂的目标操纵 [49, 4]。它们能够执行需要类似人类灵活性的任务,这使得它们在传统自动化不足的领域很有价值。然而,有效地向机械手传授灵巧的手部操作技能仍然是机器人技术的一个关键挑战。

近期用于教授机器人灵巧操作技能的数据驱动方法大致可分为两类:人类遥操作(用于模仿学习)[19、15、52、41、12、33、11、58、50] 和模拟-到-现实的强化学习 (RL) [4、16、40、62、24、18、9、23、3、35、60、59、32、51]。尽管这些方法取得了成功,但它们在实际应用中仍面临一些限制。对于人类遥操作,一个主要瓶颈是收集高质量的演示 [31、61]。在接触丰富的灵巧操作中,人类很难执行安全稳定的目标操作动作,经常导致目标从手中掉落。这使得遥操作对于灵巧操作任务来说不切实际。对于模拟-到-现实的 RL,挑战来自于模拟和现实世界之间的巨大域差距,以及在训练 RL 智体执行复杂任务时需要高度特定于任务的奖励规范。

虽然每种方法都有自己的挑战,但结合它们的优势提供了一种有希望的策略来解决灵巧操作的复杂性。具体来说,最近的模拟-到-现实的 RL 工作 [40, 62] 表明,可以训练简单的灵巧手中目标操作基元(例如旋转),这些基元可以迁移到现实世界中的机器人身上。这表明可以利用 RL 来生成大规模灵巧操作原语数据集,包括手中目标旋转、平移和抓握转换。同时,人类擅长通过遥操作组合这些技能来解决更具挑战性的任务。例如,Yin [62]已经证明,它们可以通过依次调用几个旋转基元来执行手部重定向。然而,这些研究中的外部输入仅限于一些离散命令,缺乏对低级交互(如手指运动和目标接触)的控制。这一限制使得现有模型难以生成更详细的手指级交互行为,例如使用注射器或螺丝刀。

机器人的基础模型和预训练。近年来,自然语言处理和计算机视觉领域大型基础模型的成功[2、29、56]引起了人们对构建机器人基础模型的极大关注[6、7、13、42、54、38、64、27、25]。现有的研究通常侧重于通过在大型真实世界数据集上对其进行预训练来构建大型端到端控制模型。

共享自主性。共享自主性研究 [1、26、8、46、48] 侧重于利用外部动作指导来产生有效的动作。一些工作侧重于如何使用外部动作(例如来自遥控)训练 RL 智体 [43、14、44]。在他们的设置中,外部输入通常被视为提供给 RL 策略的观察的一部分。另一项研究假设存在一些特定于任务的意图和目标,并将共享自主性问题简化为目标或意图推理 [1, 21]。这一项研究在灵巧操作方面的局限性在于,它们不允许细粒度的手指控制,因为它们仅为高维动作空间提供了一些选项。最相关的研究是 [5, 63],它们也使用一些采样分布来纠正用户行为。

本文提出一个称为 DexterityGen (DexGen) 的训练框架,用于解决教授灵巧手动操作技能的挑战。主要想法是使用通过 RL 生成的广泛、多任务模拟数据集来预训练生成行为模型 (DexGen),该模型可以将粗略的运动命令转换为安全的机器人动作,从而最大限度地保留运动,同时保证安全。

该框架概述如图所示。左图(训练):在模拟中收集大量多任务灵巧手部操作数据集,以预训练生成模型,该模型可以根据当前状态生成各种动作。预训练的生成模型可以生成有用的动作,包括旋转、平移和更复杂的行为。右图(推理):在推理过程中,可以通过引导采样将遥操作或策略产生的危险动作投射回高可能性动作。这使得 DexGen 能够协助粗略的高级策略执行复杂的目标操作。

请添加图片描述

在模拟数据集上预训练生成行为模型 p_θ(a|o),以模拟先前的动作分布,以便它能够根据机器人状态 o 生成稳定有效的动作 a。在推理过程中,可以从该分布中采样动作,并使用梯度引导进一步与外部运动命令保持一致。

由于人类遥操作或外部策略将控制机器人手以各种方式与目标交互,本文模型应该能够针对所有这些潜在场景(状态)提供细化。为此,需要一个大规模行为数据集来预训练 DexGen 模型,确保全面覆盖状态空间。在此通过强化学习在模拟中收集目标操作轨迹来实现这一点。

为了确保数据集可以覆盖广泛的潜状态,引入 Anygrasp-to-Anygrasp 作为核心预训练任务。此任务捕获手中操作的基本部分,即将目标移动到任意配置。对于每个目标,定义训练任务如下。首先使用抓取分析和快速探索随机树 (RRT) [30] 生成一组目标抓取,类似于操纵 RRT 程序 [24]。每个生成的抓取都定义为一个元组(手关节位置、目标姿势)。在每个 RL 部署中,用随机抓取初始化手中的目标。用 k 最近邻搜索将目标设置为随机选择的附近抓取。达到当前抓取目标后,以相同的方式更新目标。在训练过程中选择一个附近可达的目标至关重要,因为学习直接达到远距离抓取可能很困难。训练后,用此 anygrasp-to-anygrasp 策略来部署抓取转换序列,以覆盖所有可能的手-目标交互模式。在抓握生成过程中对大多数目标进行超过 100K 的抓握采样,以确保覆盖范围。此训练过程产生丰富的有用技能,包括目标平移和重定位,高级策略可以利用这些技能来解决下游任务。除了 Anygrasp-to-Anygrasp 任务之外,还引入了其他任务,例如自由手指移动和细粒度操作(例如精细旋转),以处理具有特殊精度要求的任务。

如图所示 Anygrasp-to-Anygrasp 数据集生成流水线:对于各种各样的目标,广泛搜索潜在的抓握配置,并将它们用作 RL 策略的初始状态和目标状态;为了确保扩散模型能够管理各种场景,在 RL 训练和数据收集过程中结合各种手腕姿势、动作和域随机化。

请添加图片描述

在 RL 训练期间,用一组不同的随机目标和手腕姿势。对于每个任务,都会包含具有不同物理属性的随机几何目标。为了增强策略的稳健性,除了采用常用的域随机化之外,还在整个过程中随机将手腕调整到不同的姿势,因此策略将学习抵消重力影响并表现出抓握操作行为。通过结合所有这些数据,机械手可以操纵不同手腕配置的不同种类目标来对抗重力,而不仅限于操纵某个姿势的单个目标。

总共收集 1 × 1010 个转换作为模拟数据集,相当于 31.7 年的现实世界经验。生成此数据集(通过推出经过训练的 RL 策略)需要 300 个 GPU 小时。尽管数据集很大,但假设它仍然远远不够,因为人类的灵巧性是从数百万年的进化中产生的。尽管如此,这个模拟数据集仍然能够实现以前从未展示过的可靠灵巧行为。

如图所示 DexGen 模型架构:

请添加图片描述

DexGen 模型有两个模块。第一个模块是扩散模型,它根据当前观察结果表征机器人手指关键点运动的分布。在这里,用机器人手框架中的 3D 关键点运动 ∆x 作为中间动作表示,这种表示对于整合来自人类遥操作的指导特别有利。在这种情况下,T 是未来视野,K 是手指关键点的数量。DexGen 中的第二个模块是逆动力学(ID)模型,它将关键点运动转换为可执行的机器人动作(即目标关节位置)a_t=q_t̃。

用基于 UNet 的 [45] 扩散模型来拟合多任务数据集的复杂关键点运动分布。如图所示 DexGen 控制器中的扩散模型:

请添加图片描述

模型学习生成几个未来的手指关键点偏移 ∆x_i = x_t+i − x_t,这些偏移取决于时间步 t 的机器人状态和模式条件变量。状态是历史的本体感受信息栈。模式条件变量是一个 one-hot 向量,用于明确指示任务的意图。例如,在放置目标时,不希望模型产生使机器人牢牢握住目标的动作。如果不引入“释放目标”指示器,如果数据集中的大多数动作都会将目标保持在手掌中,则很难提示手释放目标。在数据集中,大多数转换都标有“默认”(无条件)标签,只有一小部分对应于特殊场景的转换具有特殊模式标签。在实验中只对螺丝刀使用专门的精密旋转模式标签。对于释放目标,在实践中禁用 DexGen 控制器就足够了。

逆动力学模型是一个简单的残差多层感知器,它输出正态分布来模拟以当前机器人状态和运动命令为条件的动作。分别使用标准扩散模型损失函数和 MSE 损失进行回归,使用生成的模拟数据集训练扩散模型和逆动力学模型。用 AdamW 优化器 [34, 28] 训练这些模型,使用 96 个 GPU,进行 15 个epochs,大约需要 3 天。

目标是采样一个既安全(即从学习的分布 p_θ(∆x|o))又能最大限度地保留输入参考运动的关键点运动。正式地,这可以写成 ∆x ∼ p_θ(∆x|o)exp(−Dist(∆x, ∆x_input))。这里,∆x_input 是输入命令的指尖偏移,Dist 是一个距离函数,它量化预测序列和输入参考之间的距离。有很多方法可以实例化这个距离函数。本文采取以下简单的距离函数效果很好:

请添加图片描述

上述函数鼓励生成的未来指尖位置与命令的指尖位置紧密匹配。由于机械手的动作具有高度自由度(本文使用的 Allegro 手为 16 DOF),因此简单的采样策略在计算上变得难以处理。为了解决这个问题,在扩散采样过程中使用梯度引导来结合运动调节。在每个扩散步骤中,通过减去 αΣ∇_∆x Dist(∆x, ∆x_input ) 来调整去噪样本 ∆x,以此作为指导。此处 α 是要调整的指导强度参数,在实验中对其调整。然后,逆动力学模型将生成的手指关键点运动转换为动作。在推理过程中使用 DDIM 采样器 [53] 进行 10Hz 控制。在配备 NVIDIA RTX 4090 GPU 的 Lambda 工作站上,总采样时间约为 27ms(37Hz)。

如图所示:大规模多任务预训练数据集涵盖各种抓握转换(箭头);DexGen 控制器学习每个状态下的数据集动作分布(紫色阴影区域),可以使用顺序动作提示(紫色三角形)来执行有用的长范围技能,连接两个距离状态。

请添加图片描述

本文使用 Allegro Hand 作为机械手,并将 Allegro Hand 连接到 Franka-panda 机械臂上,如图所示。在现实世界的遥操作实验中,用基于重定向的系统通过人类手势来控制机器人。Manus Glove 捕捉人类手部姿势,并通过以 300Hz 运行的一种快速重定向方法将其重定向到 Allegro 手上。通过 Vive 跟踪系统获得 6D 人体手腕姿势,并使用它来单独控制机械臂。虽然在实验中使用这个单一机器人设置,但该方法是通用的,可以应用于其他手部设置。

请添加图片描述

首先在模拟中测试 Dex-Gen,解决 Anygrasp-to-Anygrasp 任务中协助次优策略的能力。用专家 RL 策略 π_exp 模拟两种次优策略。第一个是 π_noisy (a|s) = π_exp (a|s) + U (−α, α),它模拟一个可以通过添加均匀噪声执行危险次优操作的专家。第二个是 π_slow(a|s) = U(0,α)π_exp(a|s),它是专家的减速版。将这些次优专家 π 与其辅助版 DexGen ◦ π 进行比较。记录不同策略在一定时间内发生严重失败(掉落目标)的平均次数和实现目标的次数。

进一步设计几个任务以在现实世界中进行基准测试,如图所示部分现实世界测试中的目标。在第一组实验中,要求人类遥控操作员充当外部高级策略,并评估系统是否可以帮助人类解决各种灵巧操作任务。引入一组基元技能,涵盖常见的手部灵巧操作行为。

请添加图片描述

手中目标重定位。用户需要控制手将给定目标旋转到特定姿势。一开始,在手掌上方的空中初始化目标,用户需要先遥控手来抓住目标。
功能性抓握。重新抓握是工具操作的必要步骤。要求用户对水平(正常)或垂直放置在空中(水平功能性抓握)的工具手柄进行强力抓握。一开始,用户只能进行捏抓或精确抓握。
手中重抓握。将此任务定义为目标重定位的更难版。在此任务中,要求用户实现特定的抓握配置(目标姿势 + 手指姿势)。一开始,用指尖精确抓握目标来初始化目标。

除了这些任务之外,还演示一些更现实、更长远的任务。这些任务需要用户结合上述技能。在此只研究以下两个任务:
螺丝刀。在这个任务中,用户需要拿起桌子上的螺丝刀,用它来拧紧螺栓。
注射器。在这个任务中,用户需要拿起注射器并将一些液体注入目标区域。

评估协议:通过测量人类用户在使用遥操作系统解决某些任务时可以实现的成功率,评估远程操作系统的性能。在评估之前,让用户在 30 分钟内熟悉每个评估的遥操作系统。实验中涉及 2 名用户。

分析其中的挑战和机会。

人类遥操作的模仿学习

挑战:通过遥操作进行灵巧操作对人类来说具有挑战性,原因如下:
a) 部分可观察性:在手部操作过程中,目标运动由手和目标之间的接触动力学决定 [57, 37, 22]。成功的操作需要感知和理解接触信息,例如法向力和摩擦力,以产生适当的扭矩。然而,由于遮挡和有限的触觉反馈,人类操作员在观察这些信息时面临挑战。此外,现有的离散触觉反馈(例如二元振动)本身通常不足以传达复杂的触摸交互和接触几何形状。
b) 具身差距:虽然人类和机器人的手乍一看可能相似,但它们的运动结构和几何形状存在很大差异。例如,人类手指具有光滑且柔顺的表面,而机器人手指通常具有粗糙的边缘。这些差异导致接触动力学的差异,使得把对人类手指运动的理解直接迁移到机器人身上具有挑战性。在早期的实验中,目标运动对指尖形状的变化非常敏感。
c) 运动复杂性:灵巧的手部操作涉及高度复杂的运动。该过程需要对高自由度动力系统进行精确控制。任何自由度下的任何次优遥控运动都可能导致故障,例如破坏抓握接触。
d) 动作(力)不准确:现有的机器人手遥控系统基于位置控制的手部重定位,缺乏直观的力控制界面。因此,用户只能通过位置控制误差来影响力,这使得遥操作在力敏感场景中特别具有挑战性。此外,现实世界机器人系统中噪声的存在进一步使控制复杂化。

机会:高级(语义)运动控制

虽然人类可能发现直接提供细粒度、低级动作具有挑战性,但人类遥操作甚至视频演示仍然可以为各种复杂的现实世界任务提供有价值的粗略运动级指导。人类拥有直觉知识,例如机器人手应该在哪里接触以及什么构成良好的抓握。因此,可以利用人类数据来创建高级语义动作规划。在运动研究中,最近的研究提出使用遥操作命令作为高级运动提示 [10]。然而,将这种方法扩展到细粒度的灵巧操作仍然是一个悬而未决的问题。

模拟-到-现实的强化学习

挑战:为灵巧操作开发通用的模拟-到-现实策略涉及两个主要挑战:

a) 模拟到现实的差距:很难在模拟中重现现实世界的传感器观察(主要用于视觉输入)和物理。这种差距可能使模拟-到-现实的迁移对于复杂任务极具挑战性。尤其是,将基于视觉的控制策略从模拟迁移到现实世界,对于灵巧的手来说,这是一项巨大的挑战,需要昂贵的视觉域随机化 [55]。例如,Dextreme [16] 利用 500 万张渲染图像进行广泛的视觉域随机化,训练单个目标旋转策略。
b) 奖励规范:除了模拟与现实之间的差距之外,更重要的问题是设计奖励函数以应对长期、接触丰富的问题​​,这是一个臭名的挑战。现有方法通常涉及高度工程化的奖励或过于复杂的学习策略 [9],这些策略是特定于任务的,并且限制了可扩展性。

机会:低级(物理)动作控制尽管模拟-到-现实的 RL 可能很困难,尤其是对于那些复杂的长期或基于视觉的任务,但最近的一些研究表明,模拟-到-现实的 RL 足以基于本体感觉和触觉构建各种可转移的操作原语 [62]。因此,模拟-到-现实强化学习的一个机会是创建丰富的低级动作原语,这些原语可以与上面讨论的高级动作规划相结合。

;