news 2026/10/7 8:16:33

VLA 系统学习第 1 课:VLA 到底在干什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VLA 系统学习第 1 课:VLA 到底在干什么?

第一课先不碰 ACT、Diffusion Policy、OpenVLA、π0 这些具体模型,而是只解决最基础的一条链:

Camera / Language / Robot State → Policy → Action → Robot Controller → Real Robot

并重点弄清楚 Observation、Robot State、Language、Action,以及 Action 为什么还不是电机命令。 Pasted text


1. 先用一句话理解 VLA

VLA,全称:

Vision-Language-Action

可以先粗略翻译为:

看见环境 + 听懂任务 → 决定机器人下一步做什么。

例如给机器人一句指令:

“把桌上的红色方块放进左边盒子。”

机器人可能同时拿到:

  • 相机图像;
  • “把红色方块放进左边盒子”这句话;
  • 当前机械臂关节位置;
  • 当前夹爪开合状态。

然后模型输出:

下一步机械臂应该采取什么动作。

所以整个问题,本质上可以先画成:

环境 ↓ 相机看到什么 + 人要求做什么 + 机器人现在是什么姿态 ↓ VLA / Robot Policy ↓ 下一步动作 ↓ 机器人控制系统 ↓ 机器人真的运动

这一课最重要的事情,就是把上面每一个词弄明白。


2. VLA 最核心的数学形式

以后你会看到大量复杂模型,但最底层都可以先抽象成:

\[ a_t = \pi(o_t, l) \]

先不要害怕这个公式。

这里:

  • \(\pi\):policy,策略;
  • \(o_t\):机器人在时刻 \(t\) 得到的 observation;
  • \(l\):language instruction,语言指令;
  • \(a_t\):时刻 \(t\) 输出的 action。

中文就是:

策略根据当前观察和任务指令,决定当前应该采取什么动作。

如果把机器人的自身状态单独写出来,也经常写成:

\[ a_t = \pi(I_t, s_t, l) \]

其中:

  • \(I_t\):图像;
  • \(s_t\):Robot State;
  • \(l\):语言;
  • \(a_t\):动作。

这其实就是 VLA 最核心的一条线。

以后 ACT、Diffusion Policy、OpenVLA、π0 再复杂,最终我们都要回来问:

它到底怎么从这些输入,算出了 Action?


3. Observation 到底是什么?

这是第一个必须真正理解的词。

3.1 Observation = 机器人当前“能够观察到的信息”

假设你站在房间里。

房间真实情况可能包含:

  • 桌子的准确三维位置;
  • 所有物体的位置;
  • 空气温度;
  • 每个物体的质量;
  • 每个物体内部结构;
  • 所有人的位置。

但你的眼睛并不能直接知道所有这些东西。

你实际拿到的是:

  • 眼睛看到的图像;
  • 耳朵听到的声音;
  • 手感觉到的力;
  • 身体姿态感觉。

这些东西就是你的Observation。

机器人也是一样。

它并不是直接知道“世界真相”。

它只能通过传感器观察。


3.2 机器人常见 Observation

例如一个机械臂系统可能拥有:

RGB Camera Depth Camera Joint Position Joint Velocity Gripper State Force Sensor Previous Action 历史图像

这些都可能属于 Observation。

例如:

\[ o_t = \{ I_t, q_t, g_t \} \]

这里:

  • \(I_t\):当前相机图像;
  • \(q_t\):当前关节角;
  • \(g_t\):当前夹爪状态。

所以:

Observation 并不等于“图片”。

这是初学 VLA 非常容易出现的第一个误区。


4. Vision 到底给模型什么?

现在先只考虑 RGB 相机。

机器人看到一张图片:

桌子 红色方块 蓝色方块 盒子 机械臂

计算机当然看不到“红色方块”这几个汉字。

它真正收到的是一个数字数组。

一张 RGB 图片通常可以表示成 Tensor:

\[ I \in \mathbb{R}^{3\times H\times W} \]

这里:

  • \(3\):RGB 三个颜色通道;
  • \(H\):图片高度;
  • \(W\):图片宽度。

如果加入 batch:

\[ I \in \mathbb{R}^{B\times 3\times H\times W} \]

其中:

  • \(B\):一次送入模型多少张图片。

例如:

images shape = [B, 3, H, W]

现在先不用关心具体到底是 224×224、256×256 还是别的尺寸。

不同模型不同。

真正重要的是:

VLA 的 Vision 输入,本质上最终都会变成 Tensor。


5. Robot State 是什么?

这是第二个很容易混淆的概念。

Robot State 可以理解为:

机器人对“自己当前是什么状态”的描述。

最常见的是关节位置。

假设机械臂有 6 个关节:

\[ q_t = [q_1,q_2,q_3,q_4,q_5,q_6] \]

例如:

\[ q_t = [0.2,-0.7,1.1,0.3,-0.5,0.8] \]

这些数字可以代表 6 个关节当前的位置。

于是:

robot_state shape = [6]

如果加入 batch:

robot_state shape = [B, 6]

但 Robot State 不一定只有 Joint Position。

还可能有:

Joint Position Joint Velocity End-Effector Pose Gripper State Force / Torque

5.1 为什么只有图片还不够?

假设相机看到:

夹爪在杯子附近。

但机器人自己最好还要知道:

我的 6 个关节现在到底在哪。

否则仅凭图像,很难非常精确地知道自己的机械状态。

你可以类比人类。

你闭上眼睛,把手伸出去。

即使看不到手,你大概也知道:

我的手在哪里。

这种身体内部状态感知叫:

Proprioception

中文通常翻译为:

本体感觉 / 本体感知

在 Robot Learning 里非常重要。

所以你以后会经常看到:

proprioception

大多数时候,可以先理解成:

机器人自己身体状态的信息。


6. Language 到底怎么进入模型?

现在假设人输入一句:

Pick up the red block.

计算机不能直接处理这句话。

最基本过程是:

文字 ↓ Tokenizer ↓ Token ↓ Token ID ↓ Embedding ↓ 神经网络

这一课暂时不用深入 Transformer。

只需要知道:

Language 最终也要被转换成数字。

例如一句话经过 tokenizer 后,可能变成:

[101, 2345, 117, 8912, 102]

这只是示意,不对应任何特定模型。

可以抽象成:

\[ L \in \mathbb{N}^{B\times N} \]

其中:

  • \(B\):batch size;
  • \(N\):token 数量。

随后模型把 Token ID 转换成向量。


7. 为什么必须有 Language?

如果没有 Language,机器人看到:

红色方块 蓝色方块 杯子 盒子

它并不知道:

你到底想让我干什么?

同一幅画面可以有无数种任务:

拿红色方块 拿蓝色方块 把杯子移动到右边 把红色方块放进盒子 把蓝色方块推走

视觉告诉机器人:

世界现在是什么样。

语言告诉机器人:

你希望世界变成什么样。

这个区别非常重要。


8. Policy 到底是什么?

现在三个东西准备好了:

Image Robot State Language

于是进入:

Policy

Policy 可以先理解成:

决定机器人该怎么行动的函数。

也就是:

\[ \pi: (\text{Observation},\text{Language}) \rightarrow \text{Action} \]

例如:

Image + Robot State + Language ↓ Policy ↓ Action

Policy 可以是:

  • 很简单的神经网络;
  • Transformer;
  • Diffusion Model;
  • VLM + Action Head;
  • Flow Matching 模型;
  • 其他结构。

但先不用管。

第一课只要记住:

Policy 的任务不是“理解世界”就结束了,而是最终必须产生可以用于机器人行为的 Action。

这就是 Robot Learning 和普通图像分类、普通聊天模型最大的区别之一。


9. Action 到底是什么?

这是整门课最重要的概念之一。

很多初学者看到:

action = model(obs)

会自然认为:

Action 就是电机转多少。

实际上通常不是。

Action 是:

Policy 输出的机器人行为表示。

具体表示什么,要看模型怎么定义 Action Space。


10. 常见 Action 类型

以后你会反复遇到这些。

第一类:Joint Position

直接输出目标关节位置:

\[ a_t = [q_1^*,q_2^*,...,q_n^*] \]

意思是:

希望各个关节运动到这些位置。


第二类:Joint Delta

输出:

\[ \Delta q \]

例如:

\[ \Delta q = [0.01,-0.02,0,0.01,0,0] \]

表示:

在当前关节位置基础上稍微移动一点。

于是:

\[ q_{target}=q_t+\Delta q \]


第三类:Joint Velocity

输出:

\[ \dot q \]

也就是:

每个关节应该以什么速度运动。


第四类:End-Effector Pose

不是直接控制每个关节,而是告诉机器人:

我要夹爪到这个位置和姿态。

例如:

\[ a_t = [x,y,z,r_x,r_y,r_z] \]

然后由后面的运动学和控制系统决定各关节怎么运动。


第五类:Delta End-Effector Pose

输出:

\[ [\Delta x,\Delta y,\Delta z, \Delta r_x,\Delta r_y,\Delta r_z] \]

含义是:

夹爪相对于当前姿态,再移动一点。

这种表示在 Robot Learning 中非常常见。


第六类:Gripper Action

例如:

\[ g\in\{0,1\} \]

可以表示:

0 → 打开 1 → 闭合

也可能采用连续值。


11. 一个 Action Tensor 可能长什么样?

假设某个机器人策略定义:

Δx Δy Δz Δrx Δry Δrz gripper

那么:

\[ a_t = [ \Delta x, \Delta y, \Delta z, \Delta r_x, \Delta r_y, \Delta r_z, g ] \]

Action Dimension 就是:

\[ D_a=7 \]

Tensor 可能是:

action shape = [B, 7]

但是一定要记住:

这个 7 只是这个示例的 Action Space。

不能看到别的 VLA 就默认:

Action Dimension = 7

以后看真实论文和 GitHub,我们都会重新查。


12. 最重要的问题:Action 是电机命令吗?

通常不是。

这是第一课最应该彻底弄清的一点。

例如 VLA 输出:

\[ \Delta x=0.01m \]

它表达的是:

末端向 x 方向移动 1 cm。

但电机根本不认识:

向 x 方向移动 1 cm

电机底层可能只认识:

目标位置 目标速度 目标电流 PWM Step Pulse Torque Command

所以中间还有很多层。


13. 真正的机器人执行链

一个典型系统可以粗略写成:

VLA ↓ Action ↓ Action Adapter ↓ Robot Controller ↓ Joint Command ↓ Servo / Motor Driver ↓ Motor ↓ Robot Motion

比如 VLA 输出:

\[ \Delta x=1cm \]

之后可能发生:

末端向右移动 1 cm ↓ 计算新的末端目标位置 ↓ 逆运动学 IK ↓ 目标关节位置 ↓ 轨迹规划 / 插值 ↓ 关节控制器 ↓ 电机驱动器 ↓ 电机转动

所以:

VLA 决定“做什么动作”,底层控制系统负责“怎样让电机把这个动作执行出来”。

这是一个非常关键的层级关系。


14. 一个特别重要的分层

可以把整个机器人系统粗略分成三层。

第一层:决策 / Policy

回答:

我现在应该干什么?

例如:

夹爪向杯子靠近

第二层:运动 / Control

回答:

为了让夹爪这样运动,各个关节应该怎么动?

例如:

Joint 1 → 0.31 rad Joint 2 → -0.72 rad Joint 3 → 1.14 rad ...

第三层:Motor

回答:

为了让关节真的运动,电机应该输出什么?

例如:

位置环 速度环 电流环 PWM 脉冲

所以不能把:

VLA Action

直接等同于:

Motor Command

15. 用一个完整例子走一遍

现在假设任务是:

把红色方块放进盒子。


第一步:Vision

Camera 拍到:

红色方块 盒子 机械臂末端 桌面

得到:

\[ I_t \]


第二步:Language

语言:

Put the red block into the box.

经过 tokenizer 和语言编码,得到语言信息:

\[ l \]


第三步:Robot State

机器人当前知道:

\[ s_t \]

里面可能包含:

Joint Position Gripper State

第四步:Policy

输入:

\[ (I_t,s_t,l) \]

经过 Policy:

\[ a_t=\pi(I_t,s_t,l) \]


第五步:Action

假设输出:

末端向前移动 2 cm 末端向左移动 1 cm 夹爪保持打开

也就是:

\[ a_t \]


第六步:机器人控制系统

Action 被转换为:

目标末端姿态 ↓ IK ↓ 目标关节位置 ↓ 控制器 ↓ 电机

机械臂真的移动一点。


16. 然后是不是结束了?

不是。

机器人运动之后:

世界已经变了。

于是下一时刻重新拍图:

\[ I_{t+1} \]

同时机器人状态也变成:

\[ s_{t+1} \]

然后再运行:

\[ a_{t+1} = \pi(I_{t+1},s_{t+1},l) \]

所以实际运行往往是一个循环:

Observe ↓ Policy ↓ Action ↓ Execute ↓ Observe Again ↓ Policy ↓ Action ↓ ...

这就是非常重要的:

闭环执行思想。


17. 为什么机器人需要不断重新观察?

想象你闭着眼睛抓杯子。

你提前规划:

手向前 30 cm 向右 5 cm 手指闭合

然后从头到尾不再看。

只要:

  • 杯子位置偏了;
  • 手的位置偏了;
  • 桌子碰了一下;
  • 前面的动作有一点误差;

最后就可能抓空。

因此 Robot Policy 很重要的一件事是:

机器人执行动作之后,可以重新观察环境,再决定下一步。

后面我们学习:

  • Action Chunking;
  • Receding Horizon;
  • Diffusion Policy;
  • VLA 推理循环;

都会重新遇到这个思想。


18. VLA 和传统机器人到底是什么关系?

这是第三个特别容易误解的问题。

有些宣传容易让人产生一种感觉:

有了 VLA,以前机器人学全部不要了。

这是错误的理解。


传统机器人系统

传统机器人通常可能采用:

Camera ↓ Object Detection ↓ Pose Estimation ↓ Task Planning ↓ Motion Planning ↓ IK ↓ Trajectory ↓ Controller ↓ Motor

每个模块职责比较明确。

例如:

视觉模块:

杯子坐标在这里。

规划模块:

先移动到杯子上方。

IK:

对应哪些关节角?

Controller:

怎么让关节稳定运动过去?


19. VLA 做了什么改变?

VLA 希望学习:

Vision + Language + Robot State ↓ Policy ↓ Action

也就是说,一部分原来需要人工设计规则、视觉算法、任务逻辑的过程,可以由学习模型完成。

例如过去可能需要:

if object == red_block: locate(red_block) plan_grasp() move_to(...)

而学习型 Policy 则希望从 demonstration 中学习:

\[ \text{Observation} \rightarrow \text{Action} \]


但是后面的:

Safety Control Motor Driver Motor

仍然存在。

所以更准确的理解是:

VLA 并不是把整个机器人控制系统替掉,而是把视觉、语言理解和机器人行为决策连接起来。


20. VLA 和 VLM 最大区别是什么?

你以后还会学 VLM。

VLM:

Vision-Language Model

例如输入:

图片 + 问题

输出:

文本

例如:

图片:桌上有一个红色方块 问题:桌上有什么?

输出:

There is a red block.

它完成的是:

\[ Vision + Language \rightarrow Language \]


VLA 则更强调:

\[ Vision + Language \rightarrow Action \]

例如:

图片 + “拿起红色方块” ↓ 机器人动作

所以关键区别在最后一个字母:

L

Language

vs

A

Action

VLA 最终必须和行为联系起来。


21. 一个很重要的认识:Action 不是唯一标准形式

VLA 并没有规定:

所有模型必须输出同一种 Action。

完全不是。

不同方法可能输出:

Joint Position Joint Delta Joint Velocity End-Effector Pose Delta End-Effector Pose Action Chunk Discrete Action Token Continuous Action

以后我们阅读任何模型,都必须先问:

这个模型的 Action 到底是什么?

这是后续读论文时非常重要的习惯。


22. 再区分两个非常容易混淆的词

State

理论上描述系统真正状态。

例如:

物体真实 3D 坐标 真实速度 真实机器人姿态

Observation

机器人实际能够测到的东西。

例如:

RGB 图像 深度图 关节编码器 夹爪状态

现实机器人里经常不能直接获得完整 State。

所以 Policy 通常更准确地写成:

\[ a_t=\pi(o_t) \]

而不是默认:

\[ a_t=\pi(s_t) \]

在强化学习里我们以后还会专门讲 State 和 Observation 的区别。


23. 把今天所有东西压缩成一张图

现在应该建立下面这个脑图:

Language │ │ Camera ──────→ Observation │ Robot Sensors ─→ Robot State │ ▼ Policy │ ▼ Action │ ▼ Action Adapter │ ▼ Robot Controller │ ▼ Motor Command │ ▼ Robot │ ▼ Environment │ └────→ Camera

注意这是一个循环。

不是:

Input → Model → Output

之后就结束。

而是:

\[ o_t \rightarrow a_t \rightarrow o_{t+1} \rightarrow a_{t+1} \rightarrow\cdots \]


24. 今天真正应该记住的 7 句话

① Observation

机器人通过传感器实际获得的信息。

② Robot State

机器人自身状态,例如关节位置、夹爪状态等。

③ Language

描述当前任务目标。

④ Policy

根据 Observation 和任务生成 Action。

\[ a_t=\pi(o_t,l) \]

⑤ Action

Policy 输出的机器人行为表示。

⑥ Action ≠ Motor Command

中间通常还有运动学、轨迹、控制器、驱动器等环节。

⑦ VLA 不等于替代传统机器人控制

它主要负责:

感知 + 语言理解 + 行为决策

底层机器人控制依然非常重要。


25. 第一课自测

先不要查答案,看看现在能不能自己解释下面 6 个问题。

1. 为什么相机图像属于 Observation,但 Observation 不等于相机图像?

2. Robot State 和相机图像有什么区别?

3. 下面这个公式每一项是什么意思?

\[ a_t=\pi(I_t,s_t,l) \]

4. 如果 Policy 输出“末端向右移动 2 cm”,为什么不能直接把它发给电机?

5. VLA 和普通 VLM 最核心的输出区别是什么?

6. 为什么真实机器人往往需要执行 Action 后重新获取 Observation,而不是一次生成所有动作然后盲目执行?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 8:16:33

内网渗透测试完全指南:从外网打点到域控的保姆级教程,渗透必看!

一、内网渗透概述 内网渗透是指攻击者突破企业外部边界后,在企业内部网络中进行的横向移动、权限提升和核心资产获取活动。与外网渗透不同,内网渗透更注重对Windows域环境、Kerberos协议、内网拓扑的深入理解。内网渗透完整流程 外网打点 → 边界突破 →…

作者头像 李华
网站建设 2026/10/7 8:15:08

2027届统计类学生转营销策略岗:SQL、指标体系和项目经历怎么准备?

一、先给结论:应用统计学可以做营销策略,但不能只把自己包装成会算数的人应用统计学专业想做营销策略,方向是成立的。企业真正需要的不是单纯会做模型的学生,而是能把消费者、渠道、产品、价格、活动效果和经营目标连起来的人。从…

作者头像 李华
网站建设 2026/10/7 8:14:08

我宠我爱动物医院

我宠我爱动物医院|20年东北多城连锁。全科+专科协同,深耕骨科、心脏、眼科、皮肤、口腔、肿瘤、异宠及中兽医,用专业与爱守护宠物全生命周期健康。

作者头像 李华
网站建设 2026/10/7 8:14:06

考研党必备!网课笔记做到手抽筋?三款AI语音转写工具横评实测

说实话,经历过考研的人都知道,每天抱着平板刷网课,一边听老师划重点,一边疯狂打字记笔记,一节课下来手腕都快断了。更崩溃的是,听完课发现笔记根本看不清自己写了什么,知识点漏掉一大半&#xf…

作者头像 李华