Steuerbefehle
Es handelt sich um zyklusbezogene, nicht persistente Befehle, die im Wörterbuch übermittelt werden. commands jedes Geräts. Sie werden angewendet nur einmal, und werden anschließend vergessen – wenn Sie keine Signale mehr senden, kehrt das Gerät in den Ruhezustand zurück.
Sofern nicht anders angegeben, sind alle Steuerbefehle WebSocket vorbehalten (es gibt keine HTTP-Entsprechung).
set_cursor_force
Wende 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 }
}
}
}]
}
| Champ | Typ | Beschreibung |
|---|---|---|
vector | vec3 | Kraft in Newton im Anwendungsbereich |
Die Kräfte addieren sich innerhalb eines Zyklus – mehrere Quellen (Ihre Anwendung, SDF HFX, Navigation) werden addiert, bevor sie an das Gerät gesendet werden.
set_cursor_position
Befehl an den Cursor, sich zu einer Zielposition zu bewegen (Steuerung im Positionsmodus).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_position": {
"position": { "x": 0.0, "y": -0.12, "z": 0.15 }
}
}
}]
}
| Champ | Typ | Beschreibung |
|---|---|---|
position | vec3 | Zielposition in Metern im Anwendungsbereich |
Der Dienst berechnet die Kraft, die erforderlich ist, um den Cursor zum Ziel zu bewegen. Wenn die sichere Bewegungsbahn (safe-trajectory) aktiviert ist, wird die Geschwindigkeit des Cursors begrenzt.
set_angular_torques
Anwendung der Drehmomente auf die drei Gelenke (Steuerung im Winkelkraftmodus).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_torques": {
"torques": { "a0": 0.0, "a1": 0.0, "a2": 0.0 }
}
}
}]
}
| Champ | Typ | Beschreibung |
|---|---|---|
torques | Winkel3 | Gelenkpaare |
set_angular_position
Befehl an die Gelenke, Zielwinkel anzusteuern (Steuerung im Winkelpositionsmodus).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_position": {
"angles": { "a0": 30.0, "a1": 45.0, "a2": 60.0 }
}
}
}]
}
| Champ | Typ | Beschreibung |
|---|---|---|
angles | Winkel3 | Zielgelenkwinkel in Grad |
set_transform
Definiert die Transformation des Arbeitsraums (Geräteraum → Anwendungsraum). Im Gegensatz zu den anderen
Befehlen, set_transform est dauerhaft — Der Dienst speichert den zuletzt
gesendeten Wert. Übertragen Sie diesen Wert während der Kamerabewegungen kontinuierlich oder senden Sie ihn einmalig und belassen Sie ihn dann unverändert.
- 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}}}'
Für die Griffe, nur rotation hat eine Wirkung. position et scale Sie werden aus Gründen der Konsistenz
des Schemas mit Inverse3 akzeptiert, haben jedoch keinerlei Auswirkungen auf den Griff.
Wenn Sie eine kontinuierliche Bewegung benötigen, verwenden Sie den Modul „Navigation“
anstatt weiterzugeben set_transform manuell und kontinuierlich – es übernimmt für Sie die Physik, das haptische Feedback
und die Abgrenzung des Arbeitsraums.
probe_position / probe_orientation
Keepalive-Nachrichten, die ausschließlich zu Überwachungszwecken dienen, für Sitzungen, die keine Steuerbefehle senden (z. B. „ Haply -Hub“, der Geräte überwacht).
{
"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ätestatus bei jeder
Antwort automatisch aktualisiert. Die Sensoren sind nur für Überwachungssitzungen im schreibgeschützten Modus von Nutzen.