

Paper Reading: Embodied AI 2
从零开始的Embodied AI研究生活。
前言#
RL菜鸡开始进军Embodied AI,慢慢积累,提升自己。
LLARVA#
OpenVLA-like 的 VLA,使用 2D轨迹 预测去引导动作生成。
LLARVA 是一种 OpenVLA-like 的 VLA,使用 Instruction Tuning 进行微调,并通过输出 2D Visual Trace 去引导 Action 生成。
LLARVA 的输入指令被规范化为 Prompt,详细见图。
LLM 的主干为 LLaMA2 7B,并使用 LoRA 进行微调。
先预测 2D Visual Trace 再生成 Action Chunk,本质上是基于 CoT 的思想。
ATM#
使用 Label-free 的视频去训练以当前观察 Obs 和指令 Instruction 为 Condition 的 Points-Tracker,并使用 Points-Track 去引导 Action 生成。
ATM 的亮点在于仅可以使用 Action-free 的数据去训练机器人操作策略。
ATM 是一种 Pipeline 方法,分为任意点轨迹建模与轨迹引导策略学习两个部分。
在任意点轨迹建模部分,ATM 利用了大量 Label-free 的视频训练了一个 Points-Tracker,输入是当前观察 Obs、任务 Instruction 以及初始 Points,输出是未来的 Points-Trajectory。
在轨迹引导策略学习部分,策略网络以上个步骤预测的 Points-Trajectory 以及当前 Obs 为输入,输出机器人的 Action。
任意点轨迹建模: 在数据处理部分,ATM 使用了离线的 Points-Tracker 模型去得出的 Label。 同时,过滤掉了大部分静止的 Points,只保留了 32 个高频活动的 Points。 对于当前 Obs,使用 ViT 将图像切分为 Patches,并随机 Mask 掉 50% 的 Patches,得出 Image Token。 对于任务 Instruction,使用 BERT 进行信息提取 Language Token。 对于初始 Points,在文中是有32个,编码为 Track Token。 以 Obs 以及 Instruction 为 Base 的 Points-Tracker 被定义为一个 Transformer,输入为 Image Token、Language Token 以及 Track Token,输出为未来的 Points-Trajectory。 按照题主的理解,输出的 Points-Trajectory 其实就是任务导向的 Vision-Language Fusion。
轨迹引导策略学习:
首先,使用了 BERT-like 的 Transformer 对 Image Token 以及 Track Token 进行 Fusion,得出特征 [CLS]。
然后,策略网络设定为 MLP,以 [CLS] 以及 Track Token 为输入,输出机器人的 Action。
在策略学习的过程中,并没有引入 Instruction 的信息,因为在轨迹建模阶段已经引入了。
同时,对 Track Token 进行了两次 Fusion,这样会有更好的效果,详细见原文。
Track2Act#
使用 Points-Trajectory 去生成动作,并使用残差策略修正动作。
Track2Act 本质上和 ATM 是一样的,都是以 Points-Trajectory 去引导动作的生成。 Track2Act 主要分为三个阶段:Points-Trajectory 预测、Open-loop 动作求解以及 Residual Policy 闭环修正。
在 Points-Trajectory 预测阶段,Track2Act 使用了 DiT 生成模型。
DiT 的 Condition 被设置为初始图像 以及目标图像 的表征,给定随机采样的查询点集 ,生成 Points-Trajectory。
在 Open-loop 动作求解阶段,Track2Act 使用了一个确定性的算法进行刚性动作的求解,不涉及神经网络训练。 这个算法的输入是 Points-Trajectory,输出一系列的刚性变换 。 具体求解算法见原文,这里不详细展开。 最后,基于刚性变换,可以求解出机器人的 Open-loop 动作序列 。
在 Residual Policy 闭环修正阶段,Track2Act 使用一个 Residual Policy 去修正 Open-loop 动作。其实就是使用一个 Transformer-Encoder 去预测误差,最后加在一起。
最后简单瑞萍一下,其实博主觉得后面两个阶段完成可以使用神经网络进行表征,有点多余,虽然残差修正动作这个思想是好的。
ECoT#
具有 Embodied 性质的 CoT。
ECoT 这篇工作指出 LLM 那边的 CoT 是无法直接迁移到 Embodied 任务环境中的。
若只是简单的语义推理,那么就会出现大量不符合实际物理环境的幻觉。
因此,ECoT 在 CoT 的基础上添加了智能体对环境的感知,从而使得 CoT 具有 Embodied 性质。
ECoT 的具体设置见上图,和 CoT 类似,只是加入了 Embodied 的感知。
ECoT 使用的模型基座是 OpenVLA,使用 ECoT 后效果得到了很好的改善。
ECoT 还提出了一套使用机器人数据产生 CoT 训练数据的 Pipeline。
具体就不多说了,图里面说的很清楚。
这种推理过程是显式的,具有一定的解释性,缺点就是这样会降低推理的速度,文中也给了一些解决方案。
VoxPoser#
使用 LLM 生成 Python 代码去调用 VLM 的 API 计算 3D Value Map,并作为价值引导进行 MPC。
VoxPoser 是一种 Code for Robotic 的方法。 简单的来说,VoxPoser 使用 LLM 去生成 Python 代码,这里的代码会调用 VLM 的 API 生成 3D Value Map,然后进行 MPC。
首先,VoxPoser 会告诉 LLM 任务的文本描述以及一些 VLM 具有的 API函数,让它去产生能够基于 RGB-D 图像计算 3D Value Map 的 Python 代码。
然后,使用 Python 执行器去执行代码,过程中会调用 VLM 的 API,其实就是 OWL-ViT 获取边框还有 SAM 获取 Mask,然后重建 3D Points Cloud,计算得出 3D Value Map。
最后,有了 3D Value Map 作为价值引导,就可以使用 MPC 的方法合成轨迹,进行规划。
在文中,提供了在线训练 MPC 以及 启发式 MPC 两种方式,前者需要环境交互,后者则无需训练。
PIVOT#
将低级 Action 投影到图像中,并采用 VQA 的任务形式去让 VLM 选择 Action。
PIVOT 的思想很简单,就是把机器人的低级 Action 投影到图像中,并采用 VQA 的形式让 VLM 去选择 Action 集合。
PIVOT 维护一个 Action 的分布,初始化为均匀分布,有点像 MPC 中的交叉熵方法。
PIVOT 使用的是 Zero-Shot 的迭代算法,不断去优化 Action 的分布,直到收敛。
首先,PIVOT 从分布中采样一系列的 Action,然后将 Action 投影到 2D 图像上,详细见图,每个 Action 都对应了序号。
然后,给定任务描述文本以及 2D 图像,编写合适的 Prompt 让 VLM 去选择最优 Action 集合。
接着,根据选取的 Action 集合去维护 Action 分布,类似于 MPC 中的交叉熵方法。
经过不断迭代,可以得出较好的 Action 候选集合。
PIVOT 的思路很有启发性,但缺陷也是明显的。比如,3D 歧义理解、细粒度控制以及 VLM 的幻觉问题。
Code As Policies#
让 LLM 输出 Python 代码,并进行完成机器人任务。
CaP 核心思想不是训练策略网络,而是通过 Prompt 让 LLM 去调用机器人 API,从而完成任务。
首先,CaP 进行了 LMP 形式化,其实就是让策略利用 Python 语言的一些特性。
然后,为了处理复杂任务代码过长或者逻辑复杂的问题,CaP 使用了层次化代码生成的方法,其实就是自下而上分而治之的思想。
最后,CaP 进行了感知与动作的对齐。
LLM 会基于 Prompt 得出一些预定义的感知 API 以及 控制 API。
LLM 可以通过感知 API 去获取视觉信息的变量。
LLM 会计算控制 API 的参数,并执行。
CaP 的工作虽然简单,但它将高层规划和底层执行联系在了一起。
RoboPoint#
使用 VLM 获取 Point Grounding,用于引导下游任务。
RoboPoint 通过构建一套程序化合成数据生成流水线,将通用视觉语言模型(VLM)微调为能根据自然语言指令预测精确 2D 空间操作点(Spatial Affordance)的模型,从而实现了无需真实世界数据训练的机器人零样本(Zero-shot)操控与导航。
在数据生成阶段,RoboPoint 利用程序化生成技术构建多样化的 3D 仿真场景,通过利用模拟器中的精确几何信息自动计算物体间的空间关系,并创造性地采用“移除目标物体再采样”的策略来自动标注自由空间(Free Space),从而低成本地生成了海量包含“图像-指令-像素坐标点”的高质量合成训练数据。
在指令微调阶段,RoboPoint 套用 LLaVA 的架构,冻住视觉层只练语言模型,把“找坐标”直接转化成“文本生成”任务,让模型直接输出坐标数字 同时,为了防止了 VLM 的遗忘,加入了 VQA 数据进行 Co-Training。
在真实执行阶段,先使用 RoboPoint 计算出 RGB 图像上的 2D 坐标,然后结合深度图转换为 3D 坐标,最后直接套用一个预设好的抓取姿态,把目标传给传统的运动规划算法去解算路径,机械臂照做就行了。
RoboPoint 其实也是一种高层决策的规划,也是一种 System 2 的方法。
GR-1#
在视频数据上进行预训练,然后在机器人数据上微调,从而建立 World Model。
GR-1 证明了视频生成是策略学习的高效代理任务,它通过大规模视频生成式预训练迫使 GPT 模型内化环境动态与物理先验,从而在下游机器人任务中实现了卓越的小样本学习与零样本泛化能力。
GR-1 采用 GPT-style Causal Transformer 架构处理多模态交织序列,先通过大规模视频生成预训练学习环境动态,再经由动作与未来帧联合预测任务进行微调,实现端到端的自回归策略学习。
在预训练阶段,GR-1 利用大规模人类第一视角视频数据集(Ego4D)执行语言条件下的视频预测任务,旨在无需动作标注即可习得通用物理动态。
模型架构上冻结了 CLIP 文本编码器与 MAE-ViT 视觉编码器(辅以 Perceiver Resampler 压缩特征),将语言指令、历史图像帧与可学习的 [OBS] Token 交织输入至 GPT 主干网络。
训练过程中,模型屏蔽 [ACT] Token,仅通过因果掩码注意力机制利用 [OBS] Token 驱动视觉解码器(Vision Decoder)重建未来帧像素,从而迫使模型内化视觉演变规律与视语对齐关系,为下游机器人操作任务提供具备强泛化能力的 World Model 初始化权重。
在微调阶段,GR-1 加载预训练权重并扩展输入序列,将机器人本体状态(Proprioceptive State)与语言、图像交织输入,引入 [ACT] Token 用于回归 7-DoF 机械臂动作与夹爪状态。 训练采用多任务联合优化策略,在执行行为克隆(Behavior Cloning)学习策略分布的同时,保留未来帧预测(Video Prediction)作为辅助任务,通过联合最小化动作回归损失与图像重建损失,迫使策略在决策时显式利用预训练阶段习得的物理世界动态(World Model),从而实现感知到动作的高效迁移与对齐。
GR-1 的 Limitation 也是明显的。 因为要处理高维图像,所以导致推理延迟较高。 同时预训练的人类视频与机械臂控制之间存在形态鸿沟(Embodiment Gap),目前仅依靠微调隐式对齐而缺乏显式的动作重定向机制。
HPT#
对齐到 Cross-Embodied 的预训练 Transformer。
HPT 使用一种模块化 Token 对齐机制将异构机器人的 Proprioception 与 Vision 映射到共享潜空间到通用策略架构,并在大规模 Cross-Embodied 数据上验证了机器人策略学习的 Scaling Laws 以及迁移能力。
HPT 采用了一种高度模块化的 Stem-Trunk-Head 设计范式来解决 Cross-Embodied 难题。
在 Stem 模块中,利用 Cross-Attention 将异构的 Proprioception 与 Vision 对齐到统一的 Embodied 潜在表征。首先,机器人的 Vision 信息被编码成 Cross-Attention 中的 K 与 V,并与一组可学习的 Q 进行聚合得出 Vision Token。同样,机器人的 Proprioception 也经过相同的操作,得出 Proprio. Token。不同的 Embodied 对应了不同 Stem,是分别进行学习的。
在 Trunk 模块中,所有 Embodied 任务共享一个 Transformer,负责将 Stem 对齐后的多模态 Token 进行深度融合和推理。最终,经过池化后得出最终 Latent。
在 Head 模块中,负责将 Trunk 得出 Latent 进行解码,这里的解码器可以是 MLP、DP 以及 ACT,得出机器人的 Action。请注意,异构的机器人分别对应了不同的 Head。
在训练数据上,HPT 使用 OXE、Simulation 以及 Human Videos 等。 HPT 使用了最暴力的 BC 方法,证明了其 Scaling Law 的存在。
RoboDual#
一种 Generalist 与 Specialist 相结合的 Double System 机器人操作系统
RoboDual 的整体架构由负责 High-level 决策的 Generalist 与负责 Low-level 决策的 Speicalist 组成。
其中,Generalist 是类似于 OpenVLA 的 VLA 模型,虽然具有一定的泛化能力,但推理效率比较低。
而 Specialist 是一种类似于 ACT 或是 DiT 的决策模型,在特定领域上有比较好的效果,且推理效率高,但难以适应新的任务环境。
RoboDual 做的事情就是将两者结合在一起,Generalist 负责 High-level 的任务规划,而 Specialist 进行 Low-level 的实时决策。
RoboDual 的具体实现很简单,就是将 Generalist 归纳出的 Task Latent 与 Action Latnet 作为 Specialist 的 Condition,然后让 Specialist 输出 Action Chunk。
在文章中,Generalist 是 OpenVLA 架构,Specialist 是 DiT 架构。
由于 Generalist 和 Specialist 的推理效率不同,RoboDual 在推理过程中使用双线程的方式,即 Generalist 和 Specialist 分别使用独立的线程。
在实际的使用中,Specialist 拿到的 Generalist 的提示总是有延迟的。因此,RoboDual 在实际训练中采用了延迟感知训练的 Trick。
实际上,RoboDual 在对 OpenVLA 进行了一定修改,让其输出 Action Chunk。因此,Specialist 是有一段比较粗略的动作轨迹作为指导的,它只是进一步地细化这段动作轨迹,相当于 Specialist 对 Generalist 的输出结果进行插值。
GR-2#
GR-1 之后的改进工作。
GR-2 的思路和 GR-1 的一样,只是扩展了更多的优质数据集。
具体做法分为两个阶段。
首先,在大规模的 Web 级别的 Video 数据集预训练一个 World Model。
然后,在机器人数据上进行微调,得出一个 End-to-end 的 VLA 模型。
Humanoid Manipulation#
适用于通用机器人的 DP3 模型。
这项工作对 DP3 算法进行了针对性改进,目的是让其能更好地服务于通用机器人的操作任务。
研究使用了 Fourier GR1 作为实验载体,为了保证操作过程中的绝对稳定,机器人的双腿被固定住,数据则通过遥操作的方式进行收集。
系统的输入端主要包含相机的 3D 点云以及机器人的本体感知数据。
在策略学习阶段,作者注意到机器人的相机并非固定不动,因此提出了名为 iDP3 的新方法,即以相机自身作为参考系去标准化 3D 点云的坐标,以此适应动态的任务环境。
此外,为了让视觉信息的处理更加平滑,算法使用卷积层代替了传统的 MLP。
最后配合延长的预测时域,成功使得机器人生成的策略动作更加平稳和连贯。
Surfer#
基于 World Model 的 VLA 模型。
Surfer 提出了一个基于世界模型(World Model)的架构,旨在通过接收历史图像帧(History Frames)、语言指令(Instruction)以及机器人的本体感知信息(Proprioception)来预测下一步的动作(Action)及执行后的未来帧。在多模态特征编码方面,Surfer 采用了高效的处理策略:对于视觉输入,利用冻结的 CLIP 编码器将图像帧转化为 Tokens,并引入 TokenLearner 进行压缩以提升推理效率;对于文本输入,使用冻结的 Text Encoder 提取 Text Latent;对于本体感知信息,则通过 MLP 编码得到 Proprio Latent。
Surfer 的世界模型主体由两个基于多层 Transformer 的模块构成,分别负责动作预测与场景预测。在动作预测模块中,模型以历史帧的 Visual Tokens 作为 Query,将拼接后的 Text Latent 和 Proprio Latent 作为 Key 和 Value,通过 Cross-Attention 机制生成当前时间步的 Action。随后,帧预测模块复用历史帧 Tokens 作为 Query,并将刚刚预测出的 Action 作为 Key 和 Value,同样利用 Cross-Attention 推导出执行动作后的未来帧 Tokens,并采用 L2 Loss 进行监督训练。
总结来看,Surfer 的核心亮点在于引入了未来帧预测作为动作决策的辅助监督信号。这种设计符合直觉:如果模型生成的动作能够准确预测出环境的未来状态,说明该动作决策本身是符合物理逻辑的。然而,这种方法的局限性也显而易见:一旦帧预测模块不够准确,错误的预测反而会引入噪声,形成负面监督。此外,该工作尚未验证模型在 Scaling up(扩大规模)后的表现,其在大规模数据下的潜力仍有待探索。
SceneVerse#
一个大型的 3D-VL 数据集
SceneVerse 是一个大型的 3D-VL 数据集,总共包含 2.5M 个场景-语言对,由 ScanNet、ARKitScenes、HM3D、3RScan、MultiScan、Structured3D、ProcTHOR 等多个 3D 数据集集合而成。
为了确保不同数据源之间的一致性,每个 Scan 处理成了 的维度,分别为 3D 坐标、RGB 颜色、实例 ID 和语义标签定义。
首先,SceneVerse 将 3D 场景建模为 Graph,Object 为 Node,Object 之间的空间关系被建模为 Edge。
接着,SceneVerse 使用一种基于 Prompt 的 Pipeline 方法去生成不同纬度的 Caption,详细见图。
最后,SceneVerse 训练了一个叫 GPS 的 Transformer,用于对齐 3D 场景和文本信息,类似于 3D 领域中的 CLIP。
SceneVerse 的工作量还是很足的,值得肯定。
Robot See Robot Do#
生成 Articulated Object 的 3D 模型,并基于 One-Shot 的示范中完成 Manipulation
Robot See Robot Do 是一种 Pipeline 方法,用于完成 Articulated Object Manipulation 任务,只需单目人类示例即可完成学习。
RSRD 分为 See 和 Do 两个部分。在 See 的过程中,首先对静态 Object 进行特征学习。具体流程如下,基于环绕待操作 Object 的视频,先使用 3D Gaussian Splatting 转换为 3D 点云,再使用 GARField 对点进行聚类,最后使用 DINOv2 学习点的特征表示。
最后,从人类演示视频中,反解出这每个部件在每一帧的 3D 位姿。具体流程如下,首先对每时间步可优化的部件姿态参数渲染出 DINO 特征和深度,并与输入帧中提取的 DINO 特征和单目深度进行比较。然后,使用 ARAP 损失惩罚高斯分布偏离其初始配置过远的情况,相对于邻近点。这些损失共同反向传播至部件姿态,并通过梯度下降进行优化,以恢复 3D 部件运动。在 Do 的过程中,则将物体的运动轨迹映射到机器人的操作中去。
Robot See Robot Do 的方法虽然无需训练,但无法进行泛化,只能做一些简单的任务。
ReKep#
让 VLM 生成 Python 代码对 KeyPoint 限制,并使用求解器优化的分层控制方法
来自斯坦福大学李飞飞团队(一作 Wenlong Huang)的这项工作提出了 ReKep 框架,通过利用 视觉语言模型(VLM) 将自然语言指令转化为基于 语义关键点的 Python 时空约束函数,并结合实时优化求解器,实现了无需特定任务训练即可完成 多阶段、双臂协同及动态响应的复杂机器人操作任务(如倒茶、叠衣服)。
Rekep 是一种 Pipeline 方法,主要分为「关键点提取」、「约束生成」以及「优化求解」。
在「关键点提取」阶段,Rekep 采用了 DINOv2 和 SAM 提取 Frame 中的关键点。
在「约束生成」阶段,Rekep 将带有关键点覆盖的 Frame 以及 文本指令输入到 GPT-4o 中,让其输出 Python 代码,以计算约束。
在「优化求解」阶段,Rekep 采用分层优化求解的形式,使用「寻找子目标」和「规划路径」两种优化结构。
Rekep 比较的工程,像是各种模型的结合体,在实现上也比较合理,是一篇合格的工作。
OmniManip#
利用物体功能性规范空间,将VLM推理转化为精确的3D交互原语约束 。
OmniManip 的设计逻辑围绕「如何将自然语言转化为稳健的物理约束」展开。该系统并非试图让模型学会复杂的控制律,而是通过构建一个“对象中心”的规范坐标系,让模型在最适合描述物体功能的空间内进行推理。这张图展示了 OmniManip 系统的整体架构图,可以将其分为三个主要阶段:
任务感知与分解阶段:数据流的起点是用户的自然语言指令(如 “Pour tea into the cup”)和摄像头捕获的 RGB-D 原始图像 。
首先,系统使用 VFM 进行物体锚定(Object Grounding),具体做法是先用 Grounding DINO 计算得出 Object 的 Bounding Boxes,再使用 SAM 对 Object 生成像素级的 Mask。
随后,系统使用 VLM 进行任务划分(Stage Partitioning),根据 VLM 的知识将任务分解为多个阶段(Stages),每个阶段都明确了动作类型以及主动物体(Active)和被动物体(Passive)的角色分配 。
例如,在“倒茶”任务的第一阶段,主动物体是机器人夹持器,被动物体是茶壶,动作是“抓取”;而在第二阶段,主动物体变为茶壶,被动物体变为茶杯,动作变为“倾倒” 。这种基于物体的角色分配为后续提取交互原语奠定了逻辑基础。
对象中心交互原语提取阶段:这是系统的核心,旨在将语义指令转化为精确的几何约束。
首先,系统利用 3D AIGC 技术从单图生成物体的 3D 网格模型,再通过 6D 姿态估计器(6D Pose Estimator)确定物体当前的位姿,并将其映射到功能性的「规范空间」中,使后续的推理具有视角无关性 。
随后,系统使用 VLM 提取交互原语,也就是在规范空间内识别出关键的交互点(如壶嘴、壶柄、杯口)和交互方向(如壶嘴喷出的轴线),上图展示了其中的技术细节。
左图展示了系统如何从 2D 图像中确定 3D 空间中的关键交互位置。
系统将交互点分为「可见且可触及」(Visible and Tangible,如壶柄)和「不可见或不可触及」(Invisible or Intangible,如杯底中心或被遮挡的部分)两类 。
为了帮助 VLM 克服 3D 感知不足,系统借助了 SCAFFOLD 提示机制,也就是在图像上覆盖了一层笛卡尔坐标网格(点阵),这样 VLM 就可以通过网格坐标来精确定位目标点位。
对于不可见的点,系统引导模型通过主视角定位,并结合正交视角(Orthogonal View)的几何关系来推断其在 3D 空间中的确切深度和位置 。
右图详细解释了系统如何从无数种可能的动作角度中筛选出最合适的一个。
系统不再进行全空间搜索,而是首先提取物体在规范空间中的主几何轴线作为候选方向(图中红箭头所示)。
VLM 会为每一个候选轴生成具体的自然语言描述(Captioning),例如「该轴穿过茶壶中心并垂直于注水口」。
大语言模型(LLM)接收这些语义描述,并根据当前任务(如「倒茶」)的需求对各个轴进行相关性评分。
最终输出一个排序列表,分值最高的轴(靠近 1)将被选定为执行任务的空间约束方向。
最后,系统将实现闭环规划。系统基于 VLM 去生成具体的空间约束(CONSTRAINTS),例如「主动轴与被动轴对齐」或「点间距小于 5cm」。
并基于 RRC 机制,根据生成的约束去预先渲染一张模拟交互后的 Frame,并使用 VLM 去 Checking 这张 Frame,如果不合理就重新采样,直到成功。
在线轨迹规划与执行阶段:系统将逻辑约束转化为物理运动的执行过程。 系统根据上一阶段确定的几何约束,实时求解一个优化方程。该方程同时考虑了约束损失(确保动作对齐)、避障损失(防止碰撞)和平滑损失(确保运动不突兀)。 在执行过程中,系统输出一系列末端执行器的位姿序列,驱动机器人动作。 同时,6D 位姿追踪器(6D Pose Tracker)持续监测物体的实时位置。如果物体发生了意外移动,追踪器会将最新的位姿反馈给优化算法,动态更新动作,从而实现极高的鲁棒性。
OmniManip 结合了之前 ViLM、VoxPoser、ReKep、CoPa 等多项技术的优势,提出了一个从语义理解到物理执行的完整解决方案。 通过对比可见,OmniManip 的先进性主要体现在将「高级常识验证」与「底层姿态优化」通过「对象中心表示」深度耦合,从而在保证通用性的同时,显著提升了执行的确定性和精度。
SOFAR#
通过「语义取向」对齐语言与几何,实现开放世界6-DoF精细操控。
SOFAR 通过引入「语义取向」概念,将自然语言指令直接映射为 3D 空间中的几何取向向量,揭示了通过「语义-几何」深度对齐来实现具身智能开放世界 6-DoF 精细操控的核心路径。
为了训练模型理解「语义取向」,SOFAR 构建了一个大规模的「语义-几何」对齐数据集,名为 OrienText300K。该数据集基于 VLM 与 Objaverse 生成,包含了 350K 个物体配对的语义取向标签。OrienText300K 的数据由三元组 [3D 网络模型, 语言描述, 语义取向] 构成,其中语义取向表示为语言描述对应的单位方向向量。
随后,SOFAR 基于 OrienText300K 训练了一个名为 PointSO 的 Transformer 模型,专门用于从自然语言指令和 3D 点云中预测对应的语义取向向量。由于原始点云数据量巨大,PointSO 使用最远点采样(FPS)方法将点云压缩为若干关键点,并使用 K-最近邻(KNN)算法为每个关键点寻找相邻的点,形成局部点云块(Patches)。在语言嵌入方面,PointSO 使用冻结的 CLIP 文本编码器将输入的自然语言指令转化为全局文本 Token。在 Fusion 方面,PointSO 没有采用复杂的交叉注意力,而是直接将文本 Token 投影到与几何 Token 相同的维度后,进行逐 Token 相加(Token-wise Addition)。这种策略能更有效地将语义偏置注入到每一个几何局部表征中。最后,PointSO 通过一个 MLP 层将融合后的特征映射到一个单位向量空间,输出最终的语义取向向量。
SOFAR 的工作流水线展示了从非结构化视觉输入到结构化控制输出的完整过程。首先,系统接受 RGB-D 图像以及用户自然语言指令作为输入。然后,系统使用 VLM 解析得出物品列表 (Object List) 以及取向信息提示 (Orientation Info),这样可以将抽象的人类意图分解为具体的处理对象和语义约束,为后续的感知模块提供指引。接着,系统使用 VFM 进行物品锚定,具体做法是先用 Florence-2 得出物品的 Bounding Boxes,再使用 SAM 生成物品 Mask,并使用相机内参将 2D 坐标转换为 3D 点云。随后,系统将自然语言指令与点云输入到预训练的 PointSO 模型中,预测得出语义取向向量。最终,系统将这些信息整理成 JSON 格式的场景图以及标记图像 (Annotated Image),以便 VLM 可以高效阅读和处理,后面就是常规的基于 VLM 的 Task Planning 或是 Manipulation 了。
SOFAR 通过语义取向实现 6-DoF 对齐,其自动标注方案极具启发性。但流水线解耦易导致误差累积(占比约 74%),且 5° 精度与 8.5s 延迟制约了高精度实时任务的应用,仍需闭环优化 。
PIVOT-R#
通过原语建模航点强化物理逻辑,使用异步多模型完成任务拆解、场景预测、动作预测。
PIVOT-R 是 Surfer 的改进版本,通过引入原语建模航点(Primitive-modeled Waypoints)强化了物理逻辑,并使用异步多模型架构完成任务拆解、场景预测和动作预测,从而提升了复杂机器人操作任务的执行效率和鲁棒性。
PIVOT-R 系统基于异步分层执行器(AHE),并通过三条并行的模块实现高效推理。首先,原语解析模块接受用户自然语言指令和当前视觉观察,并使用预训练的 VLM 结合 Prompt 对场景进行语义理解,并将抽象指令转化为具体的动作原语(如「接近目标」或「抓取」)。接着,航点感知模块接受动作原语以及历史视觉观察,分别使用 Text Encoder 和 Image Encoder 进行嵌入,经过特殊设计的 Cross-Attention 模块进行融合,最终预测完成动作原语后的 Frame。最后,动作预测模块接受当前视觉观察特征、经过 MLP 投影的历史机器人状态以及源自航点感知模块的未来帧特征,经过 Cross-Attention 机制生成当前时间步的动作输出。这三个模块之间通过异步执行器进行协调,允许它们以不同的频率独立更新,从而提高系统的响应速度和效率。
不同于 Surfer 逐帧对环境建模导致计算冗余,而 PIVOT-R 仅聚焦关键「航点(Waypoints)」,有效过滤了噪声并捕捉了本质物理逻辑。同时,凭借异步分层执行器(AHE),PIVOT-R 实现了 28 倍的推理效率提升,解决了 Surfer 难以实时部署的痛点。总得来说,是篇不错的改进工作,但仍然存在一些局限性,如对航点的定义和选择依赖较大,且在复杂场景下可能仍会面临误差累积的问题。
ManipGen#
利用局部策略的空间不变性,实现了长程操纵任务从大规模仿真到现实世界的零样本迁移。
ManipGen 是一种基于局部策略空间不变性的框架,旨在实现长程操纵任务 sim2real 的零样本迁移。
这张流程图展示了 ManipGen 框架的三个核心阶段:从大规模仿真专家获取,到通用视觉策略蒸馏,最后到零样本长程任务部署。在第一阶段,ManipGen 引入大规模 3D 模型数据库,并使用最远点采样(FPS)提取关键点,同时结合 Affordance 信息确定交互区域,最后在仿真环境中利用「特权信息」使用 RL 训练大量的「专家策略」,并得出大量的「专家经验」。在第二阶段,由于特权信息在现实中不可得,此阶段利用多任务 DAgger 算法将专家经验「蒸馏」给仅依赖视觉的通用模型。该策略接受来自腕部相机的实时 RGB-D、初始 RGB-D、物品分割 Mask 以及机器人本体感知作为输入,经过 ResNet18 以及 MLP 处理后输出动作。在第三阶段,ManipGen 使用 VLM 接受自然语言指令和全局视图,并解析为一系列的 [object, skill] 元组。对于每个元组,使用 Neural MP 计算从当前位置到目标物体交互区域的避障轨迹。到达目标区域后,则激活阶段二中「局部策略」,完成具体的交互动作。不断重复这一过程,直到完成整个长程任务。
ManipGen 展现了很典型的 sim2real 思路,通过局部策略的空间不变性实现了长程操纵任务的零样本迁移。其创新点在于引入了「特权信息」来训练专家策略,并通过多任务 DAgger 将其蒸馏给视觉模型,从而克服了 sim2real 中的感知鸿沟。然而,该方法仍然依赖于高质量的仿真数据和专家策略的有效性,在复杂环境下可能面临泛化能力不足的问题。
DemoGen#
基于 One-shot 人类演示生成大规模合成演示数据。
DemoGen 是一种基于 One-shot 人类演示生成大规模合成演示数据的框架,其核心思想是将机器人轨迹分解为多段 Skill Segments 和 Motion Segments,并利用点云在空间中的等变性以及连接性质来实现从单一演示到大规模数据的生成。DemoGen 的方法分为以下几个阶段。
源演示的感知与语义解析。首先,DemoGen 方法接收一段使用单目 RGBD 相机记录的源轨迹作为输入,并使用一系列的点云预处理方法降低噪声与冗余。接着,DemoGen 使用 Grounded SAM 模型对点云进行分割,将点云划分为 Object Clusters 和 Effector Clusters。随后,DemoGen 根据 Effector 与 Object 几何中心距离将轨迹分解为 Skill Segments(机器人与物体接触的部分)和 Motion Segments(机器人在空中运动的部分)。
基于 TAMP 的动作轨迹迁移。针对一个新的场景,DemoGen 通过计算变换矩阵将源轨迹中的 Object Cloud 映射到新场景中的 Object 位置。同时,DemoGen 对 Skill Segments 进行迁移,保持机器人与物体的相对位置关系不变。针对 Effector 操作 Object 的过程,其 Object Cloud 会与 Effector Cloud 进行绑定,确保在迁移过程中保持一致的交互关系。对于 Motion Segments,DemoGen 则通过调用运动规划器(如 RRT-Connect)在 SE(3) 空间中重新规划轨迹,生成无碰撞的运动路径。
根据上述流程,DemoGen 能够从单一的人类演示中生成大规模的合成 3D 演示数据,从而为机器人学习提供丰富的训练样本。最终,DemoGen 训练了 DP3 模型,并在多个长程操纵任务中验证了其生成数据的有效性和泛化能力。局限也很明显,DemoGen 提出的几何平移假设难以建模复杂的非刚性交互,比如布料操作或液体处理等任务。
ArticuBot#
利用 Articulation Object 的连接件特性进行仿真数据生成。
ArticuBot 是一种 Sim2Real 方法,主要贡献了一个对 Articulation Object 操作的仿真数据生成方案,以及一个基础的分层策略模型。
仿真演示生成。ArticuBot 在仿真环境中引入了 PartNet-Mobility 数据集,使用 Franka 机械臂生成示范数据。
进一步,ArticuBot 将轨迹分为三个阶段。
首先是「Grasp Sampling」,给定 Articulation Object,利用标注获取连接件 Point Cloud 的,并使用采样方法生成多个抓取候选点。
接着是「Motion Planning」,有了抓取候选点,那么就可以使用运动规划器(如 RRT-Connect)在 SE(3) 空间中生成无碰撞的运动轨迹。
最后是「Opening Action」,在前两个阶段的基础上,可以计算末端执行器的位姿序列,完成对 Articulation Object 的操作。
这一阶段最终输出了 4.23 万条高质量的演示轨迹(Observation-Action Pairs)作为后续学习的基石。
分层策略学习。ArticuBot 的策略模型采用了分层设计,分为 High-level Policy 和 Low-level Policy 两个层次。 High-level Policy 负责预测「机器人应该移动到何处」,ArticuBot 使用了一种 Weighted Displacement Model, 接受分割后的 Object Point Cloud 为输入,输出末端子目标位姿 (Predicted Sub-goal eef)。 Low-level Policy 则负责预测「如何使用末端执行器去解决任务」,ArticuBot 使用了 DP3 模型,接受多源输入,最终输出一系列的 Action。
LAPA#
使用 Latent Action 指导 VLA 预训练。
LAPA 是一种基于 Latent Action 的 VLA 预训练方法,旨在通过引入一个中间的 Latent Action 表征来指导 VLA 模型的学习,从而提升其在复杂任务中的表现和泛化能力。
首先,LAPA 采用大量无动作标签的视频数据进行预训练,使用一个专门设计的 VQVAE 模型来学习从视觉输入到 Latent Action 的映射关系。
Latent Action 被设计为多个离散的变量序列,和 Dreamer 一样类似。
接着,很容易将 data 处理为 [Frame, Instruction, Latent Action] 的形式,用于去训练 VLLA 模型,其实就是在 VLM 的基础接上一层 MLP 去预测 Latent Action。
具体训练细节为,冻结视觉编码器,只微调主干和后续的 MLP 层。
最终,LAPA 使用机器人数据进行微调,将 Latent Action 的 MLP 层替换为直接预测机器人 Action 的 MLP 层。
同样,也是冻结视觉编码器,只微调主干和后续的 MLP 层。
后续的 GR00T 工作就是在 LAPA 的基础上,扩展了更多的优质数据集。