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

转载请注明作者和出处: http://blog.youkuaiyun.com/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,m(i)(k)},其中 f s u b − g o a l ( i ) f^{(i)}_{sub-goal} fsubgoal(i) 对第 i i i阶段结束时要实现的一个关键点关系进行编码, f p a t h ( i ) f^{(i)}_{path} fpath(i)编码一个关键点关系,以满足阶段 i i i 中的每个状态。

考虑图2中的倾倒任务,包括抓取、对齐和倾倒三个阶段。阶段 1 子目标约束将末端执行器拉到茶壶手柄上。然后阶段 2 子目标约束指定茶壶 spout 需要在杯子打开的顶部。此外,阶段 2 路径约束确保茶壶保持直立以避免运输时溢出。最后,阶段 3 子目标约束指定所需的倾倒角。

4.2 Manipulation Tasks as Constrained Optimization with ReKep

使用 ReKep 作为表示约束的通用工具,我们采用了 [7] 中的公式,并展示了操作任务如何被表述为涉及 C s u b − g o a l ( i ) C^{(i)}_{sub-goal} Csubgoal(i) C p a t h ( i ) C^{(i)}_{path} Cpath(i)的约束优化问题。我们将末端执行器姿势表示为 e ∈ S E ( 3 ) e ∈ SE(3) eSE(3)。为了执行操作任务,我们的目标是通过制定控制问题来获得整体离散时间轨迹 e 1 : T e_1:T e1:T,如下所示:

方程1

其中 e t e_t et 表示时间 t t t 的末端执行器姿势, g i ∈ { 1 , . . . , T } g_i ∈ \{1,..., T \} gi{1,...,T} 是从阶段 i i i i + 1 i + 1 i+1 的转换的时间,这也是辅助决策变量, k t k_t kt 是时间 t t t 的关键点位置数组, h h h 是关键点的前向模型, λ s u b − g o a l ( i ) λ^{(i)}_{sub-goal} λsubgoal(i) λ p a t h ( i ) λ^{(i)}_{path} λpath(i)分别是子目标和路径问题的辅助成本函数(例如,避免碰撞)。也就是说,对于每个阶段 i i i,优化将找到一个末端执行器姿势作为下一个子目标,以及它的时序,以及一系列姿势 e g i − 1 : g i e_{g_{i-1}}:g_i egi1:gi 来实现子目标,受制于给定的一组 ReKep 约束和辅助成本。该公式可以被认为是轨迹优化中的直接射击[124]。

4.3 Decomposition and Algorithmic Instantiation

为了实时求解方程1,我们对整个问题进行分解,只针对下一个子目标和到达子目标的相应路径进行优化(算法1中的伪代码)。所有优化问题都是使用SciPy[125]实现和解决的,决策变量归一化为[0,1]。它们最初使用双退火[126]和SLSQP[127]作为局部优化器(约1秒)求解,随后仅使用基于先前解决方案的局部优化器在约10 Hz1下求解。

  • 子目标问题
    我们首先解决子目标问题,以获得当前阶段 i i i e g i e_{g_i} egi
    arg min ⁡ e g i λ s u b − g o a l i ( e g i ) s . t . f ( k g i ) ≤ 0 , ∀ f ∈ C s u b − g o a l ( i ) ( 2 ) \argmin\limits_{e_{g_i}} \lambda^{i}_{sub-goal} (e_{g_i}) \quad s.t. \quad f(k_{g_i}) \le0, \forall f \in C^{(i)}_{sub-goal} \quad (2) egiargminλsubgoali(egi)s.t.f(kgi)0,fCsubgoal(i)(2)
    其中 λ s u b − g o a l \lambda_{sub-goal} λsubgoal 包含辅助控制成本:双手动设置的场景碰撞避免、可达性、姿势正则化、解决方案一致性和自碰撞(详见 A.8)。也就是说,等式2 试图找到满足 C s u b − g o a l ( i ) C^{(i)}_{sub-goal} Csubgoal(i) 的子目标,同时最小化辅助成本。如果一个阶段与抓取有关,则还包括抓取度量。在这项工作中,我们使用 AnyGrasp [131]。

  • 路径问题
    在获得子目标 e g i e_{g_i} egi 后,我们解决了从当前末端执行器姿势 e t e_t et 到子目标 e g i e_{g_i} egi的轨迹 e t : g i e_{t: g_i} et:gi
    arg min ⁡ e t : g i , g i λ p a t h i ( e t : g i ) s . t . f ( k t ^ ) ≤ 0 , ∀ f ∈ C p a t h ( i ) , t ^ = t , . . . , g i ( 3 ) \argmin\limits_{e_{t:g_i,g_i}} \lambda^{i}_{path} (e_{t:g_i}) \quad s.t. \quad f(k_{\hat t}) \le 0, \forall f \in C^{(i)}_{path} \quad, \hat t=t,...,g_i \quad(3) et:gi,giargminλpathi(et:gi)s.t.f(kt^)0,fCpath(i),t^=t,...,gi(3)
    其中 λ p a t h λ_{path} λpath 包含以下辅助控制成本:双手动设置的情况下场景碰撞避免、可达性、路径长度、解决方案一致性和自碰撞(详见 A.9)。如果到目标 e g e_g eg 的距离在一个小的容差 ε ε ε 内,我们进入下一阶段 i + 1 i + 1 i+1

  • 回溯
    虽然子问题可以以实时频率解决,以便对阶段内的外部干扰做出反应,但如果来自最后一个阶段的任何子目标约束不再成立,系统必须跨阶段重新规划(例如,在倾倒任务中从夹持器中取出的杯子)。具体来说,在每个控制回路中,我们检查违反 C p a t h ( i ) C^{(i)}_{path} Cpath(i)。如果找到一个,我们迭代地回溯到前一阶段 j j j,从而满足 C p a t h ( j ) C^{(j)}_{path} Cpath(j)

  • 关键点的正向模型:
    为了解决Eq. 2和Eq. 3,必须利用正向模型 h h h,在优化过程中从 Δ e \Delta e Δe估计 Δ k \Delta k Δk。与之前的工作[4]一样, 我们在末端执行器和“抓取关键点”之间进行了刚性假设(属于同一对象或部分的刚性关键点组;从分割模型中获得。也就是说,给定末端执行器位姿 Δ e \Delta e Δe的变化,我们可以通过应用相同的相对刚性变换 k ′ [ g r a s p e d ] = T Δ e ⋅ k [ g r a s p e d ] k '[grasped] = T\Delta e·k[grasped] k[grasped]=TΔek[grasped]来计算关键点位置的变化,同时假设其他关键点保持静态。我们注意到这是一个“局部”假设,因为它只假设适用于解决问题的短视界(0.1s)。使用 20 Hz 的视觉输入跟踪实际关键点位置,并用于每个新问题。对于更具挑战性的场景(例如,动态或接触丰富的任务),可以使用学习或基于物理的模型。

4.4 Keypoint Proposal and ReKep Generation

为了使系统在给定自由形式的任务指令的情况下在野外执行任务,我们设计了一个pipeline,使用大型视觉模型和视觉语言模型进行关键点提议和 ReKep 生成,分别讨论如下:

  • Keypoint Proposal
    :给定一个RGB图像 R h × w × 3 \mathbb{R} ^{h×w×3} Rh×w×3,我们首先从 DINOv2[5]中提取patch-wise特征 F p a t c h ∈ R h ′ × w ′ × d F_{patch} \in \mathbb{R}^{h ' ×w ' ×d} FpatchRh×w×d。然后我们进行双线性插值,将特征上采样到原始图像大小, F i n t e r p ∈ R h × w × d F_{interp} \in \mathbb{R}^{h×w×d} FinterpRh×w×d。为了确保 proposal 涵盖场景中的所有相关对象,我们提取所有掩码 M = { m 1 , m 2 , . . . , m n } M = \{m_1, m_2,..., m_n\} M={m1,m2,...,mn}在场景中使用Segment Annything (SAM) [132]。对于每个掩码 j j j,我们使用 k k k-means 对掩码特征 F i n t e r p [ m j ] F_{interp}[m_j ] Finterp[mj] 进行聚类,其中 k = 5 k = 5 k=5,具有余弦相似度度量。聚类的质心被用作关键点候选,使用校准的RGB-D相机投影到世界坐标 R 3 \mathbb{R}^3 R3。过滤掉其他 8cm 以内的候选者。总体而言,我们发现此过程擅长识别大量细粒度和语义有意义的对象区域。

  • ReKep Generation:
    在获得关键点候选后,我们将它们叠加在原始RGB图像上,并带有数值标记。结合任务的语言指令,然后使用视觉提示查询GPT-4o[6],生成每个阶段 i i i所需的阶段数和相应的子目标约束 C s u b − g o a l ( i ) C^{(i)}_{sub-goal} Csubgoal(i) 和路径约束 C p a t h ( i ) C^{(i)}_{path} Cpath(i)(提示在A.6中)。值得注意的是,函数并不直接操纵关键点位置的数值。相反,我们利用VLM的强度将空间关系指定为算术运算,如关键点之间的L2距离或点积,只有在使用专门的3D跟踪器跟踪的实际关键点位置调用时才能实例化。此外,在一组关键点位置上使用算术运算的一个重要优势是,当提供足够的点并强制执行相关点之间的刚性时,它可以在完整的 SO(3) 中指定 3D 旋转,但这仅在需要取决于任务语义 3 时才完成。这使得 VLM 能够在 3D 笛卡尔空间中使用算术运算推理 3D 旋转,有效地避免了处理替代 3D 旋转表示的需要以及执行数值计算的需要。

5. Experiments

我们的目标是回答以下研究问题:
(1)我们的框架在多大程度上自动制定和综合了操纵行为(第4.1节)?
(2) 我们的系统能否推广到新的对象和操作策略(第4.2节)?
(3) 各个组件如何导致系统的故障情况(第4.3节)?

我们在两个真实的机器人平台上验证了ReKep:一个轮式单臂平台和一个固定的双臂平台(图3)。其他实施细节见附录,包括关键点建议(A.5)、VLM查询(A.6)、点跟踪器(A.7)、子目标求解器(A.8)和路径求解器(A.9)
在这里插入图片描述

5.1 In-the-Wild and Bimanual Manipulation with ReKep

  • Tasks
    我们有意选择一组任务(如图 3 所示),目的是检查系统的多阶段 (m)、野外 (w)、双手动 (b) 和反应性 ® 行为。任务及其特征是 Pour Tea (m, w, r)、Stow Book (w)、Recycle Can (w)、Tape Box (w, r)、Fold Garment (b)、Pack Shoes (b) 和协作折叠 (b, r)。我们通过在执行过程中改变任务对象的姿势来进一步评估外部干扰下的三个任务(表示为“Dist.”)。

  • Metric and Baselines
    每个设置有 10 次试验,其中对象姿势是随机的。任务成功率报告在表中。1. 我们将VoxPoser[103]作为基线进行比较。我们评估了系统的两种变体,“Auto”使用基础模型自动生成 ReKep,以及使用人工注释 ReKep 的“注释 (Annot.)”
    在这里插入图片描述
    在这里插入图片描述

  • Result
    总体而言,该系统在制定正确约束并在非结构化环境中执行它们方面表现出有希望的能力,尽管没有提供特定于任务的数据或环境模型。值得注意的是,ReKep 可以有效地处理每个任务的核心挑战。例如,它可以在多阶段任务中制定正确的时间依赖性(例如,在倾倒之前,spout 需要与杯子对齐),利用常识知识(例如,应回收焦罐),并在双手动设置(例如,同时折叠左袖和右袖)和人机协作设置(例如,通过将四个角与人类对齐来折叠大型毯)。再加上优化框架,它还可以在 Stow Book 任务中在受限空间中生成运动学上具有挑战性的行为,并找到在 Pack Shoes 任务中以小体积密集拟合两只鞋子的可行解决方案。由于关键点以高频跟踪,系统还可以对外部干扰做出反应,并在阶段和跨阶段重新规划。然而,尽管取得了可喜的结果,但我们也观察到,鉴于这些预训练模型的快速发展,生成的约束并不总是完全正确的,但预计会看到改进。

在这里插入图片描述

5.2 Generalization in Manipulation Strategies

  • Tasks
    我们系统地评估了如何通过关注单个任务、服装折叠和 8 个独特的服装类别来制定新颖的操作策略,每个类别都需要独特的折叠方式,并且需要几何和常识推理。评估是在双手动平台上完成的,这给双手动协调带来了额外的挑战。
  • Metric
    我们使用 GPT-4o 和仅包含没有上下文示例的通用指令的提示。“策略成功”衡量生成的 ReKep 是否可行,它测试关键点提议模块和 VLM,以及“执行成功”测量给定每个服装的可行策略的系统成功率。每一个都用 10 次试验测量。
  • Result
    有趣的是,我们观察到不同类别的策略截然不同,其中许多策略与人类可能折叠每件衣服的方式一致。例如,在完全折叠衣服之前,它可以识别出两个袖子经常被折叠在一起。在不需要使用两个手臂的情况下,类似于人类如何折叠衣服,只使用一个手臂。然而,我们确实观察到 VLM 可能会错过某些步骤来完成折叠作为预期算子,但我们认识到这本质上是一个开放式问题,通常基于一个人的偏好。

5.3 System Error Breakdown

该框架的模块化设计由于其可解释性而具有分析系统错误的优势。在本节中,我们通过手动检查 Tab 中报告的实验的失败案例来进行实证研究。1,然后用于计算模块导致错误的可能性,同时考虑它们在管道中的时间依赖性。结果如图5所示。在不同的模块中,点跟踪器产生最大的错误部分,因为频繁和间歇性遮挡对精确跟踪提出了重大挑战。关键点提议和VLM还产生了相当大的错误部分,其中常见情况包括缺少某些关键点的提议模块和引用错误关键点的VLM。另一方面,尽管时间预算有限,优化模块对故障的贡献不大,因为每个问题通常存在许多可能的解决方案。其他模块,如分割、三维重建和低级控制器,也有助于一些失败案例,但与其他模块相比,它们相对不显著。
在这里插入图片描述

6. Conclusion & Limitations

在这项工作中,我们提出了关系关键点约束 (ReKep),这是一种使用对语义关键点进行操作的约束的结构任务表示,以指定机器人手臂、对象(部分)和环境中的其他代理之间的期望关系。结合点跟踪器,我们证明了 ReKep 约束可以在分层优化框架中反复有效地解决,以充当实时运行的闭环策略。我们还展示了 ReKep 的独特优势,因为它可以由大型视觉模型和视觉语言模型自动合成。结果在两个机器人平台和各种任务上都显示,这些任务具有多阶段、野外、双手动和反应行为,所有这些都没有特定于任务的数据、额外的训练或环境模型。尽管承诺,但仍有几个限制。首先,优化框架依赖于基于刚性假设的关键点前向模型,尽管高频反馈回路放宽了模型的准确性要求。其次,ReKep依赖于精确的点跟踪来正确优化闭环中的动作,由于严重的间歇性遮挡,这本身就是一个具有挑战性的3D视觉任务。最后,当前的公式为每个任务假设一组固定的阶段(即骨架)。用不同的骨架重新规划需要以高频运行关键点提议和VLM,这带来了相当大的计算挑战。扩展讨论可以在附录 A.1 中找到

### 6-DOF Robotic Arm MATLAB Simulation Using Forward Kinematics Analysis Method For simulating a six-degree-of-freedom (6-DOF) robotic arm in MATLAB, the forward kinematics approach is fundamental to determine the position and orientation of the end-effector given joint angles. The Denavit-Hartenberg (DH) parameters are commonly used for this purpose. The DH convention provides a systematic way to define coordinate frames on each link of the robot[^1]. Below is an example code snippet that demonstrates how one can set up such a simulation: ```matlab % Define DH Parameters for a hypothetical 6 DOF manipulator d = [0.333 0 0.316 0.0825 0.0825 0]; % Link offsets a = [0 0.0825 0 0 0.088 0]; % Link lengths alpha = deg2rad([90 0 -90 90 -90 0]); % Twist angles theta = deg2rad([0 0 0 0 0 0]); % Joint variables initialized at zero degrees % Create SerialLink object from Robotics Toolbox robot = SerialLink(larray(dhparam(a,d,alpha,theta)), 'name', 'SixR'); % Plot initial configuration figure; plot(robot); title('Initial Configuration'); hold on; % Animate through some random configurations q_random = rand(6, 1)*pi-pi/2; % Random joint values between -π/2 and π/2 radians traj = jtraj(zeros(6,1), q_random, 50); % Generate trajectory with 50 steps for i=1:size(traj.q, 2) plot(robot, traj.q(:,i)); pause(0.05); end ``` In addition to setting up the model as shown above, it's important to consider inverse kinematics when aiming for specific tasks or trajectories because while forward kinematics computes where the end effector will be based on known joint states, inverse kinematics solves what those joint states should be to reach desired positions[^2]. However, if focusing solely on simulations without real-world experiments, similar approaches have been taken but might lack validation against physical systems which could limit practical applications[^3]. When developing more advanced models incorporating machine learning techniques like ReKep’s method mentioned by Dr Yao, these methods may offer advantages over traditional ones especially regarding adaptability under varying conditions due to their data-driven nature[^4]. --related questions-- 1. How does the choice of different sets of DH parameters affect the accuracy of forward kinematic calculations? 2. What challenges arise during the transition from simulated environments into actual hardware implementations concerning 6-DOF arms? 3. Can you explain the difference between using symbolic computation versus numerical approximation within MATLAB for solving forward kinematics problems? 4. Are there any particular considerations needed when applying deep learning algorithms specifically designed for motion retargeting onto robots equipped with closed-loop kinematics?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值