在机器人操作领域,将任务自动化地转化为一系列可执行的动作是一个重要的研究方向。最近,李飞飞团队提出一种机器人操作新范式,ReKep(Relational Keypoint Constraints)。它通过利用先进的视觉和语言模型,实现了从自然语言指令到机器人动作的端到端自动化。本文将详细介绍ReKep的相关技术内容,包括提取关键点、生成ReKep、以及约束优化等等。
一、研究背景
如何表示机器人操作任务中的约束以适应不同的任务,是一个重要的研究课题。相关工作包括使用刚体变换和基于数据驱动的方法,刚体变换虽然直接且使用广泛,但是无法处理几何细节和可变形物体;数据驱动的方法更加灵活,但在数据收集方面存在巨大挑战。
本文中ReKep技术的核心思想是将机器人操控任务表示为一系列关系关键点约束,这些约束定义了机器人在执行任务时需要满足的空间关系。与传统的基于规则或手工编码的方法相比,ReKep能够自动从自然语言指令和视觉输入中提取关键信息,并生成相应的约束条件。
二、研究方法
由上图可以看出整个流程包括RGBD数据和语言指令输入、关键点提取、ReKep约束生成、优化问题构建与求解、轨迹生成与执行等几个步骤,下面分别详细介绍:
2.1 关键点提取
关键点提取是ReKep技术的第一步,它涉及到从RGB-D观测中识别出对任务执行有重要意义的点,如茶壶的把手、茶杯的位置等。这一过程包括以下几个关键步骤:
- 图像捕获:使用RGB-D摄像机获取场景的彩色图像和深度图。
- 特征提取:利用自监督视觉模型(如DINOv2)提取图像中的关键特征。
- 对象分割:通过Segment Anything(SAM)模型对图像进行分割,识别出不同对象及其掩码。
- 聚类分析:在每个对象掩码内,使用聚类算法(如k-means)对特征进行聚类,确定关键点候选。
- 关键点筛选:通过meanshift等算法过滤掉过于接近的点,确保关键点分布合理。
- 3D映射:将2D图像中的关键点候选映射到3D空间中,得到它们在世界坐标系中的位置。
2.2 ReKep生成
一旦获得了关键点候选,下一步就是生成ReKep约束。这一过程依赖于视觉-语言模型(如GPT-4o),它能够理解自然语言指令并将其转化为机器人可以执行的约束条件:
- 视觉提示:将关键点候选叠加在原始RGB图像上,并结合任务的语言指令,形成视觉提示。
- 模型查询:使用视觉-语言模型根据视觉提示生成ReKep约束,这些约束定义了关键点之间的关系,如距离、角度等。
- 代码生成:VLM生成Python函数形式的ReKep约束代码,这些代码可以直接用于机器人的动作规划。
2.3 任务分解执行
ReKep技术在多个机器人操控任务中展示了其强大的自动化能力,包括多阶段任务、实际(in the wild)任务、双手协调任务和反应性任务。这些任务涉及了从简单的物体移动到复杂的物体操作,如倒茶、折叠衣物等。ReKep通过以下方式实现了这些任务的自动化:
- 层次化优化:将任务分解为多个阶段,并为每个阶段生成相应的子目标和路径约束。子目标约束(sub-goal constraint)是指每个阶段的终点是什么。路径约束(path constraint)是指任务执行过程中的约束。例如,在"倒茶"的任务中,第一个阶段"拿起茶壶",第二个阶段是"将茶壶移向茶杯",第三个阶段是"倒茶"。第一个阶段的子目标是让夹爪抓住茶壶的把手。在这个阶段,GPT会生成一个约束:夹爪的关键点要与茶壶把手的关键点重合。第二个阶段,当茶壶从桌面上移动向茶杯时,路径约束可能是保持茶壶嘴和把手的水平关系,防止水从茶壶中倒出来。
- 实时反馈:结合点跟踪技术,实时更新关键点的位置,并根据这些信息调整机器人的动作。
- 跨阶段规划:当任务的某个阶段失败时,系统能够回溯到之前的阶段并重新规划。
2.4 优化问题构建与求解
优化问题的构建和求解是实现机器人操控自动化的核心环节。这一过程涉及将复杂的操控任务转化为数学优化问题,并使用数值方法找到解决方案。以下是优化问题构建和求解过程的详细介绍:
2.4.1 优化问题构建
目标函数定义 :
2.3中介绍,优化问题的目标函数通常由两部分组成:子目标约束和路径约束。子目标约束定义了每个阶段结束时需要满足的条件,而路径约束定义了在阶段内需要持续满足的条件。这些约束以代价函数的形式表达,代价函数的值越小,表示约束被满足得越好。
决策变量 :
决策变量通常是机器人末端执行器的姿态,包括位置和方向。在某些情况下,还可能包括其他变量,如关键点的位置或机器人关节的角度。
约束条件 :
约束条件包括子目标约束和路径约束,它们由ReKep生成。这些约束可以是几何约束(如距离、角度)、动力学约束(如速度、加速度限制)或任务特定的逻辑约束。
辅助成本函数 :
除了约束条件外,目标函数还可能包括辅助成本函数,如避免碰撞、可达性和路径平滑性等。这些成本函数帮助优化算法在满足任务约束的同时,也考虑了机器人的物理限制和执行效率。
2.4.2 优化问题求解
求解策略 :
ReKep技术采用层次化优化策略,首先解决子目标问题,确定下一个阶段的目标姿态,
然后解决路径问题,规划从当前姿态到目标姿态的路径。
这种策略允许系统在实时反馈中调整计划,以应对环境变化和执行误差。
求解算法 :
优化问题通常使用基于梯度的优化算法求解,如序列二次规划(SQP)或信赖域方法。这些算法需要目标函数的梯度信息,可以通过解析方法或数值方法获得。本文使用全局优化算法dual_annealing进行大范围的轨迹搜索。在全局优化找到较好解的基础上,使用局部优化算法SLSQP(SequentialLeastSquaresProgramming)进行精细调整。
实时性考虑 :
为了实现实时控制,优化算法需要在有限的时间内找到可行解。这要求算法具有高效的计算性能,并且可能需要对问题进行简化或使用近似方法。在ReKep中,通过使用高效的数值求解器和简化的模型,优化问题可以在大约10 Hz的频率下求解。
反馈和调整 :
在执行过程中,系统会实时跟踪关键点的位置,并根据这些信息调整优化问题的解。如果检测到关键点的实际位置与预期位置有显著偏差,系统可能会重新启动优化过程,以生成新的控制命令。
2.4.3 实现细节
初始化和归一化 :
在求解优化问题之前,需要对决策变量进行初始化和归一化,以确保它们在合理的范围内。这通常通过预定义的工作空间界限和关节限制来实现。
碰撞避免和可达性 :
在目标函数中,碰撞避免和可达性是通过与环境模型的交互来实现的。使用如nvblox等工具计算场景的欧几里得签名距离场(ESDF),并将其用于碰撞检测和成本计算。
路径平滑和一致性 :
为了生成平滑且一致的路径,优化问题中包含了路径长度和一致性的成本项。这些成本项鼓励生成的路径尽可能短且平滑,并与先前的路径保持一致。
通过这种优化问题的构建和求解过程,ReKep技术能够自动地将自然语言指令转化为机器人的操控动作,实现了在复杂环境中的自动化操控任务。
三、实验设计
实验在两种不同的机器人平台上进行:
- 轮式单臂平台:一个安装在轮式底座上的Franka臂,能够在非结构化环境中执行任务。
- 固定双臂平台:由两个Franka臂组成的固定式双臂工作站,适合进行更复杂的双手协调任务。
实验涉及一系列设计精巧的任务,旨在测试ReKep技术在多种场景下的表现。
实验通过以下指标来评估ReKep技术的表现:
- 成功率:根据任务要求,记录成功完成任务的次数。
- 策略成功 与执行成功:在叠衣服任务中,评估VLM生成的策略是否可行,以及机器人是否能够根据这些策略成功执行任务。
具体实验数据请查阅论文第四章。
四、结论与展望
ReKep技术在机器人操控领域的实验结果表明,通过结合先进的视觉和语言模型,可以有效地将自然语言指令转化为机器人的动作序列。这一技术在多个复杂的操控任务中展现了较高的成功率,包括多阶段任务、in the wild任务、双手协调任务和反应性任务。实验结果验证了ReKep在自动化操控行为、泛化能力以及反应性行为方面的有效性。
ReKep的优化问题构建和求解过程是实现这一技术的关键。通过将任务分解为子目标和路径约束,并利用层次化优化策略,ReKep能够在实时反馈中调整计划,以应对环境变化和执行误差。这种方法允许系统在满足任务约束的同时,也考虑了机器人的物理限制和执行效率。
尽管ReKep技术已经展示了在自动化机器人操控任务中的潜力,但仍存在一些挑战和改进空间:
-
提高鲁棒性:当前的视觉-语言模型在处理复杂的场景和长任务序列时可能会遇到困难。未来的研究可以集中在提高这些模型的鲁棒性,以便更好地处理遮挡、光照变化和物体变形等问题。
-
优化任务空间规划:在某些场景中,机器人可能难以实现优化的姿态,因为求解器没有明确考虑机器人的运动学。研究如何在关节空间中进行规划,以确保解决方案在关节限制内,是一个重要的研究方向。
-
改善双臂协调:双臂任务的搜索空间显著增加,这减慢了整体流程并可能产生次优行为。研究如何更有效地协调双臂动作,以提高执行效率和成功率,是一个值得探索的领域。
-
实时性能:虽然ReKep能够在大约10 Hz的频率下求解优化问题,但在更复杂的任务或更大的工作空间中,可能需要更高的计算性能。研究如何进一步提高优化算法的效率,以实现更高频率的实时控制,对于提升系统性能至关重要。
-
泛化到更复杂的任务:目前的实验主要集中在一些特定的任务上。未来的工作可以探索ReKep在更广泛的任务类型上的泛化能力,包括涉及更复杂操作和更多对象交互的任务。
-
集成学习:通过机器学习方法,可以让ReKep系统从经验中学习,不断优化其性能。这可能包括学习更好的关键点表示、更有效的约束生成策略或更精确的模型预测控制方法。
-
多模态输入:除了视觉和语言输入外,可以考虑将触觉、声音或其他传感器数据集成到ReKep框架中,以实现更丰富的环境感知和更精细的动作控制。