Aller au contenu principal

Commandes de contrôle

Il s'agit de commandes par cycle et non persistantes, transmises sous le dictionnaire commands de chaque appareil. Elles sont appliquées une seule fois, puis oubliées — si vous cessez de les envoyer, l'appareil revient à l'état de repos.

Toutes les commandes de contrôle sont réservées à WebSocket (aucun équivalent HTTP), sauf indication contraire.

set_cursor_force​

Applique une force cartésienne au curseur (effecteur terminal).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_force": {
"vector": { "x": 0.0, "y": 0.0, "z": 1.5 }
}
}
}]
}
ChampTypeDescription
vectorvec3Force en newtons, dans l'espace d'application

Les forces sont additives au sein d'un même cycle — plusieurs sources (votre application, SDF HFX, navigation) s'additionnent avant d'être envoyées à l'appareil.


set_cursor_position​

Commande au curseur de se rendre à une position cible (contrôle en mode position).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_position": {
"position": { "x": 0.0, "y": -0.12, "z": 0.15 }
}
}
}]
}
ChampTypeDescription
positionvec3Position cible en mètres, dans l'espace d'application

Le service calcule la force nécessaire pour déplacer le curseur vers la cible. Si la trajectoire sécuritaire (safe-trajectory) est activée, la vitesse du curseur est limitée.


set_angular_torques​

Applique des couples aux trois articulations (contrôle en mode force angulaire).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_torques": {
"torques": { "a0": 0.0, "a1": 0.0, "a2": 0.0 }
}
}
}]
}
ChampTypeDescription
torquesangles3Couples articulaires

set_angular_position​

Commande aux articulations d'atteindre des angles cibles (contrôle en mode position angulaire).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_position": {
"angles": { "a0": 30.0, "a1": 45.0, "a2": 60.0 }
}
}
}]
}
ChampTypeDescription
anglesangles3Angles articulaires cibles, en degrés

set_transform​

Définit la transformation de l'espace de travail (espace de l'appareil → espace de l'application). Contrairement aux autres commandes, set_transform est persistante — le service mémorise la dernière valeur envoyée. Transmettez-la en continu pendant les déplacements de caméra, ou envoyez-la une seule fois et laissez-la telle quelle.

{
"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 }
}
}
}
}]
}
Verse grip / Verse grip sans fil

Pour les poignées, seul rotation a un effet. position et scale sont acceptés par souci de cohérence du schéma avec Inverse3, mais n'ont aucun effet sur la poignée.

Utilisez le module Navigation pour un déplacement automatisé

Si vous avez besoin d'un déplacement continu, utilisez le module Navigation plutôt que de transmettre set_transform manuellement en continu — il gère pour vous la physique, la rétroaction haptique, et la délimitation de l'espace de travail.


probe_position / probe_orientation​

Messages de maintien de connexion (keepalive) destinés uniquement à la surveillance, pour les sessions qui n'envoient pas de commandes de contrôle (par exemple, Haply Hub qui observe des appareils).

{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
Vous n'en avez probablement pas besoin

Si votre session envoie déjà toute commande de contrôle (set_cursor_force, set_cursor_position, etc.), l'état de l'appareil est actualisé automatiquement à chaque réponse. Les sondes ne sont utiles que pour les sessions de surveillance en lecture seule.