LeVERB:利用潜视觉-语言指令进行人形机器人全身控制
25年6月来自UC Berkeley、挪威科技大学、加拿大 Simon Fraser U 和 CMU 的论文“LeVERB: Humanoid Whole-Body Control with Latent Vision-Language Instruction”。
视觉-语言-动作 (VLA) 模型已经展示强大的语义理解和零样本泛化,但大多数现有系统都假设有一个准确的低级控制器和手工制作的动作“词汇”,例如末端执行器姿势或根速度。这种假设将先前的工作局限于准静态任务,并排除人形机器人全身控制 (WBC) 任务所需的敏捷、全身行为。本文介绍一个模拟-到-现实的视觉-语言闭环人形机器人 WBC 基准,包含来自 10 个类别的 150 多个任务。然后提出 LeVERB:潜视觉-语言编码机器人行为,这是用于人形机器人视觉-语言 WBC 的分层潜指令跟随框架。在顶层,视觉-语言策略从合成渲染的运动演示中学习潜动作词汇;在低层,强化学习的 WBC 策略会利用这些潜动词来生成动态级别的命令。在基准测试中,LeVERB 在简单的视觉导航任务中可以实现 80% 的零样本成功率,整体成功率达到 58.5%,比朴素的分层全身 VLA 实现高出 7.8 倍。
操控领域的最新进展 [17, 4, 49, 53, 20, 45] 表明,视觉-语言-动作 (VLA) 模型通过将视觉和语言输入与低级控制相结合,能够泛化到开放世界任务。然而,由于 VLA 主干网络规模较大,端到端模型通常会产生较高的推理延迟,从而导致运动延迟或不连续。这对于人形机器人的全身控制尤其成问题,因为人形机器人需要高频、低延迟的反馈来保持稳定性和灵活性。为了解决这个问题,最近的研究 [7, 52, 3, 15, 23] 采用分层的系统 1-系统 2 架构。值得注意的是,AGIbot [7] 证明使用潜接口可以提高性能。对于像腿式机器人或人形机器人这样的动态系统,先前的现实世界方法通常依赖于高级和低级策略之间的显式接口。例如,Liu [27] 使用末端执行器姿态和基准速度进行全身操控;NaVILA [9] 预测速度控制的方向和距离;Humanoid-VLA [11] 预测全身姿态,具有表现力,但需要针对特定任务进行调整。这些明确的策略简化模块化训练,但限制其泛化能力,使其无法应用于各种全身技能,例如坐姿交互。
目前尚无研究证明,在真实的人形机器人上使用分层潜架构实现视觉-语言驱动的全身控制——本研究旨在填补这一重要空白。
由于目前尚无适用于基于视觉-语言人形机器人 WBC 的数据集和基准,LeVERB-Bench,是一种高效且可扩展的合成视觉-语言人形机器人 WBC 数据生成和闭环基准测试的流程。数据集可视化概览如图所示。
高效的合成数据生成流程的主要创新之处在于,在模拟中重放重定向的 MoCap 运动,以收集逼真的展开。这提供了三个主要优势:(1)它消除了数据收集期间对可靠动态控制的需要,(2)运动姿势为视觉语言理解提供了足够的任务级语义,以及(3)它支持将来使用来自互联网视频等来源的重定向人形数据 [14]。尽管存在轻微的伪影,但当与高质量的低级策略配对用于闭环控制时,仅使用运动渲染就足够了。
用 IsaacSim 中的光线追踪渲染来渲染数据。这可以更准确地模拟场景的光照和阴影,从而减轻先前合成数据研究中由于光照不真实而造成的模拟与真实之间的差距 [5]。为了利用少量运动学运动轨迹的语言指令创建一组多样化的视觉场景,采用程序生成流水线来缩放和随机化每个展开。具体来说,随机化场景背景、目标属性、任务设置、摄像机视图和镜像展开,以确保数据的多样性和语义丰富性。然后,手动或使用 VLM [24] 用自我为中心的文本命令对它们进行标记。
通过 154 条轨迹,每条轨迹随机化 100 次,生成 17.1 小时照片级逼真的运动展开。下表总结其中不同任务的混合情况。每个演示包含图像 I_0,…,I_N、文本指令 c 以及机器人运动状态 s_0,…,s_N。
为了进一步提升数据多样性,用 VLM 来注释纯文本运动对,而无需运行照片级渲染。总的来说,用 2.7 小时的纯语言数据扩充视觉语言数据,涵盖 500 条不同的轨迹。为了解决视觉输入不足的问题,在文本中注入空间线索(例如,“左边的红色椅子”),以保留有助于消除歧义的上下文。
如图所示 LeVERB 遵循双-进程推理流程。上图:为类人视觉-语言 WBC 创建一个照片级逼真且动态精准的基准。中图:在现实世界中,零样本部署一个仅基于合成数据训练的双-过程 VLA 模型。下图:模型架构的高层概览,其中分离视觉-语言和动态级动作处理。
如图所示双-进程模型架构的设计和训练。步骤 1:在 IsaacSim 中收集合成的、逼真的重定向运动数据集,并用文本指令进行注释。步骤 2:用运动轨迹重建任务训练 LeVERB-VL,并获得一个正则化的潜动词词汇表,并从中缓存数据集中每个展开 i 的潜动词 z(i)_t。步骤 3:用 z(i)_t 来调节 LeVERB-A。它是从教师跟踪策略 T_ξ 中通过 DAgger 提取出来的,该策略接收与潜动词意图对应的未来参考命令 s_t+1。
整体模型分层:视觉-语言与动作解耦
将 VLA 驱动的 WBC 策略表述为 π_θ(a_t | o_t),其中 a_t 表示动态层级动作,o_t = [oprop_t , I_t , a_t-1, c]T 表示观测值,其中 oprop_t 表示本体感受传感器读数,I_t 表示来自自我为中心和随机第三人称视角的视觉输入,c 表示文本指令。
正式地,分层系统 1 - 系统 2 策略在推理时表述为:
其中 ρ_θ_VL 表示处理视觉-语言指令和闭环视觉反馈的高级系统 2,将其命名为 LeVERB-VL;τ_θ_A 表示低级系统 1 动作策略,将其命名为 LeVERB-A。 θ_VL 和 θ_A 是对应两个模型的策略参数。
潜向量 z 充当 LeVERB-VL 和 LeVERB-A 之间的单向接口,是 LeVERB-VL 训练的核心。直观地说,z 的潜空间是一个描述性词汇表,用于编码复杂的全身运动目标,而 z 是从该词汇表采样的潜向量。
LeVERB-VL 的运行频率为 10 Hz,而 LeVERB-A 的输出关节位置动作频率为 50 Hz。这种视觉-语言和动态级动作信息的解耦使得两个系统能够独立训练,从而避免端到端方法中图形渲染所需的大量计算。
LeVERB-VL 训练:视觉-语言-动作语义对齐
LeVERB-VL 的目标是将视觉和语言输入映射到一个平滑、正则化的潜在词汇空间,用于运动控制。为了实现这一目标,用残差 CVAE,其中仅包含视觉-语言输入的 VLA 先验潜词汇与一个特有的轨迹编码器相结合,形成一个残差潜空间。这鼓励 VLA 专注于语义推理,同时将特定于运动的细节交给轨迹编码器。然后,对组合的潜词汇进行采样,以调节解码器,该解码器根据当前状态 s_t 预测未来的 ˆ_t+1,…,sˆ_t+M。最后,引入一个鉴别器,将来自不同来源的数据对齐到统一的潜空间。
LeVERB-VL ρ_θ_VL。VLA 先验由三个模块组成:视觉编码器、文本编码器和标准 Transformer [47] 主干网络。对于视觉编码器,用 SigLiP [51, 2] 的视觉组件。由于视觉和文本编码器是经过对比预训练的,因此得到的嵌入在语义上是对齐的,这有助于有效的多模态融合。在训练期间,来自两个视角——自我中心(头戴式)和第三人称的图像由冻结的 ViT-B/16 SigLiP 视觉编码器独立处理。生成的图像 token 经过注意池化,分别生成图像 token iego_t 和 iexo_t。视觉编码器在 WebLI [8] 上进行预训练,并在整个训练过程中保持冻结状态。文本编码器也来自同一个 SigLiP 模型,它将文本指令转换为语言 token l_t。这些 token 连接起来形成 Transformer 主干的输入序列:obs_t = [l_t, iego_t, iexo_t]。其中,t 表示当前时间步;仅使用当前帧的观测值,不包含任何时间历史数据,以降低过拟合的风险 [25, 32]。然后,序列 obs_t 经过 Transformer 和随后的 MLP 头,以预测观测值的分布,该分布由均值 μ_ρ 和方差 σ_ρ 参数化。
运动学编码器 E_ψ。由于 LeVERB-VL 仅观测当前的视觉语言输入,引入一个运动学编码器来捕获来自未来状态的额外信息。该编码器是一个 MLP,它将平坦化的真实未来状态 s_t+1,…,s_t+M 作为输入,并预测潜分布的均值 μ_E 和方差 ρ_E。
残差潜空间。受运动生成 [26] 的启发,将潜分布构建为 q(z_t | s_t+1:t+M, I_t, c, o_t),其中均值是动作编码器和 LeVERB-VL ρ_θ_VL 的残差连接: μ = μ_ρ + μ_E。方差直接取自动作编码器:σ = σ_E。这种设置允许编码器提供额外的细粒度信息来帮助重建,从而使 VLA 能够更加专注于语义。对此后验应用 KL 损失,以确保编码器仅捕获无法从视觉-语言输入中推断出的信息。在训练期间,应用标准重参数化技巧来采样 z_t = μ + σ · ε,其中 ε ∼ N (0, I)。
运动学解码器 D_ψ 。从后验分布中采样的潜变量 z_t 和当前状态 s_t 被输入到这个 MLP 中,以重建未来状态 sˆ_t+1 , . . . , sˆ_t+M 。
鉴别器 f_ψ 。为了利用 LeVERB-Bench 的视觉-语言和纯语言轨迹,在系统 2 训练期间将这两个来源混合在一起,将白噪声图像输入到 LeVERB-VL 以获得“盲”轨迹。然而,这会在“盲”和“非盲”输入的潜嵌入之间引入分布偏移,从而阻碍泛化。为了对齐潜空间并鼓励共享表示,引入一个受 [34] 启发的鉴别器,它将潜变量 z_t 作为输入并预测是否存在实际图像。在训练过程中应用梯度反转层 (GRL) [13],使得对抗性学习能够促使 LeVERB-VL 生成模态不变的潜向量,无论图像可用性如何。
训练目标。最终训练目标包含三个部分:轨迹重建、分布对齐和对抗性分类。完整目标是:
其中,q(z_t) = N(μ_ρ + μ_E, σ2_E) 是动作条件后验,p(z_t) = N(μ_ρ, σ2_ρ) 是 LeVERB-VL 的观察条件先验。
LeVERB-A 训练:利用学习的潜分布蒸馏动作
在训练完 LeVERB-VL 之后,冻结其潜空间,并训练 LeVERB-A。首先,学习视觉语言不可知的教师模型,然后基于 LeVERB-VL 的潜分布蒸馏出一个基于 Transformer 的学生策略。
训练教师模型 T_ξ。首先,训练视觉-语言不可知的教师模型策略,使其能够精准追踪来自 LeVERB-Bench 的不同类别的重定向运动轨迹。该策略接收特权本体感受观测 opriv_t 和参考动作作为命令,并输出专家动作 a_t。用近端策略优化 (PPO) [40] 训练教师模型,并应用域随机化,以实现零样本模拟-到-真实迁移和提前终止,以辅助训练。
LeVERB-A τ_θ_A。接下来,将多个教师策略中的高质量动作蒸馏成一个统一的学生策略,该策略以 LeVERB-VL 生成的潜命令为条件。
在每轮训练开始时,从 LeVERB-VL 的训练集中采样一个运动轨迹,并提取潜分布的均值和方差 μ_ρ,traj 和 σ_ρ,traj。随机选择一个时间步长 t 作为每轮训练的起点。每 H 步,与系统 1-2 重采样间隔匹配,从预测分布中采样一个潜代码 z_t ∼ N (μ_ρ,t , σ_ρ,t ),并将其保持不变直到下一次重采样。重要的是,从潜分布中采样,而不是使用均值 μ_ρ。由于 LeVERB-VL 捕捉视觉-语言语义和运动之间的多模态映射,仅使用均值会导致单模态近似,从而降低策略性能。
LeVERB-A 使用一个 Transformer,该 Transformer 接收观测值 oprop_t 和潜代码 z_t 作为单独的 token。它通过 DAgger [39] 进行训练,并使用 Huber 损失函数来对抗教师的动作 a_t,这使得其对异常值具有更好的鲁棒性。当参考轨迹结束时,episode 结束,提前终止的标准与教师训练中使用的标准一致,以确保教师保持在其训练分布中。在部署时,LeVERB-A 以 LeVERB-VL 的预测平均值 μ_ρ 为条件。
视觉-语言 WBC 数据生成工作流程
- 创建场景级随机化:选择可应用于背景场景中目标的颜色和材质随机化选项。
- 创建目标级随机化:标记日常家居用品,例如椅子和桌子,使其颜色和材质特性随机化。这种粒度级别有助于创建具有语义意义的任务指令,例如“走向黄色桌子”或“去坐在红色沙发上”。
- 创建任务:给定场景中预先记录的运动轨迹,策略性地在轨迹周围放置目标和干扰目标,以便能够给出具有语义意义的任务指令。例如,在轨迹终点前生成一个目标,以便该任务可以标记为“走向 xx”。实际放置的目标及其属性均受随机化影响。
- 程序化生成变型:让模拟器随机化所有视觉特征和与任务相关的目标,并为每条轨迹收集 100 个演示。每次演示都包含机载第一人称视角摄像头,以及 2-3 个固定的第三人称摄像头,这些摄像头的位置随机,确保整个任务都在摄像头的取景框内。
- 通过镜像增强:对一半的演示进行镜像处理,以增强数据多样性。
系统 2 中的数据混合策略
系统 2 的训练遵循下表所述的数据混合策略,包含 3,696 条带图像的轨迹和 2,300 条不带图像的轨迹。为了增强所学习的潜表征在不同语言风格和视觉环境中的鲁棒性,通过重复使用不同语言提示和替代图像渲染的轨迹来扩充数据集。这使得数据集在数据源和视觉领域之间更加平衡和多样化。这种扩充有助于缓解系统 2 训练中使用的有限轨迹的过拟合问题,并提升潜空间在下游任务中的泛化能力。
系统 2 中的数据处理
在系统 2 的训练中,该流程处理 13 关节机器人系统(1 个根关节和 12 个躯干关节)的本体感觉和动作。本体感觉数据捕捉每个关节的状态,其中根关节的姿态用其在世界坐标系中的位置 (x, y, z) 和欧拉角中的旋转(偏航、滚转、俯仰)表示,其余躯干关节仅用其 (x, y, z) 位置表示(相对于根关节)。根关节的旋转信息被转换为 6 维旋转表示 [54],以确保连续可微的学习。
动作空间旨在预测未来步骤和当前步骤之间的动作增量(变化),其中根关节的动作包括位置增量和旋转增量,而其他躯干关节仅需要位置增量预测。这种设计选择反映了导航任务的要求,根关节的完整姿态控制对于导航至关重要,而其他躯干关节主要需要位置控制。当前状态 s_t 是一个向量,包含根关节的俯仰、滚转以及身体关节的 x、y、z 位置。未来状态 s_t+1, …, s_t+M 是上面提到的增量动作。为了增强鲁棒性,可以在训练过程中选择性地对本体感觉和动作数据添加噪声。
部署
硬件平台:将该策略部署在 Unitree 的标准 G1 机器人上。用官方 SDK 获取传感器读数,并将动作作为关节命令中的期望位置发送,同时将期望速度设置为零,kp 和 kd 分别设置为模拟中的刚度和阻尼。
LeVERB-A 系统 1 从关节编码器、使用 Unitree SDK 的 IMU 和 500 Hz 的自定义状态估计器获取传感器信息;推理在机器人板载 CPU 中进行,频率为 50 Hz,使用 ONNX 运行时。所有代码均使用 C++ 实现,以满足实时性能要求。潜命令接口以 ROS2 主题的形式公开。板载 RealSense 摄像头图像也经过压缩并通过 ROS2 主题进行流式传输,以便网络中的任何设备都可以访问。
LeVERB-VL 系统 2 在一台配备 NVIDIA RTX 4090 GPU 的外部台式电脑上运行,频率约为 10 Hz。其输入来自通过 USB 连接的第三人称视角摄像头以及机器人上的板载摄像头,两者均以 30 FPS 的速度运行,分辨率为 1080 × 720 像素。电脑屏幕上会显示一个输入文本提示窗口。该策略输出潜动词,并在 ROS2 主题上进行广播。