发表时间:23 Jun 2024
论文链接:https://readpaper.com/pdf-annotate/note?pdfId=2424337814218433280\¬eId=2424337934527345920
作者单位:School of Computer Science, Peking University
Motivation :现有的方法一般都用多模态大型语言模型 (MLLM) 的泛化能力和推理能力去做具身任务,然而,这些方法通常专注于使用额外的 MLLM 进行高级规划校正,利用失败样本来纠正low-level的接触姿势的研究是非常有限的。
解决方法 :为了解决这一差距,我们提出了一种自主交互校正 ( AIC ) MLLM框架,它利用以前的loe-level交互经验来纠正 SE (3) 姿势预测。作者认为机器人在进行操作的时候, 错误是难免的,因此,除了直接增强robot使得泛化能力之外,需要机器人具有从错误中学习的能力。
AIC MLLM 的校正过程。 给定一个失败的交互,我们首先提取关于对象几何形状的反馈信息,然后使模型能够反映和纠正位置和旋转估计,从而生成更准确的SE(3)姿态。
本文的主要贡献可以总结如下:
1)我们介绍了 AIC MLLM,这是一个框架,它利用 MLLM 通过learning from low-level interaction failures来纠正 SE(3) pos 预测。
2)我们design visual and textual prompts to guide position and rotation corrections(VQAtask 去有监督的指导末端位姿生成), and incorporate a feedback information extraction module to adaptively correct(修正) pose predictions based on identified failure causes。
3)我们implement a test-time adaptation module to enhance manipulation stability,大量的实验证明了所提出的AIC MLLM在模拟和现实环境中的有效性。
实现方式:
训练阶段:使用 visual and textual prompts to guide position and rotation corrections。
AIC MLLM 的训练。我们逐渐使模型能够预测姿势并理解包括对象部分和轴信息在内的视觉和语言反馈提示。
前三步的prompt都是寻找正确的position的,第四个prompt是寻找正确的direction的,都是通过VQA task去对模型进行参数的更新。
Postional Error Interface(前三步的prompt):
通过prompt这种问答的形式(VQA task),给模型一个监督(交叉熵),让模型去理解不可移动部分(输入的图像的mask的部分代表unmoveable部分 )的空间信息 ,并输出contact point(对应图2中的前三步的Prompt)。
-
Mask Image Classfication:first need to train it to recognize whether there is a mask in the image。用cross-entropy loss Lh.
-
Mask Position Reasoning:After the model understands what a mask is, we also need it to understand where the mask is located. We randomly select N pixel points (x1, y1)...(xN , yN ) and ask the model to identify whether each point is on the mask. 用cross-entropy loss LP
-
Correct Based On Mask:we prompt it to predict a new pose based on the constraint of unmovable part. 用 cross-entropy loss LC
Rotational Error Interface(第四步prompt):
通过前三步提示找到了connect point,但是只有 connect point不行,需要夹持器方向 gripper direction 。对于铰接对象,主要有两种类型的关节:平动和转动(跟上一篇文章的场景一致)。 尽管一些尝试的动作是失败的,但是外力仍然可能导致门在一定程度上移动。本文就是要将这个错误的移动利用起来。因此,我们利用这种交互中的运动来捕获有关关节类型和轴方向(joint type和 axis direction)的信息,使模型能够相应地反映和纠正其动作。注意,这里捕获的应该是末端执行器的动作信息。
具体来说,在图2的最后一个提示中,我们将the joint type information和方向信息合并到文本提示中,将其建模为VQA任务。该模型需要基于joint信息、当前接触点和当前法线方向提供新的方向预测,这也可以为预测有效接触方向提供一些提示。
在模拟器中,我们可以获得准确的关节类型、关节轴方向和范数方向,并计算零件的实际运动方向。然而,在现实场景中,估计的关节轴方向可能不准确,可能是有噪声的。为了减轻误差累积,我们通过在获得的轴方向上围绕 -20° 和 20° 之间添加随机旋转来将噪声引入训练过程中。加噪声的目的是弥补模拟和现实之间的gap。
测试(推理)阶段 (也是通过a depth map将2D contact point transformed into 3D coordinates,与上一篇工作的做法一样) :if the model's interaction with the object results in failure, we use an Feedback Information Extraction (FIE) module to obtain error information related to the geometry articulated object(geometry articulated object(几何关节物体)指的是具有几何结构和运动自由度的物体,这种物体的形状和位置可以通过关节或连接来调整。比如冰箱,是有门的,门是有自由度的)。 To enable the model to better adapt to the current testing configuration, we devise a Test Time Adaptation (TTA) strategy.如果发生错误交互,则使用 FIE 模块从以前的故障尝试中提取反馈信息。该反馈信息集成到视觉和语言提示中,然后将其输入经过训练的模型,使其能够反映、正确并生成新的动作预测。TTA阶段模型的参数也是不断更新的。
Feedback Information Extraction (FIE)(是一个不断尝试不断修正的过程):
- Position-related Information Extraction
**目标:**在交互过程中,我们的目标是确定预测的接触点是否位于不可移动的部分。如果是这样,我们的目标是查明不可移动部分的位置并防止对其的任何后续操作。
做法 :具体来说,我们首先使用现成的VIP-LLAVA [29]来确认它是否不可移动**(推理过程的输入图像是没有红色的mask的,训练的时候有,推理时候需要模型自己去分割出mask** )。VIP-LLaVA 模型允许用户用视觉提示标记图像,即图像上的一个点,并使用语言查询与模型交互。(VIP-LLaVA模型具有分析具体的图像中部位的能力(VIP-LLaVA模型就是在这种数据集上训练的),所以作者使用VIP-LLaVA确认具体的部位是否不可移动。) 对于导致运动的情况,它表明接触点位于可移动部分,并可能导致运动。因此,我们认为这是一个有效的接触点。 如果接触点在不可移动的部分上,那么我们使用SAM对红点进行分层分割作为提示,其中,我们选择最小的掩码来表示不可移动部分的分割(找到unmovable point之后,当做SAM的prompt进行分割 )。请注意,可能会发生与对象的多个失败交互,并且从每个交互生成的不可移动部分的信息将累积为对象上的多个红色掩码(通过多次失败来使得unmovable的位置更加确定,是一个迭代的过程)。
- Rotation-related Information Extraction
目标: 根据历史交互尝试获得joint type和axis direction(轴方向)(joint type指的是被操作物体的关节type,即是平动类还是旋转类)。
做法:当与对象交互时,例如,在拉门时,我们可以确定 末端执行器 的轨迹。如果轨迹是一条直线,我们将其归类为平动。相反,如果轨迹是弧形,我们将其归类为 旋转轴 。 (确定joint type)
为了确定轴方向,对于平动,我们认为坐标系与其运动方向相同。对于转动轴,即使交互失败,只要末端执行器移动,我们也可以从末端执行器的轨迹确定坐标系的方向。 末端执行器的运动向量, 取末端执行器的三个点确定姿势(具体看原文),如果有多次将物体移动的错误,就把这多个错误(多次尝试)进行 perform cross products,得到更加准确的axis direction。(确定axis direction)
Model Inference:
在从失败的经历中提取反馈信息后,训练好的模型应该反映和纠正自己。由于故障可归因于无效位置或方向,我们首先需要确定哪些因素导致故障,然后相应地进行更正。具体来说,失败交互可能导致运动或没有运动。对于导致运动的情况,它表明接触点位于可移动部分,并可能导致运动。因此,我们认为这是一个有效的接触点,专注于旋转校正。对于不可移动的情况,我们利用法线方向与对象交互,如果位置是可移动的,通常会导致轻微的运动。如果即使是法线方向也不能诱导运动,那么我们假设位置校正是必要的。
如果不可移动就尝试当前轨迹法线的方向,不断迭代,如果还不能移动,说明位置就错了,需要进行位置的校正。
- Position Correction.
在确定需要纠正位置后,我们使用思维链[31]来指导模型理解反馈,即视觉掩码提示并生成新的接触点以防止对不可移动部分进行预测。
- Rotation Correction.
We directly perform direction correction using the error information obtained from FIE with text prompts guidance.
Test Time Adaptation(TTA):
在TTA期间,模型在每次样本推理之后更新自己,以便从刚刚处理的样本中学习。然后更新的模型在下一个样本、再次更新以及此模型更新继续推断。不断地迭代更新模型参数,以适应当前任务。
用于更新模型的input-ground truth pairs对如下:首先,由于我们可以获得图 2 中前两个步骤的ground truth**(** 也就是说前两步不论是训练还是测试时候都是有ground truth的,在这里利用测试时候的groundtruth,感觉有点作弊的嫌疑 ),无论是图像上是否有红色掩码并识别其位置------我们使用这些与位置相关的问答对更新模型。这使得模型能够识别对象的哪些部分是不可移动的,从而避免对这些部分的预测。
此外,我们还想模型通过从成功的校正经验中学习来提高其操纵能力。对于校正后导致成功操作的姿势,我们使用图 2 的第四步来更新模型,校正后的姿势用作ground truth。
也就是说,如果操作失败,按照训练的前两步去更新模型参数。 成功的话只用训练中的第四步去更新模型参数。
为了防止模型忘记训练阶段获得的知识,随着测试样本数量的增加,我们逐渐降低学习率。
实验:
模拟环境:SAPIEN [34] and the PartNet-Mobility。
Real-world: We usea Franka Emika robotic arm with a suction end effector and theD415 sensor to obtain RGB-D information。
Implementation Details: We randomly sample about12K successful manipulation samples across 20 categories to build dataset。具体来说,我们随机抽取接触点和夹持器方向,然后确定交互是否成功。如果是,我们保存数据;否则,我们删除它。For testing, we also sample about 1K successful manipulation samples across 30 categories to ensure the objects can be manipulated. A 7B LLaMA [38] as the language model, anda multi-modal projection module with 32 transformer layers as the alignment bridge.
**Evaluation Metrics:**为了定义拉动的成功,我们需要初始物体和最终物体姿态之间的0.01多个单元的差异,或者相对于铰接部分的总运动范围0.5以上,我们还需要预测夹持器方向与物体实际运动方向的点积大于0.3。
成功的标准并不需要操纵的非常精确,一个大概的范围就表示成功。
接触的次数越多成功率越高,在不断尝试中学习。
为什么使用TTA效果会变差?
可能是在TTA对模型参数进行更新的过程中,模型丢失了一些原本学习到的知识。
结论:我们设计了视觉和文本提示来指导位置和旋转校正,并结合反馈信息提取模块根据识别的故障原因自适应地校正姿态预测。