Datenerfassung

Die Aufzeichnung geschickter Manipulationsdaten mit der Orca-Hand unterscheidet sich grundlegend von der einfachen Erfassung von Greiferdaten – 17 Fingergelenke, optionale taktile Streams und Handschuh-Teleoperation erfordern alle eine sorgfältige Synchronisierung. Dieser Leitfaden deckt den gesamten Arbeitsablauf ab.

Vor der Aufnahme

Hardware-Setup für eine geschickte Datenerfassung

Das Orca-Hand-Aufzeichnungssetup verfügt über mehr Streams als ein einfacher Greifarm – Fingergelenke, optionale Tastgelenke, Kameras und Armgelenke müssen alle synchronisiert werden.

🕐

Orca Hand (USB seriell)

17-DOF-Fingerstatus bei bis zu 100 Hz. Verifizieren: python -c "from orca_core import OrcaHand; h=OrcaHand('/dev/ttyUSB0'); h.connect(); print(h.get_positions())"

🤸

Teleoperationsgerät

Juqiao-Handschuh (empfohlen) oder VR-Handverfolgung. Ordnet die Fingerhaltungen des Bedieners den Orca-Hand-Gelenkzielen in Echtzeit zu.

📷

Handflächen-/Handgelenkkamera

Kleine USB-Kamera in der Handfläche, die auf die Fingerspitzen und den Gegenstand zeigt. Entscheidend für kontaktreiche Aufgaben, bei denen der Kontakt zwischen Fingerspitze und Objekt über den Greiferfolg entscheidet.

📈

Taktile Sensoren (optional)

Paxini oder kompatible Fingerspitzensensoren. Separater USB-Anschluss. Fügen Sie Ihrem Datensatz den Contact Force Stream für kontaktgesteuerte Richtlinienschulungen hinzu.

Aufnahme-Workflow

Schritt-für-Schritt-Aufzeichnungsworkflow

1

Bringen Sie Arm + Hand + Handschuh nach oben

# Terminal 1: Arm (if using OpenArm)
source ~/openarm_ws/install/setup.bash
ros2 launch openarm_ros2 openarm.launch.py use_fake_hardware:=false can_interface:=can0

# Terminal 2: Orca Hand
source ~/orca_ws/install/setup.bash
ros2 launch orca_ros2 orca_hand.launch.py port:=/dev/ttyUSB0 handedness:=right

# Terminal 3: Juqiao Glove (see Juqiao Glove software page)
python -m juqiao_glove.stream --port /dev/ttyUSB1
2

Stellen Sie sicher, dass alle Streams live sind

# Check finger joint states
ros2 topic hz /orca_hand/joint_states   # expect ~100 Hz

# Check glove stream
ros2 topic hz /juqiao_glove/finger_angles   # expect ~100 Hz

# Check camera
python -c "import cv2; cap=cv2.VideoCapture(0); print('Camera OK:', cap.isOpened())"
3

Kalibrieren Sie die Handschuh-zu-Hand-Zuordnung

Führen Sie die Handschuhkalibrierung durch, um Ihre Fingerabmessungen dem Gelenkbereich der Orca-Hand zuzuordnen. Dieser Schritt gewährleistet eine natürliche Teleoperation – Ihre offene Hand = Orca offen, Ihre Faust = Orca-Faust.

python -m orca_core.scripts.calibrate_teleop \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --handedness right
4

Richten Sie die Aufgabenszene ein

Platzieren Sie Objekte an einheitlichen Startpositionen. Geschicktes Greifen reagiert sehr empfindlich auf die Objekthaltung – verwenden Sie Fixierungen (Klebeband, Kitt), um eine konsistente Objektplatzierung über alle Episoden hinweg aufrechtzuerhalten.

5

Aufnahmesitzung starten

python -m orca_core.scripts.record_episodes \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --camera_id 0 \
  --fps 30 \
  --output_dir ~/datasets/orca-grasp-v1 \
  --num_episodes 50 \
  --task "Pick up the pen using a precision pinch grasp"

Der Rekorder speichert synchronisierte Fingergelenkpositionen, Handschuhwinkel, Kamerabilder und (sofern angeschlossen) taktile Messwerte in einem Parquet-Datensatz.

6

Überprüfen Sie die Griffqualität

Spielen Sie jede Episode noch einmal ab. Achten Sie auf: Slippage-Ereignisse (plötzliche Positionssprünge), unvollständige Griffe, Sehnensättigung (Gelenk an der harten Grenze während des Griffs), inkonsistente Annäherungswege.

python -m orca_core.scripts.visualize_episode \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --episode_index 0
7

Drücken Sie auf HuggingFace Hub

python -m orca_core.scripts.push_dataset \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --repo_id your-username/orca-grasp-v1
Datensatzformat

Schema des Orca-Handdatensatzes

Das Orca-Hand-Datensatzformat erweitert das Standardschema von LeRobot um zusätzliche fingerspezifische und taktile Streams.

Felder in jeder Episoden-Parquet-Datei
Beobachtung.hand_state float32[17] Alle 17 Fingergelenkpositionen in Grad
Beobachtung.hand_velocity float32[17] Fingergelenkgeschwindigkeiten in Grad/s
Beobachtung.taktil float32[5] Kontaktkraft pro Fingerspitze in N (sofern taktile Sensoren angeschlossen sind)
Beobachtungsbilder.* Videopfad Kamerabilder – Handflächenansicht, Handgelenkansicht, Arbeitsbereichsansicht
Aktion float32[17] Zielpositionen der Fingergelenke mithilfe der Handschuh-Teleoperation
erfassen_typ Zeichenfolge Bezeichnung für das verwendete Greifprimitiv (z. B. „precision_pinch“, „power_grasp“)
Zeitstempel float64 Unix-Zeitstempel in Sekunden
weiter.fertig bool Stimmt im letzten Frame jeder Episode
Qualitätssicherung

Checkliste für die Datenqualität von Dexterous

Bei der geschickten Datenmanipulation gibt es mehr Fehlermöglichkeiten als beim einfachen Pick-and-Place. Führen Sie dies durch, bevor Sie zum Hub wechseln.

  • 1
    Alle 17 Gelenke haben während der gesamten Episode gültige Positionswerte NaN- oder Stuck-Werte deuten auf einen Servoausfall hin. Überprüfen observation.hand_state für konstante Werte in jedem Gelenk über alle Frames hinweg.
  • 2
    Die Handschuh-zu-Hand-Latenz liegt unter 20 ms Überprüfen Sie die Zeitstempelausrichtung zwischen action (aus Handschuh) und observation.hand_state. Eine hohe Latenz führt dazu, dass die Richtlinie aus kausal inkonsistenten Paaren lernt.
  • 3
    Der Grifftyp ist innerhalb einer Aufgabe konsistent Eine Richtlinie für präzises Kneifen lässt sich nicht verallgemeinern, wenn bei einigen Demonstrationen Kraftgriffe zum Einsatz kamen. Behalten Sie für jeden Datensatz eine primäre Erfassungsstrategie bei oder beschriften Sie ihn nach Erfassungstyp.
  • 4
    Kontaktereignisse sind in Gelenkpositionen sichtbar Wenn die Hand einen Gegenstand berührt, sollten die Fingergelenke eine deutliche Verzögerung und Nachgiebigkeitsauslenkung zeigen. Episoden, in denen die Finger ohne Kontaktverformung in die richtige Position springen, haben möglicherweise den Griff verfehlt.
  • 5
    Die Palmkamera zeigt das Objekt während der gesamten Manipulationsphase Das Objekt muss von der Annäherung bis zur Freigabe in der Handflächenkamera sichtbar sein. Stellen Sie sicher, dass die Kamerahalterung nicht angestoßen wurde und dass das Sichtfeld den Arbeitsbereich abdeckt.
  • 6
    Taktile Streams weisen dort, wo erwartet, Kontaktereignisse auf Während eines Kneifgriffs sollten sowohl Daumen als auch Zeigefinger einen Kraftanstieg verspüren. Fehlende Kraftsignale während des bestätigten Kontakts weisen auf einen nicht angeschlossenen oder falsch kalibrierten Sensor hin.

Datensatz bereit? Beginnen Sie mit dem Training.

Übertragen Sie Ihren geschickten Manipulationsdatensatz auf HuggingFace und erkunden Sie kompatible Modelle.