Aller au contenu principal

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​

étapeFonctionMode de configurationEst-ce que cela est persistant ?
RéférenceRemapper 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 transformationDé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 travailDérive de la caméra / de la navigation dans les scènescommands.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églagesPosition d'origineOrientation des bras
defaultsSocle de l'appareilVers l'avant (face avant du bras)
arm_frontSocle de l'appareilVers l'avant
arm_front_centeredCentre des espaces de travailVers l'avant
led_frontSocle de l'appareilLa LED est orientée vers l'avant
led_front_centeredCentre des espaces de travailLa LED est orientée vers l'avant
customManuel — 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​

{
"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 }
}
}
}
}]
}
mount et preset Exclusion mutuelle

Envoyer 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.

Asymétrie entre la structure des commandes et celle des instantanés

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.
{
"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 }
}
}
}
}]
}
Le zoom a une incidence sur la puissance de sortie — ce qui correspond généralement exactement à l'effet recherché

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.

Mise en œuvre de la dérive automatique à l'aide du module de navigation

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.