Cosmo's Blog

Back

VLA 文献调研#

7 篇论文#

论文定位
OpenVLA主流 2D 数据配方标本
π0范式转折:离散 token → 连续动作生成
RDT-1B原生双臂扩散基础模型
RoboTwin 2.0双臂评测基准
PointVLA「3D 注入式」代表
SpatialVLA「3D 编码注入」代表
PointACT「3D 原生架构」代表

主流vla论文#

数据组成#

组成原始记录通常是什么模型侧怎么用
视觉(RGB 图像)一帧彩色图像 H×W×3、单路常写作 [B,C,H,W];多视角可写作 [B,V,C,H,W],其中 B 是批量、V 是相机路数,具体布局依模型实现而变
语言指令一段字符串文本 token
本体状态(proprioception)机器人自身传感读数,如关节位置 qpos、关节速度 qvel、夹爪开合量,或末端位姿按机器人/模型定义拼成状态向量并归一化;例如 q=[q1,...,q7]、gripper=0.4。π0、RDT 会使用状态条件;OpenVLA 的标准输入不包含本体状态
动作标签示教器/控制器在每个时间步记录的机器人命令或目标状态可能是关节目标、末端位姿/增量和夹爪命令
instruction: "pick up the apple"
image_t:     RGB 图像,H×W×3,
state_t:     [q1, q2, ..., q7, gripper]
action_t:    [Δx, Δy, Δz, Δroll, Δpitch, Δyaw, gripper]
text

7 维增量动作

维度常见含义例如
Δx, Δy, Δz末端执行器沿选定坐标系三个轴的平移增量,常用米Δx=+0.01 表示沿 x 方向移动 1 cm
Δroll, Δpitch, Δyaw末端姿态绕三个轴的旋转增量;示例可用弧度Δyaw=+0.05 表示小幅转动
gripper夹爪开合命令,常见为归一化比例或开/关值0/1
相机画面 + 语言指令 +(可选)机器人状态
                  ↓
                 VLA
                  ↓
     一个动作,或一小段未来动作
                  ↓
     机器人执行后再次观察环境
text

OpenVLA(2024,Stanford 等,arXiv 2406.09246)#

会用动作 token 回答的 VLM

256 个 bin:每个动作维度分别有 256 档。例如,沿 x 轴移动有 256 个候选档位,夹爪也有自己的 256 个候选档位。训练时,每一维按训练数据 1%–99% 分位数范围均匀量化。模型逐个预测这些离散动作 token,再逐维解码回数值。因此它仍然是在控制连续世界里的机器人,只是模型内部先用有限档位表达动作。

使用 Open X-Embodiment 数据中的约 97 万条机器人演示训练模型。训练从预训练的 Prismatic-7B 视觉语言模型出发,再以机器人演示微调,使已有视觉和语言能力与动作预测对齐。

π0(2024-10,Physical Intelligence,arXiv 2410.24164)#

π0 :VLM 加一个专门的 action expert

VLM 先提供场景和任务上下文,动作专家把上下文转换为手臂、末端执行器和夹爪的运动。

Flow matching:模型学习一个“该往哪个方向修正”的速度场;推理时从带噪声的动作序列出发,反复沿着这个速度场更新,最后得到符合图像、指令和状态的一段连续动作。π0 一次产生的是未来一小段动作action chunk;论文报告其控制频率最高可达 50Hz。

RDT-1B(2024-10,清华 THU-ML,arXiv 2410.07864)#

输入:视觉/指令/(本体状态->统一动作空间 128 维向量)/带噪动作序列 输出:动作序列

统一动作空间:动作按物理含义组织到统一表示中,让跨机器人的相应字段尽量表达同类物理量;某个机器人没有的维度用约定方式补齐,并用机器人形态信息区分数据来源。

模型先得到一段带噪声的候选动作,再经过扩散去噪逐步修正为连续动作块。动作块长度是 64;统一动作表示采用定长向量(动作空间 128 维)。 64 时间步数,128 每个时间步动作向量的维数

使用点云 / 3D 数据的 VLA#

点云数据来源:

RGB-D 深度相机: 相机同时给彩色图 I(u,v) 和深度图 Z(u,v)。利用相机内参把每个有效深度像素反投影为相机坐标系中的三维点

双目立体相机:左右相机从略有间距的位置同时拍摄;先匹配同一物体在左右图像中的位置,得到视差 d。已知焦距 f 和基线 B 后,以 Z=fB/d 估计深度,再按内参反投影

LiDAR 激光雷达: 传感器发射激光并测量回波距离;每束射线结合水平/垂直角度,将距离从球坐标换算到 XYZ,(x,y,z,intensity)

单目 RGB + 深度估计: 只有普通 RGB 时,用预训练单目深度网络为像素预测深度,再用内参将深度图反投影为点云。

PointVLA(IEEE RA-L 2025,arXiv 2503.07511)#

双系统,扩散生成

冻结原有的动作专家,只训练一个轻量 3D 特征注入模块;

Injection Block:接受当前动作 token (chunk size,1280) 和映射得到的 3D 点云特征(chunk size,1280) ,是把对齐后的 3D 信息变成一份动作隐藏特征的修正量

依据去掉某些层对输出影响不大,最多可以连续去除五层(分析实验)

SpatialVLA(RSS 2025,arXiv 2501.15830)#

类似 OpenVLA

Ego3D 位置编码:用单目深度估计得到深度图,按相机内参反投影成以相机为原点的 3D 坐标,经正弦编码 + MLP 后逐 token 加到 SigLIP 视觉特征上

自适应离散动作网格:把 7 维末端动作拆开,平移转成极坐标 (φ, θ, r),然后按数据分布拟合高斯、用等概率分箱(每箱概率 1/M)切成网格,得到一套空间动作 token(论文配置约 8194 个 token:平移 4096 + 旋转 ~4096 + 夹爪 2)加进词表,用自回归方式预测。

推理时不需要深度传感器

PointACT(RSS 2026,arXiv 2605.21414)#

双系统,回归

动作专家去吃 3d 点云

点云数据编码成 token ,分 k 个窗口(PTv3,空间序列化,邻近点合并 token,粗细尺度),动作 token 在各窗口做自注意力,最后 average pooling 回来,得到融合点云信息的动作 token,逐层重复(点云 token 池化为更粗粒度 ),再和 VLM 输出 embedding 做交叉注意力。


动作生成机制#

离散 token 自回归#

OpenVLA :每个动作维度分别划分为 256 个 bin,逐 token 预测。

Diffusion#

RDT: 用 DiT 产生连续动作块(64×128)

Flow matching#

π0 :将预训练 VLM 的视觉/语言表征与 flow matching 动作专家结合,预测连续动作块;论文报告的代表设置是 50 步动作块、面向最高约 50Hz 控制。

latent action#

LAPA: 通过带动作的视频学习一个 z_t 来学习潜在的动作,学习用 z_t 和当前帧重建未来帧,然后再微调机器人让其根据 z_t 生成动作。


Benchmark#

RoboTwin 2.0(CVPR 2025,arXiv 2506.18088)#

内容RoboTwin 2.0 的设置
任务50 个双臂操作任务
机器人构型5 种:Aloha-AgileX、ARX-X5、Piper、Franka、UR5
物体库RoboTwin-OD 包含 731 个物体实例、147 个类别
数据规模官方发布超过 100,000 条专家轨迹

这里面数据具体什么样我还没看

FMCW#

原始 4D 点云 (x,y,z,v) + 逐点时间戳 t

径向速度 v,多帧点云是不是可以拿到横向运动信息?

GR00T N1.7#

CategorySpecificMLP:为每种机器人本体维护独立的 MLP 权重,状态输入和动作输出这些靠近物理本体的映射层不完全共享,根据 embodiment_id 选择不同参数

AlternateVLDiT:在 DiT 交叉注意力层中,交替关注图像 token 和文本 token;奇数层做动作Token内部自注意力,偶数层做交叉注意力;偶数层里又根据attend_text_every_n_blocks 决定读取非图像Token还是图像Token。

VLA 调研
https://astro-pure.js.org/blog/3_week5
Author Cosmo
Published at October 23, 2026