首页 > 其他分享 >ALOHA:A Simple Recipe for Robot Dexterity

ALOHA:A Simple Recipe for Robot Dexterity

时间:2024-12-16 21:25:56浏览次数:3  
标签:Dexterity 策略 Simple 机器人 Recipe 衬衫 学习 任务 数据

摘要:
模仿学习在学习端到端的机器策略中展示了好的结果,本论文的工作解决的问题是,能在多大程度上推动模仿学习来挑战灵巧的操作任务。在ALOHA2 平台上,将一个简单的大规模数据收集的配方与可表达的模型(扩散的策略)相结合,可以有效地学习具有挑战性的手动操作任务,包括可变形的物体和复杂的接触丰富的动态。本工作中,在5个具有挑战性的现实世界和3个模拟任务中展示了配方,并在最先进的基线上展示了改进的性能。

1 介绍
模仿学习使机器手臂完成灵巧的任务(系鞋带,撑衣服),然而这些复杂的操作需要很多步骤去完成,并且需要高精度。近年来,模仿学习已经成为解决各种各样问题的一个方案,然而,更多成功应用在简单的操作,如:拾取、放置、推动。因此,目前尚不清楚简单地扩大模仿学习是否足以熟练操作,因为精度问题。

本论文的实现了使用模仿学习来完成灵巧的操作。通过选择合适的学习结构结合合适的数据收集策略,展示在ALOHA平台上获得能够解决涉及可变形物体并要求高精度的高度灵巧、长视距、手动操作任务的策略。为了实现这些,开发了一个协议去收集一个之前任何手动平台都无法匹配的规模的数据。现实机器人在5个任务中超过26000个演示,在3个模拟任务中超过2000演示。

但是,仅有数据是不够的。另一个关键是基于Transformer的学习架构,该架构使用扩散损失来训练。在多视图条件下,这个架构淡化了行动轨迹,它在后退的水平线设置中开环执行。结果表明,非基于扩散的架构无法解决本论文的任务。

实验评估包括5个现实世界的任务,如,系鞋带、衣服挂衣架上。还有三个模拟任务。并且研究实验策略的复杂性和分布外的稳健性。

2 相关的工作
模仿学习:
模仿学习能够使机器人从专家演示中学习。早期解决机器人学习的工作来自动作原语。随着深度学习与生成建模的发展,提出了不同的体系结构和训练目标对模型端到端建模。包括:

  • 使用ConvNets或ViT进行图像处理;
  • RNN或者Transformers用于融合历史观测;
  • 操作空间的标记化;
  • 生成建模技术,如基于能量的建模;
  • 扩散;
  • VAEs;

本工作中,在现有的模仿学习的基础上推出简单的算法,具体来说,受扩散策略和ACT的启发,训练了一个基于Transformer的扩散损失策略。同时训练了大量的非研究人员的数据,它们使用ALOHA2去执行精度和多模态的任务。

手工操作:
在机器人领域,手工操作已有一段很长历史。早期从优化的角度解决了手工操作,如环境动力学。然而,这种方法可能是耗时的,特别是那些捕获丰富接触或可变性物体的模型。最近,学习已被纳入手工系统,包括强化学习、模仿学习、或者调制低级动作原语的关键学习点。

先前的工作也研究了高度灵活的手工操作,如解结、布平整、穿针。然而,这些工作所使用的机器人更加困难,如手术机器人。本工作中,使用一组低成本的ALIOHA2系统来研究如何扩大数据收集本身可以在没有超精度运动学和复杂传感的情况下为机器人的灵活性带来重大进步。

扩大机器人在现实世界中的学习规模:
许多工作通常使用现实世界收集的数据去扩大机器人的学习能力。由人控制机器人,远程操作是收集高质量数据的一种方式。先前的工作已经收集了使用VR控制器或触觉设备的单臂机器人的大型数据集,展示了对新场景和对象的泛化。另一种选择是,机器人也可以通过编程或强化学习(RL)算法控制来自主收集数据,减少了对人类监督的需要。

另一种收集专家数据的方法使用可穿戴或者手持设备,如抓手、外骨骼或跟踪手套。这允许在不需要完整机器人的情况下扩展数据收集。目前还需要将上述数据集结合起来,以训练一个可以控制多个机器人的单一模型。工作中,专注于扩大机器人学习的灵活性方面,以及强大地处理可变形和铰接式的物体。

3 方法
ALOHA Unleashed,一个用于训练机器人灵巧策略的通用模仿学习系统,由一个可扩展的远程操作框架组成,该框架允许用户收集数据来教机器人,结合基于Transformer神经网络,该网络经过扩散策略的训练,为模仿学习提供了一个富有表现力的策略制定。在ALOHA2上展示结果,ALOHA2由一个带有两个6自由手臂的双手平行颚夹持器工作单元组成。

5个具有挑战的现实任务:挂衬衫、系鞋带、更换机器人手指、插入齿轮、随机初始化堆叠厨房物品;3个模拟手工任务:单钉插入、双钉插入、把杯子放入盘子里。

3.1 策略
扩散策略:
使用的数据具有固定的多模式,给的数据是从多个操作员收集的,包含各种远程操作策略,并且是在多个机器人工作单元上长时间收集的。这需要一个表达性的策略公式来拟合数据。为每个任务训练一个单独的扩散策略。扩散策略提供稳定的训练,并通过多模态输入(4张不同视点图像和本体感觉状态)和14个自由度的动作空间表达多模态动作分布。使用去噪扩散隐式模型(DDIM)公式,它允许在测试时灵活地使用可变数量的推理步骤。执行动作分块,以允许策略预测50个动作的块,表示跨越1秒的轨迹。

基于Transformer的架构:
在本基本模型中,扩展了一个类似于Transformer解码器-编码器体系结构的模型。使用基于ResNet50的视觉骨干,以及Transformer 编码器-解码器架构作为神经网络策略。

每一个4RGB的图像被调整为4806403,并馈送到单独的ResNet50骨干。每个ResNet50都是从ImageNet预训练的分类模型初始化的,采用ResNet的阶段4输出,为每个图像提供了一个1520512的特征映射。这个特征映射被铺平,导致4张图像的1200维嵌入。附加另一个嵌入,这是机器人本体感觉状态的投影,它由每个的关节位置和抓手值组成,总共有1201个潜在的特征维度。在嵌入中加入位置嵌入,并在其输入85M参数的Transformer编码器对嵌入编码,并进行双向关注,产生观测值的潜在嵌入。这个潜在嵌入被传递到扩散降噪器中,它是一个双向关注的55M参数Transformer。

Transformer解码器的输出是一个5014张量,对应于具有学习位置嵌入的带噪声的动作块。这些嵌入交叉关注来自观察编码器的潜在嵌入,以及扩散时间步长,它被表示为一个单热向量。Transformer解码器的输出尺寸是50512,其与线性层投影为50*14,对应于块中接下来50个动作的预测噪声。

总的来说,基本模型由217M个可学习参数组成。对于消融实验,我们还训练了我们模型的一个小型变体,它使用17M参数的ransformer编码器和37M参数的Transformer解码器,总网络大小为150M参数。

训练细节:
使用JAX训练模型,使用64个数据并行网格的TPUv5e芯片。使用256个批量大小,训练2M步。使用带有0.001权重衰退的Adam优化器,线性学习率热身5000步,接下来是1e-4的恒定速率。

测试时间推断:
在测试时间,我们首先从高斯分布采样一个带有噪音的动作块。从4个RGB摄像头和机器人的本体感觉状态收集最新的观察结果,并将这些结果通过观察编码器传递。然后我们运行扩散去噪循环50次,输出一个降噪动作块。发现不需要时间集合,只需在块开环中执行50个动作。

3.2 数据收集
ALOHA允许通过操纵界面进行手工远程操作,这允许人们远程操作者反向驱动两个较小的领导臂,其关节与两个较大的跟随臂同步。收集以下5个任务的数据(现实世界任务):

挂衬衫:衬衫压平——取衣架——进行交替(交换手臂)——拿起衬衫——精确地将衣架的两侧插入衬衫领子——将衬衫挂回架子上。构建这两个任务的变体:

  • ShirtEasy:有一个更受约束的初始化,衬衫被压平并放在桌子的中心。
  • ShirtMessy:允许初始化的衬衫被旋转和折叠,并且在起始位置有明显更多的变化。

系鞋带:鞋子放中心——拉直鞋带——系成蝴蝶结。系鞋带任务的两个变体:

  • LaceEasy:有一个约束初始化,鞋子在桌子的中心,鞋带向外延申。
  • LaceMessy:允许鞋的角度有+-45度的变化,而且不需要把鞋带弄平。

跟换机器人手指:从槽口取出一个机器人手指——挑选替换的手指——重新调整手指的方向——插入槽口(以毫米的公差)。

插入齿轮:需要将3个塑料齿轮插入到一个带有摩擦配合的毫米精度的插座上,同时确保齿轮完全坐好,齿轮上的齿与邻近齿轮吻合。

随机堆放餐具:这个任务需要清理一张随机初始化的桌子,将碗、杯子和餐具堆叠起来,并将堆叠放在桌子的中央。

为了扩展这些任务的数据收集,我们创建了一个协议,允许非专业用户提供高质量的远程操作演示。协议文件概述了如何使用机器人的说明,以及正在执行的任务的具体说明。这使得35个操作人员可以在没有研究人员监督的情况下连续收集数据。使用这个协议,收集了超过26K插图的5个真实任务,在8个月时间里,对2座不同的建筑的10个不同的机器人进行了测试。在多个机器人工作单元上进行长时间的数据收集提出了许多挑战。外部影响也会导致训练差异,由于装配错误或普遍差异,机器人可能在硬件上存在差异,如机器人或摄像头安装的位置。因此机器人的硬件变化或一般磨损可能会改变机器人的动力学和行为。建筑物之间的变化和机器人位置的差异有助于RGB图像中背景和照明的多样性。从35个不同的操作员那里收集数据会导致大量的行为差异,即使每个任务都有详细的协议文档。

4 结果
4.1 任务执行表现
对于核心模型的主要结果,对每个任务执行20次实验,分别使用在5个数据集上训练模型。一轮结束,训练结果要么成功要么超时。对于齿轮插入和厨房堆叠物品,我们看到性能随着每增加一个阶段而下降,通常是由于需要更细粒度的行为来插入更小的齿轮或者挑选像叉子这样的对象。对于所有其它任务,只有当策略执行了所有必须的步骤,而没有部分成功时,才标记为成功。

4.2 学习灵巧行为
灵巧行为可以从数据中学习。主要有:手动操作单元、恢复行为和重试、视觉伺服、模式转换、精确插入。

在为这些任务收集数据的过程中,操作人员需要执行许多手动操作,像切换以重新定位,以及使用手腕摄像头进行视觉增强。如:

  • 重新定位:替换机器人手指需要将手指从桌子上移开后重新调整手指的方向,以便插入。该策略从机器人手指的多个起始位置学习了许多连贯的重新定位行为。虽然重新定位相当稳健,但是在数据集中没有很好地表示开始位置的失败。例如手指被倒过来,表明它可能有必要明确收集更多不同的重新定向样例。
  • 视觉增强:替换机器人手指还可以使用视图增强。该策略还学习了一种存在于数据中的手动视图增强策略,操作人员使用未使用手臂的手腕摄像头为策略提供增强的RGB输入,以更好地执行精确插入,这很少用在其它视图任务中。

恢复行为和重试在任务中也可以看到。如:

  • 重复行为:衬衫从衣架上掉下来的实例,以及策略回复并替换衣架上的衬衫的实例。
  • 重试:还可以看到插入期间的重试行为实例,例,齿轮插入和手指更换中,策略重新定向并从失败的插入中恢复。

策略执行视觉伺服,已完成所有任务中涉及的精确拾取行为。特别在随机堆放厨房物品尤为明显,需要从表中各初始状态中挑选瘦对象。机器人在ALOHA2平台上未经校准,可能在机器人和摄像机安装位置上有差异。以此推测出,虽然策略接收RGB和完全本体感觉状态,但策略可能从视觉反馈中学习反应性伺服行为,并在机器人中推广。

在长期视界任务中,观察到模式切换行为。例如,在ShirtMessy,策略从把衬衫放在桌子上铺平到开始伸手去拿衣架。在LaceMessy中,策略从拉直鞋子切换到系鞋带阶段。

齿轮插入和手指替换需要毫米精度的精密插入。特别地,齿轮插入需要一个紧密摩擦配合,以适当地对准和插入把所有齿轮进入轴中。实验发现,尽管机器臂精度低,缺乏力-扭矩反馈,该策略能够在只有视觉反馈的情况下执行这些任务。

4.3 消融
验证数据数量和质量的重要性。

数据数量:
任务性能如何随演示次数而变化。对于衬衫任务,在100%、75%、50%和25%的数据上训练策略。发现在一定程度上,在较少数据上训练的策略的性能与在ShirtEasy任务上所有数据上训练的策略的性能相似。然而,策略在ShirtMessy训练更少的数据是更糟糕的。因此假设ShirtMessy需要更多的演示来学习重新安排和平整衬衫所需的动态行为。

数据过滤:
发现操作员收集较短的轮数在轨迹中往往会出现较少的错误。因此根据ShirtEasy的轮数时长进行过滤。对于这个任务,首先随机抽取数据集的25%。在这种低数据状态下,分割训练模型:1 所有轮数、2 最短的75%轮数(短于43秒)、3 最短的50%轮数(短于29秒)、最短的25%轮数(短于20秒)。在ShirtEasy上,经过数据过滤后,性能有所提高,从对所有轮数进行训练的30%成功率提高到对最短的50%轮数进行训练时的55%成功率。然而,使用最短的25%轮数时,性能下降到40%。推测出在原始演示和不同质量的演示之间找到一个良好的平衡是很重要的。虽然干净,高质量的演示对于建模最佳行为非常重要,但一些次优数据也是必要的,因为这些数据包含有助于策略的恢复和重试行为。

扩散 VS L1 回归损失:
比较ShirtEasy、ShirtMessy和模拟环境的性能。尽管有一个调优的动作分块 +L1回归实现和150M参数模型,观察到在ShirtMessy上有25%的成功,而在同样大小的扩散策略上有70%的成功。

模拟实验:
通过比较扩散和L1 回归损失在3个模拟手工任务中。所有模拟的结果表示超过30个滚动,每个环境具有不同的初始化对象位置。观察到扩散策略在所有3个任务上都优于ACT。

4.4 泛化
核心模型只对每个任务进行训练,但也可以从模型中观察到一些有希望的泛化迹象。如衬衫,有各种各样的差异,孩童衬衫,成人衬衫,颜色的差异,红、黄、蓝、绿等。本工作中在其它样式的衬衫也取得了不错的效果。

通过测量模型的泛化能力在ShirtMessy任务中。任务空间仍然是大的,因为可变性衬衫可以采用多种配置。我们观察到,模型可以处理在桌子上+-60度倾斜,起皱和正面朝上的衬衫的初始化,并且模型在给定配置的情况下学习了使衬衫变平和对中的良好行为。然而,衬衫通常在衬衫180度或者面朝下无法恢复。类似系鞋带可以学习“拉直”行为,但是无法恢复鞋子翻了、翻转或者鞋带缠在一起的情况。

5 结论
介绍ALOHA Unleashed,一个学习灵巧机器人行为的简单方法。在ALOHA2平台上收集了超过26K个演示,并在数据上训练了一个基于Transformer的扩散策略。在真实和模拟环境中展示了灵巧的行为。

ALOHA Unleashed展示了一个简单的配方可以突破机器人学习中双手灵巧行为的界限。然而,这种方法在几个方面收到限制:一次只针对一个任务训练策略,而其它方法则使用基于语言或目标图像的单一模型权重集来执行多个任务。ALOHA Unleashed还为每个任务使用许多人工演示,收集这些演示非常耗时。

希望扩展ALOHA Unleased,使用可以执行多个任务的单个模型来扩展任务数量,并继续提高数据复杂度,以减少灵巧行为所需的数据量。

标签:Dexterity,策略,Simple,机器人,Recipe,衬衫,学习,任务,数据
From: https://www.cnblogs.com/kangkangk/p/18602951

相关文章

  • 微软官方驱动例子SimpleAudioSample安装失败的解决
    无法编译微软有一个Bug,Spectre,现在被缓解了,但是代价是你要在VS2022中安装一大把的环境,否则此例子无法编译……无法安装devcon.exe,如图执行后得到:但是设备管理器里找得到这个设备……说明是安装了,但安装之后并没有执行起来无法安装——从devcon.exe定位devcom.exe的输出......
  • QT日志类SimpleQtLogger的简单记录
    在现代软件开发中,日志记录是必不可少的部分。它不仅帮助开发者在调试和维护软件时了解程序的运行状态,还能提供关键的错误信息。对于使用Qt框架开发应用程序的开发者来说,选择一个合适的日志库至关重要。本文将详细介绍Qt日志库SimpleQtLogger的特点、安装方法、使用示例以及它在实......
  • 企业消费管理再进阶:SIMPLE模型帮你选择服务商
    公司上万名员工每天满世界飞,差旅应该怎么管?员工出差、加班,每天数万单打车费用,怎么管?招待用餐和员工用餐,如何做到能成本更低,体验更好?包括差旅、招待用餐、员工用餐、用车、福利等,都是企业消费的核心场景。在当前的经济形势下,企业焦点已经从单纯追求用户规模增长,转向企业经营的全方......
  • Dapper.SimpleCRUD:Dapper的CRUD助手
    我们在项目开发中,面对一些高并发、大数据量等业务场景,往往对SQL语句的性能要求比较高,这个时候为了方便灵活控制,我们一般就会编写原生的SQL。Dapper就是一个非常高性能的轻量级ORM框架,Dapper采用原生SQL语句的方式,对于CRUD这些简单操作我们一般都会自行封装,不然就会变成很繁琐。......
  • Django-simple-captcha实现图片和输入框的样式
    django验证码的插件一、安装pipinstalldjango-simple-captcha二、配置和安装settting.py在INSTALLED_APPS,添加captcha在末尾增加captcha增加如下配置:CAPTCHA_IMAGE_SIZE=(120,50)#图片大小CAPTCHA_BACKGROUND_COLOR='#FFFFFF'CAPTCHA_CHALLENGE_FUN......
  • Github上博客园SimpleMemory主题美化插件使用体验
    Github上博客园SimpleMemory主题美化插件使用体验目录Github上博客园SimpleMemory主题美化插件使用体验基本设置SimpleMemory插件地址管理选项管理侧边栏管理页面定制合影基本设置进入博客园管理界面,完成基础设置。皮肤模版选择SimpleMemory作为基础模版。JS权限如果开通,......
  • 论文解读《LightRAG: Simple and Fast Retrieval-Augmented Generation》
    博客:https://learnopencv.com/lightrag视频:https://www.youtube.com/watch?v=oageL-1I0GE代码:https://github.com/HKUDS/LightRAG论文:https://arxiv.org/abs/2410.05779​ -时间:2024.10​ -单位:UniversityofHongKong、BeijingUniversityofPostsandTelecommunicatio......
  • Android Codec2 CCodec (二八)SimpleC2Component
    在AndroidCodec2(九)组件实现分析一文中,我们了解了Codec2组件的实现框架,接下来这一章我们将深入探讨组件的实现细节。1、C2ComponentC2Component抽象了Codec2组件的控制与CallbackAPI。首先来看Callback类Listener:classListener{public:virtualvoidonWork......
  • 待遇任务执行器(dy-task-actuator-simple)文档
    待遇任务执行器(dy-task-actuator-simple)文档简介简称dtas吧。这是一个尚在起步但无需太多功能的执行器。心血来潮,做了一个任务执行器,倒不是一定要重复造轮子,而是没有发现开箱即用的任务执行器。​这不是一个特别高性能的任务调度框架!只是一个任务执行器。唯一......
  • 待遇任务执行器(dy-task-actuator-simple)文档
    待遇任务执行器(dy-task-actuator-simple)文档简介简称dtas吧。这是一个尚在起步但无需太多功能的执行器。心血来潮,做了一个任务执行器,倒不是一定要重复造轮子,而是没有发现开箱即用的任务执行器。​这不是一个特别高性能的任务调度框架!只是一个任务执行器。唯一......