Steuerbefehle
Dies sind pro Tick gesendete, nicht persistente Befehle, die unter der commands-Die Zuordnung jedes Geräts muss übergeben werden. Sie werden einmal angewendet und anschließend vergessen. Wenn Sie keine weiteren Befehle 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 angegeben.
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 Anwendungsbereich |
Die Kräfte sind innerhalb eines Ticks additiv – mehrere Quellen (Ihre Anwendung, SDF HFX, Navigation) werden addiert, bevor sie an das Gerät gesendet werden.
set_cursor_position
Weist den Cursor an, eine Zielposition anzusteuern (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 Anwendungsbereich |
Der Dienst berechnet die Kraft, die erforderlich ist, 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-Kraft-Modus).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_torques": {
"torques": { "a0": 0.0, "a1": 0.0, "a2": 0.0 }
}
}
}]
}
| Feld | Typ | Beschreibung |
|---|---|---|
torques | Winkel3 | Gelenkmomente |
set_angular_position
Befiehlt den Gelenken, den Zielwinkel anzusteuern (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 | Winkel3 | Zielgelenkwinkel in Grad |
set_transform
Führen Sie die Workspace-Transformation durch (Geräteraum → Anwendungsraum). Im Gegensatz zu den übrigen
Befehlen ist set_transform anhaltend: Der Dienst speichert den zuletzt gesendeten
Wert. Streamen Sie ihn während Kamerabewegungen oder senden Sie ihn einmal und belassen Sie ihn dann 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 aus Gründen der Konsistenz mit dem Schema von Inverse3 akzeptiert, haben jedoch keinen Einfluss auf den Grip.
Wenn Sie sich kontinuierlich fortbewegen müssen, 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 Arbeitsraums.
probe_position / probe_orientation
Keepalives, die ausschließlich zur Überwachung von Sitzungen gedacht sind, 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) sinnvoll.