Steuerbefehle
Dies sind pro Tick gesendete, nicht persistente Befehle, die unter der commands-Map jedes Geräts übergeben werden. Sie werden einmal angewendet und danach vergessen. Wenn Sie sie nicht weiter senden, kehrt das Gerät in den Leerlauf zurück.
Alle Steuerbefehle sind nur für WebSocket verfügbar (ohne Entsprechung in HTTP), sofern nicht anders vermerkt.
set_cursor_force
Wendet eine kartesische Kraft auf den Cursor (Endeffektor) an.
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_force": {
"vector": { "x": 0.0, "y": 0.0, "z": 1.5 }
}
}
}]
}
| Feld | Typ | Beschreibung |
|---|---|---|
vector | vec3 | Kraft in Newton im Anwendungsraum |
Kräfte sind innerhalb eines Ticks additiv — mehrere Quellen (Ihre Anwendung, SDF HFX, Navigation) werden summiert, bevor sie an das Gerät gesendet werden.
set_cursor_position
Befiehlt dem Cursor, eine Zielposition anzufahren (Steuerung im Positionsmodus).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_position": {
"position": { "x": 0.0, "y": -0.12, "z": 0.15 }
}
}
}]
}
| Feld | Typ | Beschreibung |
|---|---|---|
position | vec3 | Zielposition in Metern im Anwendungsraum |
Der Dienst berechnet die Kraft, die benötigt wird, um den Cursor zum Ziel zu bewegen. Ist safe-trajectory aktiviert, wird die Cursorgeschwindigkeit begrenzt.
set_angular_torques
Wendet Drehmomente auf die drei Gelenke an (Steuerung im Winkel-Kraftmodus).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_torques": {
"torques": { "a0": 0.0, "a1": 0.0, "a2": 0.0 }
}
}
}]
}
| Feld | Typ | Beschreibung |
|---|---|---|
torques | angles3 | Gelenkdrehmomente |
set_angular_position
Befiehlt den Gelenken, Zielwinkel anzufahren (Steuerung im Winkel-Positionsmodus).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_position": {
"angles": { "a0": 30.0, "a1": 45.0, "a2": 60.0 }
}
}
}]
}
| Feld | Typ | Beschreibung |
|---|---|---|
angles | angles3 | Ziel-Gelenkwinkel in Grad |
set_transform
Setzen Sie die Workspace-Transformation (Geräteraum → Anwendungsraum). Im Gegensatz zu den übrigen
Befehlen ist set_transform persistent: Der Dienst merkt sich den zuletzt gesendeten
Wert. Streamen Sie ihn während Kamerabewegungen oder senden Sie ihn einmal und belassen ihn so.
- 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}}}'
Bei Grip-Geräten wirkt nur rotation. position und scale werden zur Konsistenz mit dem Schema von Inverse3 akzeptiert, haben aber keinen Effekt auf den Grip.
Wenn Sie kontinuierliche Fortbewegung benötigen, verwenden Sie stattdessen das Navigationsmodul,
statt set_transform manuell zu streamen. Es übernimmt für Sie die Physik, das haptische
Feedback und die Begrenzung des Workspaces.
probe_position / probe_orientation
Nur zur Überwachung gedachte Keepalives für Sitzungen, die keine Steuerbefehle senden (z. B. Haply Hub bei der reinen Beobachtung von Geräten).
{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
Wenn Ihre Sitzung bereits Steuerbefehle sendet (set_cursor_force,
set_cursor_position usw.), wird der Gerätezustand mit jeder Antwort automatisch aktualisiert. Probes sind nur für reine Überwachungssitzungen (nur Lesezugriff) nützlich.