Transformations du montage et de l'espace de travail
Deux transformations permettent de positionner l'appareil dans l'espace d'application. Comprendre le processus vous aide à choisir la bonne.
Coordonner le pipeline
| Scène | Fonctionnalités | Comment le configurer | Persévérant ? |
|---|---|---|---|
| Base | Permet de remapper les axes (par exemple, Z vers le haut → Y vers le haut) | session.configure.basis | Oui |
| Transformation de montage | Décalage physique de montage de l'appareil (position du bras, rotation, échelle) | configure.mount ou configure.preset | Oui |
| Transformation de l'espace de travail | Décalage de la caméra / de la navigation dans la scène | commands.set_transform ou le Module de navigation | Oui (en haut de la page) |
Transformation de montage
La configuration de montage décrit l'emplacement physique de l'appareil: le déport du bras, son orientation et son échelle. Elle est définie une seule fois (ou lorsque l'utilisateur modifie la configuration physique) et est rarement mise à jour pendant l'exécution.
Préréglages (configurations d'usine)
Au lieu de calculer vous-même le montage, choisissez un préréglage :
| Préréglage | Emplacement d'origine | Face au bras |
|---|---|---|
defaults | Socle pour appareil | Vers l'avant (bras vers l'avant) |
arm_front | Socle pour appareil | Suivant |
arm_front_centered | Centre d'espaces de travail | Suivant |
led_front | Socle pour appareil | LED latérale avant |
led_front_centered | Centre d'espaces de travail | LED latérale avant |
custom | Manuel — à monter soi-même | — |
Un préréglage permet de définir d'un seul coup la monture, la base et l'origine de l'espace de travail.
Configurer directement le montage
- 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 s'excluent mutuellementLes envoyer tous les deux dans le même message prête à confusion — le service le rejette.
Choisissez-en un : un preset (qui configure le montage pour vous) ou un
mount transformer.
Quand envoi une monture, enveloppez la transformation : { "mount": { "transform": { … } } }.
Quand lecture un montage à partir du cliché, c'est plat : { "mount": { "position": …, "rotation": …, "scale": … } }.
C'est voulu : les commandes utilisent le système unifié command_data wrapper ; instantanés
sérialiser le core::transform directement.
Transformation de l'espace de travail
La transformation de l'espace de travail est une déviation appliquée à l'exécution par-dessus le montage. Elle est généralement utilisée pour la navigation dans une scène : pour effectuer un panoramique, une rotation ou un zoom sur la vue de l'application tandis que l'appareil reste physiquement immobile.
Les transformations de montage et d'espace de travail sont toutes deux persistantes: le service mémorise la dernière valeur que vous avez envoyée. La différence réside dans leur objectif et leurs performances :
- Mount est conçu pour être configuré une seule fois et rester inchangé : il décrit la configuration physique et est optimisé pour les mises à jour peu fréquentes.
- La transformation de l'espace de travail est conçue pour être transmise en continu à une fréquence élevée (par exemple, à chaque image lors de la navigation de la caméra) — le 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 renvoie la transformation actuelle ; DELETE revient à l'identité.
Si vous avez besoin d'un déplacement continu (navigation par bulles, dérive à vitesse contrôlée),
utilisez le Module de navigation au lieu de
diffuser manuellement set_transform à chaque instant — il gère pour vous la physique, le
retour haptique et les limites de l'espace de travail.