Aufzeichnen taktiler Demonstrationen

Taktile Daten sind die fehlende Modalität in den meisten Roboter-Lerndatensätzen. Auf dieser Seite wird erklärt, warum es wichtig ist, wie man synchronisierte taktile + Arm + Kamera-Streams aufzeichnet, das erweiterte Datensatzformat und wie man Richtlinien trainiert, die taktile Eingaben verwenden.

Warum taktile Daten das Lernen von Robotern verbessern

Vision erzählt eine Richtlinie Wo der Greifer ist. Propriozeption sagt es Wie weit Die Finger sind geschlossen. Keiner sagt es ob der Griff stabil ist. Eine Politik, die allein auf Sicht und Gelenkdaten trainiert ist, muss lernen, die Griffqualität indirekt abzuleiten – aus der Objektbewegung, Armkraftgrenzen oder Versuch und Irrtum während der Einführung. Durch das Hinzufügen von taktilen Sensoren wird eine staatliche Überwachung mit direktem Kontakt ermöglicht: Die Polizei erhält in jedem Zeitschritt jeder Demonstration ein Ground-Truth-Signal, das einen sicheren Griff von einem rutschgefährdeten unterscheidet. Dies ist besonders wichtig für verformbare, transparente oder unterschiedlich große Objekte, bei denen die visuelle Einschätzung der Griffqualität unzuverlässig ist.

Hardware-Setup für synchronisierte Aufzeichnung

Ein komplettes multimodales Aufnahmesystem erfordert drei Hardwareschichten, die alle mit einem gemeinsamen Takt synchronisiert sind:

  1. Robot arm – Bietet Gelenkpositionen, Geschwindigkeiten und Endeffektorhaltung bei 100–500 Hz über USB oder Ethernet. Verwenden Sie die Zeitstempel-API des Arm-SDK und nicht die Systemzeit, um den Hardware-gestempelten Gelenkstatus zu erhalten.
  2. Paxini Gen3-Sensor(en) – angeschlossen an einen USB-Hub mit eigener Stromversorgung, der am Handgelenk des Roboters angebracht ist. Jeder Frame wird vom Host-PC zur USB-Interrupt-Zeit mit einem Zeitstempel versehen (Auflösung im Nanosekundenbereich, <0,5 ms Jitter).
  3. Kamera — eine am Handgelenk befestigte Kamera (optional: eine Overhead-Kamera). Verwenden Sie eine USB- oder GigE-Kamera mit Hardware-Trigger-Synchronisierung oder eine softwaregesteuerte Kamera mit bekannter Latenz. Nehmen Sie mit 30–60 fps auf.

Alle drei Quellen schreiben Zeitstempel mit derselben monotonen Host-Uhr. Die Plattform-SDKs MultiSourceRecorder Richtet Frames zur Nachbearbeitungszeit mithilfe der Zeitstempelinterpolation aus.

# Complete synchronized recording session aus paxini.sync MultiSourceRecorder importieren recorder = MultiSourceRecorder( arm=arm_interface, sensor=paxini.Sensor(), camera=camera_interface, Output_dir="./demo_recordings/", episode_prefix="grasp_place" ) recorder.start_episode() # ... perform the manipulation demo ... recorder.end_episode() # saves episode_000.hdf5

Datensatzformat – Erweitertes LeRobot-Schema

Die Paxini Gen3-Datenerfassungspipeline erweitert das standardmäßige HDF5-Datensatzformat von LeRobot um zusätzliche taktile Kanäle. Bestehende LeRobot-Tools (Laden von Daten, Visualisierung, Richtlinienschulung) bleiben vollständig kompatibel – die neuen Schlüssel werden von Pipelines, die sie nicht verwenden, einfach ignoriert.

HDF5-Schlüssel Das Bild Diese
Beobachtungszustand(T, 7)Armgelenkpositionen + Greiferbreite
Beobachtung.Bilder.Handgelenk(T, H, B, 3)Handgelenkkamera (uint8 RGB)
Aktion(T, 7)Soll-Gelenkpositionen + Greiferbefehl
Beobachtung.tactile.pression_map(T, 8, 8)Paxini Gen3-Druckarray (kPa, float32)
Beobachtung.tactile.total_force_n(T,)Gesamtnormalkraft pro Frame (Newton)
Beobachtung.tactile.in_contact(T,)Boolesches Kontaktflag pro Frame
Beobachtung.tactile.contact_centroid(T, 2)Kontaktschwerpunkt (Zeile, Spalte) pro Frame
meta/timestamps_ns(T,)Nanosekunden-Zeitstempel für alle Kanäle

Neue taktile Tasten werden hervorgehoben. Alle anderen Schlüssel folgen dem Standardschema von LeRobot.

Qualitätscheckliste für taktile Daten

Führen Sie vor jeder Sitzung eine Basiskalibrierung durch Anruf sensor.calibrate() bei geöffnetem und entladenem Greifer. Dadurch werden der Selbstkontakt der Finger und die Belastung des Kabels auf Null reduziert. Führen Sie eine Neukalibrierung durch, wenn der Arm stark verändert wird.
Überprüfen Sie, ob Kontaktereignisse mit dem Video übereinstimmen Sehen Sie sich 5 Episoden im Datenvisualisierer an, bevor Sie Ihren vollständigen Datensatz erfassen. Der in_contact Die steigende Flanke sollte mit dem sichtbaren Moment des Kontakts zwischen Fingerspitze und Objekt im Kamerabild zusammenfallen. Eine Verzögerung von >20 ms weist auf ein Problem mit der Zeitstempelausrichtung hin.
Decken Sie bei Ihren Demonstrationen den gesamten Kraftbereich ab Versuchen Sie, Griffe mit leichtem, mittlerem und festem Griff aufzuzeichnen. Wenn alle Ihre Demos die maximale Greifkraft verwenden, lernt die Richtlinie nicht, den Anpressdruck zu modulieren. Variieren Sie das Objektgewicht und die Compliance über Episoden hinweg.
Kennzeichnen Sie Slip-Ereignisse und schließen Sie sie aus den Trainingsdaten aus Episoden, in denen das Objekt mitten im Griff verrutscht, die Demo jedoch erfolgreich verläuft, enthalten widersprüchliche Überwachungssignale. Verwenden Sie die SDKs paxini.annotate.flag_slip_events(episode) um diese automatisch zur Überprüfung zu markieren.
Überprüfen Sie die Sensorsättigung Wenn pressure_map.max() Wenn in jeder Episode 600 kPa erreicht werden, ist der Sensor gesättigt. Reduzieren Sie die Greifkraft oder verwenden Sie für schwerere Griffe die Handflächenvariante (geringerer Spitzendruck pro Taxel).

Richtlinienschulung mit taktilen Eingaben

Um taktil als Beobachtungsmodalität in ACT oder Diffusion Policy hinzuzufügen, erweitern Sie die Beobachtungskonfiguration um die Druckkarte oder den aggregierten Skalar (total_force_n). Die Druckkarte bietet vollständige räumliche Informationen, fügt jedoch 64 Floats pro Frame und Sensor hinzu; Der Skalar ist einfacher zu integrieren und für Aufgaben mit binärer Erfassungsqualität ausreichend.

# ACT config snippet — add tactile to observation space Beobachtungsschlüssel: - Beobachtungszustand # joint positions - Beobachtung.Bilder.Handgelenk # camera - Beobachtung.tactile.total_force_n # scalar - Beobachtung.tactile.pression_map # optional: full map # Normalize tactile observations taktile_Normalisierung: total_force_n: {Mittelwert: 2,5, Standard: 1,8} Pressure_map: {Mittelwert: 12,0, Standard: 45,0} # kPa statistics from your dataset

Die vollständige Anleitung zum Training – einschließlich der Berechnung von Normalisierungsstatistiken aus Ihrem aufgezeichneten Datensatz und der Auswertung anhand einer rein visuellen Basislinie – finden Sie unter Lernpfad Einheit 5.

Einen breiteren Kontext zu Strategien zur Datenerhebung mit geschickter Hand finden Sie im Anleitung für geschickte Hände.