LeRobot documentation
ACT(基于 Transformer 的动作分块)
快速入门
教程
用于机器人的模仿学习LeLab - Lerobot GUI添加策略自带硬件使用 RL 训练机器人在模拟环境中训练 RL多 GPU 训练人工参与的数据收集使用 PEFT(例如 LoRA)进行训练使用重命名映射和空相机
计算与硬件
数据集
策略
ACTSmolVLAπ₀ (Pi0)π₀-FAST (Pi0Fast)π₀.₅ (Pi05)FineART-VLAMolmoAct2VLA-JEPALaWAMEO-1LingBot-VALingBot-VLA 2.0OpenGalaxea G0.5FastWAMLong-WAMFLUX 3 Action (flux3)EVO1NVIDIA GR00TX-VLA多任务 DiT 策略WALL-OSSWall-OSS-0.5DM05Cosmos3
奖励模型
推理
模拟
基准测试
添加基准测试LIBEROLIBERO-plusMeta-WorldRoboTwin 2.0RoboCasa365RoboCerebraNVIDIA RoboLabRoboMMENVIDIA IsaacLab Arena 环境VLABench
机器人处理器
机器人
SO-101SO-100Koch v1.1LeKiwiHope JrReachy 2Unitree G1Earth Rover MiniOMXOpenArmreBot B601YAM第三方机器人 & 遥操作器
远程操作员
传感器
资源
关于
API 参考
ACT(基于 Transformer 的动作分块)
ACT 是一种轻量且高效的模仿学习策略,尤其适用于精细操作任务。由于其训练速度快、计算要求低且性能出色,它是我们在 LeRobot 中建议初学者首先使用的模型。
观看 LeRobot 团队的这段教程,了解 ACT 的工作原理:LeRobot ACT 教程
模型概览
基于 Transformer 的动作分块(ACT)由 Zhao 等人在论文 Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware 中提出。该策略旨在利用低成本硬件和极少的演示数据,实现精确且接触密集的操作任务。
为什么 ACT 非常适合初学者
ACT 之所以脱颖而出,成为出色的起点,有以下几个原因:
- 快速训练:在单个 GPU 上数小时内完成训练
- 轻量级:仅约 8000 万参数,高效且易于使用
- 数据高效:通常仅需 50 个示例即可实现高成功率
架构
ACT 采用基于 Transformer 的架构,包含三个主要组件:
- 视觉骨干网络:ResNet-18 处理来自多个相机视角的图像
- Transformer 编码器:综合来自相机特征、关节位置以及学习到的潜在变量的信息
- Transformer 解码器:使用交叉注意力生成连贯的动作序列
该策略的输入为:
- 多张 RGB 图像(例如,来自腕部相机、正面/顶部相机)
- 当前机器人关节位置
- 潜在风格变量
z(在训练期间学习,在推理期间设置为零)
并输出 k 个未来动作序列的片段。
安装要求
- 按照我们的安装指南安装 LeRobot。
- ACT 已包含在 LeRobot 的基础安装中,因此无需额外的依赖项!
训练 ACT
ACT 与标准的 LeRobot 训练流程无缝集成。以下是在您的数据集上训练 ACT 的完整示例:
lerobot-train \
--dataset.repo_id=${HF_USER}/your_dataset \
--policy.type=act \
--output_dir=outputs/train/act_your_dataset \
--job_name=act_your_dataset \
--policy.device=cuda \
--trackio.enable=true \
--policy.repo_id=${HF_USER}/act_policy训练技巧
- 从默认值开始:ACT 的默认超参数在大多数任务中表现良好
- 训练时长:在单个 GPU 上完成 100k 训练步预计需要数小时
- 批大小:从批大小 8 开始,并根据您的 GPU 内存进行调整
使用 Google Colab 进行训练
如果您的本地计算机没有高性能 GPU,可以按照 ACT 训练笔记本 使用 Google Colab 来训练您的模型。
评估 ACT
训练完成后,您可以使用 lerobot-rollout 在机器人上评估您的 ACT 策略。以下命令将运行该策略 60 秒且不记录任何内容(对于 ACT,可以省略 --task)。有关记录评估回合的策略,请参阅 策略部署。
lerobot-rollout \
--strategy.type=base \
--policy.path=${HF_USER}/act_policy \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
--display_data=true \
--task="Your task description" \
--duration=60