Aller au contenu principal

Commandes de contrôle

Il s'agit de commandes par cycle, non persistantes, transmises via 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 veille.

Toutes les commandes de contrôle sont réservées à WebSocket (il n'existe pas d'é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 le domaine d'application

Les forces s'additionnent au sein d'un même cycle : plusieurs sources (votre application, SDF HFX, la navigation) s'additionnent avant d'être transmises à l'appareil.


set_cursor_position​

Ordre donné au curseur de se déplacer vers 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 de sécurité (safe-trajectory) est activée, la vitesse du curseur est limitée.


set_angular_torques​

Application 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
torquesangles3Paires articulaires

set_angular_position​

Commande les articulations pour qu'elles atteignent des angles cibles (contrôle en mode de 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 enregistre la dernière valeur envoyée. Transmettez-la en continu pendant les déplacements de la 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 avec le schéma disponible à l'adresse Inverse3, mais n'ont aucun effet sur la poignée.

Utilisez le module « Navigation » pour une navigation automatisée

Si vous avez besoin d'un déplacement continu, utilisez le module Navigation plutôt que de transmettre set_transform manuellement et en continu — il gère pour vous les aspects physiques, le retour 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, un Hub d'Haply qui surveille 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à des commandes de contrôle (set_cursor_force, set_cursor_position, etc.), l'état de l'appareil est mis à jour automatiquement à chaque réponse. Les sondes ne sont utiles que pour les sessions de surveillance en lecture seule.