世界模型VERA 技术解析
世界模型VERA 技术解析基于 https://github.com/sizhe-li/VERA 的代码阅读与讨论整理1. 整体架构VERA(Video-to-Embodied Robot Action)是一个两阶段闭环机器人策略:当前观测帧 ↓ [视频规划器] → 预测未来帧序列("做梦") ↓ [Jacobian IDM] → 将未来帧转化为机器人动作 ↓ 机器人执行器两个阶段的分工阶段模型作用是否与任务/机器人绑定视频规划器WAN(MimicGen)/ DFoT(PushT)预测未来视频帧与机器人无关(embodiment-agnostic)Jacobian IDMDPT + VGGT backbone图像运动 → 机器人动作与机器人绑定(embodiment-specific)2. 视频规划器PushT:DFoT(Diffusion with Flow of Things)U-Net 3D 视频扩散,像素空间,38MB100 步扩散采样,无文字条件本地小模型,专用于 PushT 仿真MimicGen:WAN(Wan2.1-T2V-1.3B)阿里通义"万象"视频生成模型(“万” = myriad)组成:T5-XXL 文字编码器(10.8GB)+ WAN DiT(5.3GB,1.3B参数)+ VAE(484MB)= 共约 16.7GB支持文字条件,可描述任务目标在 MimicGen 机器人视角视频上微调过3. Jacobian IDM为什么叫"雅可比"两处"雅可比"都是同一数学概念——非线性映射的局部线性化(偏导数矩阵):机器人运动学 Jacobian: J_robot = ∂x_eef / ∂q_joints (关节角 → 末端位姿) VERA 图像 Jacobian: J_image = ∂z_pixel / ∂u_action (机器人动作 → 像素运动)两者的核心思想都是:在当前点局部线性化,然后线性求解。IDM 的两个组成部分① 神经网络部分(需要训练,221MB)DPT + VGGT backbone,输入当前帧和预测的未来帧,输出每个像素处的 Jacobian 场:J ∈ R^{command_dim × spatial_dim × H × W}即:对图像中每个像素 (h,w),存一个矩阵,表示"机器人动作的每个维度,会让这个像素往哪个方向移动多少"。MimicGen:command_dim=7(末端 xyz+旋转3D+夹爪),spatial_dim=2(像素 x/y)PushT:command_dim=2,spatial_dim=2② 固定公式部分(Tikhonov 求解,无参数)有了神经网络预测的 J,以及视频规划器给出的目标像素运动 y(光流),用带正则化的最小二乘直接求解动作:du = argmin ||J·u - y||² + λ²||u||² 解析解:du = (J^T J + λ²I)^{-1} J^T y代码位置:vera/policy/motion_policy_types.py:21,函数tikhonov_solve。2D 像素运动如何推出 7D 末端动作这是系统严重超定的方程组:未知数:7 个(动作维度)方程数:2 × H × W ≈ 2 × 128 × 128 =32768 个z 方向(深度)不需要显式感知——不同 3D 运动在图像上产生不同的 2D 流场模式:末端向右(x) → 所有像素均匀向右平移 末端向前(z) → 像素从焦点径向扩散(放大效果) 末端旋转(Rz) → 像素绕中心旋转(旋涡流场)这些 2D 模式可以区分,有 32768 个方程约束 7 个未知数,联立求解可以还原出完整的 3D 运动(包括 Δz)。VGGT backbone 本身是做 3D 重建的,天然带有深度感知能力,进一步帮助这个过程。4. IDM 的输出IDM 的输出du是末端执行器的增量动作:MimicGen(7维):du = [ Δx, Δy, Δz, Δθx, Δθy, Δθz, Δgripper ] ←── 3D 平移 ──→ ←── 3D 旋转(旋转向量) ──→ ←夹爪→由SE3QuatDeltaAction(vera/datasets/core/actions.py:158)定义:前 6 维:相邻帧末端位姿做 SE(3) 有限差分转成 twist(线速度+角速度)第 7 维:gripper_qpos[t+1] - gripper_qpos[t],夹爪开合增量PushT(2维):du = [ Δx, Δy ] ←

相关新闻