Installation et transformation de l'espace de travail
Deux types de transformations permettent de localiser un appareil dans l'espace de l'application. Comprendre l'ensemble du processus vous aidera à choisir la transformation la plus adaptée.
Processus de traitement des coordonnées
| étape | Fonction | Mode de configuration | Est-ce que cela est persistant ? |
|---|---|---|---|
| Référence | Remapper les axes de coordonnées (par exemple, Z vers le haut → Y vers le haut) | session.configure.basis — Voir Tutoriel n° 08(Configuration à distance via HTTP) | Oui |
| Installation de la transformation | Décalages physiques liés à l'installation de l'équipement (position du bras, rotation, zoom) | configure.mount ou configure.preset — Voir Tutoriel n° 08(Configuration à distance via HTTP) | Oui |
| Transformation de l'espace de travail | Dérive de la caméra / de la navigation dans les scènes | commands.set_transform — Voir Tutoriel n° 09(Transmission en continu par cycle avec WebSocket) | Oui (enregistrement permanent) |
Installation de la transformation
La configuration décritl'emplacement réel de l'appareil dans l'espace physique, y compris le décalage du bras, son orientation et son échelle. Elle n'est généralement définie qu'une seule fois (ou lorsque l'utilisateur modifie la configuration physique) et est rarement mise à jour pendant l'exécution.
Paramètres par défaut (configuration d'usine)
Vous n'avez pas besoin de calculer vous-même les paramètres d'installation ; il vous suffit de choisir un préréglage :
| Préréglages | Position d'origine | Orientation des bras |
|---|---|---|
defaults | Socle de l'appareil | Vers l'avant (face avant du bras) |
arm_front | Socle de l'appareil | Vers l'avant |
arm_front_centered | Centre des espaces de travail | Vers l'avant |
led_front | Socle de l'appareil | La LED est orientée vers l'avant |
led_front_centered | Centre des espaces de travail | La LED est orientée vers l'avant |
custom | Manuel — Configuration manuelle des paramètres d'installation | — |
Les préréglages permettent de définir en une seule fois les transformations, le système de référence et l'origine de l'espace de travail.
Configurer directement les paramètres d'installation
- WebSocket
- HTTP
{
"inverse3": [{
"device_id": "049D",
"configure": {
"mount": {
"transform": {
"position": { "x": 0.0, "y": 0.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}
}
}
}]
}
curl -X POST "http://localhost:10001/inverse3/049D/config/mount?session=:0" \
-H "Content-Type: application/json" \
-d '{"transform":{"position":{"x":0,"y":0,"z":0},"rotation":{"w":1,"x":0,"y":0,"z":0},"scale":{"x":1,"y":1,"z":1}}}'
mount et preset Exclusion mutuelleEnvoyer les deux éléments dans un même message peut prêter à confusion ; le service rejettera alors directement la requête.
Il faut choisir l'un ou l'autre : utilisez le preset(qui se charge de configurer les paramètres d'installation pour vous), ou en utilisant explicitement mount Transformation.
EnvoyerLors de la configuration des paramètres, il faut encapsuler la transformation :{ "mount": { "transform": { … } } }。
Lire à partir d'un instantanéLors de la configuration des paramètres, la structure est plate :{ "mount": { "position": …, "rotation": …, "scale": … } }。
C'est un choix délibéré : la commande utilise un format uniforme command_data des wrappers, tandis que les instantanés sont directement sérialisés core::transform。
Transformation de l'espace de travail
La transformation de l'espace de travail estune dérive à l'exécutionqui vient se superposer à la transformation d'installation. Elle est généralement utilisée pour la navigation dans les scènes : elle permet de déplacer, faire pivoter ou mettre à l'échelle la vue de l'application tout en conservant la position physique de l'appareil.
Les transformations d'installation et les transformations d'espace de travail sont toutes deuxpersistantes: le service mémorise la dernière valeur que vous avez envoyée. La différence entre les deux réside dans leur utilisation et leurs performances :
- La configuration de l'installation est conçue pourrester inchangée une fois définie : elle décrit la configuration physique et est optimisée pour les mises à jour peu fréquentes.
- La conception de la transformation de l'espace de travail est pensée pourune transmission en continu à haute fréquence (par exemple, à chaque image lors de la navigation par caméra) ; son pipeline interne est optimisé pour cette fréquence de mise à jour.
- WebSocket
- HTTP
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_transform": {
"transform": {
"position": { "x": 1.0, "y": 0.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}
}
}
}]
}
curl -X POST "http://localhost:10001/inverse3/049D/state/transform?session=:0" \
-H "Content-Type: application/json" \
-d '{"transform":{"position":{"x":1,"y":0,"z":0},"rotation":{"w":1,"x":0,"y":0,"z":0},"scale":{"x":1,"y":1,"z":1}}}'
GET Revenir à la transformation actuelle ;DELETE Le réinitialiser pour la conversion d'unités.
Le zoom sur l'installation ou l'espace de travail modifie les forces rendues par le dispositif, car le zoom influe sur les paramètres utilisés pour calculer les forces de contact.Profondeur de pénétration. Par exemple,2x Le zoom réduit approximativement de moitié la profondeur de pénétration (la scène virtuelle étant deux fois plus grande que la course de l'appareil) ; la force obtenue est donc d'environ 1x au moment oùla moitié. À l'inverse,0.5x Le fait de réduire ou d'agrandir la taille a pour effet de doubler la force.
C'est généralement exactement le comportement souhaité :dans un scénario tactile, le fait de réduire la vueentraîne naturellement un contact plus faible (c'est comme si vous vous « éloigniez »), tandis quel'agrandissement de la vuerenforce le contact. Si ce n'est pas l'effet recherché — par exemple, si vous souhaitez que la rigidité reste constante lorsque l'utilisateur effectue un zoom —, vous pouvez compenser cela en inversant le gain de force de zoom.
Si vous avez besoin d'un déplacement continu (navigation par bulles, dérive à vitesse contrôlée),
veuillez utiliserModule de navigation, plutôt que de procéder à une transmission en continu manuelle à chaque cycle set_transform——Il se chargera pour vous des calculs physiques, du retour tactile et des limites de l'espace de travail.