Aller au contenu principal

Commandes de contrôle

Il s'agit de commandes envoyées à chaque tick, non persistantes, qui sont gérées sous la commands- La carte de chaque appareil doit être transmise. Elles sont une fois utilisées puis oubliées. Si vous ne continuez pas à les envoyer, l'appareil revient en mode veille.

Sauf indication contraire, toutes les commandes de contrôle sont disponibles uniquement via WebSocket (sans équivalent en HTTP).

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 }
}
}
}]
}
FeldTypeDescription
vectorvec3Kraft à Newton dans l'espace d'application

Les forces sont cumulatives au sein d'un tick : plusieurs sources (votre application, SDF HFX, la navigation) sont additionnées avant d'être transmises à l'appareil.


set_cursor_position​

Ordonne au curseur de se déplacer vers une position cible (commande en mode position).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_position": {
"position": { "x": 0.0, "y": -0.12, "z": 0.15 }
}
}
}]
}
FeldTypeDescription
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 l'option « safe-trajectory » est activée, la vitesse du curseur est limitée.


set_angular_torques​

Applique des couples aux trois articulations (commande en mode angle-force).

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

set_angular_position​

Ordonne aux articulations de se positionner selon l'angle cible (commande en mode angle-position).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_position": {
"angles": { "a0": 30.0, "a1": 45.0, "a2": 60.0 }
}
}
}]
}
FeldTypeDescription
anglesangles3Angle articulaire cible en degrés

set_transform​

Appliquez la transformation d'espace de travail (espace des appareils → espace d'application). Contrairement aux autres commandes, set_transform persistant: Le service mémorise la dernière valeur envoyée. Diffusez-la en continu pendant les mouvements 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 }
}
}
}
}]
}
poignée Verse / poignée Verse sans fil

Sur les appareils de préhension, seul rotation. position et scale sont acceptées pour des raisons de cohérence avec le schéma de Inverse3 , mais n'ont aucun effet sur l'adhérence.

Utiliser le module de navigation pour la dérive automatique

Si vous avez besoin de vous déplacer en continu, utilisez plutôt le Module de navigation, au lieu de set_transform diffuser manuellement. Il se charge pour vous de la physique, du retour haptique et de la limitation de l'espace de travail.


probe_position / probe_orientation​

Keepalives destinés uniquement à la surveillance pour les sessions qui n'envoient pas de commandes de contrôle (par exemple, un concentrateur « Haply » utilisé uniquement pour la surveillance des appareils).

{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
Vous n'en aurez 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 automatiquement mis à jour à chaque réponse. Les « probes » ne sont utiles que pour les sessions de surveillance pure (accès en lecture seule).