Commandes de contrôle
Il s'agit de commandes traitées tick par tick et non persistantes, via chaque périphérique commands
Envoi par mappage. Ils ne serontUtiliser une fois, puis il est immédiatement supprimé — si l'envoi est interrompu, l'appareil revient à l'état inactif.
Sauf indication contraire,toutesles commandesde contrôle s'appliquent uniquement à WebSocket(il n'existe pas de commande équivalente en HTTP).
set_cursor_force
Appliquer une force cartésienne au curseur (actionneur terminal).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_force": {
"vector": { "x": 0.0, "y": 0.0, "z": 1.5 }
}
}
}]
}
| Champ | Type | Explication |
|---|---|---|
vector | vec3 | Force, exprimée en newtons, dans l'espace d'application |
Au sein d'un même « tick », les forces sontcumulables: celles provenant de plusieurs sources (votre application, SDF HFX, la navigation) sont additionnées avant d'être transmises à l'appareil.
set_cursor_position
Déplacer la commande du curseur vers la position souhaitée (contrôle en mode position).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_position": {
"position": { "x": 0.0, "y": -0.12, "z": 0.15 }
}
}
}]
}
| Champ | Type | Explication |
|---|---|---|
position | vec3 | Position cible, exprimée en mètres, située dans l'espace de l'application |
Le service calcule la force nécessaire pour déplacer le curseur vers la cible. Si l'option « safe-trajectory » (trajectoire sécurisée) est activée, la vitesse du curseur sera limitée.
set_angular_torques
Appliquer un couple aux trois articulations (commande en mode force angulaire).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_torques": {
"torques": { "a0": 0.0, "a1": 0.0, "a2": 0.0 }
}
}
}]
}
| Champ | Type | Explication |
|---|---|---|
torques | angles3 | Couple articulaire |
set_angular_position
Transmettre à l'articulation une consigne d'angle cible (commande en mode position angulaire).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_position": {
"angles": { "a0": 30.0, "a1": 45.0, "a2": 60.0 }
}
}
}]
}
| Champ | Type | Explication |
|---|---|---|
angles | angles3 | Angle cible de l'articulation, en degrés |
set_transform
Configurer la transformation de l'espace de travail (espace matériel → espace application). Contrairement aux autres commandes,set_transform Ouila persistance——Le service mémorise la dernière valeur que vous avez envoyée. Vous pouvez soit envoyer des données en continu pendant le déplacement de la caméra, soit n'envoyer cette valeur qu'une seule fois et la laisser inchangée.
- WebSocket
- HTTP
{
"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 }
}
}
}
}]
}
curl -X POST "http://localhost:10001/inverse3/049D/state/transform?session=:0" \
-H "Content-Type: application/json" \
-d '{"transform":{"position":{"x":1,"y":0,"z":0},"rotation":{"w":1,"x":0,"y":0,"z":0},"scale":{"x":1,"y":1,"z":1}}}'
En ce qui concerne les dispositifs de préhension (Verse Grip / Verse Grip sans fil), uniquement rotation Valable.position et scale Cette solution a été adoptée afin de garantir la cohérence architecturale avec Inverse3 , mais elle n'a aucun effet sur les dispositifs de préhension.
Si vous devez continuer à vous déplacer, veuillez utiliserModule de navigation, plutôt que de les envoyer manuellement en continu set_transform. Ce module se charge pour vous des calculs physiques, du retour tactile et des limites de l'espace de travail.
probe_position / probe_orientation
Commande de maintien de connexion destinée uniquement à la surveillance, applicableaux sessions qui n'envoient pas de commandes de contrôle(par exemple, les sessions Hub d'Haply , utilisées pour observer les équipements).
{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
Si votre session a déjà envoyé une commande de contrôle (set_cursor_force,
set_cursor_position etc.), l'état de l'équipement est automatiquement actualisé à chaque réponse. Les commandes de détection ne sont utiles que pour les sessions de surveillance en lecture seule.