Software- und Treiber-Setup
Installieren Sie den USB-CDC-Treiber, streamen Sie Druckdaten mit 64 Knoten in Python, visualisieren Sie Kontakt-Heatmaps und integrieren Sie sie in Orca Hand-Aufzeichnungspipelines.
Installieren Sie das juqiao-glove-Paket
Der Handschuh kommuniziert über USB CDC seriell – keine Kernel-Module, keine benutzerdefinierten Treiber. Das Python-Paket wird umschlossen pyserial und verwaltet das Binärrahmenprotokoll.
Überprüfen Sie die Installation:
Erkennen des USB-Ports
Schließen Sie den Handschuh über das 1,5 m lange USB-C-Kabel an. Das Gerät wird als serieller CDC-ACM-Port aufgeführt.
| OS | Typischer Portname | Notizen |
|---|---|---|
| Linux | /dev/ttyACM0 | Benutzer hinzufügen zu Auswählen Gruppe, wenn die Erlaubnis verweigert wird |
| macOS | /dev/tty.usbmodem* | Verwenden ls /dev/tty.usb* um den genauen Namen zu finden |
| Windows | COM3 (variiert) | Überprüfen Sie den Geräte-Manager → Ports (COM & LPT) |
Den Handschuh automatisch von Python aus erkennen:
Oder geben Sie den Port explizit an:
Python-Streaming-API
Der Handschuh streamt mit 200 Hz. Jeder Frame enthält ein Druckarray mit 64 Elementen (16-Bit-ADC, normalisiert 0,0–1,0) sowie einen Zeitstempel.
Frame-Objektreferenz
| Attribut | Typ | Beschreibung |
|---|---|---|
| Frame.Zeitstempel | schweben | Hostseitige Empfangszeit (Sekunden, Unix-Epoche) |
| Rahmendrücke | np.ndarray (64,) | Normalisierter Druck pro Knoten, 0,0 (kein) bis 1,0 (maximal) |
| Frame.Pressures_raw | np.ndarray (64,) | Rohe 16-Bit-ADC-Zählungen (0–65535) |
| frame.contact_mask | np.ndarray (64,) bool | True, wenn der Druck den Schwellenwert überschreitet (Standard 0,05) |
| frame.contact_nodes | Liste[int] | Indizes der Knoten, die derzeit in Kontakt sind |
| frame.grasp_region | str oder None | Heuristischer Bereich: „Palme“, "Daumen", "Index", "Nicht", "Ring", „kleiner Finger“, Keiner |
| Frame.Sequenz | int | Bildzähler (umbricht bei 65535); Verwenden Sie diese Option, um ausgelassene Frames zu erkennen |
64-Knoten-Sensorlayout
Die 64 Taxel sind als gewebte Fasermatrix angeordnet, die die Handfläche und alle fünf Fingersegmente bedeckt. Knotenindizes folgen einer konsistenten Reihen-Hauptreihenfolge in der Rückenansicht.
Druck-Heatmap-Visualisierung
Der [nämlich] Extra installiert einen Live-Matplotlib-Heatmap-Renderer, der für die Kalibrierung und das Debuggen nützlich ist.
Speichern Sie Frames für Headless-Umgebungen oder zur Datenüberprüfung als Video:
ROS2-Schnittstelle
Der juqiao_glove_ros2 Paket veröffentlicht eine benutzerdefinierte TaktileArray Nachricht mit 200 Hz. Kompatibel mit ROS2 Humble und Iron.
Starten Sie den Treiberknoten:
Veröffentlichte Themen:
| Thema | Nachrichtentyp | Rate | Beschreibung |
|---|---|---|---|
| /juqiao_glove/tactile_array | juqiao_glove_ros2/TactileArray | 200 Hz | Vollständiges Druckarray mit 64 Knoten |
| /juqiao_glove/contact_mask | std_msgs/UInt8MultiArray | 200 Hz | Binärkontakt pro Knoten (0 oder 1) |
| /juqiao_glove/grasp_region | std_msgs/String | 200 Hz | Heuristik des aktiven Bereichs oder leere Zeichenfolge |
| /juqiao_glove/status | Diagnostic_msgs/DiagnosticStatus | 1 Hz | Firmware-Version, Frame-Drop-Rate |
Kombinierter Orca-Hand- und Handschuhstart
Bei Verwendung des Handschuhs zusammen mit der Orca-Hand für synchronisierte Aufnahmen:
Basiskalibrierung
Der Handschuh wird mit Werkskalibrierung geliefert. Führen Sie eine Neukalibrierung durch, wenn Sie eine Abweichung der Basislinie bemerken (Knoten zeigen im Ruhezustand einen Wert ungleich Null an) oder nach längerer Lagerung.
Kalibrierung zur Laufzeit laden:
Schwellenwertoptimierung
Der standardmäßige Kontaktschwellenwert beträgt 0,05 (5 % des Skalenendwerts). Pro Aufgabe anpassen:
Häufige Probleme
sudo usermod -aG dialout $USER Melden Sie sich dann ab und wieder an. Alternativ: sudo chmod 666 /dev/ttyACM0 (wird beim Herausziehen des Netzsteckers zurückgesetzt).dmesg | tail -20 (Linux) bzw ls /dev/tty.usb* (macOS), um zu überprüfen, ob das Betriebssystem das Gerät aufgelistet hat. Versuchen Sie es mit einem anderen USB-Anschluss oder -Kabel (der Anschluss ist USB-C, muss aber ein Datenkabel sein, kein reines Ladekabel).glove.info() um zu bestätigen, dass die Firmware antwortet. Wenn dies der Fall ist, überprüfen Sie, ob die Kalibrierungsdatei nicht zu stark subtrahiert. Löschen ~/.juqiao_glove_cal.json und neu kalibrieren, während der Handschuh flach liegt.glove.calibrate_baseline(). Kann nach Temperaturänderungen oder längerer Lagerung auftreten. Wenn die Drift bei flachem Handschuh > 0,4 ist, muss das Sensorgewebe möglicherweise ausgetauscht werden (wenden Sie sich an den Juqiao-Support).on_frame Rückruf kehrt schnell zurück – umfangreiche Verarbeitung in einem separaten Thread durchführen.ros2 launch juqiao_glove_ros2 glove.launch.py port:=/dev/ttyACM0. Überprüfen Sie die Knotenprotokolle: ros2 node info /juqiao_glove_driver. Stellen Sie sicher, dass dialout Der Gruppenfix wurde auf den Benutzer angewendet, der den ROS2-Knoten ausführt.