Steuerbefehl
Im Folgenden finden Sie die commands Es handelt sich um nicht persistente Befehle im Tick-Takt, die an die Karte gesendet werden. Die Befehle sind Nur einmal Sie werden angewendet und anschließend vergessen. Sobald die Befehlsübertragung unterbrochen wird, kehrt das Gerät in den Ruhezustand zurück.
Sofern nicht anders angegeben, geltenalle Steuerbefehle ausschließlich für WebSocket(es gibt keine entsprechenden Befehle für HTTP).
set_cursor_force
Auf den Cursor (Endeffektor) wird eine Kraft im kartesischen Koordinatensystem ausgeübt.
{
"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, bezogen auf den Anwendungsraum |
Die Kräfte werden innerhalb eines Ticks **additiv** addiert. Die Kräfte aus verschiedenen Quellen (App, SDF HFX, Navigation) werden addiert, bevor sie an das Gerät übertragen werden.
set_cursor_position
Weist den Cursor an, sich an die Zielposition zu bewegen (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, bezogen auf den Anwendungsbereich |
Der Dienst berechnet die Kraft, die erforderlich ist, um den Cursor zum Ziel zu bewegen. Ist „safe-trajectory“ aktiviert, wird die Geschwindigkeit des Cursors begrenzt.
set_angular_torques
An drei Gelenken wird ein Drehmoment aufgebracht (Steuerung im Winkelkraftmodus).
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_torques": {
"torques": { "a0": 0.0, "a1": 0.0, "a2": 0.0 }
}
}
}]
}
| Feld | Typ | Beschreibung |
|---|---|---|
torques | Winkel3 | Gelenkdrehmoment |
set_angular_position
Weist das Gelenk an, sich in den Zielwinkel zu bewegen (Winkel-Positions-Modus-Steuerung).
{
"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
Die Arbeitsbereichsumwandlung (Gerätebereich → Anwendungsbereich) wird eingerichtet. Im Gegensatz zu anderen Befehlen set_transformEs ist **persistent**. Der Dienst speichert den zuletzt übertragenen Wert. Sie können die Daten während der Bewegung der Kamera kontinuierlich streamen oder sie einfach einmalig übertragen.
- 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}}}'
Im Falle der Greifvorrichtung rotationDas ist der einzige Effekt. positionund scaleDies ist zwar zulässig, um die Schemakonsistenz mit Inverse3 zu gewährleisten, hat jedoch keine Auswirkungen auf den Grip.
Wenn ständige Bewegung erforderlich ist, set_transformanstatt es manuell zu streamen NavigationsmodulVerwenden Sie diese Funktion. Sie übernimmt automatisch die physikalische Simulation, das haptische Feedback und die Verarbeitung der Arbeitsbereichsgrenzen.
probe_position / probe_orientation
Dies ist ein reines Überwachungs-Keepalive für Sitzungen, bei denen keine Steuerbefehle gesendet werden (z. B. wenn ein Gerät über den „ Haply “-Hub überwacht wird).
{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
Die Sitzung hat bereits einen Steuerbefehl (set_cursor_force, set_cursor_position (usw.) überträgt, wird der Gerätestatus automatisch zusammen mit allen Antworten aktualisiert. Die Sonde ist nur in schreibgeschützten Überwachungssitzungen nützlich.