リアルロボット学習のための"ハグ・フェイス・レロボット"を始めました
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
各パーケートファイルには:
プログラム的にデータセットをロードするには:
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
調節するキーハイパーパラメータ:
- 作業の大きさは50
100です. 作業の大きさは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で
データをハグ・フェイスハブに押し付け
# 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で
常見な誤りと修正
| 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または拡散政策訓練スクリプトで使用に準備ができています.
[データサービスを探求]







