将家用机器人设计得具备一些常识

从擦拭溢出物到上菜,机器人正在被教导执行越来越复杂的家务任务。许多这样的家庭机器人学员通过模仿学习;它们被编程为复制人类通过物理引导它们的动作。

事实证明,机器人是出色的模仿者。但是,除非工程师们还将它们编程以适应每一次可能的碰撞和推动,否则机器人不一定知道如何处理这些情况,除非从头开始执行任务。

现在,麻省理工学院的工程师们正在努力为机器人在推动它们离开训练路径的情况下赋予一些常识。他们开发了一种将机器人运动数据与大型语言模型(LLMs)的“常识知识”相连接的方法。

他们的方法使机器人能够将许多给定的家务任务逻辑地分解为子任务,并在子任务中适应干扰,以便机器人可以继续前进,而无需返回并从头开始任务 – 也无需工程师明确地为沿途的每个可能的故障编程修复。

A robotic hand tries to scoop up red marbles and put them into another bowl while a researcher’s hand frequently disrupts it. The robot eventually succeeds.
研究人员提供的图片。

“模仿学习是一种主流方法,可以让家庭机器人学习。但是,如果机器人盲目地模仿人类的运动轨迹,微小的错误可能会累积,并最终破坏其余的执行,”麻省理工学院电气工程与计算机科学系(EECS)的研究生Yanwei Wang说道。“通过我们的方法,机器人可以自我纠正执行错误,并提高整体任务成功率。”

Wang和他的同事们在即将于5月份在国际学习表示(ICLR)会议上展示的一项研究中详细介绍了他们的新方法。该研究的合著者包括EECS研究生Tsun-Hsuan Wang和Jiayuan Mao,麻省理工学院航空航天系(AeroAstro)的博士后Michael Hagenow,以及麻省理工学院航空航天系的H.N. Slater教授Julie Shah。

语言任务

研究人员通过一个简单的家务任务来说明他们的新方法:从一个碗中舀起弹珠,倒入另一个碗中。为了完成这个任务,工程师通常会将机器人按照舀取和倒入的动作移动 – 一气呵成。他们可能会多次这样做,以便机器人模仿多次人类示范。

“但是人类的示范是一个长时间的连续轨迹,”Wang说。

团队意识到,虽然一个人可能会一次性地演示一个任务,但该任务取决于一系列子任务或轨迹。例如,机器人必须先伸手进碗里才能舀取,必须在移动到空碗之前舀起弹珠,依此类推。如果机器人在任何这些子任务中被推动或推动而犯错误,除非工程师明确标记每个子任务并为机器人编程或收集新的示范以使机器人从所述故障中恢复,否则它的唯一选择就是停下来并从头开始。

“那种规划水平非常繁琐,”Wang说。

相反,他和他的同事们发现,LLMs可以自动完成其中的一些工作。这些深度学习模型处理大量的文本库,它们用这些文本库来建立单词、句子和段落之间的联系。通过这些联系,LLM可以根据它对接下来可能出现的单词类型的了解生成新的句子。

就研究人员而言,他们发现,除了句子和段落之外,LLM还可以被提示生成涉及给定任务的子任务的逻辑列表。例如,如果查询要列出从一个碗中舀起弹珠倒入另一个碗中所涉及的动作,LLM可能会生成一系列动词,如“reach”、“scoop”、“transport”和“pour”。

“LLMs有一种方法告诉你如何完成任务的每一步,用自然语言。人类的连续示范是这些步骤在物理空间中的体现,”Wang说。“我们想要将这两者联系起来,以便机器人可以自动知道自己在任务的哪个阶段,并能够自行重新规划和恢复。”

映射弹珠

对于他们的新方法,团队开发了一种算法,可以自动将LLM对特定子任务的自然语言标签与机器人在物理空间中的位置或编码机器人状态的图像相连接。将机器人的物理坐标或机器人状态的图像与自然语言标签相连接被称为“基础化”。团队的新算法旨在学习一个基础化“分类器”,即它学会自动识别机器人所处的语义子任务 – 例如“reach”与“scoop” – 给定其物理坐标或图像视图。

“基础化分类器促进了机器人在物理空间中的活动与LLM对子任务的了解之间的对话,并且您必须在每个子任务中注意到的约束条件,”Wang解释道。

团队在对一个他们训练的机械臂进行弹珠舀取任务的实验中演示了这种方法。实验人员通过物理引导机器人完成任务,首先是伸手进碗里,舀起弹珠,将其运输到空碗上,然后倒入。在进行了几次示范之后,团队使用预训练的LLM,并要求模型列出从一个碗中舀起弹珠倒入另一个碗中所涉及的步骤。然后,研究人员使用他们的新算法将LLM定义的子任务与机器人的运动轨迹数据相连接。该算法自动学习将机器人在轨迹中的物理坐标和相应的图像视图映射到给定子任务。

然后,团队让机器人使用新学到的基础化分类器自行完成舀取任务。当实验人员在机器人的路径上推动和推动机器人,并在不同的时间点敲掉弹珠时,机器人能够自我纠正,并在继续下一个子任务之前完成每个子任务。(例如,在将弹珠运输到空碗之前,它会确保成功地舀起弹珠。)

“通过我们的方法,当机器人犯错误时,我们不需要要求人类编程或提供额外的示范来从故障中恢复,”Wang说。“这非常令人兴奋,因为现在有很大的努力将家庭机器人训练成使用在远程操作系统上收集的数据。我们的算法现在可以将该训练数据转化为能够执行复杂任务的稳健机器人行为,尽管存在外部干扰。”