新智元报道

编辑:泽正

【新智元导读】如何让机器人拥有人一样的协调行动能力是具身智能不可避免的挑战,而李飞飞团队在CoRL-LEAP研讨会获得最佳论文奖的ReKep对于这一挑战交出了一张亮眼的答卷。

AI发展如火如荼的今天,机器人距离人类的协调行动能力还有多远?

近日,李飞飞团队发布关于机器人操控的最新研究「关系关键点约束ReKep」(Relational Keypoint Constraints),其基于视觉的环境自适应的操纵表现让人眼前一亮!

这项研究也获得了CoRL 2024-Learning Effective Abstractions for Planning (LEAP)的最佳论文奖。


简要来讲,团队通过ReKep研究证明,通过将不同的操作行为指定为一系列对语义关键点进行操作的可优化时空约束函数,就可以采用分层优化程序,以实时频率解决机器人动作与感知-动作循环的问题。

此外,为了避免为每个新任务手动指定ReKep,他们设计了一个自动化程序,利用预训练的LVM(large vision models)和VLM(vision-language models),从语言指令和RGB-D观察结果中生成ReKep。

研究介绍了在轮式单臂平台和固定双臂平台上的系统实现情况,这些平台可以执行各种操作任务,例如下列视频中所展示的打包鞋子、双臂协同折叠衣物、开放环境放置书籍、茶壶倒水任务,所有这些都不需要特定任务数据或环境模型。

打包鞋子

折叠衣物

放置书籍

茶壶倒水

机器人操纵涉及与环境中物体的复杂交互,这些交互通常可以用空间和时间领域的约束条件来表示。

请看上列视频中将茶倒入杯中的任务:机器人首先必须抓住茶壶柄,在运输过程中保持茶壶水平,接着将茶壶嘴对准目标容器,然后将其倾斜到正确的角度倒茶。

在这里,约束条件不仅包括中间子目标(例如,将壶嘴对准茶杯),还包括过渡行为(例如,在运输过程中保持茶壶水平),这些约束共同决定了机器人在与环境互动时的空间、时间和其他组合要求。

然而,如何有效地为现实世界中的各种任务制定这些约束条件是一个巨大的挑战。

虽然使用机器人与物体之间的相对姿势来表示约束是一种直接且广泛使用的方法,但涉及到刚体变换,这种方法便无法描述几何细节,而且也无法用于可形变物体。

另一方面,数据驱动方法可以直接在视觉空间中学习约束。虽然这种方法更加灵活,但由于约束条件的数量随着对象和任务的组合而不断增加,如何有效地收集训练数据仍是一个未知数。

因此,研究团队提出了这样一个问题:如何才能让操纵符合以下三条特性?

  • 广泛适用性:可适应需要多阶段、野外、双臂和反应行为的任务;

  • 可扩展性:通过基础模型的进步,有可能实现完全自动化;

  • 实时优化性:可通过现成的求解器有效求解,以产生复杂的操纵行为

团队还证明了ReKep的特定形式具有独特的优势,因为它们可以通过预先训练的大型视觉模型(LVM)和视觉语言模型(VLM)实现自动化,从而能够根据RGB-D观察结果和自由形式的语言指令对ReKep在大约10Hz的时间内进行实时调控。

具体方法

什么是关键点约束?为清楚起见,研究者假设已经指定了一组K个关键点。具体来说,每个关键点指的是场景表面上的一个3D点,其相应的笛卡尔坐标依赖于任务语义和环境(例如,手柄上的抓取点)。

接着,ReKep将约束表示为Python函数,这些函数将一组关键点映射到一个数值,其中每个关键点是场景中一个任务特定的、语义上有意义的3D点。

每个函数由对关键点的(可能是非线性的)算术操作组成,这些操作可能是非线性和非凸的。本质上,这些函数是编码了关键点之间对应的「空间关系」,这些关键点可能属于环境中的不同实体,例如机器人手臂、物体部件和其他对象。

虽然每个关键点仅由其在世界坐标系中的3D笛卡尔坐标组成,但如果对关键点施加刚性约束,多个关键点就可以共同指定线条、表面以及3D旋转。

ReKep在序列操作问题的背景下进行研究,其中每个任务涉及多个具有时空依赖关系的阶段(例如,在前述示例中的「抓取」「对齐」和「倒水」)。

然而,一个操作任务通常涉及多个空间关系,并且可能有多个时间上依赖的阶段,每个阶段包含不同的空间关系。

为此,研究团队将任务分解为N个阶段,并使用ReKep为每个阶段 指定两种类型的约束:

一组子目标约束 和一组路径约束 ,其中 编码了在第i阶段结束时需要实现的关键点关系,而 编码了在第i阶段内每个状态下需要满足的关键点关系。

以下图中的倒茶任务为例,该任务由三个阶段组成:抓取、对齐和倒水。

阶段1的子目标约束将末端执行器拉向茶壶把手。然后,阶段2的子目标约束指定茶壶的嘴部需要位于杯口上方。此外,阶段2的路径约束确保在运输过程中茶壶保持直立,以防止溢出。最后,阶段3的子目标约束指定了所需的倒水角度。


ReKep概览

如何使用ReKep将操作表述为约束优化问题

为了执行操作任务,我们的目标是通过如下方式将控制问题进行公式化,从而获得整体的离散时间轨迹。


其中, 表示时间t时的末端执行器姿态, 表示从阶段i转换到阶段i+1的时间点,这些也是辅助决策变量, 是 时间t时的关键点位置数组,h是关键点的前向模型, 和 分别是子 目标和路径规划的辅助代价函数(例如,避免碰撞)。

具体而言,对于每个阶段i,优化过程将寻找满足下一个子目标的末端执行器姿态及其对应的计划时间序列,并找到一个能够实现子目标的姿态序列 , 并满足给定的ReKep约束和辅助代价。 该公式化方法可以视为轨迹优化中的direct shooting。

实时解决优化问题的算法实例化

为了能够实时求解上面的公式,作者将问题进行分解并只将下一个子目标和达到它的相应路径作为优化对象。

所有优化问题都使用SciPy实现和求解,决策变量归一化为[0,1]。它们最初是用Dual Annealing和SLSQP作为局部优化器(大约1秒)来解决的,随后仅根据前一个解在大约10Hz下使用局部优化器来解决。

子目标问题

为了知道当前阶段i对应的末端执行器姿态 , 首先应该求解如下公式对应的子目标问题:


其中 包含辅助控制成本: 场景碰撞避免、可达性、姿势正则化、解一致性和用于双臂设置的自碰撞功能。 如果某个阶段与抓取有关,则还要包括grasp指标。

也就是说,上述方程试图找到一个满足 的子目标,同时最小化辅助成本。 作者团队通过利用AnyGrasp求解这个问题。


路径问题

在获得子目标 后,研究者继续求解从当前末端执行器姿态 到子目标 的轨迹 :


其中, 包含以下辅助控制代价: 场景碰撞规避、可达性、路径长度、解的一致性,以及用于双臂设置的自碰撞功能。 如果到子目标 的距离在较小的容差 范围内,这时才可以进入下一个阶段i+1。


回溯

尽管在解决了子目标和路径问题后,已经可以在每个阶段内对于外部干扰做到实时反应。但若上一阶段的任意子目标约束条件受到影响而变得不再成立,依然无法完成整个工作任务。

为了避免这样的情况,研究团队让整体系统都可以进行跨阶段规划。具体来说,在每个控制流程中,系统都需要检查是否违反了 ,如果发现了这种情况,就需要回溯到之前满足条件的那个阶段去重新进行迭代。


对于关键点的前向模型

为了求解前述两个公式,在优化过程中必须使用前向模型h,以估计从末端执行器姿态变化 到关键点位置变化 。

作者对末端执行器与「抓取关键点」(属于同一物体或部件的刚性关键点组)之间做出刚性假设。 也就是说,给定末端执行器姿态的变化 ,就可以通过应用相同的刚性变换来计算关键点位置的变化: , 同时假设其他关键点保持静止。

如何从RGB-D观测数据和语言指令中自动获取ReKep

为了使系统能够在给定自由格式任务指令的情况下在开放环境执行任务,团队设计了一个使用大型视觉模型和视觉语言模型的pipeline,用于生成关键点proposal和ReKep,分别讨论如下:

获得候选关键点

给定一个RGB图像,首先从DINOv2中提取特征patch。然后执行双线性插值,将特征上采样到原始图像大小。为了确保候选关键点的范围可以涵盖场景中的所有相关对象,作者利用Segment Anything(SAM)提取场景中的所有掩码。对于每个掩码j,作者结合了k=5的k-means和余弦相似度指标,对掩码特征进行聚类。

再将每个聚类的质心用作关键点候选项,并使用校准的RGB-D将其投影到世界坐标。与其他候选项目相距不远的候选项目将被筛掉。

总之,这一流程能够很好地识别出一个较大比例的细粒度和有语义意义的对象区域。

ReKep生成

获得候选关键点后,就可以将它们用数字标记叠加在原始RGB图像上。接着结合任务的语言指令,使用visualprompt来对GPT-4o进行提问,以生成所需的阶段数以及每个阶段i相应的子目标约束和路径约束。

值得注意的是,这些函数不直接参与关键点位置的数值运算。相反,作者利用VLM的优势将空间关系指定为算术运算,例如关键点之间的L2距离或点积,这些运算只有在被调用时才实例化,并与专门的3D跟踪器跟踪的实际关键点位置一起使用。

此外,使用一组关键点位置进行算术运算的一个重要优势是,当提供足够的点并强制执行相关点之间的刚性时,它可以指定完整的三维旋转,但仅在任务语义需要时才这样做。这使得VLM能够使用三维笛卡尔空间中的算术运算来推理三维旋转,有效地避免了处理替代的三维旋转表示和执行数值计算的需求。

实验

作者将实验的目标设定为回答并验证以下研究问题:

  • 我们的框架自动制定操作策略和对应综合操作行为的能力如何?

  • 我们的系统能否推广到新对象和操作策略?

  • 在一个轮式单臂平台和一个固定式双臂平台,各个组件如何导致系统的故障情况?


衡量标准和基准

作者设定了对于倒茶、放置书籍、回收罐子、打包盒子、折叠衣物、打包鞋子以及协作折叠七项任务的实验评估,并且还通过在执行过程中改变任务对象的姿态位置,对其中三个任务进行了外部干扰评估。

这七个任务旨在验证这个系统的不同方面,包括具有常识性知识的野外规范、具有时空依赖性的多阶段任务、具有几何意识的双臂协调以及在与人类协作和受到干扰时的反应能力。


实验任务和可视化优化结果

作者评估了该系统的两个变体:「Auto」使用基础模型去自动生成ReKep,而「Annot」使用人工标注的ReKep。

每个任务评估有10次试验,其中物体的姿势是随机的。成功率见下表,作者将VoxPoser作为基准进行比较。

可以看出ReKep大幅领先VoxPoser,并且「Annot」也大幅领先「Auto」。


下表则是显示了系统两个变体「Auto」、「Annot」对于倒茶、打包盒子、协作折叠三个任务受到外部干扰时的具体表现,同样地也是ReKep大幅领先VoxPoser,并且「Annot」也大幅领先「Auto」。

综上则说明了,人工标注的ReKep「Auto」的综合性能最好。


操作策略中的泛化

作者系统地评估了如何通过专注于一项任务来发展出新颖的操作策略。

对于服装折叠这个单一任务,其中包含8个独特的服装类别,每个类别都需要独特的折叠方式,并且需要几何与常识推理。评估是在双臂平台上完成的,这给双臂协调带来了更进一步的挑战。

对于操作策略的泛化,作者依然采用了获得候选关键点部分的方案,即为使用visual prompt来对GPT-4o进行提问,其提示词仅包含一般说明,没有上下文示例。「策略成功率」衡量生成的ReKep是否可行,这同时测试了关键点建议模块和VLM,而「执行成功率」衡量的是给定每件服装可行策略的系统成功率。每种方法都要进行10次试验。

有趣的是,结果是不同类别的策略截然不同,其中许多策略与人类折叠每件衣服的方式一致。例如,它可以识别出两个袖子经常在完全折叠衣服之前折叠在一起。

在不需要使用两只手臂的情况下,类似于人类折叠衣服的方式,只使用一只手臂。

然而,我们确实观察到VLM可能会错过某些步骤,无法按照操作员的预期完成折叠,但我们认识到,这本质上是一个开放式问题,通常基于个人的喜好。

ReKep用于折叠不同类别服装的新型双臂策略及其成功率

成功率。由于ReKep在这项任务中总是一次关联两个点,因此如果两个关键点需要对齐,则会用箭头将其连接起来。

连接。关键点的颜色表示顺序。在毛衣任务中,两个袖子

首先用两只手臂同时折叠,然后两只手臂抓住圆领对齐到底部。


结论和不足

在这项工作中,作者介绍了关系关键点约束(ReKep),这是一种使用约束的结构任务表示法,它通过语义关键点来指定机器人手臂、物体(部件)和环境中其他代理之间的预期关系。

结合点跟踪器,我们证明了ReKep约束条件可以在分层优化框架中重复有效地求解,从而作为闭环策略以实时频率运行。我们还展示了ReKep的独特优势,即它可以由大型视觉模型和视觉语言模型自动合成。我们在两个机器人平台和各种任务上展示了结果,这些任务具有多阶段、野外、双臂和反应行为等特点,所有这些都不需要特定任务数据、额外训练或环境模型。

尽管前景看好,但仍存在一些局限性。首先,优化框架依赖于基于刚性假设的关键点前向模型,尽管高频反馈回路放宽了对模型准确性的要求。其次,ReKep依靠精确的点跟踪来正确优化闭环行动,而由于间歇性遮挡严重,这本身就是一项具有挑战性的3D视觉任务。

最后,目前的方案假设每个任务都有固定的阶段序列(即骨架)。使用不同的骨架重新规划需要高频率地运行关键点建议和VLM,这给计算带来了相当大的挑战。

参考资料:

https://rekep-robot.github.io/

https://leap-workshop.github.io/

ad1 webp
ad2 webp
ad1 webp
ad2 webp