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







