Anordnungen und Arbeitsbereiche
Zwei Transformationen positionieren das Gerät im Anwendungsraum. Wenn Sie die Pipeline verstehen, können Sie die richtige auswählen.
Koordinaten-Pipeline
| Bühne | Funktionsweise | So richten Sie es ein | Hartnäckig? |
|---|---|---|---|
| Grundlage | Ordnet die Achsen neu zu (z. B. Z-Achse nach oben → Y-Achse nach oben) | session.configure.basis | Ja |
| Transformationsfunktion | Physikalischer Montageversatz des Geräts (Armposition, Drehung, Skalierung) | configure.mount oder configure.preset | Ja |
| Arbeitsbereichs-Transformation | Abweichung bei der Kamera-/Szenennavigation | commands.set_transform oder die Navigationsmodul | Ja (angeheftet) |
Transformationsfunktion
Die Halterung beschreibt, wo sich das Gerät physisch befindet – den Versatz des Arms, die Ausrichtung und den Maßstab. Sie wird einmalig festgelegt (oder wenn der Benutzer die physische Anordnung ändert) und während der Laufzeit nur selten aktualisiert.
Voreinstellungen (Werkseinstellungen)
Anstatt die Montage selbst zu berechnen, wählen Sie eine benannte Voreinstellung aus:
| Voreinstellung | Ursprüngliche Platzierung | Armausrichtung |
|---|---|---|
defaults | Gerätesockel | Nach vorne (Arm nach vorne) |
arm_front | Gerätesockel | Weiter |
arm_front_centered | Arbeitsbereichszentrum | Weiter |
led_front | Gerätesockel | LED seitlich nach vorne |
led_front_centered | Arbeitsbereichszentrum | LED seitlich nach vorne |
custom | Anleitung – selbst montieren | — |
Mit einer Voreinstellung werden die Projektionsfläche, die Basis und der Ursprung des Arbeitsbereichs auf einen Schlag festgelegt.
Die Halterung direkt anbringen
- WebSocket
- HTTP
{
"inverse3": [{
"device_id": "049D",
"configure": {
"mount": {
"transform": {
"position": { "x": 0.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/config/mount?session=:0" \
-H "Content-Type: application/json" \
-d '{"transform":{"position":{"x":0,"y":0,"z":0},"rotation":{"w":1,"x":0,"y":0,"z":0},"scale":{"x":1,"y":1,"z":1}}}'
mount und preset schließen sich gegenseitig ausBeides in derselben Nachricht zu senden, ist mehrdeutig – der Dienst lehnt dies ab.
Wählen Sie eine Option: ein benannter preset (das die Einbindung für dich vornimmt) oder eine explizite
mount umwandeln.
Wenn Senden eine Halterung, wickeln Sie die Transform: { "mount": { "transform": { … } } }.
Wenn Lesen Ein Berg aus dem Schnappschuss, er ist flach: { "mount": { "position": …, "rotation": …, "scale": … } }.
Das ist beabsichtigt – Befehle verwenden das einheitliche command_data Wrapper; Snapshots
Serialisieren der core::transform direkt.
Arbeitsbereichs-Transformation
Die Arbeitsbereichstransformation ist eine Laufzeitverschiebung, die zusätzlich zur Einbindung angewendet wird. Ein typischer Anwendungsfall ist die Szenennavigation – das Schwenken, Drehen oder Zoomen der Anwendungsansicht, während das Gerät physisch an Ort und Stelle bleibt.
Sowohl die Mount- als auch die Workspace-Transformationen sind persistent – der Dienst speichert den zuletzt von Ihnen übermittelten Wert. Der Unterschied liegt im Zweck und in der Leistung:
- „Mount“ ist so konzipiert, dass es einmal eingerichtet wird und dann unverändert bleibt – es beschreibt die physische Konfiguration und ist für seltene Aktualisierungen optimiert.
- Die Arbeitsbereichstransformation ist für die Übertragung mit hoher Frequenz ausgelegt (z. B. bei jedem Einzelbild während der Kamerabewegung) – die interne Pipeline ist für diese Aktualisierungsrate optimiert.
- 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}}}'
GET gibt die aktuelle Transformation zurück; DELETE setzt sich auf die Identität zurück.
Wenn Sie eine kontinuierliche Fortbewegung benötigen (Blasennavigation, Drift mit Geschwindigkeitsregelung),
verwenden Sie die Navigationsmodul anstatt manuell
zu streamen set_transform Bei jedem Tick – es übernimmt für Sie die Physik, das haptische
Feedback und die Begrenzung des Arbeitsbereichs.