Teleoperationshand
Spezifikationen der Wuji-Hand
Vollständige technische Spezifikationen für die Wuji-Hand – Sensoren, JSONL-Stream-Format und Plattform-Agent-Parameter.
Mechanik und Sensorik
| Finger | 5 – Daumen, Zeigefinger, Mitte, Ring, klein |
| Gelenke pro Finger | 4 |
| Gesamte gemeinsame Positionen | 20 (5×4-Array, Float, Bogenmaß) |
| Taktile Druckkarte | 24 Zeilen × 32 Spalten (768 Werte, Float [0, 1]) |
| IMU-Kanäle | 6-Achsen (3-Achsen-Beschleunigungsmesser + 3-Achsen-Gyroskop), bis zu 16 Steckplätze im Stream |
| EMF-Kanal | Pro-Finger-Beugung + Hand-zurück-Gieren (Diktat mit Fingernamen eingegeben) |
| Handseiten | Links, rechts oder automatisch ab dem ersten Bild erkannt |
Schnittstelle und SDK
| USB-Anbieter-ID | 0x0483 (Standard; übergeben Sie --usb-vid zum Überschreiben) |
| SDK-Paket | wujihandpy (Python) |
| Installieren | pip install wujihandpy numpy |
| Studio-Anwendung | Wuji Studio v0.7.0 (Linux amd64 .deb / .tar.gz / .zip) |
| Stream-Skript | wuji_hand_sdk_stream.py (gibt JSONL an stdout aus) |
| Agentenmodul | wuji_glove_agent.py (Plattformbrücke über WebSocket) |
| Scheinstream | mock_wuji_stream.py (synthetisches JSONL, keine Hardware erforderlich) |
Stream- und Agent-Parameter
| Standard-Stream Hz | 30 Hz (konfigurierbar mit --hz) |
| Stream-Format | JSONL – ein JSON-Objekt pro Zeile für stdout |
| Plattformgerätetyp | wuji_hand |
| Agentenmodul | wuji_glove_agent |
| Backend-WebSocket-URL | ws://127.0.0.1:8000 (Standard; mit --backend überschreiben) |
| Telemetrie Hz | 30 Hz (konfigurierbar mit --telemetry-hz) |
| Richtlinie für erneute Verbindung | Exponential backoff: 1 s min, 10 s max |
JSONL-Frame-Felder (pro Frame)
| Feld | Typ | Form / Reichweite | Beschreibung |
|---|---|---|---|
| ts | schweben | Unix-Sekunden | Frame-Zeitstempel (time.time()) |
| hand_side | str | „links“ | "Rechts" | Zu welcher Hand dieser Rahmen gehört |
| Kurven | dict | 5 Tasten, [0, 1] | Normalisierte Beugung pro Finger (Daumen, Zeigefinger, Mittelfinger, Ringfinger, kleiner Finger) |
| joint_actual_position_5x4 | Liste[Liste[Float]] | 5×4, Bogenmaß | Rohe Gelenkpositionen von Wujihandpy, 5 Finger × 4 Gelenke |
| Druck_Karte_24x32 | Liste[Liste[Float]] | 24×32, [0, 1] | Taktile Druckverteilung über die Handoberfläche |
| imu | Liste[float] | bis zu 16 Werte | 6-Achsen-IMU: [ax, ay, az, gx, gy, gz, ...] (verbleibende Steckplätze auf Null gesetzt) |
| EMK | dict | pro Finger + hand_back | Messwerte des EMF-Sensors; Jeder Eintrag ist Float oder Dict mit den Tasten „Biegen“/„Winkel“. |
Der bends Werte werden daraus abgeleitet joint_actual_position_5x4 durch Mittelung der 4 Gelenkwinkel pro Finger und Normalisierung vom Bereich [0, π/2] auf [0, 1].
wuji_glove_agent.py – Schlüsselflags
| Flagge | Standard | Beschreibung |
|---|---|---|
| --backend | ws://127.0.0.1:8000 | Plattform-WebSocket-Basis-URL |
| --Sitzung | (erforderlich) | Teleop-Sitzungs-ID von der Plattform |
| --node-id | Wuji-Handschuhknoten | Bezeichner für diesen Geräteknoten in der Sitzung |
| --Handschuh | Auto | Handseite: links, rechts oder automatisch (vom ersten Bild an gelesen) |
| --device-kind | wuji_hand | Bei der Plattform registrierter Gerätetyp |
| --telemetry-hz | 30.0 | Telemetrie-Weiterleitungsrate zur Plattform |
| --wuji-cmd | python3 wuji_hand_sdk_stream.py --hand-side right --hz 30 | Shell-Befehl, der JSONL-Frames an stdout ausgibt |
| --reconnect-min-s | 1.0 | Mindest-Reconnect-Backoff (Sekunden) |
| --reconnect-max-s | 10.0 | Maximaler Reconnect-Backoff (Sekunden) |