Aller au contenu principal

Transformations de montage et d'espace de travail

Deux transformations permettent de positionner l'appareil dans l'espace d'application. La compréhension du pipeline vous aidera à choisir celle qui convient.

Chaîne de traitement des coordonnées​

NiveauFonctionRéglageDe façon durable ?
BaseRéorganise les axes (par exemple : Z en haut → Y en haut)session.configure.basis — voir Tutoriel 08 (Configuration à distance via HTTP)Oui
Montage-TransformationDécalage physique de l'appareil lors du montage (position du bras, rotation, mise à l'échelle)configure.mount ou configure.preset — voir Tutoriel 08 (Configuration à distance via HTTP)Oui
Transformation de l'espace de travailDécalage lors de la navigation par caméra ou par scènecommands.set_transform — voir Tutoriel n° 09 (Diffusion WebSocket par Takt)Oui (enregistré de manière permanente)

Montage-Transformation​

Le montage décrit l'emplacement physique de l'appareil: son décalage latéral, son orientation et son échelle. Il est défini une seule fois (ou lorsque la configuration physique change) et est rarement mis à jour lors de l'exécution.

Paramètres par défaut (configurations d'usine)​

Au lieu de calculer vous-même le montage, sélectionnez un préréglage nommé :

Réglage par défautPosition d'origineAlignement du bras
defaultsBase des appareilsÀ l'avant (face avant du bras)
arm_frontBase des appareilsÀ l'avant
arm_front_centeredWorkspace-MitteÀ l'avant
led_frontBase des appareilsFace avant à LED
led_front_centeredWorkspace-MitteFace avant à LED
customMode manuel — Définir soi-même le montage—

Un paramètre par défaut définit l'assemblage, la base et l'origine de l'espace de travail en une seule étape.

Définir directement le montage​

{
"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 s'excluent mutuellement

L'envoi simultané de ces deux informations dans un même message prête à confusion — le service ne l'autorise pas. Choisissez l'une des deux options : un nom preset (que le montage définit pour vous) ou une mount-Transformation.

Asymétrie entre la commande et l'instantané

Chez Envoyer En un seul montage, vous résumez la transformation : { "mount": { "transform": { … } } }. Chez Lire Dans un montage issu du « Snapshot », elle est plate : { "mount": { "position": …, "rotation": …, "scale": … } }. C'est voulu — les commandes utilisent le format uniforme command_data-Wrapper, Snapshots sérialisent les core::transform directement.

Transformation de l'espace de travail​

La transformation de l'espace de travail est une dérive d'exécution qui s'applique à l'assemblage. Son cas d'utilisation typique est la navigation entre les scènes : panoramique, rotation ou zoom de la vue de l'application, tandis que l'appareil reste physiquement en place.

Les transformations de montage et d'espace de travail sont permanentes: le service mémorise la dernière valeur envoyée. La différence réside dans leur objectif et leurs fonctionnalités :

  • Le montage est conçu pour être défini une seule fois et rester inchangé : il décrit la structure physique et est optimisé pour des mises à jour occasionnelles.
  • Workspace-Transformation est conçu pour être diffusé en continu à une fréquence élevée (par exemple, à chaque image pendant la navigation de la caméra) — le pipeline interne est optimisé pour ce taux de rafraîchissement.
{
"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 }
}
}
}
}]
}
La mise à l'échelle influe sur la puissance développée — souvent de la manière souhaitée

La mise à l'échelle du montage ou de l'espace de travail modifie la force générée par l'appareil, car cette mise à l'échelle affecte la Profondeur de pénétration qui sert à calculer la force de contact. Par exemple, une mise à l'échelle de 2x la profondeur de pénétration est d'environ (la scène virtuelle est deux fois plus grande que la course de l'appareil), de sorte que la force résultante est d'environ halb aussi grand que chez 1x. À l'inverse, une mise à l'échelle de 0.5x la force, approximativement.

C'est généralement le comportement souhaité : lorsque l'on effectue un zoom arrière dans une scène haptique, les contacts s'affaiblissent naturellement (ils sont « plus éloignés »), et lorsqu'on effectue un zoom avant, ils s'intensifient. Si ce n'est pas le comportement souhaité — par exemple, si la rigidité doit rester constante pendant le zoom de l'utilisateur —, compensez cela en ajustant vos amplifications de force de manière inversement proportionnelle.

Utiliser le module de navigation pour la dérive automatique

Si vous avez besoin d'un déplacement continu (navigation par bulles, dérive avec régulation de la vitesse), utilisez le Module de navigation, au lieu de set_transform à chaque mesure de manière manuelle — le logiciel se charge pour vous de la physique, du retour haptique et de la limitation à l'espace de travail.