返回Blog

开始拥抱"面部"的机器人学习

实践指南 雷罗伯特 <unk>安装,数据收集,培训ACT或传播政策,评估和共享数据集.

部分: [机器人数据收集指南]

T19)

雷罗特使数据收集到训练有素的政策的整个管道比任何之前的框架更容易访问.

莱罗博是什么?

勒罗бот是HuggingFace的机器人学习库:一个标准化的数据集格式,不断增长的预训练模型和ACT,传播政策和TD-MPC2政策的训练脚本.所有这些都是MIT授权的,专注于真正的机器人部署而不是仅进行模拟研究. 与以前的框架的关键区别是标准化:在任何支持的机器人上与LeRobot收集的数据集可以通过任何LeRobot培训脚本进行培训,而不需要自定义的数据加载器或格式转换.

截至2025年初,乐罗波特拥有超过8,000名成员的活跃的Discord社区,核心团队每周更新研究,全球研究小组不断增长的动物园模型贡献.它已成为开源机器人学习数据共享的现实标准.

设备安装和硬件支持

  • 安装:*pip安装lerobot. 需要Python 3.10+,PyTorch 2.1+.可选的硬件依赖单独安装 (例如,SO-100臂支持的*pip安装lerobot[so100]).
  • SO-100手臂 ($300): 首要的低成本支持平台. 5DOF领导+后续的远程操作手臂来自科克机器人. 对于新入物理机器人学习的团队来说,最好的起点是低硬件风险,文档化好的配置文件.
  • **ALOHA双手动:**包括斯坦福ALOHA和ALOHA2配置.14DOF总量 (7个手臂),用于双手动操纵研究.
  • OpenArm: 通过社区适配器支持. RCSV OpenArm 7-DOF配置可通过 RCSV 的LeRobot集成包提供.

数据收集工作流程

数据收集自动生成一个标准化的 HDF5 + MP4 数据集:

  • 步骤 1 配置机器人: 使用串行端口和摄像头索引编辑机器人YAML配置 (例如,Lerobot/configs/robot/so100.yaml).
  • 步骤 2 记录数据集: python lerobot/scripts/record_dataset.py --robot-path lerobot/configs/robot/so100.yaml --num-episodes 50 --dataset-id my_task_v1.脚本处理相机之间的框架同步,HDF5节目编写,以及实时节目缩影生成.
  • 步骤3 审查节目: python lerobot/scripts/visualize_dataset.py --dataset-id my_task_v1 打开一个互动节目观看器.
  • 步骤 4 推向枢纽 (可选): python lerobot/scripts/push_dataset_to_hub.py --dataset-id my_task_v1 将上传到HuggingFace Hub进行共享或到RCSV的数据平台进行管理存储.

政策培训

Policy Command Training Time (200 demos, 1× GPU) Best For
ACT(Action Chunking with Transformers) --policy act ~4 hours Fast-moving tasks, reliable baseline
Diffusion Policy --policy diffusion ~12 hours 精度 tasks, multimodal behavior
TD-MPC2 --policy tdmpc ~8 hours Tasks with clear reward structure

训练命令: python lerobot/scripts/train.py --政策行为 --dataset-id my_task_v1 --training.num_epochs 100. 在部署前监测TensorBoard日志中的评估/成功率. 目标>70% 扩散政策需要更多的计算,但通常在多模式行为 (例如,在抓住物体的多种有效方法) 的精度任务上实现更好的性能.

动物园模型和零射击测试

勒罗бот在HuggingFace Hub上设有预训练的模型动物园.可自2025年初使用:在SO-100上训练的ACT和扩散政策,用于选择,堆叠和插入任务;双手擦除和组装的ALOHA政策.这些可以用于您的硬件上的零射击测试.

运行预先训练的政策: python lerobot/scripts/eval.py --pretrained-policy-name-or-path lerobot/act_so100_pick_place --robot-path lerobot/configs/robot/so100.yaml.

雷罗伯特数据集格式 深入潜水

了解数据集格式对于定制集成至关重要.LeRobot数据集使用Parquet文件 (用于结构数据) 和MP4视频 (用于摄像头观测):

my_dataset_v1/
  meta/
    info.json          # Dataset metadata (robot type, fps, features)
    episodes.jsonl     # Per-episode metadata (length, task description)
    tasks.jsonl        # Task definitions
  data/
    chunk-000/
      episode_000000.parquet   # State + action data per episode
      episode_000001.parquet
      ...
  videos/
    chunk-000/
      observation.images.top/
        episode_000000.mp4     # Camera feed per episode
      observation.images.wrist/
        episode_000000.mp4

每个Parquet文件包含以下列:T5 (关角 + 抓住器),T6 (目标关键位置),T7,T8T9. 摄像头观测被存储为MP4视频 (编码为H.264) 与与Parquet数据一致的框架指数.

为了编程地加载数据集:

from lerobot.common.datasets.lerobot_dataset import LeRobotDataset

# Load from local path or HuggingFace Hub
dataset = LeRobotDataset("lerobot/aloha_sim_insertion_human_image")

# Access episode data
episode = dataset[0]  # First frame of first episode
print(episode.keys())
# dict_keys(['observation.images.top', 'observation.state',
#            'action', 'episode_index', 'frame_index', 'timestamp'])

# Get all frames for episode 5
ep5_frames = [dataset[i] for i in dataset.episode_data_index["from"][5]:
                                    dataset.episode_data_index["to"][5]]

训练与LeRobot:一步一步

完全的训练指令,

# Train ACT on your custom dataset
python lerobot/scripts/train.py \
  --policy.type=act \
  --dataset.repo_id=my_org/my_task_v1 \
  --dataset.episodes=[0,1,2,3,4,5,6,7,8,9] \   # Specific episodes
  --training.num_epochs=2000 \
  --training.batch_size=8 \
  --policy.chunk_size=100 \         # Action chunk length
  --policy.kl_weight=10 \           # CVAE KL divergence weight
  --policy.n_action_steps=100 \     # Steps to execute per chunk
  --training.lr=1e-5 \              # Learning rate
  --training.save_freq=500 \        # Checkpoint every 500 epochs
  --output_dir=outputs/act_my_task

调节的关键超参数:

  • 子大小:** 50-100 对于大多数任务.较大的子减少了组合错误,但使预测问题更难.从100开始,如果训练损失平原,减少到50
  • 控制CVAE规则化.太低 (1):隐藏空间崩,多模式行为丢失.太高 (100):政策忽略观察.扫描 [1, 5, 10, 50]在子集.
  • 炼的速度:** 1e-5进行调整, 1e-4进行从头开始的训练.

培训与勒罗伯特的传播政策

# Train Diffusion Policy
python lerobot/scripts/train.py \
  --policy.type=diffusion \
  --dataset.repo_id=my_org/my_task_v1 \
  --training.num_epochs=4000 \
  --training.batch_size=64 \
  --policy.n_action_steps=8 \       # Prediction horizon
  --policy.n_obs_steps=2 \          # Observation history length
  --policy.num_inference_steps=10 \ # DDIM steps (10 for speed)
  --training.lr=1e-4 \
  --output_dir=outputs/dp_my_task

散政策的速度比ACT慢2-3倍,但在精度任务上通常表现更好. 在 TensorBoard 中监测T10指标 - - 它通常在500-1000年代左右急剧上升,2000-3000年高原.

推数据集到"拥抱面孔中心"

# Push your dataset to HuggingFace Hub for sharing
huggingface-cli login  # One-time authentication
python lerobot/scripts/push_dataset_to_hub.py \
  --local-dir outputs/my_task_v1 \
  --repo-id my_org/my_task_v1 \
  --tags "openarm,pick-place,tabletop"

接面孔中心的数据集可以立即被任何安装的 LeRobot 的人使用.添加描述标签使您的数据集可发现.RCSV 的数据集可在Hub 上使用 T11组织下.

常见的错误和纠正

Error Cause Fix
RuntimeError: CUDA out of memory Batch size too large for GPU VRAM Reduce batch_size to 4 or 2; use gradient accumulation
ValueError: mismatched state dim Robot config does not match dataset DOF Check robot YAML: state_dim must match observation.state columns
Camera not found at index N USB camera enumeration changed Run v4l2-ctl --list-devices and update camera_index in YAML
Serial port permission denied User not in dialout group sudo usermod -aG dialout $USER then log out/in
Policy outputs all zeros KL collapse in ACT training Increase kl_weight to 50; use KL warmup schedule
Video frames out of sync with state USB bandwidth saturation Use USB3 cameras on separate USB controllers; reduce resolution to 480p

绩效基准

使用LeRobot的参考实现的标准任务预期性能:

Task Platform Demos ACT Success DP Success
Pick-place (single object) SO-100 50 75-85% 70-80%
Stacking (2 blocks) SO-100 100 60-75% 65-80%
Bimanual handover ALOHA 200 80-90% 75-85%
Insertion (peg-in-hole) OpenArm 200 50-65% 60-75%

社区和资源

  • 们在们的们里,我们都在们的们里,
  • HuggingFace Hub: hf.co/lerobot -- 越来越多的数据集和模型.
  • 每周更新: 核心HuggingFace团队每1-2周都在HuggingFace博客上发布研究更新.
  • **RCSV集成:**RCSV的 数据平台 接受LeRobot格式数据集用于管理存储,注释和培训管道出口.我们的 数据收集服务 默认提供LeRobot格式的数据集.

相关阅读

模仿学习指南 · 行动与传播政策 · 开放X体 · 机器人臂比较 · 数据注释 · 数据服务 · RCSV平台

雷罗伯特兼容的数据收集

基于CMSV的数据收集输出,可在LerRobot格式中提供数据收集输出,可与ACT或传播政策培训脚本一起使用.

[查看数据服务]