ReKep: Spatio-Temporal Reasoning of Relational Keypoint Constraints for Robotic Manipulation

转载请注明作者和出处: http://blog.csdn.net/john_bh/

Paper 地址:ReKep: Spatio-Temporal Reasoning of Relational Keypoint Constraints for Robotic Manipulation
作者及团队: 斯坦福 & 李飞飞
会议及时间:Arxiv 2024.9
Code:https://rekep-robot.github.io/

一. 背景

  1. 这是一个什么任务?
  2. 为什么会有这个问题?why:
  3. 作者如何解决这个问题?How:
  4. 怎么验证解决方案有效?
  5. 实验结果怎么样?

二. 懒人笔记

  1. Motivation:

    将机器人操作任务 表示为关联环境和 robot 之间的约束,是编码所需机器人行为的一种有前途的方法。
    机器人和物体之间的相对姿势来表示约束是一种直接且广泛使用的方法,但是当刚体变换不可描述几何细节,需要先验获取对象模型,并且不能处理可变形物体。
    另一方面,数据驱动的方式,直接在视觉空间中学习约束,但是随着约束数量在对象和任务方面组合增长,如何有效地手机训练数据不清楚。
    所以作者提出疑问,如何制定操作中的约束条件,使得他们可以:
    (1)广泛适用:适应需要多阶段、野外、双手和反应行为的任务;(2)可扩展获得:无需手动标记,有可能通过基础模型的进步完全自动化,
    (3)实时可优化:可由现成的求解器进行优化,以实时生成机器人动作

  2. Novelty

  3. Method

    作者提出了一种关系关键点约束(Relational keypoint Constraints: ReKep).一种基于视觉的机器人操作约束。
    1.ReKep 将约束表示为python 函数,将环境中的一组3D关键点映射到数值成本(numerical cost). 每个函数有关键点上的算数运算组成,并对他们之间所需“关系”进行编码,关键点是属于环境中不同实体:机械臂、物体的part 或者其他 agent。关键点是3D 笛卡尔坐标组成。
    2.为了规避对每个新任务手动规范 ReKep 的需求,设计了一个自动化程序,利用大型视觉模型DINOv2和视觉语言模型 GPT-4o从自由形式的语言指令和RGB-D观察中对ReKep 进行规范化。具体来说,利用DINOv2在场景中提取细粒度和语义上有意义的关键点,并且利用 GPT-4o 将约束写为 python 函数。
    3.实时可优化:有了生成的约束关系,现成的求解器可以通过基于跟踪的关键点重新评估约束来生成机器人动作。

  4. Experiments

    在轮式单臂平台和静止双臂平台上展示了系统实现,该平台可以执行多种操作任务,包括多阶段、野外、双手和反应行为,所有这些都没有特定于任务的数据或 环境模型。

  5. Thinking

三. 论文精读

1. 摘要

将机器人操作任务表示为关联机器人和环境的约束是编码所需机器人行为的一种有前途的方法。然而,目前尚不清楚如何制定约束条件,使其 1) 能够适应不同的任务,2) 无需手动标记,3) 可通过现成的求解器进行优化以实时产生机器人动作。在这项工作中,我们引入了关系关键点约束( Relational Keypoint Constrains: ReKep),这是一种基于视觉的机器人操作约束表示。具体来说,ReKep 表示为将环境中的一组 3D 关键点映射到数值成本的 Python 函数。我们证明,通过将操作任务表示为一系列关系关键点约束,我们可以采用分层优化程序来通过感知-动作循环来求解机器人动作(由 SE(3) 中的一系列末端执行器姿势表示)以实时频率。此外,为了避免为每个新任务手动指定 ReKep,我们设计了一种自动化程序,利用大型视觉模型和视觉语言模型从自由格式语言指令和 RGB-D 观察结果生成 ReKep。在轮式单臂平台和固定双臂平台上展示系统实现,这些平台可以执行多种操纵任务,具有多阶段、野外、双手和反应行为,所有这些都没有特定于任务的行为数据或环境模型。
在这里插入图片描述

2.Introduction

机器人操作涉及与环境中的对象的复杂交互,这通常可以表示为空间和时间域中的约束。考虑将茶倒入图1中的杯子的任务:机器人必须在手柄上抓取,在运输杯子时保持直立,将喷嘴与目标容器对齐,然后将杯子以正确的角度倾斜倾倒。在这里,约束不仅编码中间子目标(例如,对齐 spout),还编码过渡行为(例如,在运输中保持杯子直立),共同决定了机器人动作相对于环境的空间、时间和其他组合要求。

然而,有效地为各种现实世界的任务制定这些约束会带来重大挑战。虽然使用机器人和物体之间的相对姿势来表示约束是一种直接且广泛使用的方法[1],但刚体变换不描述几何细节,需要先验地获取对象模型,并且不能处理可变形对象。另一方面,数据驱动的方法直接在视觉空间中学习约束 [2, 3]。虽然更灵活,但随着约束的数量在对象和任务方面组合增长,如何有效地收集训练数据仍不清楚。因此,我们问这个问题:我们如何表示操作中的约束
1)广泛适用:适应需要多阶段、野外、双手和反应行为的任务,
2)可扩展获得:有可能通过基础模型的进步完全自动化,以及
3)实时可优化:可以通过现成的求解器有效地解决以产生复杂的操作行为?

在这项工作中,我们提出了关系关键点约束(ReKep)。具体来说,ReKep 将约束表示为 Python 函数,该函数将一组关键点映射到数值成本,其中每个关键点是场景中特定于任务的、语义上有意义的 3D 点。每个函数由关键点上的(可能是非线性的)算术运算组成,并在它们之间编码所需的“关系”,其中关键点可能属于环境中的不同实体,例如机械臂、对象部分和其他代理。虽然每个关键点仅由其在世界坐标系中的 3D 笛卡尔坐标组成,但如果强制执行关键点之间的刚性,多个关键点可以共同指定线、表面和/或 3D 旋转。我们在顺序操作问题的背景下研究 ReKep,其中每个任务涉及多个具有时空依赖性的阶段(例如,上述示例中的“抓取”、“对齐”和“倾倒”)。

虽然约束通常是针对每个任务手动定义的[4],但我们证明了ReKep的特定形式具有独特的优势,因为它们可以通过预训练的大型视觉模型(LVM:DINOv2)[5]和视觉语言模型(VLM:GPT-4o)[6]自动化,从而能够根据RGB-D观察和自由形式的语言指令对ReKep进行规范化。具体来说,我们利用LVM在场景中提出细粒度和语义上有意义的关键点,并利用VLM将约束写为Python函数,这些约束来自覆盖有提出的关键点的视觉输入。这个过程可以被解释为在VLM(代码)支持的输出模式中使用视觉引用表达式建立细粒度的空间关系,这些关系通常不容易用自然语言指定。

使用生成的约束,现成的求解器可用于通过基于跟踪关键点重新评估约束来生成机器人动作。受 [7] 的启发,我们采用分层优化过程首先将一组航路点(waypoints)作为子目标(表示为 SE(3) 末端执行器姿势),然后求解后退水平控制问题以获得密集的动作序列以实现每个子目标。通过问题的适当实例化,我们证明了对于这项工作中考虑的任务,它可以在大约 10 Hz 下可靠地解决。

我们的贡献总结如下
1)我们将操作任务制定为具有关系关键点约束的分层优化问题;
2)我们设计了一个管道,使用大型视觉模型和视觉语言模型自动指定关键点和约束;
3)我们在两个真实机器人平台上展示了系统实现,该平台将语言指令和 RGB-D 观察作为输入,并为各种操作任务生成多阶段、野外、双手动和反应行为,所有这些都没有特定于任务的数据或环境模型。

3. Related Works

  • 操作的结构表示。
    结构表示确定操作系统中不同模块的编排,并对系统的能力、假设、效率和有效性产生不同的影响。刚体姿态最常用于自由空间中众所周知的刚体运动,以及它们在建模物体长程依赖性方面的效率[1,8 -18]。然而,由于通常需要预先建模环境的几何和动力学,各种工作已经研究了使用数据驱动方法的结构表示,例如学习以对象为中心的表示[19-34]、基于粒子的动力学[35-41]和关键点或描述符[3,4,42-54]。其中,关键点因其可解释性、效率、对实例变化的泛化[4]以及对刚体和可变形对象进行建模的能力方面显示出巨大的前景。然而,每个任务都需要手动注释,因此缺乏开放世界设置中的可扩展性,我们的目标是在这项工作中解决

  • 操作中的约束优化。
    约束通常用于对机器人施加所需的行为。运动规划算法使用几何约束来计算避开障碍物并实现目标的可行轨迹[55-60]。接触约束可用于规划强制或接触丰富的行为[61-71]。对于顺序操作任务,任务和运动规划(task and motion planning :TAMP)[1,8,13]是一个广泛使用的框架,通常被表述为约束满足问题[11,72-77],连续几何问题作为子程序。Logic-Geometric Programming [78-83] 在考虑逻辑和几何约束的情况下,交替在整个状态轨迹上制定非线性约束程序。约束既可以以流形[84]、可行性模型[83,85]或符号距离场[2,86]的形式从数据中手动编写或学习。受 [7] 的启发,我们将顺序操作任务制定为集成的连续数学程序,该程序以后退水平的方式重复解决,主要区别在于约束是由基础模型合成的

  • 机器人基础模型。
    利用机器人基础模型是一个活跃的研究领域。我们建议读者参考[87-90]了解概述和最近的应用。在这里,我们专注于能够结合视觉输入[6,91-95]进行机器人操纵的VLM。然而,尽管展示了开放世界规划和目标规范的承诺[96-110],但caption-guided 的VLM相关方案往往限制了可以保留的图像视觉细节[111-114]。另一方面,自监督视觉模型(例如DINO[5,115])提供了可用于各种视觉和机器人任务的细粒度像素级特征[31,116-121],但缺乏解释开放世界语义的有效方法,而开放世界语义对于跨任务泛化至关重要。在这项工作中,我们利用它们的互补优势,使用DINOv2[5]进行细粒度关键点建议,使用GPT-4o[6]在支持的输出模式(代码)中进行视觉推理。类似形式的视觉提示技术也在并行作品中得到了探索[96,98,109,122]。在这项工作中,我们证明了ReKep具有独特的优势,可以执行具有挑战性的6-12 DoF任务,集成用于反应式重新规划的高级推理,高频闭环执行,以及通过视觉提示生成黑盒约束。我们将更详细的讨论推迟到附录A.10

4. Method

这里我们讨论:
(1)什么是关系关键点约束?
(2) 如何用ReKep将操纵表述为约束优化问题?
(3) 我们的算法实例化是什么,可以有效地实时解决优化问题?
(4) 如何从RGB-D观测和语言指令中自动获得ReKep?
在这里插入图片描述

4.1 Relational Keypoint Constraints (ReKep)

在这里,我们定义了ReKep的单个实例。为了清楚起见,我们假设已经指定了一组K个关键点。具体来说,每个关键点 k i ∈ R 3 k_i∈R^3 kiR3都指一个3D点在场景表面上使用笛卡尔坐标,这取决于任务语义和环境(例如,手柄上的抓握点、喷口)。

ReKep的单个实例是一个函数 f : R K × 3 → R f: R^{K×3} →R f:RK×3R,它将一系列表示为 k k k 的关键点数组映射到 无界代价(unbounded cost),其中 f ( k ) ≤ 0 f(k)≤0 fk0 表示满足约束。函数 f f f 被实现为一个无状态的 Python 函数,包含对关键点的 NumPy[123] 操作,这些操作可能是非线性和非凸的。本质上,ReKep 的一个实例编码了关键点之间的一个所需空间关系,这些关键点可能属于机器人手臂、物体部件和其他代理。

然而,操作任务通常涉及多个空间关系,并且可能有多个时间相关的阶段,每个阶段需要不同的空间关系。为此,我们将任务分解为 $N $个阶段,并使用 ReKep 为每个阶段 i ∈ 1 , , N i ∈ {1, , N } i1,,N 指定两种约束:
一组子目标约束 C s u b − g o a l ( i ) = { f s u b − g o a l , 1 ( i ) ( k ) } , . . . , f s u b − g o a l , n ( i ) ( k ) C^{(i)}_{sub-goal} = \{ f^ {(i)}_{sub-goal,1} (k)\},...,f^ {(i)}_{sub-goal,n} (k) Csubgoal(i)={ fsubgoal,1(i)(k)},...,fsubgoal,n(i)(k)一组路径约束 C p a t h ( i ) = { f p a t h , 1 ( i ) ( k ) , . . . , f p a t h , m ( i ) ( k ) } C^{(i)}_{path} = \{ f^{(i)}_{path,1} (k),...,f^{(i)}_{path,m} (k) \} Cpath(i)={ fpath,1(i)(k),...,fpath,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值