Datenerfassung

Der VLAI L1 ist für die groß angelegte Teleoperationsdatenerfassung konzipiert. Seine One-Click-Aufzeichnungspipeline, die Dual-Arm-Synchronisierung und das integrierte VR-Teleop machen es zum schnellsten Weg von der Roboterlieferung zum trainingsbereiten Datensatz.

Aufnahme-Workflow

Bimanuelle VR-Teleoperationsaufzeichnung

1

Verbinden und überprüfen Sie alle Systeme

rc connect --device l1 --host 192.168.1.45
rc status   # check: arms, base, cameras, battery all green
2

Bewegen Sie L1 in die Aufnahmeposition

Fahren Sie den L1 mit WASD im Browserfenster zum Aufgabenarbeitsbereich. Stellen Sie die Hubhöhe für die Aufgabe ein (z. B. 130 cm für die Tischmanipulation). Parken Sie es und blockieren Sie die Räder.

rc teleop --device l1   # open browser panel
# Drive to position, then lock:
python -c "from roboticscenter import L1; r=L1('192.168.1.45'); r.connect(); r.base.lock_wheels(); r.disconnect()"
3

Richten Sie die Aufgabenszene und die Kameras ein

Platzieren Sie Aufgabenobjekte an einheitlichen Startpositionen. Überprüfen Sie die Kameraansichten im Browser-Panel – beide Handgelenkkameras (Developer Max) und alle externen Kameras sollten den Aufgabenarbeitsbereich abdecken.

4

Starten Sie die Aufzeichnungssitzung über die CLI

rc record \
  --device l1 \
  --task "Pick up the bottle and pour into the glass" \
  --num_episodes 50 \
  --output ~/datasets/l1-pour-v1 \
  --teleop_mode vr   # or: browser, leader_arms
# Press ENTER in VR to start each episode, ENTER again to end
5

Rezensionsepisoden

rc replay \
  --dataset ~/datasets/l1-pour-v1 \
  --episode 0

Der Viewer zeigt alle Kamerastreams + gemeinsame Zustandszeitreihen synchronisiert an. Löschen Sie schlechte Episoden, bevor Sie pushen.

6

Drücken Sie auf HuggingFace Hub

huggingface-cli login
rc push_dataset \
  --dataset ~/datasets/l1-pour-v1 \
  --repo_id your-username/l1-pour-v1
Datensatzformat

L1-Datensatzschema

Die L1-Aufzeichnungspipeline erzeugt einen multimodalen Datensatz mit beiden Armen, der mobilen Basis, allen Kameras und optionalen Sprachanmerkungen.

Felder in jeder Episoden-Parquet-Datei
Beobachtung.left_arm_state float32[8] Gelenkpositionen des linken Arms im Bogenmaß (8 DOF)
Beobachtung.right_arm_state float32[8] Gelenkpositionen des rechten Arms im Bogenmaß (8 DOF)
Beobachtung.base_state float32[3] Mobile Basis x, y, Richtung in Metern und Bogenmaß
Beobachtung.lift_height float32 Rumpfhubhöhe in Metern
Beobachtungsbilder.* Videopfad Handgelenkkameras (links, rechts), Kopfkamera, externe Arbeitsplatzkamera
action.left_arm float32[8] Zielen Sie mit der VR-Teleop auf die Gelenkpositionen des linken Arms
action.right_arm float32[8] Zielen Sie mit der VR-Teleop auf die Gelenkpositionen des rechten Arms
language_instruction Zeichenfolge Aufgabenbeschreibung in natürlicher Sprache für die VLA-Konditionierung
Zeitstempel float64 Unix-Zeitstempel in Sekunden
weiter.fertig bool Stimmt im letzten Frame jeder Episode
Qualitätssicherung

Qualitätscheckliste

Das VR-Teleop des L1 kann zu einzigartigen Datenqualitätsproblemen im Zusammenhang mit Latenz und bimanueller Koordination führen. Führen Sie dies durch, bevor Sie zum Hub wechseln.

  • 1
    Die VR-Latenz lag während der Aufnahme unter 50 ms Überprüfen Sie während der Aufnahme den Latenzmonitor im Browser-Panel. Oberhalb von 50 ms hinken die Handbewegungen des Bedieners den Aktionen des Roboters hinterher, was zu einer kausalen Diskrepanz im Datensatz führt. Nehmen Sie bei Bedarf erneut auf einem WLAN-Kanal mit geringerer Latenz auf.
  • 2
    Beide Arme bewegten sich wie beabsichtigt (keine einarmigen Episoden) Stellen Sie bei bimanuellen Aufgaben sicher, dass sich beide Arme deutlich bewegen lassen observation.left_arm_state Und observation.right_arm_state. Episoden mit einer einarmigen Dominanz können darauf hindeuten, dass der Bediener eine Hand bevorzugte.
  • 3
    Die mobile Basis war während der Armmanipulation stationär Sofern Sie keine mobilen Manipulationsaufgaben aufzeichnen, observation.base_state sollte innerhalb jeder Episode nahezu konstant sein. Durch die Bewegung der Basis während der Manipulation verschiebt sich der Arbeitsbereich relativ zu den Kameras.
  • 4
    Alle Kamerastreams sind für die gesamte Folge vorhanden Bei der WLAN-Bandbreite des L1 kann es unter Last zu Frameverlusten kommen. Laufen rc validate_dataset --dataset ~/datasets/l1-pour-v1 um in allen Kamerastreams nach fehlenden Frames zu suchen.
  • 5
    Der Sprachunterricht entspricht dem Vorgeführten Die Sprachanweisung wird vor Beginn der Aufnahme eingestellt. Wenn der Bediener einen anderen Ansatz improvisiert hat (z. B. einen Arm anstelle von zwei verwendet hat), aktualisieren Sie die Anweisung oder löschen Sie die Episode.
Nächster Schritt

Trainieren Sie eine VLA aus Ihrem Datensatz

Sobald sich Ihr Datensatz auf HuggingFace Hub befindet, optimieren Sie eine VLA mit dem L1-Aktionsraum.

Optimieren Sie OpenVLA für L1-Daten

pip install roboticscenter[vla]

python -m roboticscenter.scripts.finetune_vla \
  --model openvla/openvla-7b \
  --dataset your-username/l1-pour-v1 \
  --action_space l1_bimanual \   # registers the 16-DOF bimanual action head
  --epochs 50 \
  --output_dir outputs/openvla-l1-pour

Stellen Sie fein abgestimmte VLA auf dem Gerät bereit (Developer Pro/Max)

rc Deploy VLA \ --model-Ausgaben/openvla-l1-pour \ --quantize int4 \ --device l1 \ --host 192.168.1.45 # Führen Sie die Richtlinie aus: RC-Ausführungsrichtlinie \ --task „Hebe die Flasche auf und gieße sie in das Glas“ \ --max_steps 100

Datensatz bereit? Beginnen Sie mit dem Training.

Drücken Sie auf HuggingFace Hub und optimieren Sie ein VLA-Modell anhand Ihrer bimanuellen Manipulationsdaten.