Commandes de contrôle
Il s'agit de commandes non persistantes, exécutées à chaque tick, pour chaque périphérique commands Il sera envoyé depuis la carte.Une seule fois Elle est appliquée, puis supprimée. Lorsque l'envoi est interrompu, l'appareil revient à l'état de veille.
Toutes les commandes de contrôle sont réservées à WebSocket, sauf indication contraire (il n'existe pas d'équivalent HTTP).
set_cursor_force
On applique une force dans le système de coordonnées cartésiennes au curseur (effecteur 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 dans l'espace de l'application (unité : newton) |
Au cours d'un tick, les forces sont additionnées. Les forces provenant de plusieurs sources (votre application, SDF HFX, la navigation, etc.) sont additionnées avant d'être transmises à l'appareil.
set_cursor_position
Donne l'ordre de déplacer le curseur vers la position cible (commande 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 dans l'espace de l'application (unité : mètre) |
Le service calcule la force nécessaire pour déplacer le curseur vers la cible. Lorsque la trajectoire de sécurité est activée, la vitesse du curseur est limitée.
set_angular_torques
On applique un couple à 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
On donne l'instruction de déplacer l'articulation jusqu'à 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 }
}
}
}]
}
| Champ | Type | Explication |
|---|---|---|
angles | angles3 | Angle articulaire cible (unité : degrés) |
set_transform
Configurez la conversion de l'espace de travail (espace de l'appareil → espace de l'application). Contrairement aux autres commandes,set_transform は Permanent . Le service mémorise la dernière valeur envoyée. Vous pouvez diffuser en continu pendant que la caméra fonctionne, ou envoyer la valeur une seule fois puis ne plus intervenir.
- 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,rotation C'est la seule chose qui fonctionne.position et scale Il est accepté pour des raisons de cohérence avec le schéma de Inverse3 , mais n'a aucune incidence sur la prise en main.
Si vous devez vous déplacer régulièrement,set_transform Au lieu de diffuser manuellement Module de navigation Veuillez l'utiliser. Il gère automatiquement la simulation physique, le retour haptique et les limites de l'espace de travail.
probe_position / probe_orientation
Il s'agit d'un « keep-alive » dédié à la surveillance, destiné aux sessions qui n'envoient pas de commandes de contrôle (par exemple, lorsque les périphériques sont surveillés via le Hub «Haply »).
{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
Si la session a déjà reçu une commande de contrôle (set_cursor_force,set_cursor_position (etc.) : dans ce cas, l'état de l'appareil est automatiquement mis à jour à chaque réponse. Les sondes ne sont utiles que dans le cadre de sessions de surveillance en lecture seule.