Zurück zu Blog

Beginn mit der Umarmung von LeRobot für echtes Roboternutzen

Praktische Leitfaden für die Installation von LeRobot <unk>, Datenerhebung, Ausbildung ACT oder Diffusionpolitik, Bewertung und Weitergabe von Datensätzen.

Teil von: [Roboter-Daten-Sammlungsanleitung]

← Blog

LeRobot macht die gesamte Pipeline von der Datenerfassung bis hin zu geschultem Politik mehr zugänglich als jedes frühere Framework.

Was ist LeRobot?

LeRobot ist HuggingFace's Roboter-Lernbibliothek: ein standardisiertes Datensatzformat, eine wachsende Sammlung von vorgeübten Modellen und Trainingsskripten für ACT, Diffusionspolitik und TD-MPC2-Politiken alle MIT lizenziert mit einem Fokus auf echte Roboter-Entwicklung und nicht nur simulierte Forschung. Der Schlüsseldifferenzierender von früheren Rahmenbedingungen ist die Standardisierung: Ein mit LeRobot auf jedem unterstützten Roboter gesammeltes Datensatz kann ohne benutzerdefinierte Datenladen oder Formatkonvertierung von LeRobot-Schulsschriften ausgebildet werden.

Ab Anfang 2025 hat LeRobot eine aktive Discord-Community mit über 8.000 Mitgliedern, wöchentliche Forschungsupdates vom Kernteam und wachsende Modell-Zoo-Beiträge von Forschungsgruppen weltweit.

Installation und Hardware-Unterstützung

  • **Installation:****pip Installation lerobot. Python 3.10+, PyTorch 2.1+ erforderlich. Optional Hardware-Abhängigkeiten separat installiert (z.B. pip Installation lerobot[so100] für SO-100 Arm Support).
  • SO-100-Arm ($300): Die primäre kostengünstige unterstützte Plattform. 5-DOF-Leader+folger Teleoperationsarm von Koch Robotics. Beste Ausgangspunkt für Teams, die neu im physischen Roboter-Lernen sind geringes Hardware-Risiko, gut dokumentierte Konfigurationsdateien.
  • ** ALOHA-Bimanual:** Stanford ALOHA und ALOHA 2 Konfigurationen enthalten. 14 DOF insgesamt (7 pro Arm), für die Forschung der manipulationstechnischen Bearbeitung.
  • OpenArm: Unterstützt über den Community-Adapter. RCSV OpenArm 7-DOF-Konfiguration ist über das LeRobot-Integrationspaket von RCSV verfügbar.

Datenerhebung-Arbeitsfluss

Die Datenerfassung erzeugt automatisch einen standardisierten HDF5 + MP4-Datenbestand:

  • Schritt 1 Robotern einrichten: Bearbeiten Sie die YAML-Konfiguration für Ihren Roboter (z.B. lerobot/configs/robot/so100.yaml) mit Ihren Serienport- und Kameraindex.
  • Schritt 2 Datensatz aufzeichnen: ** python lerobot/scripts/record_dataset.py --robot-path lerobot/configs/robot/so100.yaml --num-episodes 50 --datensatz-id my_task_v1**. Das Skript verwaltet die Bildsynchronisierung über Kameras, HDF5-Episode-Schreiben und Echtzeit-Episode-Tumbnail-Generation.
  • Schritt 3 Überprüfung der Episoden: ** ** Python lerobot/scripts/visualize_dataset.py --dataset-id my_task_v1 öffnet einen interaktiven Episode-Bewirrer. Flag versagte Episoden für Ausschluss vor dem Training.
  • Schritt 4 Push to hub (optional): Python lerobot/scripts/push_dataset_to_hub.py --dataset-id my_task_v1 wird zum Teilen in HuggingFace Hub oder zur Datenplattform von RCSV für die verwaltete Speicherung hochgeladen.

Politikbildung

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 Präzision tasks, multimodal behavior
TD-MPC2 --policy tdmpc ~8 hours Tasks with clear reward structure

ACT-Ausbildungsbefehl: python lerobot/scripts/train.py --political act --dataset-id my_task_v1 --training.num_epochs 100. Monitor eval/success_rate in der TensorBoard-Log. Ziel >70% vor dem Einsatz. Die Diffusionspolitik erfordert mehr Rechenleistung, erreicht aber in der Regel bessere Leistung bei Präzisionsarbeiten mit multimodalem Verhalten (z.B. Aufgaben, bei denen mehrere gültige Ansätze zur Erfassen eines Objekts vorhanden sind).

Modell Zoo und Tests mit Null-Shot

LeRobot unterhält einen vorgeübten Modell-Zoologischen Zoo auf HuggingFace Hub. Ab Anfang 2025 verfügbar: ACT- und Diffusionsrichtlinien für die Auswahl, Stapel- und Einfügungsaufgaben auf SO-100 ausgebildet; ALOHA-Richtlinien für das zweimanschließende Löschen und Montage. Diese können für Null-Shot-Tests auf Ihrer Hardware verwendet werden.

Um eine vorgebildete Politik auszuführen: python lerobot/scripts/eval.py --pre-trained-policy-name-or-path lerobot/act_so100_pick_place --robot-path lerobot/configs/robot/so100.yaml.

LeRobot Datensatz Format Tiefen Tauch

Das Verständnis des Datensatzmatts ist für benutzerdefinierte Integrationen unerlässlich.

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

Jede Parquet-Datei enthält Spalten für: T5 (Gelenkwinkel + Griff), T6 (Zielgelenkpositionen), T7, T8 und T9. Die Kamerabeobachtungen werden als MP4-Videos (H.264 kodiert) mit Rahmenindizes gespeichert, die auf die Parquet-Daten ausgerichtet sind.

Um einen Datensatz programmatisch zu laden:

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-Schulung mit LeRobot: Schritt für Schritt

Ein komplettes Trainingskommando mit den wichtigsten Hyperparametern erklärte:

# 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

Schlüssel-Hyperparameter zur Abstimmung:

  • chunk_size: 50-100 für die meisten Aufgaben. Größere Stück reduzieren den Kompositionsfehler, machen aber das Vorhersageproblem schwieriger. Beginnen Sie mit 100 und reduzieren Sie es auf 50 wenn Training Verlust Plateaus.
  • kl_gewicht: Steuerung der CVAE-Regulierung. Zu niedrig (1): Latentraum kollabiert, Multimodales Verhalten verloren geht. Zu hoch (100): Politik ignoriert Beobachtungen.
  • Lernquote: 1e-5 für Fein-Tuning, 1e-4 für Training von Grund auf.

Ausbildungs- und Diffusionspolitik mit LeRobot

# 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

Die Diffusion Policy ist 2-3x langsamer als ACT, erreicht aber oft bessere Leistung bei Präzisionsarbeiten.

Das Schieben von Datensätzen auf HuggingFace Hub

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

Die Datensätze auf HuggingFace Hub sind sofort nutzbar für alle mit LeRobot installiert.

Häufige Fehler und Lösungen

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

Leistungsbezogene Benchmarks

Erwartete Leistung für Standardaufgaben mit den Referenzimplementierungen von 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%

Gemeinschaft und Ressourcen

  • Discord: 8.000+ Mitglieder, aktive #Help und #Showcase Kanäle.
  • HuggingFace Hub: hf.co/lerobot -- wachsende Sammlung von Datensätzen und Modellen. Filter nach Robotertyp oder Aufgabe.
  • Wöchentliche Updates: Das Kernteam von HuggingFace veröffentlicht Forschungsupdates auf dem HuggingFace Blog alle 1-2 Wochen.
  • RCSV-Integration: Die Datenplattform von RCSV akzeptiert LeRobot-Format-Datenmengen für die verwaltete Speicherung, Annotation und den Ausland der Trainingspipeline.

Verwandte Lesungen

Ausbildungsanleitung · Aktivität gegen Verbreitungspolitik · Offene X-Einheit · Roboterarmvergleich · Datenanmeldung · Datendienste · RCSV-Plattform

LeRobot-kompatible Datenerfassung

RCSV liefert Daten-Sammel-Ausgänge im LeRobot-Format, die bereit sind, mit ACT- oder Diffusionpolitik-Schulungsskripten zu bedienen.

[Erforschung der Datendienste]