Blogに戻る

リアルロボット学習のための"ハグ・フェイス・レロボット"を始めました

LeRobot <unk>のインストール,データ収集,訓練 ACTまたは拡散政策,評価,データセット共有に関する実践ガイド

[ロボットデータ収集ガイド]

[←ブログ]

LeRobotはデータ収集から訓練された政策への 完全なパイプラインを 過去のどの枠組みよりも よりアクセス可能にする.

レロボットとは何か?

レロボットはハグジングフェイスのロボット学習図書館です.標準化されたデータセットフォーマット,訓練前のモデルとACT,拡散政策,TD-MPC2政策のためのトレーニングスクリプトのコレクションが増加しています. 標準化が以前のフレームワークの主要な違いである.LeRobotでサポートされているロボットに収集されたデータセットは,カスタマイズされたデータロードやフォーマット変換なしで,LeRobotのトレーニングスクリプトによって訓練することができます.

2025年初め,LeRobotは8000人以上のメンバー,コアチームからの毎週の研究更新,世界中の研究グループからのモデル動物園貢献を増加させるアクティブディスコードコミュニティを有している.オープンソースのロボット学習データ共有の事実上の標準となっています.

設置とハードウェアサポート

  • **インストール:****pip lerobotをインストールする. Python 3.10+, PyTorch 2.1+ を必要とする. 選択的なハードウェア依存性が別々にインストールされる (例えば,SO-100腕サポートのためにpip lerobotをインストールする).
  • SO-100 腕 ($300): 主要な低コストのサポートプラットフォーム. 5DOF リーダー+フォローワー テレオペレーション 腕は,コッチロボット.物理ロボット学習に新しいチームにとって最高の出発点
  • **ALOHA双手:**スタンフォード ALOHAとALOHA 2構成が含まれています. 14DOF合計 (7腕あたり),双手操纵研究のために使用されています.
  • OpenArm: コミュニティアダプターでサポートされています. RCSV OpenArm 7-DOF コンフィギュレーションは RCSVのLeRobot統合パッケージを通じて利用できます.

データ収集作業流

データ収集は自動的に標準化された HDF5 + MP4 データセットを生成します

  • ステップ 1 ロボットを設定する: シリアルポートとカメラインデックスを使用して,ロボットのYAML設定を編集する (例えば,レロボット/コンフィグス/ロボット/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

ACTトレーニングコマンド: python lerobot/scripts/train.py --policy act --dataset-id my_task_v1 --training.num_epochs 100.TensorBoardログで評価/成功率を監視する. 展開前に目標>70% 拡散政策は,より計算が必要ですが,通常は多模型の行動 (例えば,物体を把握する複数の有効なアプローチがある作業) で精度作業でより優れたパフォーマンスを達成します.

動物園モデルとゼロショットテスト

レロボットはHuggingFace Hubでプリトレーニングされたモデル動物園を保持しています. 2025年初頭から利用可能:ピックアップ,スタッキング,挿入作業のためのSO-100で訓練されたACTおよび拡散ポリシー;双手拭きと組み立てのためのALOHAポリシー.これらはハードウェアでゼロショットテストに使用できます.

プリ・トレーニング・ポリシーを実行するには: python lerobot/scripts/eval.py --pre-trained-policy-name-or-path lerobot/act_so100_pick_place --robot-path lerobot/configs/robot/so100.yaml.

レロボットデータセット フォーマット 深層ダイビング

データのセットのフォーマットを理解することはカスタム統合にとって不可欠です.LeRobotのデータセットは,パークレットファイル (構造データ) と 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

各パーケートファイルには: T5 (関節角 + 握り), T6 (ターゲット関節位置), T7, T8, T9の列が含まれています.カメラの観測は MP4ビデオ (H.264コード) として保存され,フレームインデックスがパーケートデータに並行されています.

プログラム的にデータセットをロードするには:

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]]

レロボットによる ACTトレーニング:ステップバイ・ステップ

キーハイパーパラメータを備えた完全な訓練コマンドは次のように説明します

# 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

調節するキーハイパーパラメータ:

  • 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50100です. 作業の大きさは50~100です.
  • kl_weight: CVAEの正常化制御.あまりにも低い (1):潜伏空間崩壊,多模的行動喪失.あまりにも高い (100):ポリシーは観測を無視する.サブセットに掃描 [1, 5, 10, 50]
  • 学習率: 1e-5は調整, 1e-4はゼロから訓練.訓練が不安定であれば2倍減少.

レロボットとの訓練 拡散政策

# 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-2000年までに高原を急上昇します.

データをハグ・フェイスハブに押し付け

# 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"

HuggingFace Hubのデータセットは,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%

地域社会と資源

  • 解散:** 8,000人以上のメンバー,活動している #Helpと #Showcaseチャンネル. ほとんどの質問は数時間で回答されています.
  • HuggingFace Hub: hf.co/lerobot - データセットとモデルの収集を拡大する. ロボットタイプまたはタスクによってフィルタ
  • 毎週更新: HuggingFaceの核心チームは, HuggingFaceブログに1〜2週間ごとに研究更新を投稿しています.
  • RCSV統合: RCSVの データプラットフォーム は,管理されたストレージ,注釈,トレーニングパイプライン輸出のためにLeRobot形式のデータセットを受け入れます.私たちの データ収集サービス はデフォルトでLeRobot形式のデータセットを配信します.

関連 読書

模倣学習ガイド · ACT対拡散政策 · オープンX体 · ロボット腕比較 · データ注釈 · データサービス · RCSVプラットフォーム

レロボットと互換性のあるデータ収集

RCSVはLeRobot形式でデータ収集出力を提供し,ACTまたは拡散政策訓練スクリプトで使用に準備ができています.

[データサービスを探求]