Zurück zu Learn

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 Hardware-Setup, LeRobot-Aufnahme, RLDS-Format, Qualitätsscoring und Datensatzvorbereitung für VLA-Finstung.

Zwischenzeit 24 Stunden Einstellung Aktualisiert April 2026

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 bereit ist, um VLA-Fein-Tuning zu erledigen.

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 T18 cd lerobot pip Installieren -e ".[all]" # Überprüfen Sie die Installation python3 -c "Import lerobot; print(f'LeRobot {lerobot.__version___} installiert") "

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 (T0, T1) variieren je nach System. Laufen Sie T2 aus, um die richtigen Indizes für Ihre Kameras zu finden.

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 Folgen Sie den Anweisungen auf dem Bildschirm #, um beide Arme durch ihre Bewegungsbereich zu bewegen

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 Start/Episode # Raum Pause/Wiederholung # r Wiederholen Sie die aktuelle Episode # q Einstellung der Aufnahme

Jede Episode wird mit synchronisierten Daten gespeichert:

~/datasets/openarm_pick_place/ ── Episode_000/ │ ── Beobachtungen/ │ │ ── gemeinsame_Positionen.npy # (T, 6) gemeinsame Winkel │ │ ── gemeinsame_Geschwindigkeiten.npy # (T, 6) gemeinsame Geschwindigkeiten │ │ ── Handgelenk_cam.mp4 # Handgelenkkamera-Video │ │ ── externe_cam.mp4 # externe Kamera-Video │ ── Aktionen.npy # (T, 7) Zielgelenkpositionen + Greifer ── Episode_001/ ── ... ── Metadaten.json

Episodenzahlrichtlinien: Für eine Einfach-Aufgabe-Politik (ACT, Diffusion Policy) sammeln Sie 50200 Episoden. Für VLA-Feinabstimmung (OpenVLA, pi0), sammeln Sie 3001,200 Episoden. Vielfältiger Demonstrationen ergeben eine bessere Verallgemeinerung. Verändern Sie die Objektposition, Orientierung und Beleuchtung zwischen Episoden.

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 zur Überprüfung) lerobot Wiederholen \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --datensatz-path=/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() .upload_path_folder_folder_os..expanduser(''dataets/arm_pick_openplace\rlds'), repo_id='your-username/openarm-pick-pick-rlds-v1', vollständig'database' private_type'up_type' (((((((((((((((((((((((((((((((((((

Version Tipp: Immer ein Version Suffix (T3, T4) enthalten. Wenn Sie mehr Daten sammeln oder Qualitätsprobleme beheben, drücken Sie als neue Version. Dies erleichtert es, Trainingsläufe zu reproduzieren und Verbesserungen zu verfolgen.

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 T5. Versuchen Sie, das USB-Kabel zu entfernen und wieder zu koppeln. Wenn Sie RealSense verwenden, überprüfen Sie mit T6. Für RealSense-Kameras sind USB 3.0-Ports erforderlich.

Roboterarm nicht während der Aufnahme reagiert

Überprüfen Sie den Serienport mit T7. Überprüfen Sie Berechtigungen: T8. Stellen Sie sicher, dass kein anderer Prozess den Port verwendet (zwangsläufig, andere Terminals).

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 T9).

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 T10 mit T11, um Teile hochzuladen oder komprimieren Sie Videos vor dem Hochladen.

Verwandte Tutorials

  • Ich weiß .

Ein VLA-Modell

Schulen Sie OpenVLA oder pi0 auf Ihren Teleoperationsdatensatz für echte Roboter-Einsatz.

](T15) [

LeRobot Quickstart

Beginnen Sie mit LeRobot in weniger als 2 Stunden Installieren, aufnehmen und trainieren Sie Ihre erste Richtlinie.

](T16) [

Erste Demo von OpenArm

Entfernen Sie die Box und laden Sie Ihre erste Teleoperationsdemonstration auf OpenArm Hardware aus.

](T17)

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 50200 hochwertige Episoden für ACT oder Diffusion Policy aus. Für VLA-Feinabstimmung (OpenVLA, pi0), planen Sie für 3001,200 Episoden abhängig von der Aufgabenkomplexität und der erforderlichen Verallgemeinerung.

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 200 USD pro Stunde, je nach Betriebsqualität und Hardware. Dies beinhaltet die Betriebszeit, die Abwertung der Hardware, die Berechnung und die Qualitätsüberprüfung. RCSV Data Services bietet eine verwaltete Erhebung ab 150 USD / Stunde an.

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 Halten Sie nur Episoden auf, in denen die Aufgabe erfolgreich abgeschlossen wurde. (2) Streckenreichlichkeit Filtern von zerklüftenden oder unregelmäßigen Demonstrationen aus. (3) Vielfalt Varieren die Positionen, Orientierungen und Beleuchtung der Objekte in den einzelnen Episoden. Zielen Sie auf eine Erfolgsrate von 90%+ in Ihrem Enddatensatz.

War dieses Tutorial hilfreich?

👍 Ja Nein

Bleiben Sie bei der Robotik vorne

Erhalten Sie die neuesten Informationen zu Robotern, Datenerhebung und physischer KI in Ihren Posteingang.