Zurück zu Learn

Wie man einen LeRobot-kompatiblen Datensatz aufzeichnet

Verwenden Sie das Lerobot-Aufzeichnungs-CLI, um auf Episode basierende Parket- + Videochrottes zu erfassen.

LeRobot ist der Open-Source-Roboter-Learning-Stack von Hugging Face. Das Datensatzformat ist das Standard für das imitierte Lernen im Arm-Skala geworden: Episode-basiert, Parket + Video-Shards, selbstbeschreibende Metadaten, HuggingFace Hub nativer.

Datenerhebung Gesamtzeit: ca. 2 Stunden Schwierigkeiten: Anfänger Aktualisiert April 2026

Was Sie erreichen werden

Am Ende dieses Tutorials haben Sie: einen 50-episodigen LeRobot-Datensatz auf der Festplatte, eine visuelle Inspektion über ihn, Normungsstatistiken und einen öffentlichen oder privaten Datensatz, der im HuggingFace Hub veröffentlicht wird. Dieser Datensatz ist sofort kompatibel mit LeRobot-Politik-Schulung (ACT, Diffusion Policy, VLA-Chefs), Referenzimplementierungen und Community-Evaluierung.

Das LeRobot Datensatzformat speichert jede Episode als Zeilenbereich in einer Parquet-Datei mit gemeinsamen Zuständen, Aktionen und Verweisen auf Videokadern, die in separaten MP4-Shards gespeichert sind. Das Format ist so konzipiert, dass es effizient vom Hub aus streamt, sauber in PyTorch DataLoaders geladen und über eine JSON-Metadatendatei selbst beschreibt.

Voraussetzungen

  • Ein LeRobot-unterstützter Roboterarm. SO-100 / SO-101, OpenArm, Koch v1.1, Moss, Aloha, WidowX, UR-Serie die unterstützte Liste wächst regelmäßig.
  • ** Mindestens eine Kamera.** USB-Webcam oder Intel RealSense Handgelenk + Top-Down ist ideal.
  • Ubuntu 22.04 Arbeitsstation mit Python 3.10+ und ffmpeg.
  • HuggingFace-Konto für die Veröffentlichung (optional).
  • Wenn Sie auch eine Teleop-Rechneranlage benötigen, lesen Sie das [ALOHA Teleop-Tutorial]T26) für das zweibrochige oder einen Führungskräfte-Follower-Leitfaden für die [Akademie]T27) für die Einarms.

Die Schritte

  1. Installieren Sie LeRobot

Installieren Sie LeRobot von Pip.

```
conda create -n lerobot python=3.10 -y
conda activate lerobot
pip install --upgrade pip
pip install lerobot

# hardware-specific extras (pick yours)
pip install 'lerobot[feetech]'    # SO-100, Koch
pip install 'lerobot[dynamixel]'  # Aloha, WidowX
pip install 'lerobot[intelrealsense]'  # for RealSense cameras
```

Überprüfen Sie die Installation: T7. Überprüfen Sie nach oben unter github.com/huggingface/lerobot für die aktuelle unterstützte Hardware-Matrix das Projekt bewegt sich schnell.

  1. Kalibrieren Sie Ihren Arm

Jeder unterstützte Arm hat einen Kalibrier-Unterbefehl.

```
lerobot-calibrate \
  --robot.type=so100 \
  --robot.port=/dev/ttyACM0
```

Dies entdeckt die Motor-IDs, setzt die Gelenk-Null-Positionen und speichert die Kalibrierung auf T8.

  1. Überprüfen Sie die Kameras und die Teleopie

Führen Sie eine Teleop-Sitzung mit einer Live-Vorsicht durch , um alles zu überprüfen:

```
lerobot-teleoperate \
  --robot.type=so100 \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras='{"top": {"type":"opencv","index":0}, "wrist": {"type":"opencv","index":2}}' \
  --display_data=true
```

Bestätigen Sie, dass beide Kameras mit 30 FPS ohne Zerreißen streamen, die Armspuren sauber und das Vorschauffenster aktualisiert werden.

  1. Definieren Sie die Aufgabe und Anweisungen

Wählen Sie eine gut definierte Aufgabe für Ihren ersten Datensatz. "Wichnen Sie den roten Kubus und legen Sie ihn in die blaue Schüssel" schlägt "Tut Dinge mit den Kuben" jedes Mal. Ihre natürliche Sprache-Anweisung wird buchstäblich auf jeder Episode gespeichert und wird der einzige Text, der eine nachgelagerte Richtlinie sieht.

Richtlinie: halten Sie die Aufgabenerfolgskriterien binär und beobachtbar aus den Daten. "Kübe ist in der Schale" ist klar. "Kübe wird sanft platziert" ist nicht.

    • Erzähl 50 Episoden.

Jetzt das Hauptveranstaltungsstück. 50 Episoden mit dem T9 CLI aufnehmen. Die Flaggennamen bewegen sich leicht zwischen den Veröffentlichungen das allgemeine Invokationsmuster ist:

```
lerobot-record \
  --robot.type=so100 \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras='{"top": {"type":"opencv","index":0}, "wrist": {"type":"opencv","index":2}}' \
  --dataset.repo_id=<your-username>/red_cube_blue_bowl \
  --dataset.num_episodes=50 \
  --dataset.single_task="Pick the red cube and place it in the blue bowl." \
  --dataset.fps=30 \
  --dataset.episode_time_s=20
```

Zwischen den Episoden, die Szene auf eine etwas andere anfängliche Konfiguration zurücksetzen variieren Würfelposition, Schale Position, Lichtwinkel. Dies ist der größte Faktor, wie gut eine ausgebildete Politik verallgemeinert. Nehmen Sie Pausen. Betreiber Müdigkeit nach ~ 30 Episoden ist real; die Qualität Ihrer letzten 20 Demo zählt mehr als Sie denken.

  1. Überprüfen Sie den Datensatz

Durchsuchen Sie Episoden mit dem eingebauten Visualizer:

```
lerobot-dataset-visualize --repo-id=<your-username>/red_cube_blue_bowl
```

Beobachten Sie: Kamera-Abfälle, Gelenkschaltungen, Episoden, in denen Sie die Aufgabe verpasst haben, Frame-Rate-Variabilität.

  1. Lassen Sie schlechte Episoden fallen und berechnen Sie Statistiken

Entfernen Sie versagte oder durcheinander gestörte Episoden aus dem Datensatz Metadaten. LeRobot unterstützt das Filtern nach Episodeindex. Nach der Reinigung wird die Normalisierungstatistik (Mittel / Std pro Aktion und Zustanddimension) neu berechnet, so dass das Nachströmen-Training korrekte Werte verwendet.

  1. Schieb zum Hub "Hugsface"

Sie können sich einmal mit T12 authentifizieren, dann drücken.

```
huggingface-cli upload <your-username>/red_cube_blue_bowl \
  ~/.cache/huggingface/lerobot/<your-username>/red_cube_blue_bowl \
  --repo-type=dataset
```

Der Datensatz ist jetzt öffentlich (oder privat). Sie können ihn überall mit T14 laden. Trainieren Sie eine Basis-ACT-Politik mit einem Befehl, um zu validieren.

Was soll ich jetzt tun?

Wenn Sie einen sauberen LeRobot-Datensatz haben, werden zwei hochwertige Follow-ups durchgeführt: (1) eine Richtlinie darauf auszubilden ACT ist die einfachste erste Basislinie, und (2) [Fine-Tune OpenVLA]T29) auf dem Datensatz, um sich mit der ACT-Baseline zu vergleichen. Wenn Sie auf eine ernsthafte Datenerhebung aussteigen, ist der [ALOHA-Bimanual-Teleop]T30) der nächste Schritt in der Hardware; für Humanoiden, beginnen Sie mit [Unitree G1 Kamera Kalibrierung]T31).

Häufige Ausfallmodi

Episoden haben unterschiedliche Länge: Erwartet LeRobot-Pads während des Trainings.

** Große Datensatzgröße:** LeRobot Video-Shards sind H.264-kodiert. Wenn Größe immer noch ein Problem ist, fallen Sie auf 15 FPS oder 480p für Kameras, die keine höhere Auflösung benötigen.

Politiküberschreitungen sofort: Nicht genug Szenenvariationen während der Sammlung.

Hub-Upload versagt: Normalerweise gibt es Repo- oder Berechtigungsfehler. Erstellen Sie das Repo zuerst mit T15.

Tiefschwimmen: das Format des LeRobot-Datensatzes

Das LeRobot Datensatz-Layout auf der Festplatte: ein oberste Ebene Verzeichnis mit T16, T17, T18, einem T19 Ordner mit Parquet-Shards (in der Regel eine pro Episode) und einem T20 Ordner mit MP4-Shards. Die Parquet-Räufen sind die Skalier- und Referenzen pro Zeitstufe; die MP4 enthalten die Bildbeobachtungen, die durch Rahmenindex verwiesen werden.

Dieses Design ist bewusst: Skalier im Parket bieten schnellen Spaltenzugriff für das Batchdateladen, und MP4 bieten eine ordnungsgemäße Kompression auf Festplatte besser als Bilddateien pro Bildrahme, ohne zufälligen Zugriff zu opfern. H.264 in CRF 18 ist fast ohne Verlust für Manipulation; CRF 23 gibt Ihnen ungefähr 3x kleinere Dateien ohne sichtbare Qualitätsbewirkung auf die Politikbildung für die meisten Aufgaben.

Tiefe Tauch: Schauplatzvariation ist die größte Qualitätslenkung

Wenn Sie 2 Stunden Zeit haben, um zu filmen, verbringen Sie die ersten 30 Minuten der Planung der Szenenvariation, nicht die ersten 90 Minuten der Aufnahme von Ausgangs-Episoden.

  • Objektposition. Mindestens 10 Startpositionen in einem Raster über den Arbeitsplatz.
  • Beleuchtung. Oberflächlich fluoreszierender/warmer/natürlicher Fenster Mindest 3 Bedingungen.
  • Ablenker. Fügen Sie zwei bis drei irrelevante Gegenstände halb auf den Tisch.
  • Hintergrund. Drehen Sie sich durch 2 oder 3 Tischoberflächen oder Tischoberflächen.
  • Anweisungsphrasen. "Nimm den roten Würfel und leg ihn in die Schüssel" / "setze den roten Würfel in die blaue Schüssel" / "beweg den roten Würfel in die Schüssel". Drei Phrasen pro Aufgabe sind ein gutes Minimum.

Tiefschwimmen: von der Aufnahme bis zum Training in einem Nachmittag

Der ganze Punkt bei der Aufzeichnung eines LeRobot-Datensatzes ist es, eine Richtlinie darüber zu trainieren. Das Baseline-Rezept ist, sobald die Aufzeichnung abgeschlossen ist: T22. Auf einer einzigen GPU passt eine ACT-Richtlinie zu 50 Episoden in etwa 45 Minuten bis 2 Stunden. Sie sollten einen stetig abnehmenden Verlust und einen Aktionsraumfehler sehen. Beurteilen Sie den echten Roboter, indem Sie den ausgebildeten Checkpoint mit T23 ausführen. Wenn Ihr Datensatz sauber war, sollten Sie bei der geschulten Aufgabe mit 50 Episoden 70%+ Erfolg und bei 100 Episoden 85%+ Erfolg sehen.

Tiefschwimmen: wann man aufhört zu filmen und mit dem Training beginnt

Die richtige Heuristik: trainieren Sie nach 25 Episoden eine Basis-ACT-Politik, messen Sie den Erfolg und stoppen Sie, wenn sich die Erfolgskurve flach macht. Sie werden oft eine abnehmende Rendite von 80 bis 150 Episoden für eine einzelne Aufgabe erzielen.

Häufig gestellte Fragen

** Kann ich meinen eigenen benutzerdefinierten Roboter mit LeRobot verwenden?** Ja. Implementieren Sie eine Python-Klasse, die mit der LeRobot T24-Schnittstelle übereinstimmt Verbinden, trennen, gemeinsame Positionen lesen, Aktionen senden, Kamera-Räume lesen.

** Wie groß ist ein typischer 50-Episoden-Daten-Set?** Ungefähr 1 bis 5 GB je nach Kamerazahl und Auflösung.

** Kann ich Simulationsdaten aufnehmen?** Ja LeRobot unterstützt Sim-Envs (ALOHA, PushT, Xarm).

Was ist mit der Proprio-Empfangsfähigkeit über die Gelenkswinkeln hinaus? LeRobot unterstützt willkürliche Zustandsdimensionen.

Verwandte Tutorials und Ressourcen