如果有个这样的机器人,你几点回家?

「xx,去把电视柜上的遥控器帮我拿过来。」在一个家庭环境中,很多家庭成员都不免被支使干这种活儿。甚至有时候,宠物狗也难以幸免。但人总有支使不动的时候,宠物狗也并不一定都能听懂。帮人类干活儿的终极梦想还是寄托在机器人身上。

最近,纽约大学、Meta 研发出的一款机器人学会了这个技能。你只需要对它说,「把桌子上的玉米片拿到床头柜上」,它就能自己找到玉米片,并规划出路线和相应的动作,顺利完成任务。此外,它还能帮你整理东西或扔垃圾。

这个机器人名叫 OK-Robot,由来自纽约大学、Meta 的研究者共同构建。他们将视觉语言模型(用于物体检测)、导航和抓取的基础模块整合到一个开放知识型框架中,为机器人的高效拾放操作提供了解决方案。看来,等我们老了之后,买个机器人给自己端茶倒水还是有希望的。

OK-Robot 定位中的「开放知识」指的是在大型公开数据集上训练的学习模型。当 OK-Robot 被放置在一个新的家庭环境中时,它将从 iPhone 上获取扫描结果。根据扫描结果,它会使用 LangSam 和 CLIP 计算出密集的视觉语言表征,并将其存储在语义存储器中。在此之后,给定一个需要拾取的对象的语言查询,查询的语言表征与语义记忆相匹配。接下来,它会依次应用导航和拾取模块,移动到所需物体并将其拾取。类似的过程也可用于丢弃物体。

为了研究 OK-Robot,研究者在 10 个真实的家庭环境中对其进行了测试。通过实验,他们发现,在一个从未见过的自然家居环境中,该系统零样本部署的成功率平均为 58.5%。然而,这一成功率在很大程度上取决于环境的「自然程度」。因为他们发现,通过改进查询、整理空间和排除明显具有对抗性的物体(太大、太半透明、太滑),这一成功率达到了约 82.4%。

总之,通过实验,他们得出了以下结论:

  • 预训练的视觉语言模型对开放词汇导航非常有效:目前的开放词汇视觉语言模型 —— 如 CLIP 或 OWL-ViT—— 在识别真实世界中的任意物体方面表现出色,并能以零样本的方式导航、找到这些物体。
  • 预训练的抓取模型可直接应用于移动操控:与 VLM 类似,根据大量数据预训练的专用机器人模型可以直接应用于家庭中的开放词汇抓取。这些机器人模型不需要任何额外的训练或微调。
  • 如何组合组件至关重要: 研究者发现,在预先训练好模型的情况下,可以使用一个简单的状态机模型(state-machine model)将它们组合起来,而无需进行任何训练。他们还发现,使用启发式方法来抵消机器人的物理限制,可以在真实世界中获得更高的成功率。
  • 目前仍存在一些挑战:考虑到在任意家庭中进行零样本操作的巨大挑战,OK-Robot 在先前工作的基础上进行了改进:通过分析失败模式,他们发现在视觉语言模型、机器人模型和机器人形态学方面可以进行重大改进,这将直接提高开放知识操纵智能体的性能。

为了鼓励和支持其他研究者在开放知识机器人领域的工作,作者表示将共享 OK-Robot 的代码和模块。更多信息可参见:https://ok-robot.github.io。

OK-Robot_点云

  • 论文标题:OK-Robot: What Really Matters in Integrating Open-Knowledge Models for Robotics
  • 论文链接:https://arxiv.org/pdf/2401.12202.pdf

技术组成和方法

该研究主要解决这个问题:从 B 上拿起 A 并将其放在 C 上,其中 A 是一个物体,B 和 C 是现实世界环境中的某个地方。要实现这一点,所提系统需要包含以下模块:开放词汇对象导航模块,开放词汇 RGB-D 抓取模块以及释放或放置对象的启发式模块(dropping heuristic)。

开放词汇对象导航

首先是扫描房间。开放词汇对象导航遵循了 CLIP-Fields 的方法,并假设有一个预先映射阶段,即使用 iPhone 手动扫描家庭环境。这种手动扫描只是用 iPhone 上的 Record3D 应用程序拍摄家庭视频,这将产生一系列带位置的 RGB-D 图像。

扫描每个房间的时间不到一分钟,一旦信息收集完毕,RGB-D 图像以及相机的姿态和位置就被导出到项目库中进行地图构建。录制时必须捕捉地面表面以及环境中的物体和容器。

接下来是进行对象检测。在扫描的每一帧上,会有一个开放词汇对象检测器对扫描的内容进行处理。本文选择 OWL-ViT 对象检测器,因为这种方法在初步查询中表现更好。研究者在每一帧上应用检测器,并提取每个对象边界框、CLIP 嵌入、检测器置信度,并将它们传递到导航模块的对象存储模块中。

然后进行以对象为中心的语义存储。本文借助 VoxelMap 来完成这一步,具体来说,他们使用深度图像和相机收集的姿态将对象掩模反向投影到现实世界坐标中,这种方式可以提供一个点云,其中每个点都有一个来自 CLIP 的关联语义向量。

之后是查询记忆模块:给定一个语言查询,本文使用 CLIP 语言编码器将其转换为语义向量。由于每个体素都与家中的真实位置相关联,因此可以找到最有可能找到查询对象的位置,类似于图 2 (a)。

OK-Robot_语言模型_02

必要时,本文将「A on B」实施为「A close B」。为此,查询 A 选择前 10 个点,查询 B 选择前 50 个点。然后计算 10×50 成对欧氏距离,并选择与最短 (A, B) 距离相关的 A 点。

完成上述过程,接下来就是导航到现实世界中的对象:一旦得到了现实世界中的 3D 位置坐标,就可以将其用作机器人的导航目标来初始化操作阶段。导航模块必须将机器人放置在手臂可触到的范围,以便机器人随后可以操纵目标物体。

机器人对现实世界物体的抓握

与开放词汇导航不同,为了完成抓取任务,算法需要与现实世界中的任意对象进行物理交互,这使得这部分变得更加困难。因此,本文选择使用预训练的抓取模型来生成现实世界中的抓取姿态,并使用 VLM 进行语言条件过滤。

本文使用的抓取生成模块是 AnyGrasp,它在给定单个 RGB 图像和点云的场景中使用平行钳口夹具生成无碰撞抓取。

AnyGrasp 提供了场景中可能的抓握(图 3 第 2 列),包括抓握点、宽度、高度、深度和抓握分数,该分数表示每次抓握中未校准的模型置信度。

OK-Robot_语言模型_03

使用语言查询过滤抓握:对于从 AnyGrasp 获得的抓握建议,本文采用 LangSam 过滤抓握。本文将所有建议的抓握点投影到图像上,并找到落入对象掩模的抓握点(图 3 第 4 列)。

抓握执行。一旦确定了最佳抓握(图 3 第 5 列),就可以使用简单的预抓握方法来抓握目标对象。

释放或放置对象的启发式模块

抓握对象后,接下来就是将对象放置在什么地方。与 HomeRobot 的基线实现不同,该方法假设物体放下的位置是一个平坦的表面,本文进行了扩展,还涵盖了凹物体,如水槽、箱子、盒子和袋子。   

至此,导航、抓握和放置都有了,之后就可以直接将它们组合起来,该方法可以直接应用于任何新的家庭。对于新的家居环境,该研究可以在一分钟内扫描房间。然后,只需不到五分钟即可将其处理到 VoxelMap 中。一旦完成,机器人就可以立即放置在选定的场地并开始运行。从到达一个全新的环境到开始在其中自主操作,该系统平均需要不到 10 分钟即可完成第一个取放任务。

实验

在超过 10 个家庭实验中,OK-Robot 在取放任务上实现了 58.5% 的成功率。

该研究还对 OK-Robot 进行了深入探索以更好地理解其故障模式。研究发现,故障的主要原因是操作故障,然而,仔细观察后注意到失败的原因是长尾造成的,如图 4 所示,失败的三大原因包括未能从语义记忆中检索到要导航到的正确对象 (9.3%) ,从操作模块获得的姿态难以完成(8.0%),以及硬件原因(7.5%)。

OK-Robot_人工智能_04

由图 5 可得,OK-Robot 中使用的 VoxelMap 略微优于其他语义记忆模块。至于抓取模块,AnyGrasp 明显优于其他抓取方法,在相对规模上比最佳候选方法(自上而下抓取)的性能高出近 50%。然而,基于启发式的算法,HomeRobot 的自上向下抓取击败了开源 AnyGrasp 基线和 Contact-GraspNet,这一事实表明构建真正的通用抓取模型仍然很困难。

OK-Robot_语言模型_05

图 6 展示了 OK-Robot 在各个阶段失败的完整分析。由分析可得,当研究者对环境进行清理并删除模糊物体时,导航准确率会上升,总错误率从 15% 下降到 12%,最后一直下降到 4%。同样,当研究者清理环境中的杂物时,操作准确率也提高了,错误率从 25% 下降到 16%,最后下降到 13%。 

OK-Robot_真实世界_06