Wie man Roboter-Trainingdaten sammelt
Vollständiger Leitfaden zur Erhebung hochwertiger Roboter-Trainingdaten über Teleoperation <unk> Hardware-Setup, LeRobot-Aufnahme, RLDS-Format, Qualitätsscoring und Datensatzvorbereitung.
Vollständiger Leitfaden zur Erhebung qualitativ hochwertiger Roboter-Trainingdaten über Teleoperation
Zwischenzeit
1. Hardware 2. Installieren Sie 3. Konfigureren Sie 4. Teleop Setup 5. Aufnehmen 6. Überprüfung 7. RLDS Konvertieren 8. Hochladen 9. Qualitätsprüfung 10. Vorbereiten für VLA
Voraussetzungen
- Ein Roboterarm (OpenArm, SO-100, Aloha, Koch, UR5 oder ähnlich)
- Mindestens eine RGB-Kamera (auf dem Handgelenk montiert bevorzugt) + eine externe Kamera
- Ein Teleoperations-Eingangseinrichtung (Leader Arm, SpaceMouse oder Tastatur)
- ROS2 Humble installiert ([siehe unseren ROS2-Setup-Leitfaden](
T12 )) - Python 3.10+ mit Pip
- Ubuntu 22.04 mit NVIDIA GPU (für Visualisierung und zukünftige Ausbildung)
Was du bauen wirst
Am Ende dieses Tutorials haben Sie eine vollständige Datenerfassung: Teleoperationshardware konfiguriert, LeRobot-Episoden der Roboter-Aufgaben aufzeichnet, qualitativ ausgezeichnete Demonstrationen und ein Datensatz im RLDS-Format, der auf HuggingFace Hub
Daten-Sammlungspipeline
Teleop-Eingabe Führerarm / SpaceMouse
Die
Roboterarm Gemeinsame Staaten + Aktionen
Die
Kameras Handgelenk + externe RGB(D)
Die
LeRobot Aufzeichnung & Synchronisierung
Die
RLDS Datensatz Umarmung
1
Hardwareanforderungen
Eine komplette Datenerfassung besteht aus vier Komponenten.
| Component | Recommended | Budget |
|---|---|---|
| Robot arm | OpenArm ($2,400) or Aloha ($20K+) | SO-100 ($200 DIY kit) |
| Wrist camera | Intel RealSense D405 ($300) | USB webcam ($30) |
| External camera | Intel RealSense D435 ($350) | Logitech C920 ($70) |
| Teleop device | Leader arm (matched pair) | 3Dconnexion SpaceMouse ($130) |
** Budget-Pfad:** Ein SO-100-Arm mit zwei Webcams und einer SpaceMouse ermöglicht Ihnen, Daten für weniger als 500 US-Dollar insgesamt zu sammeln.
2 .
Installieren Sie LeRobot
LeRobot ist Hugging Face's Open-Source-Toolkit für Roboter-Lernen. Installieren Sie es in einer virtuellen Umgebung, um Abhängigkeitskonflikte zu vermeiden.
Kopieren Sie# Erstellen und aktivieren Sie virtuelle Umgebung python3 -m venv ~/lerobot_env Quelle ~/lerobot_env/bin/activate # Installieren Sie LeRobot mit allen Extras für die Datenerhebung Pip Installieren "lerobot[all]" # Oder installieren Sie von der Quelle für die neuesten Funktionen git clone
Kopieren# Installieren Sie zusätzliche Abhängigkeiten für die Kameraaufzeichnung Pip Installieren opencv-python pyrealsense2 h5py # Für HuggingFace Hub Uploads Pip Installieren huggingface_hub huggingface-cli Login
3
Konfiguration Ihres Roboters in LeRobot
LeRobot verwendet YAML-Konfigurationsdateien, um die Eigenschaften Ihres Robots zu definieren.
Kopieren# Erstellen von Roboterkonfigurationsverzeichnis mkdir -p ~/lerobot_configs # Beispielkonfiguration für OpenArm (als openarm.yaml gespeichert) Katze > ~/lerobot_configs/openarm.yaml << 'EOF' Roboter: Typ: Openarm Port: /dev/ttyUSB0rate: 1000000 Gelenke: - Name: Schulter_Pan id: 1 min: -3.14 max: 3.14 - Name: Schulter_lift id: 2 min: -1.57 max: 1.57 - Name: Ellbogen id: 3 min: -2.35 max: 2.35 - Name: Handgelenk_Pitz id: 4 min: -1.57 max: 1.57 - Name: Handgelenk_Foll: 5 min: -3.14 - 3.14 min: Handgelenk-Name: Heite: 6: 1.0: Heiten: 1.0: 0: 0: 0: 0: 0: 30 cm: 0: 0: 30 cm: 0: 0: 0: 0: 30 cm: 0:
** Wichtig:** Kamera-Index (
4
Einrichten von Teleoperations-Interface
Sie haben zwei Hauptoptionen für die Steuerung des Roboters während der Demonstrationen: ein Lead-Follower-Arm-Paar (beste Qualität) oder eine SpaceMouse (zugänglicher).
**Auswahl A: Führungskräfte-Follower-Arme (empfohlen) **
Kopieren Sie# Konfiguration Führerarm (der Sie physisch bewegen) lerobot kalibrieren \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --leader-port=/dev/ttyUSB1 # Dies führt eine Kalibrierungsroutine aus
Option B: SpaceMouse
Kopieren# Installieren SpaceMouse-Treiber pip Installieren pyspacemouse # Test SpaceMouse-Verbindung python3 -c "Import pyspacemouse; m = pyspacemouse.open(); print('SpaceMouse connected') " # Konfigureren SpaceMouse in LeRobot Lerobot kalibrieren \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --teleop=spacemouse
Welche zu wählen? Leader-Follower-Arme erzeugen natürliche Demonstrationen, da Ihre Handbewegungen direkt an die Gelenke des Roboters kartiert werden.
5
Erste Episoden aufnehmen
Eine "Episode" ist eine vollständige Demonstration einer Aufgabe von Anfang bis Ende. Beginnen Sie mit einer einfachen Aufgabe wie dem Abholen eines Blocks und dem Platzieren in einer Zieltone.
Kopieren# Aufzeichnen Sie Episoden in einen lokalen Datensatz Leserobot Aufzeichnen \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --leader-port=/dev/ttyUSB1 \ --fps=30 \ --task="pick_red_block_place_target" \ --num-episodes=10 \ --output-dir=~/datasets/openarm_stop_pick_place # Kontrollen während der Aufnahme: # Eingabe
Jede Episode wird mit synchronisierten Daten gespeichert:
~/datasets/openarm_pick_place/
Episodenzahlrichtlinien: Für eine Einfach-Aufgabe-Politik (ACT, Diffusion Policy) sammeln Sie 50
6
Überprüfungs- und Qualitäts-Score-Episoden
Nicht jede Episode ist nutzbar. Überprüfen Sie Ihre Aufnahmen, entfernen Sie versagte Demonstrationen und berechnen Sie Qualitätsmesswerte.
Kopieren# Visualisieren Sie eine bestimmte Episode lerobot Visualisieren-Datensatz \ --datensatz-Path=/datensätze/openarm_pick_place \ --episode=0 # Wiederholen Sie die Episode auf dem Roboter (optional /datensätze/openarm_pick_place \ --episode=3
Mark versagte Episoden für die Entfernung:
Kopieren# Berechnen Sie Qualitätsmetriken für alle Episoden python3 -c " Import numpy als np Import json, os, glob Datensatz_dir = os.path.expanduser('~/datasets/openarm_pick_place') Episoden = sortiert(glob.glob(os.path.join(datensatz_dir, 'episode_*'))) für ep_dir in Episoden: actions = np.loados.path.join((ep_dir, 'actions.npy')) # Glatheit: lower jerk = better demonstration jerk = np.diffactions, n=3, axis=0) Glatheit = (1.0 + np.meanp.abs.namebjerk(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
Durchschnittliche Qualitätsregel: Zielen Sie auf eine Erfolgsrate von mehr als 90% in Ihrem Enddatensatz. Verwerfen Sie Episoden, in denen der Roboter das Objekt fallen ließ, mit dem Tisch kollidierte oder sich ungeschickt bewegt hat.
7
Umwandeln auf RLDS-Format
RLDS (Reinforcement Learning Datasets) ist das Standardformat für VLA-Modelltraining.
Kopieren# Installieren RLDS-Konvertierungstools pip Installieren tensorflow tensorflow-Datensätze rlds # Konvertieren Sie LeRobot-Datensatz in RLDS python3 -m lerobot.scripts.convert_to_rlds \ --input-dir=/datasets/openarm_pick_place \ --output-dir=/datasets/openarm_pick_place_rlds --task-description="Haut den roten Block auf und platziert ihn in die Zielgrüne Zone"
Der RLDS-Datensatz enthält TFRecord-Dateien mit dieser Struktur pro Zeitschritt:
{ "Beobachtung": { "Bild": (480, 640, 3) uint8, # Handgelenkkamera "Bild_external": (480, 640, 3) uint8, # Außenkamera "Stand": (6,) float32 # gemeinsame Positionen }, "Aktion": (7,) float32, # Zielengelenke + Griff "Lohn": float32, # 1.0 für Erfolg, 0,0 sonst "is_terminal": bool, "Sprache_Instruktion": String # Aufgabenbeschreibung }
8
Hochladen auf HuggingFace Hub
Schieben Sie Ihren Datensatz in HuggingFace Hub, um während des Trainings Versionen zu erstellen, einfach zu teilen und direkt zu laden.
Kopieren Sie# Stellen Sie sicher, dass Sie in huggingface-cli Login # Drücken Sie LeRobot-Format Datensatz lerobot push-to-hub \ --datensatz-path=~/datensätze/openarm_pick_place \ --repo-id="your-username/openarm-pick-place-v1" \ --private # Oder drücken Sie RLDS-Format Datensatz python3 -c " von huggingface_hub Import HfApi = HfApi()
Version Tipp: Immer ein Version Suffix (
9
Qualitätskontrolle durchführen
Vor dem Training, führen Sie eine letzte Reihe von Qualitätsprüfungen durch, um Probleme zu erkennen, die GPU-Stunden verschwenden könnten.
"CopyPython3 -c" Import numpy als np Import json, os, glob Datensatz_dir für ep_dir in Episoden: Aktionen = np.pathos.expanduser.join'/datasets/openarm_pick_place') Episoden = sortiert(glob.glob.os.path.join'(datensatz_dir, 'episode_*'))) Länge = [\] Glatheit_scores = [\] Action_rangees = [\] Action_rangees = [\] Action_rangees = [] Action_rangees = [] Action = np.pathos.expanduser.join'/datasets/openarm_pick_place') Episoden = sortiert(glob.glob.os.path.join'\npy' episodes = n.actionsrangees, n.actionsrangees, n.actionsrangees,
10
Bereiten Sie sich auf VLA-Feinabstimmung vor
Strukturen Sie Ihren Datensatz für das Training durch die Erstellung von richtigen Splits und Aufgabenbeschreibungen.
Copy# Erstellen von Zug/Streifen Split (90/10) python3 -c " Import os, shutil, random, glob Datensatz_dir = os.path.expanduser('~/datasets/openarm_pick_place') Episoden = sortiert(glob.glob.os.path.join(datensatz_dir, 'episode_*'))) random.seed(42) random.shuffle(episodes) Split = int((lenepisodes) * 0.9) Zug = Episoden[:split] vallit = Episoden[split:\] #Schreiben Sie Dateien mit Open Pathos.path.join.join._dir, 'train_episodes.txt'), 'wlen') als f (((((((((((((((((((((((((((((((((((((((((((((((((((((((((
Bereit, ein VLA-Modell zu optimieren?
Ihr Datensatz ist vorbereitet. Weiter zum VLA-Feinabstimmung-Guide gehen, um OpenVLA oder pi0 auf Ihre Daten zu trainieren.
Aufteilung der Kosten für die Datenerhebung
| Cost Component | Per Hour | Notes |
|---|---|---|
| Operator labor | $50–80 | Skilled teleoperator, varies by market |
| Hardware depreciation | $15–30 | Amortized over 2,000 hrs of use |
| Quality review | $20–40 | Episode filtering and scoring |
| Compute and storage | $8–15 | Recording, processing, storage |
| Facility overhead | $25–35 | Lab space, lighting, safety |
| Total | $118–200 |
Brauchen Sie Hilfe bei der Datenerfassung?
RCSV Data Services bietet eine verwaltete Roboter-Daten-Sammlung mit professionellen Telebetreibern, Qualitätssicherung und RLDS-bereit Lieferung an.
[Erfahren Sie mehr über Datendienste]
Fehlerbehebung
Kamera-Feed ist schwarz oder gefroren
Überprüfen Sie den Kameraindex mit
Roboterarm nicht während der Aufnahme reagiert
Überprüfen Sie den Serienport mit
Rüstungsschläge während der Aufnahme (inkonsistente Fps)
Die Auflösung der Kamera wird auf 480x360 gesenkt. Schließen Sie die Hintergrundanwendungen. Verwenden Sie einen speziellen USB-Bus für jede Kamera (check mit
RLDS-Umwandlung fehlschlägt bei Formunpassung
Dies bedeutet in der Regel, dass Episoden unterschiedliche Beobachtungsdimensionen haben. Überprüfen Sie, ob alle Kameras die gleiche Auflösung für alle Episoden verwendet haben.
HuggingFace Upload-Zeiten aus
Große Datensätze (50+ GB) können bei langsamen Verbindungen auslaufen. Verwenden Sie
Verwandte Tutorials
- Ich weiß .
Ein VLA-Modell
Schulen Sie OpenVLA oder pi0 auf Ihren Teleoperationsdatensatz für echte Roboter-Einsatz.
](
LeRobot Quickstart
Beginnen Sie mit LeRobot in weniger als 2 Stunden
](
Erste Demo von OpenArm
Entfernen Sie die Box und laden Sie Ihre erste Teleoperationsdemonstration auf OpenArm Hardware aus.
](
Häufig gestellte Fragen
Wie viele Demonstrationen-Episoden brauche ich, um eine Roboterpolitik zu trainieren?
Für die meisten Single-Task-Manipulation-Politiken (Greifen und Ablegen, Pour, etc.) reichen 50
Wie hoch sind die Kosten für die Erhebung von Roboter-Training-Daten?
Die vollständig geladenen Kosten für die Roboter-Teleoperationsdatenerhebung liegen im Jahr 2026 zwischen 118
Welche Kameras sollte ich für die Roboterdatenverarbeitung verwenden?
Zumindest verwenden Sie eine Handgelenk-montierte RGB-Kamera (640x480, 30 fps) und eine externe Dritte-Personen-Ansicht-Kamera. Für die besten Ergebnisse, fügen Sie eine RGBD-Kamera wie die Intel RealSense D435 für Tiefendaten hinzu.
Was ist das RLDS-Format und warum ist es wichtig?
RLDS (Reinforcement Learning Datasets) ist ein standardisiertes Format von Google DeepMind für die Speicherung von Roboter-Lerndaten. Es speichert Episoden als Sequenzen von Beobachtungen, Aktionen und Belohnungen in TFRecord-Dateien. Die meisten VLA-Modelle (RT-2, OpenVLA, Octo) erwarten RLDS-Format, was es zum de facto-Standard für Interoperabilität macht.
Wie kann ich sicherstellen, dass meine gesammelten Daten hochwertig sind?
Verfolgen Sie drei Qualitätsmesswerte: (1) Aufgabenerfolgsrate
War dieses Tutorial hilfreich?
👍 Ja
Bleiben Sie bei der Robotik vorne
Erhalten Sie die neuesten Informationen zu Robotern, Datenerhebung und physischer KI







