行动零碎变革器 (ACT):全面指南培训和实施ACT政策 (2026)
完整的ACT指南:了解行动分类,训练ACT的政策对机器人数据,部署在OpenArm或移动ALOHA.涵盖时间组合,分类尺寸调整和LeRobot集成. 2026更新.
从时间顺度理论和CVAE训练,通过LeRobot和ACT+训练管道,到OpenArm和Mobile ALOHA的实用硬件部署,
1. 行动缩是什么?
行动分类是一种模仿学习技术,其中政策预测未来行动的序列
在标准BC中,该政策预测每一步每一操作.每次预测错误将机器人转移到一个政策从未见过的状态,导致下一次预测变得更糟,等等.在50Hz (4秒的操纵) 上200步轨道上,即使每步的错误化合物1%也会导致离散的概率达到87% 行动分量减少了这一点,通过承诺执行_k_步骤的计划 (通常50
零件尺寸:最重要的超参数
块大小 k 决定了轨道平滑和环境反应之间的交换.较大的块产生更平滑的运动,但不能反应到意外事件 (物体移动,障碍出现) 直到当前的块完成执行.较小的块反应更快,但失去平滑优势,重新引入复合错误.
根据任务类型的建议起点:
- 桌面上选择和位置: k=50
100 (1 2秒).环境静态;滑滑比反应更有价值. - 组装和插入: k=30
60. 接触丰富的阶段需要更频繁的重新规划,以调整对齐错误. - 双手协调:** k=50
80. 两只手臂需要协调的块,过于短的块会破坏协调. - 移动操纵: k=20
40对基, k=50 80对手臂.基需要更快的障碍反应. - 动态任务 (捕捉,回避): k=10
20. 反应力至关重要;接受一些流 性损失.
为什么行动缩工作:暂时的顺利论点
一步BC政策每步都独立处理.即使模型完美捕捉了条件分布P\a_t\o\t),跨步骤的独立性意味着轨迹缺乏时间一致性.
通过同时预测k步骤,模型必须产生内部一致的轨迹段.训练损失将整个部分共同受到惩罚,迫使网络学习光滑运动原始的相反,而不是单独的
法律体系结构
ACT使用一个带转变器背骨的条件变化自动编码器 (CVAE).该架构有三个主要组成部分:一个CVAE编码器 (仅在训练期间使用),一个转变器解码器 (在训练和推理期间使用),以及一个视觉背骨.
编码器 (仅为训练)
在训练过程中,编码器处理了全示范图像,联合状态和基础真相操作,并产生了一个隐藏的风格变量 z (维度32) 捕获了示范特定的变化.不同的操作员可以从不同的角度或速度接近同一个任务; z编码这种变化.
编码器是一个处理整个行动序列和当前观测的变压器.它输出了一个平均和日志变量,参数化一个高斯式,从其中z通过重复参数化技巧采样.一个KL分离术语 (按beta权重,通常是10
结果是,z设置为0 (前平均值),使政策确定性.CVAE结构纯粹是培训辅助:没有它,模型在示范风格中平均,产生了所有方法的平均值,因此没有一种方法 (模式平均值). 通过CVAE,模型学会单独解码每个风格,在推断时的零中值z产生了最"典型"的执行.
变压器解码器 (训练+推理)
解码器采用三个输入:隐藏的z (或零),视觉脊柱+自觉的观察标记,以及k可学习的位置查询 (每一个操作在部分中).标准变压器交叉注意力使位置查询能够随时关注观察标记,并行产生k行动预测.
从最初的ACT实施中获取的建筑细节:
- 编码层: 4 (过程观察+z成文本代币)
- 解码层: 7 (深入,因为它做得更有效:生成全动作部分)
- 隐藏的尺寸:** 512
- 注意力: 8
- 前进尺寸: 2,048
- 总参数: ~40M (不包括视觉脊柱)
- 行动输出: k 联合位置目标 (例如, k=100步 x 14 双手机 ALOHA 关节)
视力脊柱
每个摄像头视图通过ResNet-18独立处理,产生一个功能地图 (15x20x512从480x640输入) 均被平板化成每台摄像头的300个代币.
最少可行的摄像头设置是2个视图:一个手腕安装的摄像头 (接近操作细节) 和一个空头摄像头 (空间背景).三部摄像头 (1手腕 + 2 个第三人在不同的角度) 是RCSV标准,与两部摄像头设置相比,在精度任务上持续提高了5
3 数据要求
ACT从人类的远程操作演示中学习,这些演示作为同步 (观察,行动) 双存储.
按任务复杂性计算的最低数据集尺寸
| Task Type | 示范 Needed | Approx. Collection Time | Notes |
|---|---|---|---|
| Simple pick-and-place (fixed location) | 20–30 | 30 minutes | Lowest bar for proof-of-concept |
| Pick-and-place with pose variation | 50–80 | 1–2 hours | Must cover workspace uniformly |
| Multi-step manipulation | 100–150 | 3–4 hours | Each phase needs coverage |
| Bimanual coordination | 150–250 | 5–8 hours | Coordination patterns require more examples |
| Contact-rich assembly (insertion, screwing) | 200–400 | 8–16 hours | Force-sensitive phases need dense coverage |
数据质量检查清单
- **没有停顿:**示威活动应该持续流动.
- 一致的速度: 混合快速和慢的示范浪费了CVAE的潜伏能力在速度变化.
- 清洁的开始/结束: 每个集都从类似的中性姿势开始,
- 仅成功: 删除所有失败的示范.ACT将所有培训数据视为专家示范.
- 摄像头连续性:**使用硬式安装.即使在会议之间移动摄像头的5毫米,也会降低抓住精度.
数据格式:HDF5和RLDS
ACT训练数据的标准格式是HDF5,每个集集都作为一个集群存储的图像数据集 (n__cameras x H x W x 3, uint8),联合位置 (qpos, float64),联合速度 (qvel, float64),和行动 (float64).时间标签存储在集级.LeRobot还支持从 Hugging Face Hub进行高效流媒体的转换到Parquet格式.
为了实现跨平台兼容性,Google的Open X-Embodiment使用的RLDS (Reinforcement Learning Datasets) 格式将集集节作为一个标准化的TFRecord文件存储.LeRobot提供了HDF5,RLDS和其原生Parquet格式之间的转换工具.查看我们的 [数据格式指南]
# HDF5 episode structure for ACT training
import h5py
import numpy as np
with h5py.File("episode_0042.hdf5", "r") as f:
# Camera images: (T, H, W, 3) uint8
cam_high = f["/observations/images/cam_high"][:] # overhead camera
cam_wrist = f["/observations/images/cam_wrist"][:] # wrist camera
# Joint state: (T, n_joints) float64
qpos = f["/observations/qpos"][:] # joint positions (radians)
qvel = f["/observations/qvel"][:] # joint velocities (rad/s)
# Actions: (T, action_dim) float64
actions = f["/action"][:] # target joint positions
print(f"Episode length: {len(qpos)} steps")
print(f"Control frequency: {f.attrs['control_freq']} Hz")
print(f"Camera resolution: {cam_high.shape[1]}x{cam_high.shape[2]}")
# Typical output:
# Episode length: 400 steps
# Control frequency: 50 Hz
# Camera resolution: 480x640
4.与乐罗伯特进行ACT培训
[LeRobot] (
装备
# Clone and install LeRobot
git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e ".[act]"
# Verify GPU is available
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}, Device: {torch.cuda.get_device_name(0)}')"
训练指挥部
# Full ACT training command
python lerobot/scripts/train.py \
--policy.name=act \
--dataset.repo_id=svrc/openarm_pick_place \
--policy.chunk_size=50 \
--policy.n_obs_steps=1 \
--policy.dim_model=512 \
--policy.n_heads=8 \
--policy.n_encoder_layers=4 \
--policy.n_decoder_layers=7 \
--policy.latent_dim=32 \
--policy.kl_weight=10.0 \
--training.learning_rate=1e-5 \
--training.batch_size=8 \
--training.num_epochs=5000 \
--training.eval_freq=500 \
--training.save_freq=1000 \
--device=cuda \
--output_dir=outputs/act_openarm_pick_place/
超参数参考
| Hyperparameter | Default | Search Range | Effect of Increasing | When to Increase |
|---|---|---|---|---|
| chunk_size (k) | 100 | 20–200 | Smoother trajectories, less reactive | Smooth tasks (wiping, pouring) |
| latent_dim (z) | 32 | 16–64 | More expressive style capture | High demonstration variance |
| kl_weight (beta) | 10 | 1–100 | Stronger regularization | Small datasets (<50 demos) |
| learning_rate | 1e-5 | 5e-6–5e-5 | Faster convergence, instability risk | Large datasets (>200 demos) |
| temporal_ensemble_temp | 10 | 5–50 | Slower blending, more inertia | Smoother tasks |
| n_cameras | 2 | 1–4 | Richer spatial info, more compute | 3D reasoning tasks |
| backbone | ResNet-18 | ResNet-18/34/50 | Better visual features | Cluttered or varying-light scenes |
| num_epochs | 3000 | 1000–8000 | Better fit, overfitting risk | More demos or complex tasks |
GPU 要求
- ** 最低:** 16 GB VRAM (RTX 4060 Ti, RTX 3090). 批量量4
8. 训练时间:4 8小时200集. - 推
: 24 GB VRAM (RTX 4090). 批量量16. 训练时间: 24小时200集. - 快速
代: 4080GB (A100,H100).批量大小 32 64.训练时间:30 90分钟. 允许快速的超参数扫描.
5. ACT+ (原始存储库) 的培训
托尼
# Training with the original ACT repo
git clone https://github.com/tonyzhaozh/act.git
cd act
pip install -r requirements.txt
# Train on custom data
python train.py \
--task_name openarm_pick_place \
--ckpt_dir checkpoints/openarm_pp \
--policy_class ACT \
--kl_weight 10 \
--chunk_size 50 \
--hidden_dim 512 \
--batch_size 8 \
--dim_feedforward 2048 \
--num_epochs 5000 \
--lr 1e-5 \
--seed 0 \
--num_steps 400 \
--camera_names cam_high cam_wrist
LeRobot与原始备用: LeRobot更好地维护 (积极的社区,定期更新,多政策支持) 并自动处理数据加载和评估.原始备用提供了更直接的控制,更简单地用于研究实验.对于生产部署,我们建议 LeRobot;对于研究叉,原始备用更容易被黑客攻击.
6. 部署在真实硬件上
部署ACT政策需要满足实时控制限制:在处理摄像头图像和计算行动块时,推断循环必须运行在机器人的控制频率 (通常是50Hz = 20ms每周期).
推理循环架构
import torch
import numpy as np
from collections import deque
class ACTInferenceLoop:
def __init__(self, policy, chunk_size=50, temporal_temp=10.0, query_freq=5):
self.policy = policy
self.chunk_size = chunk_size
self.temporal_temp = temporal_temp
self.query_freq = query_freq # re-query every N steps
self.action_queue = deque(maxlen=chunk_size)
self.step_count = 0
def get_action(self, images, qpos):
"""Returns a single action with temporal ensembling."""
if self.step_count % self.query_freq == 0:
# Get new action chunk from policy
with torch.no_grad():
obs = {
"images": torch.tensor(images).unsqueeze(0).cuda(),
"qpos": torch.tensor(qpos).unsqueeze(0).cuda(),
}
chunk = self.policy(obs) # (1, chunk_size, action_dim)
chunk = chunk.squeeze(0).cpu().numpy()
self.action_queue.append({
"actions": chunk,
"generated_at": self.step_count
})
# Temporal ensembling: blend overlapping chunks
action = np.zeros_like(self.action_queue[0]["actions"][0])
total_weight = 0.0
for entry in self.action_queue:
offset = self.step_count - entry["generated_at"]
if offset < self.chunk_size:
weight = np.exp(-offset / self.temporal_temp)
action += weight * entry["actions"][offset]
total_weight += weight
action /= total_weight
self.step_count += 1
return action
延迟预算50Hz
在50Hz控制时,每个周期的预算是20ms.
- 摄像头捕捉+预处理: 2
5ms (USB3摄像头,尺寸改为480x640) - ACT推断: 2
12ms (依赖GPU;参见下面的基准表) - ** 操作插射+命令发送:** 1
2ms - 安全检查: 1ms
率:** 0 14ms
根据平台的推理基准
| Hardware | ACT Inference (ms) | Max Control Rate (Hz) | Suitable For |
|---|---|---|---|
| NVIDIA A100 (80GB) | 1.8 | 555 | Cloud/datacenter inference |
| NVIDIA RTX 4090 | 2.5 | 400 | Desktop workstation |
| NVIDIA RTX 4070 | 4.2 | 238 | Budget desktop |
| Jetson AGX Orin 64GB | 12 | 83 | Onboard robot compute |
| Jetson Orin NX 16GB | 22 | 45 | Mid-range edge |
| Jetson Orin Nano 8GB | 40 | 25 | Minimum viable edge |
| Apple M3 Pro 18GB | 8 | 125 | Development/prototyping |
临时集体实施细节
时间组使用指数式衰变权重:在20步前生成的部分的预测中,重量为
关键部署提示: 总是在生产中使用时间组装.如果没有它,机器人会在零部界限上表现出可见的
7. OpenArm 1 + ACT:具体的设置步骤
OpenArm 1 ($4,500单臂,9,000美元双手领导跟随站) 设计用于模仿学习数据收集和ACT部署.以下是完整的设置路径:
硬件设置
- **安装摄像头:**将手腕摄像头 (Intel RealSense D405) 连接到OpenArm手腕支架.安装上头摄像头 (RealSense D435) 在工作场所中心60厘米以上的提供门口上.可选:以提高空间覆盖率,安装第三部摄像头45度.
- **连接伺服器:**OpenArm使用Feetech STS3215伺服器 (与ALOHA相同).通过U2D2连接接口连接.检查所有6个关节都响应:
T8 . - ** 校准关节限制:** 运行
T9 记录关节零位置和软界限. 这写为 T10 . - 测试远程操作: 带领臂连接,运行
T11 . 追随者应以50Hz的速度反射领袖的实时运动.
关于ACT的数据收集
# Record demonstrations on OpenArm
python lerobot/scripts/control_robot.py record \
--robot-path lerobot/configs/robot/openarm.yaml \
--fps 50 \
--repo-id svrc/openarm_pick_place \
--num-episodes 50 \
--warmup-time-s 3 \
--episode-time-s 15 \
--reset-time-s 10 \
--push-to-hub 1
在OpenArm上部署ACT
# Deploy trained policy
python lerobot/scripts/control_robot.py replay \
--robot-path lerobot/configs/robot/openarm.yaml \
--policy-path outputs/act_openarm_pick_place/checkpoints/best/ \
--fps 50 \
--num-episodes 20
8.常见故障和纠正
在RCSV,我们已经培训并部署了20多项操纵任务的ACT政策.
| Symptom | Root Cause | Fix |
|---|---|---|
| Policy outputs zero or constant actions | KL weight (beta) too high. Model ignores observations and outputs the mean action. | Reduce beta by 5–10x. Monitor KL divergence: it should stabilize at 0.5–5.0 nats, not near zero. |
| Jerky execution at chunk boundaries | Temporal ensemble temperature too low, or ensemble not implemented | Increase temperature from 10 to 20–30. Verify overlapping chunk execution in your control loop. |
| Good training loss, poor real-world performance | Camera mismatch between training and deployment | Check image resize pipeline, camera FOV, crop regions. Use identical camera mount positions. |
| Works for 2 seconds then drifts | Chunk size too large for task dynamics | Reduce chunk size by 50%. The policy is committing to outdated plans. |
| Inconsistent between evaluation runs | Too few demonstrations (<30) | Collect more data. With small datasets, performance is highly sensitive to train/val split. |
| KL divergence collapses to zero | Beta too low. 编码器 encodes everything in z; decoder ignores observations. | Increase beta until KL stabilizes at 0.5–5.0 nats. |
| Mode averaging: robot moves to "average" of multiple strategies | Multi-modal demonstrations with single-mode CVAE | Standardize demonstration strategy, remove minority approaches, or switch to Diffusion Policy. |
| Sim-to-real gap: policy works in sim but fails on real robot | Contact dynamics, friction, and visual domain mismatch | Fine-tune on 50–100 real demonstrations. Apply domain randomization during sim training. |
9. 标准:ACT与传播政策与行为克隆
下面的基准是我们在RCSV发布的结果和使用ALOHA和OpenArm平台进行标准化操纵任务的评估.
| Dimension | ACT | Diffusion Policy | Behavioral Cloning (多层感知器) |
|---|---|---|---|
| Success rate (50 demos, pick-place) | 82–90% | 75–85% | 40–60% |
| Success rate (200 demos, pick-place) | 90–95% | 92–97% | 65–80% |
| Success rate (bimanual insertion) | 80–88% | 72–82% | 15–30% |
| Inference latency (RTX 4090) | 2.5ms | 15ms (DDIM) | 0.5ms |
| Inference latency (Jetson Orin Nano) | 40ms (25 Hz) | 180ms (5.5 Hz) | 5ms (200 Hz) |
| Training time (200 episodes, A100) | ~4 hours | ~8 hours | ~1 hour |
| Model size | ~40M params | ~80M params | ~5M params |
| Multi-modal handling | Limited (CVAE) | Excellent (diffusion) | None (mode averaging) |
| 轨迹 smoothness | Excellent | Very good | Poor (jerky) |
| Data efficiency (<50 demos) | Good | Moderate | Poor |
| Edge deployment feasibility | Excellent | Challenging | Trivial |
10.使用ACT与其他方法的时间
使用ACT 当:
- 你需要快速的部署.
- 你的任务有一个相对确定性的策略 (一个明确的方法).
- 你正在部署边缘硬件 (Jetson), 推断速度很重要.
- 你正在进行双手操作 (ACT是为ALOHA设计的).
- 你想要最简单的训练管道,
- 需要实时控制50Hz,在计算限制的平台上.
使用扩散政策:
- 您的示范包含了多种有效的策略,用于相同任务 (不同的操作员,模糊的把握).
- 需要在组装或插入任务上进行微米精度.
- 你有大量的数据 (200+个示例) 和计算预算.
- 您可以容忍较高的推理延迟 (云推理或桌面GPU).
使用VLA (OpenVLA, pi0) 当:
- 需要语言条件的多任务执行 ("选择红杯","堆积蓝色块").
- 您想利用预先训练的视觉语言表示来实现通用化.
- 你正在利用大型国家空间进行移动操作.
- 您可访问多GPU培训基础设施 (4
8 A100s).
在以下情况下,请继续使用 Simple BC:
- 你正在做原型,想要尽快进行训练.
- 您的任务非常短 (<20步),其中组合错误不是问题.
- 你在极其有限的硬件 (微控制器类) 上部署.
在RCSV收集ACT兼容机器人数据
斯威尔士国家安全委员会 (RCSV) 为ACT培训提供了端到端的数据收集:校准的领导跟随者硬件,训练有素的操作员,质量控制和LeRobot HDF5格式的交付.从2,500美元的试点 (50个任务上的示范) 开始,或扩展到8,000美元的完整数据活动.
根据"数据收集服务"的指导,







