Main de téléopération
Spécifications de la main Wuji
Spécifications techniques complètes de la main adroite Wuji : capteurs, format de flux JSONL et paramètres de l'agent de plate-forme.
Mécanique et détection
| Doigts | 5 — pouce, index, milieu, anneau, petit |
| Articulations par doigt | 4 |
| Total des postes conjoints | 20 (tableau 5 × 4, flotteur, radians) |
| Carte de pression tactile | 24 lignes × 32 colonnes (768 valeurs, float [0, 1]) |
| Canaux IMU | 6 axes (accéléromètre 3 axes + gyroscope 3 axes), jusqu'à 16 emplacements en flux |
| Canal CEM | Courbure par doigt + lacet main arrière (dictée par nom de doigt) |
| Côtés de la main | Gauche, droite ou détection automatique à partir de la première image |
Interface et SDK
| ID du fournisseur USB | 0x0483 (par défaut ; passez --usb-vid pour remplacer) |
| Kit de développement logiciel (SDK) du package | wujihandpy (Python) |
| Installatrice | installateur pip wujihandpy numpy |
| Studio d'applications | Wuji Studio v0.7.0 (Linux amd64 .deb / .tar.gz / .zip) |
| Script de flux | wuji_hand_sdk_stream.py (émet du JSONL vers la sortie standard) |
| Agents de modules | wuji_glove_agent.py (pont de plateforme via WebSocket) |
| Flux simulé | mock_wuji_stream.py (JSONL synthétique, aucun matériel requis) |
Paramètres de flux et d'agent
| Flux par défaut Hz | 30 Hz (configurable avec --hz) |
| Format du flux | JSONL — un objet JSON par ligne vers la sortie standard |
| Type d'appareil de plate-forme | wuji_hand |
| Agents de modules | wuji_glove_agent |
| URL WebSocket principale | ws://127.0.0.1:8000 (par défaut ; remplacer par --backend) |
| Télémétrie Hz | 30 Hz (configurable avec --telemetry-hz) |
| Politique de reconnexion | Arrêt exponentiel : 1 s min, 10 s max |
Champs de trame JSONL (par trame)
| Championne | Cône | Forme / Gamme | Description |
|---|---|---|---|
| ts | flotter | Secondes Unix | Horodatage de la trame (time.time()) |
| côté_main | str | "gauche" | "droite" | À quelle main appartient ce cadre |
| virages | colère | 5 touches, [0, 1] | Courbure normalisée par doigt (pouce, index, milieu, anneau, petit) |
| joint_actual_position_5x4 | liste[liste[float]] | 5×4, radians | Positions articulaires brutes de wujihandpy, 5 doigts × 4 articulations |
| pression_map_24x32 | liste[liste[float]] | 24×32, [0, 1] | Répartition de la pression tactile sur la surface de la main |
| imu | liste[flottant] | jusqu'à 16 valeurs | IMU 6 axes : [ax, ay, az, gx, gy, gz, ...] (emplacements restants mis à zéro) |
| FEM | colère | par doigt + hand_back | Lectures du capteur EMF ; chaque entrée est flottante ou dictée avec les touches "bend"/"angle" |
Le bends les valeurs sont dérivées de joint_actual_position_5x4 en faisant la moyenne des 4 angles articulaires par doigt et en normalisant de la plage [0, π/2] à [0, 1].
wuji_glove_agent.py — Indicateurs clés
| Drapeau | Défaut | Description |
|---|---|---|
| --back-end | ws://127.0.0.1:8000 | URL de base de la plateforme WebSocket |
| --session | (requis) | ID de session Teleop depuis la plateforme |
| --identifiant-nœud | noeud de gants wuji | Identifiant de ce nœud de périphérique dans la session |
| --gant | auto | Côté main : gauche, droite ou automatique (lecture à partir de la première image) |
| --device-kind | wuji_hand | Type d'appareil enregistré sur la plateforme |
| --télémétrie-hz | 30.0 | Taux de transfert de télémétrie vers la plateforme |
| --wuji-cmd | python3 wuji_hand_sdk_stream.py --hand-side right --hz 30 | Commande Shell qui émet des trames JSONL vers la sortie standard |
| --reconnexion-min-s | 1.0 | Intervalle minimum de reconnexion (secondes) |
| --reconnect-max-s | 10.0 | Intervalle maximal de reconnexion (secondes) |