VLA 在机器人系统中承担什么角色?
- 名称: VLA 是 Vision-Language-Action 的缩写,可理解为“视觉—语言—动作模型”;
- 接口: 接收当前画面与一条技能指令,输出机器人接下来要执行的动作;
- 与工具调用的分工: 工具调用定义的是期望的状态变化,VLA 定义的是如何通过连续动作实现这个状态变化;
- 示例: 高层规划器只提交
pick(red_cup),VLA 或技能策略决定从哪个方向接近杯子、夹爪何时闭合、手臂以什么轨迹抬起;
- 闭环配合: 执行层完成这一小段运动后系统重新拍摄桌面,只有确认杯子确实被夹住,规划器才允许提交
place(red_cup, tray);
- 分层位置: 属于“基本技能”与“底层控制”之间的执行层,见 机器人控制分层与任务分解;
离散 token 与连续轨迹两条路线差别在哪?
- 路线一: RT-2 与 OpenVLA 把连续动作切成离散 token,再像生成文字一样逐个输出;
- 路线二: π₀ 直接生成连续、平滑的动作轨迹;
- 取舍: 离散 token 更容易和语言模型结合;连续轨迹通常更适合表达平滑运动;
- 判断: 两种方法没有简单的高下之分;
动作分块为什么必要,代价是什么?
- 频率不匹配: 大模型每秒通常只能推理 1—10 次,而传统控制器每秒可能要更新几十到上千次;
- 动作分块(action chunking): 模型一次生成一小段未来动作,控制线程按较高频率执行这一小段,模型在后台准备下一段;
- 收益: 把一部分推理等待藏在动作执行时间里;
- 代价: 动作段越长,运动越平滑,但模型在这段时间里看到的新画面越少;
- 失效场景: 若 XLeRobot 伸手抓杯子时杯子被碰动,它可能仍在执行根据旧画面生成的动作;
- 结论: 动作分块是在平滑性与反应速度之间做取舍,而不是无代价的加速;
VLA 有哪四个局限?
- 训练数据有限: 机器人演示远少于互联网文本与图像数据;模型见过“杯子”这个词,不代表见过各种材质与摩擦条件下的杯子;
- 只学会模仿,不一定懂后果: 行为克隆主要学习“示范者下一步怎么做”,并没有明确要求模型回答“这个动作会造成什么结果”;
- 机器人各不相同: 不同机器人有不同的自由度、坐标系、夹爪与执行器延迟,同一个动作不一定能直接搬到另一台机器人上;
- 观察可能过时: 动作块开始执行后,物体可能被移动、遮挡或碰倒,但模型仍在依据上一帧画面做决定;
语言模型“知道杯子”为什么不等于懂物理?
- 知识边界: 语言模型知道“杯子”是什么,不代表它知道摩擦、接触、液体晃动和电源线会怎样改变未来状态;
- 职责划分: VLA 主要回答“现在应该做什么”,还需要另一类模型帮助判断“做了之后可能发生什么”;
- 互补模型: 世界模型承担动作结果预测,见 世界模型与动作预测;
- 部署差距: 训练分布与部署环境的差异另见 仿真到真实迁移;