
图1.机器人故障解释和纠正的框架。左侧展示了REFLECT框架,将多传感器观测(RGB-D、音频、机器人状态)转换为机器人经历的分层摘要。然后利用这个摘要向大型语言模型(LLM)查询故障解释和纠正信息。右侧展示了RoboFail数据集中的一些故障案例示例
介绍
随着对机器人在复杂环境中处理长期任务的期望不断增加,失败变得不可避免。因此,对于机器人系统来说,反思其过去的经验并用自然语言解释其失败是一种至关重要的能力。失败的解释可以帮助人类用户调试机器人系统,而无需阅读繁琐的执行日志,也可以指导机器人自行纠正失败。
S-Lab专注于智能终端检测领域,具备出色的家庭或工业机器人检测能力,并且具有多模块的检测方法。我们在工业、农业、交通、家居和安防等多个领域提供专业的智能终端检测服务,涵盖手机、智能家居、工业仪器以、机器人及车机等智能设备。让S-Lab成为您智能科技领域的信赖之选,确保您的设备达到最高标准的性能和安全要求。
我们假设一个有效的失败推理框架需要几个关键组成部分:首先,一个能够总结“发生了什么”的组件,将非结构化的多模式机器人感知数据转换为结构化的统一格式;其次,一个能够推理“出了什么问题”的组件,从总结中推断出机器人计划的预期结果是否实现;最后,基于失败推理来规划“该做什么”的能力,以纠正失败并完成任务。
最近,已经展示出大型语言模型(LLMs)表现出强大的推理和规划能力,使其成为可解释和健壮的机器人系统的有前途的组成部分。然而,剩下的挑战在于如何生成机器人感知数据的文本摘要,并系统地向LLMs查询故障推理。换句话说,我们如何将机器人故障推理任务转化为语言推理任务?我们观察到一个良好机器人摘要的两个重要属性。
1、多传感器性。摘要应涵盖机器人可以访问的所有感知模式,如视觉、音频、接触等。这是因为某些故障可能更容易通过一种感知数据而不是另一种进行识别。例如,通过听觉线索而不是视觉线索,更容易确定物体是否掉落,或者水龙头是否在流水。
2、分层结构。为了支持有效的故障解释,机器人摘要需要多个抽象层次:为了快速定位故障,最高级别的摘要应专注于识别机器人高层计划与执行结果之间的错位;而较低级别的摘要则应保持足够的环境上下文,以便LLMs生成有用于纠正规划的信息性解释。
基于这些观察,我们介绍了REFLECT,这是一个为了故障解释和纠正而总结机器人经验的框架。该框架首先处理执行后的机器人观察数据,生成具有三个抽象层级的分层摘要。利用这个摘要,我们提出了一个用于故障推理的渐进式故障解释算法。通过我们的实验,我们展示了该框架能够生成经过人类评估员评估后认为具有信息性的故障解释,并且能够指导基于语言的规划器为多个故障场景生成纠正计划。为了系统评估REFLECT,我们还创建了RoboFail数据集,其中包括在AI2THOR模拟环境[10]中生成的100个故障演示和使用UR5e机器人臂收集的30个真实世界故障演示。我们希望这个数据集能够促进更具可解释性和健壮性的体验式人工智能系统的发展。

图2.分层机器人摘要由以下部分组成: a)感官输入摘要,将多感官机器人观察结果(RGB-D、声音、机器人状态)转换为任务通知的场景图和音频摘要;b)基于事件的摘要,为关键事件框架生成标题;c)基于子目标的摘要,其中包含每个子目标的结柬框架
一、方法:REFLECT 框架
REFLECT 框架总结了机器人过去的经验,用于失败的解释和修正。它包含三个模块:一个分层机器人摘要模块,用三个抽象级别总结多感官机器人数据(§1.1),一个渐进式失败解释模块,查询LLM来检测和解释失败(§1.2),最后是一个失败修正规划器,生成可执行的修正计划(§1.3)。
1.1 分层机器人摘要
为了进行有效的失败解释和修正,我们提出了一个分层摘要结构,目的是:
1)聚合和转换机器人随时间变化的感知数据为统一结构。
2)总结机器人的经验,以实现有效的失败定位和解释。分层摘要结构包括三个级别:感知输入摘要,基于事件的摘要和基于子目标的摘要。
1.1.1 感知输入摘要
感知输入摘要处理非结构化的、多模式的机器人感知观察数据,将其转换为一个统一结构,存储失败解释所需的必要信息。
视觉摘要与任务驱动场景图。要理解机器人与其周围环境的交互,从观察中提取物体间关系、机器人-物体关系和物体状态信息至关重要。给定时间步 t 的 RGB-D 观察,我们对 RGB 图像运行物体检测,获得语义分割图 I(St),并使用观测到的深度将其投影到三维语义点云中。此外,对于可以改变状态的物体(例如,微波炉可以打开和关闭),我们基于检测到的物体边界框裁剪图像,并计算 CLIP 嵌入 在裁剪图像与预定义的物体状态标签列表之间的余弦相似度(详见 §B.3 中的详细信息)。给定语义点云,我们应用启发式方法计算 8 种常用空间关系的物体间空间关系:内部、上方、左侧、右侧、在上方、在下方、遮挡和附近。我们还从夹爪状态和物体检测结果推断出机器人-物体关系。为了在时间帧中聚合三维点云,使用 4 种启发式操作将新观察到的点云 pt 与所有先前时间步的累积点云 Pt−1 对齐:添加、更新、替换和删除。一旦获得聚合的点云,我们构建了一个场景图 G(t) = {N +{nrobot},E},描述了对象节点(N)及其空间关系(E)。每个节点定义为 ni=(c(i),s(i)),其中 c(i) 是对象类别,si 是对象状态(如果有)。每个边包含两个对象之间的空间关系。我们添加了机器人作为额外节点 n{robot},并使用特殊关系“在机器人夹爪内部”。为了使摘要简洁,并减少计算和内存成本,我们只考虑与任务相关的对象(从原始机器人计划中提取),以及与任务相关对象在空间上相关的对象。
音频摘要。音频作为失败推理的一种有用形式,因为它能够提供失败事件的即时反馈(例如,某物从夹爪掉落到地面),并在视觉线索有限时检测状态变化(例如,炉灶上的燃烧器打开,但被顶部的物体遮挡)。
给定输入的音频流,我们首先通过筛选音量低于某个阈值 ϵ 的范围来将整个音频剪辑分段成多个子剪辑。然后对于每个子剪辑 s,我们使用预训练的音频语言模型(例如,AudioCLIP,Wav2CLIP)计算其音频-语言嵌入。我们计算音频嵌入与候选音频事件标签 L 的 CLIP 嵌入之间的余弦相似度,选择得分最高的标签 l∗:: l ∗=argmaxl∈L[C(s,l)], C = f1(s)·f2(l) /|f1(s)||f2(l)||,其中 f1 是音频的嵌入函数,f2 是文本的嵌入函数。
1.1.2 基于事件的摘要
鉴于感知输入摘要(§1.1.1)为每帧计算一个场景图并因此包含冗余信息,事件摘要的目标是选择关键帧,并从相应的场景图生成文本描述。
我们设计了基于视觉、音频和机器人状态的关键帧选择机制。具体来说,如果帧满足以下任一条件,则选择帧:
1)当前帧的任务驱动场景图 Gt 与前一帧 Gt−1 不同。
2)该帧是音频事件的开始或结束。
3)该帧标志着子目标执行的结束。
对于每个关键帧,我们将场景图转换为文本,采用以下格式。2 在构建视觉观察时,我们只考虑在当前帧中可见的对象。
[timestep] 行动:[机器人动作]
视觉观察:物体1 [状态],物体2,物体3 [状态] ... # 物体和状态
物体1与物体2 [空间关系] ... # 物体间关系
物体3在机器人夹持器内。# 机器人与物体的关系
听觉观察:[音频摘要]。
1.1.3 基于子目标的摘要
事件驱动的摘要(见 §1.1.2)在机器人任务执行过程中存储了环境观察信息。然而,LLM 很难推断每个低级动作的预期结果并识别失败。因此,我们引入了基于子目标的摘要,它由每个子目标结束时的观察组成,供LLM识别机器人执行结果与其高级计划之间的不一致性(例如,移动到烤面包机,将面包片放入烤面包机)。基于子目标的摘要使失败解释模块能够通过检查每个子目标是否满足来快速处理机器人经验摘要,而忽略低级执行细节。一旦检测到失败,可以从事件驱动的摘要或感知输入摘要中检索相关环境信息,用于详细的失败解释。
1.2 渐进式失败解释
失败解释算法应处理执行和规划失败,前者需要动作级别的观察细节,而后者需要任务级别的信息,例如任务描述和机器人计划。为此,该算法首先确定失败类型,然后从分层摘要中检索相关信息构建向LLM的查询。如图3所示,算法首先迭代子目标,并使用以下提示验证成功:
机器人子目标是[时间t的机器人子目标]。
考虑到[基于子目标的摘要在时间t]
问:子目标是否达成?
答:是。

图3.渐进式故障解释验证每个子目标的成功。如果某个子目标失败,算法进入执行分析阶段进行详细解释。如果所有子目标都达成,算法进入规划分析阶段检查机器人计划中的错误
LLM被指示输出'Yes'或'No'。如果某个子目标未达成,那么我们按照以下方式检索存储在基于事件的摘要中的历史观察,用于故障解释:
机器人任务是[任务名称]。在时间t发生了故障。考虑到[直到时间t的基于事件的摘要]
问:简要解释时间t发生了什么以及导致故障的原因是什么?
答:在00:44,机器人试图把锅放在第四个炉灶上,但是锅不在夹持器中。故障是因为机器人在00:36移动到第四个炉灶时让装满水的锅掉落了。
如果所有子目标都达成,但任务仍然失败,那么很可能是计划本身有错误。我们使用机器人的原始计划和环境的最终状态来识别机器人计划中的错误。最终状态是从最后一个时间步生成的场景图中获得的,该场景图使用聚合的语义点云,并排除了视图特定的关系(左侧、右侧、遮挡)。
机器人任务是[任务名称]。如果[目标状态],任务就成功完成。机器人的计划是[原始机器人计划]。考虑到[最终状态]
问:是什么导致机器人失败的计划出了什么问题?
答:机器人把锅放在第四个炉灶上,但却打开了第二个炉灶,导致锅的位置与激活的炉灶不匹配。
问:在上述失败中,哪个时间步最相关?
答:00:49
1.3 故障修正规划
故障修正规划应该为机器人生成一个可执行的计划,以纠正故障并完成任务,从原始任务执行的最终状态开始。之前的研究表明,良好的故障解释能帮助非专业用户更好地理解故障并协助机器人。类似地,我们假设故障解释也能指导语言规划器生成一个高层次的纠正计划,使任务成功。提示信息格式如下:
机器人的任务是[任务名称]。原始机器人计划是[原始机器人计划]。
考虑到[故障解释][最终状态]和[目标状态]
纠正计划:关闭(炉灶-2),打开(炉灶-4)
为了确保语言模型生成的计划在环境中可执行,利用一个大型预训练的句子嵌入模型,将LLM生成的每个动作映射到任务环境中最接近的可执行动作。
二、RoboFail 数据集
在模拟环境中,我们在AI2THOR中生成任务执行数据,并手动注入故障。该数据集包含总共100个故障场景,每个任务有10个案例(详见§B.1)。我们存储了RGB-D观察数据、声音(总共20个类别)、机器人状态数据,以及从模拟环境中获取的地面真实元数据。真实世界的数据集是通过人工远程操作UR5e机器人臂在一个玩具厨房环境中收集的。该数据集包含11个任务,总共有30个故障场景。我们存储了RGB-D观察数据(使用Intel RealSense D415)、录制的声音(使用RØDE VideoMic Pro+),以及机器人的自感知数据。故障场景的分类如图4所示。

图4.RoboFail故障分析
评估
我们系统地评估REFLECT定位、解释和纠正机器人故障的能力。在AI2THOR模拟中,代理通过行动原语与环境进行交互,比如拾取、开关等。我们假设该框架在模拟中可以访问地面真实的对象检测和状态检测。我们还评估框架总结真实世界机器人感知数据的能力。真实世界的故障数据是通过人工远程操控UR5e机器人臂来模拟根据提供的高级计划执行机器人策略。我们使用MDETR进行对象检测,CLIP进行对象状态检测,以及AudioCLIP进行声音检测。我们使用GPT-4作为LLM。我们在实验中评估以下指标:
Exp(解释):人类评估员确定的预测故障解释中正确且信息量丰富的百分比4。
Loc(定位):预测的故障时间与实际故障时间的对齐百分比。如果预测时间落在数据集中注释的故障时间范围内,则认为预测时间对齐。
Co-plan(纠正规划成功率):执行纠正计划后成功完成任务的百分比。任务成功是通过比较最终状态和指定的目标条件来确定的。
为了展示我们框架的优势,我们将其与以下基线/消融方法进行比较:
BLIP2标题:使用BLIP2,一个最先进的图像标题模型,为关键帧添加标题。
无声音:我们的方法不包含音频模态。
无渐进式:类似于Socratic Models中的开放式问答,直接查询LLM以获取机器人摘要而不进行渐进式的故障解释。
仅子目标:仅使用基于子目标的摘要进行故障解释。
LLM摘要:将所有感知输入的摘要转换为文本,并提示LLM对其进行故障解释的摘要。
无解释:在没有进行故障解释的情况下,查询LLM获取纠正计划。

表1. 模拟环境中的结果
通过对RoboFail数据集上REFLECT的评估,并与上述基线/消融方法进行比较,我们得到以下发现:
REFLECT能够生成有信息量的故障解释,有助于纠正规划。表1和表2总结了评估结果,在模拟和真实世界中,REFLECT在解释、定位和纠正故障方面均表现最好。在真实世界中,由于感知误差,性能略有下降。我们发现,对于规划故障来说,定位稍微困难一些,因为故障通常不是与单个时间步骤相关联的。在模拟中,我们的框架对两种故障类型都实现了大约80%的纠正规划成功率。
音频数据对于故障解释是有用的。如表2所示,在执行故障中,[无声音]的解释和定位准确度与REFLECT相比都下降了约20%。这是因为一些意外事件(例如物体掉在地板上)或者通过视觉探测器难以识别的物体状态(例如被放在上面的锅盖住的炉灶火眼)更容易通过音频检测到。
通过对RoboFail数据集上REFLECT的评估,并与上述基线/消融方法进行比较,我们得到以下发现:
REFLECT能够生成有信息量的故障解释,有助于纠正规划。表1和表2总结了评估结果,在模拟和真实世界中,REFLECT在解释、定位和纠正故障方面均表现最好。在真实世界中,由于感知误差,性能略有下降。我们发现,对于规划故障来说,定位稍微困难一些,因为故障通常不是与单个时间步骤相关联的。在模拟中,我们的框架对两种故障类型都实现了大约80%的纠正规划成功率。
音频数据对于故障解释是有用的。如表2所示,在执行故障中,[无声音]的解释和定位准确度与REFLECT相比都下降了约20%。这是因为一些意外事件(例如物体掉在地板上)或者通过视觉探测器难以识别的物体状态(例如被放在上面的锅盖住的炉灶火眼)更容易通过音频检测到。

图5.模拟的定性结果。如果机器人任务执行失败,REFLECT能够为执行和计划失败生成信息丰富的失败解释。根据解释,语言规划器可以为机器人生成一个高级计划来纠正错误并完成任务
任务相关的物体空间和状态信息至关重要。如表2所示,[BLIP2标题]在所有场景中的表现最差,因为BLIP2生成的标题缺乏故障解释所需的必要信息。相比之下,我们的零-shot标题方法旨在捕获环境信息,如物体状态和空间关系,这些对于故障解释至关重要且与任务相关。右侧的图示显示,REFLECT能够总结物体状态,比如“冰箱(门打开)”和空间关系,比如“苹果在白色碗里”,而这些在BLIP2标题中没有呈现。

图6.渐进式故障案例
渐进式故障解释非常重要。我们的渐进式故障解释算法利用分层摘要,首先使用基于子目标的摘要来识别故障,然后相应地查询LLM以获取故障解释。与表1和表2中的[无渐进式]相比,渐进式算法有助于更准确地定位故障并提供更丰富的解释。为了更好地理解区别,在图6中展示了一个定性的例子:尽管[无渐进式]提到任务失败是因为机器人没有在夹持器中拿着一个鸡蛋放在平底锅中,但它并没有推理为什么鸡蛋不在。相比之下,REFLECT在“拿起鸡蛋”动作中识别了故障,然后查询基于事件的摘要推断了确切的故障原因——“冰箱门关闭”。

表2.真实环境中的结果
分层结构非常重要。[仅子目标]的性能下降显示了基于事件的摘要的重要性,因为它存储了对于故障解释有用的中间环境观察数据。考虑机器人在移动到炉灶时意外地让它拿着的锅掉落的情况。[仅子目标]只推断出在子目标执行结束时物体不在机器人夹持器中。相比之下,基于事件的摘要存储了“有物体掉落在地上”的听觉观察和“机器人夹持器内没有东西”的视觉观察,这有助于确定是锅掉落了,并确定了故障发生的确切时间步骤。

图7.[无渐进式]与[大语言模型摘要]与我们相比

图8.现实世界中的定性结果。REFLECT能够总结并生成现实世界机器人执行的信息丰富的故障解释。上图左侧显示了三个失败的任务执行,中间是一个关键帧的相应场景图和标题,右侧是LLM生成的失败解释
此外,分层结构是压缩感知输入摘要以进行故障解释的更好方式。我们实现了另一种选择——[LLM摘要],它提示LLM对感知输入摘要进行总结。在模拟和真实世界中,性能显著下降,因为LLM生成的摘要丢失了与故障解释相关的信息。如图7所示,[LLM摘要]的摘要和解释只提到机器人试图拿起鸡蛋但夹持器仍为空,但并没有提到冰箱门关闭,而这才是实际的故障原因。
故障解释有助于纠正。从表1中我们可以观察到,[无解释]的纠正规划成功率显著下降。这是因为故障解释可以指导LLM根据故障原因生成纠正计划。如图8所示,给定失败原因是马克杯无法放入咖啡机因为有一个杯子在里面,REFLECT生成了一个移开杯子然后继续任务的计划。而[无解释]简单地重复原始计划,没有采取任何行动来解决故障原因。
局限性。将感知数据转化为文本摘要的方法存在一些局限性。尽管用于生成场景图的启发式方法对本文研究的场景已经足够,但在更复杂的环境中可能会有所不足。训练一个大型的空间推理模型或者在机器人数据上微调现有模型可能是一个有前途的解决方案。此外,对象状态检测方法假设给定了候选对象状态列表,可以通过一种方法(例如提示LLM)输出给定对象类别可能的状态来放宽限制。
该框架还假设机器人任务执行期间其余环境将保持静态。最后,鉴于机器人摘要包含的信息(对象检测、对象状态、空间关系),对于处理低级控制故障效果较差。未来的工作可以考虑开发更好的感知方法,捕获更多低级状态信息。

图9.故障解释有助于制定纠正计划
S-Lab专业致力于智能终端检测,专注于智能机器人及其他终端检测。且不仅能全面检测机器人的lot物联网指标,更支持如2G、3G、4G、蓝牙等多项技术的全面检测。作为您产品上市不可或缺的重要环节,S-Lab保障您的设备在性能和兼容性上达到最高水平。
总结
我们提出了一个框架REFLECT,将多感知观察转换为机器人过去经验的分层摘要,并逐步查询LLM进行故障解释。生成的解释可以指导语言规划器纠正故障并完成任务。为了评估该框架,我们在模拟和真实世界中创建了一个机器人执行失败的数据集,并展示了与几个基线和消融方法相比,REFLECT取得了更好的性能。我们鼓励未来的工作扩展这个框架,并探索机器人摘要的更多用例。
学术引用
A. Zeng, M. Attarian, B. Ichter, K. Choromanski, A. Wong, S. Welker, F. Tombari, A. Purohit, M. Ryoo, V. Sindhwani, J. Lee, V. Vanhoucke, and P. Florence. Socratic models: Composing zero-shot multimodal reasoning with language. arXiv, 2022.
Liu, Zeyi, Arpit Bahety, and Shuran Song. "Reflect: Summarizing robot experiences for failure explanation and correction." arXiv preprint arXiv:2306.15724 (2023).
R.-G. Pasca, A. Gavryushin, Y.-L. Kuo, O. Hilliges, and X. Wang. Summarize the past to predict the future: Natural language descriptions of context boost multimodal object interaction. arXiv preprint arXiv:2301.09209, 2023.
Z. Wang, M. Li, R. Xu, L. Zhou, J. Lei, X. Lin, S. Wang, Z. Yang, C. Zhu, D. Hoiem, et al. Language models with image descriptors are strong few-shot video-language learners. arXiv preprint arXiv:2205.10747, 2022.