机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT

Xbot具身知识库 2026-06-06 14:00

点击下方卡片,关注【Xbotics具身智能实验室】公众号

更多具身干货,欢迎加入(戳我)

👉具身智能学习资料汇总:https://github.com/Xbotics-Embodied-AI-club/Xbotics-Embodied-Guide

👉具身智能求职/实习信息汇总:https://github.com/Xbotics-Embodied-AI-club/Xbotics-Embodied-AI-Job

你想要的这里都有~~


做机器人模仿学习时,我们常常会从一个很朴素的想法开始:给机器人当前看到的画面和状态,让它预测下一步该怎么动。

这个想法就是 Behavior Cloning(行为克隆,简称 BC)。它像是在教机器人“照着老师做”:老师在什么状态下做了什么动作,模型就学着在相似状态下给出相似动作。

但问题是,机器人真的上手执行时,环境会连续变化。如果它每一步都只盯着“下一步”,很容易出现两个麻烦:

  • 一步偏了,后面越偏越远;
  • 同一个场景里,明明有好几种正确做法,模型却学成了一个“不左不右”的平均动作。

ACT(Action Chunking with Transformers)就是为了解这两个问题而来。下面我们用一篇文章把 ACT 的算法逻辑和 LeRobot 代码实现串起来

先记住一句话

ACT 的核心直觉 

ACT 不是让机器人每次只猜下一步,而是让它一次生成一小段未来动作。

可以把它想成开车:普通 BC 像是每 0.1 秒问一次“现在方向盘该打多少”;ACT 更像是先规划接下来几秒“我先沿这条轨迹开过去”。

这样做的好处是:动作更连贯,模型不用每一步都重新做一次决策,也不容易因为某个小误差立刻滚雪球。

1|为什么“一步一步预测”会出问题?

问题一:一步错,后面更容易错

训练时,模型看到的是专家示教里的标准动作轨迹。可到了真实执行时,只要某一步动作有一点偏差,机器人下一刻看到的画面和姿态就可能不再像训练数据里的样子。

关键直觉 

模型正在面对一个“老师没怎么教过”的场景。下一步更容易错,错完又进入更陌生的场景,误差就像滚雪球一样越滚越大。

问题二:同一个场景,可能有多种正确动作

同样是抓一个物体,专家可能从左边绕过去,也可能从右边绕过去。两种方式都对。

如果模型只能给出一个确定答案,它可能会学到“左边方案”和“右边方案”的平均值。听起来很折中,但对机器人动作来说,这个平均值往往不是任何一种有效动作:既不像左绕,也不像右绕,最后卡在中间。

关键直觉

正确答案不止一个,但普通回归模型容易把多个正确答案平均成一个错误答案。

2|ACT 的两个核心

遇到的问题

ACT 的做法

更直观的理解

一步错后面步步错

Action Chunking

不只预测下一步,而是一次预测未来一段动作

同一场景多种正确做法

Conditional VAE

给动作加一个“风格旋钮”,让模型知道这段动作属于哪种模式

2.1 Action Chunking:一次给出一段动作清单

Action Chunking 的意思很直接:模型不是输出“下一步动作”,而是输出“未来 k 步动作”。用不那么数学的写法就是:

当前观测 → 接下来 n 步动作清单

在 LeRobot 默认配置里,这个“动作清单”的长度就是 100。模型先生成这 100 步,再由策略层一条一条拿出来执行。

这有点像做饭前先列好接下来几步:切菜、热锅、下油、翻炒。你不会每切一刀都重新思考整个菜谱,而是先有一个短期计划,再按计划推进。

2.2 Conditional VAE:给动作一个“风格旋钮”

如果同一个画面下有多种合理动作,ACT 希望模型不要把它们硬平均,而是能先选一种动作风格。

这里的“风格旋钮”就是隐变量 z。你可以把 z 理解成一个看不见的动作标签:从左边绕、从右边绕、更快、更慢、更贴近桌面等动作习惯,都可以被编码进去。

机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图1

图1:从 AE 到 VAE 再到 CVAE 的演进。CVAE 可以理解成“在当前条件下生成合理结果”的模型。

3|不用硬啃公式,怎样理解 AE / VAE / CVAE?

AE:像压缩包

AE(Auto-Encoder)可以想成一个压缩包工具。它先把一段数据压缩成一个更小的表示 z,再从 z 尽量还原出原数据。问题是,普通 AE 的 z 没有很好整理过:每个样本可能被放到隐空间里很随意的位置。

VAE:像一张整理过的地图

VAE 在 AE 的基础上做了一件事:它不只学“怎么压缩”,还会约束 z 不要乱跑。更直观地说,VAE 希望隐空间像一张整理过的地图:相似的动作靠得近,不同动作有区别,但不会东一块西一块地散落。

既要还原得像,又要让隐空间别太乱。

也就是说,模型一边学习“动作要和专家示教接近”,一边学习“z 要待在一个比较规整、容易使用的区域”。

CVAE:在“当前场景”这个条件下生成动作

CVAE 多了一个条件。对 ACT 来说,这个条件就是当前机器人看到的画面和状态。

当前观测 + 动作风格 z → 一段合理动作

这样一来,模型就不是盲目生成动作,而是在“当前场景”这个前提下,选择某种动作风格,再生成一段动作。

4|ACT 整体架构:左边负责“学风格”,右边负责“出动作”

机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图2

图2:ACT 整体结构。左侧 VAE Encoder 只在训练时使用;右侧 Transformer 主干负责根据图像、状态和 z 生成动作序列。

左边的 VAE Encoder 像一个“动作风格分析器”。训练时,它可以看到真实动作序列,所以能判断这段示教动作大概属于哪种风格。

右边的 Transformer 主干像一个“短时动作生成器”。它看当前图像、机器人状态,再结合 z,输出未来一段动作。

架构里的分工

左边主要用于训练;真正部署推理时,主要靠右边的 Transformer 来生成动作。

5|训练时,模型到底看到了什么?

训练 ACT 时,一个样本不再只是“当前画面 + 下一步动作”,而是:

当前观测 + 接下来一整段真实动作

也就是说,模型看到的是一个动作块。以下的训练样本图展示了这一点:输入包含 observation,标签是 ground-truth action sequence。

机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图3

图3:训练样本由 observation 和 ground-truth action sequence 组成。ACT 从数据层开始就围绕 action chunk 组织监督。

在 LeRobot 的默认设定中,chunk_size = 100。数据集在取样时,会把当前时刻之后连续 100 个动作一起取出来,作为一个动作块。

如果 episode 快结束了,后面已经不够 100 步怎么办?LeRobot 会用 action_is_pad 标记无效位置,训练时这些位置不会真的参与损失计算。

为什么 padding mask 重要

如果不把无效位置屏蔽掉,模型就会被 episode 末尾的假数据误导。

6|训练流程:可以分成三步看

第一步:从真实动作中提取“动作风格”

训练时,VAE Encoder 能看到真实动作块。它的任务不是直接控制机器人,而是回答一个问题:这段专家动作像是哪一种风格?

机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图4

图4:VAE Encoder 从 robot state 和真实 action sequence 推断 latent。读者可以把 latent 理解成动作风格的压缩表示。

对于刚入门的同学,只需要先抓住这句话:

VAE Encoder 不是输出一个死板标签,而是输出一个“可能的风格范围”。

也正因为它输出的是一个范围,训练时模型可以学习到更平滑、更可用的动作风格空间。

第二步:用图像、状态和 z 生成动作块

拿到 z 之后,Transformer 主干开始生成动作。它会先用 ResNet18 从相机图像中提取视觉特征,再把图像特征、机器人状态、z 放到一起,让 Transformer 进行信息融合。最后,Decoder 端生成未来 100 步动作。

机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图5

图5:Transformer 主干根据图像、机器人状态和 latent z 生成 predicted action sequence。

看图像 + 看机器人当前状态 + 参考动作风格 → 写出未来动作清单

第三步:训练目标

训练损失包含两部分:L1 重建损失和 KL 正则。我们不急着看公式,先大致理解:

总目标 ≈ 动作要像专家 + 风格空间要规整

  • “动作要像专家”:预测的每一步、每个动作维度都要尽量接近真实示教动作;
  • “风格空间要规整”:z 不要散得太乱,否则推理时很难稳定使用。

简单用公式描述,可以理解为:

Loss = 动作误差 + 10 × 风格空间约束

这里的 10 来自 LeRobot 默认的 kl_weight = 10.0。它表示实现上比较重视把 z 约束到稳定区域,为后面推理时使用 z = 0 做准备。

7|推理时:为什么可以直接用 z = 0?

训练时,VAE Encoder 可以看真实动作;但推理时机器人还没做动作,当然没有“未来真实动作”可以看。ACT 的做法很直接:

推理时默认使用 z = 0

这个结论看起来有点突然,但其实和前面的“风格空间要规整”有关。训练时,KL 约束会不断把 z 拉向一个标准、集中的区域。z = 0 就像这个区域的中心点。推理时直接用中心点,通常会得到一个稳定、可复现的动作模式。

代价是:模型不会在推理时随机选择“左绕”或“右绕”。它更像是选择一个默认动作风格,把稳定性放在优先位置。

8|LeRobot 里的执行方式:先放进动作队列,再一步步吐出来

ACT 不是生成 100 步之后一下子把环境“跳过”100 步。更准确地说,LeRobot 的 select_action() 每次仍然只返回一步动作。区别在于:如果动作队列还没空,它不会重新跑模型,而是继续从上一次生成的动作块里取下一步。

模型生成 100 步动作 → 放入动作队列 → 每次执行取出 1 步

机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图6

图6:Action Chunking 与 Temporal Ensemble。LeRobot 默认更接近 Action Queue:先预测一个动作块,再逐步消费。

这里也顺便区分两个容易混淆的参数:

参数

先用白话理解

LeRobot 默认值

chunk_size

模型一次预测多少步

100

n_action_steps

每次实际拿多少步放入队列消费

100

默认情况下,两者都是 100,所以模型一次生成 100 步,并把这 100 步都放进队列里慢慢执行。队列耗尽后,再基于新的观测重新规划。

9|代码实现可以记这条主线

不用一上来就钻进每个类和每个张量形状。理解 LeRobot 里的 ACT,先记住这条链路就够了:

ACTConfig 决定 chunk 长度

Dataset 取出未来 100 步动作作为监督

Processor 做归一化和设备搬运

ACTPolicy.forward() 训练模型,计算动作误差和 KL 约束

ACTPolicy.select_action() 推理时管理动作队列

这条链路说明,ACT 不是简单把模型输出维度改大,而是从数据、模型、损失到推理队列都围绕 action chunk 重新组织。

10|最后,用三句话记住 ACT

  • 普通 BC 的问题是每步都只看下一步,容易误差累积,也容易把多种正确动作平均坏。
  • ACT 的核心是 Action Chunking + CVAE:前者让模型一次生成一段动作,后者让模型用 z 表示不同动作风格。
  • LeRobot 的实现把这个思想落到了完整数据流里:dataset 先构造动作块监督,模型训练时学习生成动作块,推理时再把动作块放入队列逐步执行。

带走这句话

机器人动作可以不是“一步一步猜”,而是“像短时规划一样生成一段未来动作”。

经过数月的精心打磨,我们正式推出 “系统讲解前沿VLA” 的课程!这不是一份简单的代码解读,而是一套旨在帮你系统理解主流VLA算法实现,获得VLA训练、微调、后训练等前沿技术经验的完整知识体系。

更棒的是,作为诚意,我们将第五章【生成式机器人策略】完全免费开放!让你零成本体验国内最前沿的VLA教学。

为什么你需要这门课?

机器人不应该只是被写死程序的执行器,而应该能够理解视觉、理解语言,并最终把任务真正做出来。我们希望学员课程结束后,不只是“听过 VLA”,而是能真正建立一套技术判断力与工程实践能力。

我们想做点不一样的。

这门课程的目标人群是:有代码基础,但缺乏机器人基础和VLA算法知识的同学。

我们希望你学完后的结课效果是:

  • 建立VLA的系统知识框架
  • 具备VLA算法工程实践能力
  • 掌握真机实操能力
机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图7
VLA课程咨询群
机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图8
扫码添加小助手
机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图9
机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT图10

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
机器人
more
超越Figure AI!全球首个机器人训练楼盘开盘:30万套中国住宅,机器人拎包入住
谁在投出下一个人形机器人核心零部件龙头?
车企入局机器人领域,能否复刻“汽车神话”?
汇川、中国电信联手,投了一家机器人触觉公司
机器人为什么不能只“看一步走一步”?一文轻松读懂 ACT
火热报名|“智联脑机 竞逐未来” 2026世界机器人大赛脑机接口赛项
重磅分享 | UniT: 探索人形机器人策略学习与世界建模的统一表征
大晓机器人联合南洋理工打通Physical AI全链路!PhysX-Omni补齐物理AI基建
大晓机器人开源中国家庭全屋3D数据集:30万真实户型、5000个可交互场景,仿真到现实迁移周期大幅缩短
ICML 2026 Spotlight | 银河通用王鹤博士署名论文,提出机器人长时程层次化规划框架
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号