Zum Hauptinhalt springen

Installation und Transformation des Arbeitsraums

Es gibt zwei Transformationen, mit denen Geräte im Anwendungsraum positioniert werden können. Das Verständnis des gesamten Verarbeitungsprozesses hilft Ihnen bei der Auswahl der geeigneten Transformation.

Ablauf der Koordinatenverarbeitung​

PhaseWirkungEinstellungsmöglichkeitenWird es dauerhaft gespeichert?
ReferenzwertKoordinatenachsen neu zuordnen (z. B. Z-up → Y-up)session.configure.basis — Siehe Tutorial 08(HTTP-Fernkonfiguration)Ja
Installation der TransformationPhysikalische Installationsabweichungen des Geräts (Armposition, Drehung, Zoomen)configure.mount oder configure.preset — Siehe Tutorial 08(HTTP-Fernkonfiguration)Ja
KoordinatentransformationKamera-/Szenen-Navigationsabweichungcommands.set_transform — Siehe Tutorial 09(WebSocket-Streaming in jedem Zyklus)Ja (dauerhaft speichern)

Installation der Transformation​

Die Installation beschreibtdie tatsächliche Position des Geräts im physischen Raum– einschließlich Armversatz, Ausrichtung und Skalierung. Sie muss in der Regel nur einmal eingerichtet werden (oder wenn der Benutzer die physischen Einstellungen ändert) und wird während des Betriebs nur selten aktualisiert.

Voreinstellungen (Werkseinstellungen)​

Sie müssen die Installationsparameter nicht selbst berechnen, sondern wählen einfach eine benannte Voreinstellung aus:

VoreinstellungenAusgangspositionAusrichtung des Arms
defaultsGerätesockelNach vorne (Vorderseite des Arms)
arm_frontGerätesockelVorwärts
arm_front_centeredArbeitsraumzentrumVorwärts
led_frontGerätesockelLED mit einer Seite nach vorne gerichtet
led_front_centeredArbeitsraumzentrumLED mit einer Seite nach vorne gerichtet
customManuell – Installationsparameter selbst festlegen—

Mit den Voreinstellungen werden die Transformationen, die Bezugspunkte und die Arbeitsraum-Nullpunkte in einem Schritt festgelegt.

Installationsparameter direkt festlegen​

{
"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 }
}
}
}
}]
}
mount und preset Exklusivität

Das gleichzeitige Senden beider Elemente in derselben Nachricht führt zu Unklarheiten, sodass der Dienst die Anfrage direkt ablehnt. Entscheiden Sie sich für eine der beiden Optionen: Verwenden Sie die benannte preset(wobei die Installationsparameter für Sie festgelegt werden) oder verwenden Sie explizit mount Transformation.

Die asymmetrische Struktur von Befehlen und Snapshots

SendenBei der Festlegung der Parameter muss die Transformation in eine Klammer gesetzt werden:{ "mount": { "transform": { … } } }。 Aus dem Snapshot lesenBei der Konfiguration der Parameter ist die Struktur flach:{ "mount": { "position": …, "rotation": …, "scale": … } }。 Dies ist beabsichtigt – es wird die Verwendung eines einheitlichen command_data Wrapper, während Snapshots direkt serialisiert werden core::transform。

Koordinatentransformation​

Die Arbeitsbereichstransformation isteine Laufzeitverschiebung, die auf die Installationtransformation aufgesetzt wird. Eine typische Anwendung ist die Szenennavigation – das Verschieben, Drehen oder Skalieren der Ansicht einer Anwendung, während die physische Position des Geräts unverändert bleibt.

Sowohl die Installationstransformation als auch die Arbeitsbereichstransformationsind persistent– der Dienst merkt sich den zuletzt von Ihnen übermittelten Wert. Der Unterschied zwischen beiden liegt in ihrem Verwendungszweck und ihrer Leistung:

  • Die Installationskonfiguration ist so ausgelegt, dass sie nach einmaliger Einrichtung unverändert bleibt – sie beschreibt die physische Installationssituation und ist für seltene Aktualisierungen optimiert.
  • Das Design der Arbeitsraumtransformationist auf eine hochfrequente Streaming-Übertragung ausgelegt (z. B. einmal pro Bild während der Kameranavigation) – die interne Pipeline ist für diese Aktualisierungsfrequenz optimiert.
{
"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 }
}
}
}
}]
}
Das Zoomen beeinflusst die Ausgabeleistung – und genau das ist in der Regel auch der gewünschte Effekt.

Das Skalieren der Montage- oder Arbeitsfläche verändert die vom Gerät gerenderten Kräfte, da sich die Skalierung auf die Berechnung der Kontaktkräfte auswirkt.Eindringtiefe. Zum Beispiel:2x Durch das Zoomen halbiert sich die Eindringtiefe in etwa (im Verhältnis zum Verfahrweg des Geräts ist die virtuelle Szene doppelt so groß), sodass sich die resultierende Kraft auf etwa 1x zu der Zeit, alsdie Hälfte。Umgekehrt,0.5x Durch Vergrößern oder Verkleinern verdoppelt sich die Kraft in etwa.

Dies ist in der Regel genau das gewünschte Verhalten:Das Verkleinern der Ansicht ineinerhaptischenSzeneführtganz natürlich zu einem schwächeren Kontakt (Sie sind sozusagen „weiter entfernt“), währenddas Vergrößern der Ansichtden Kontakt verstärkt. Sollte dies nicht der gewünschte Effekt sein – beispielsweise wenn Sie die Steifigkeit beim Zoomen des Benutzers konstant halten möchten –, können Sie dies durch eine umgekehrte Skalierung der Kraftverstärkung ausgleichen.

Automatisches Driften mithilfe des Navigationsmoduls

Wenn Sie eine kontinuierliche Bewegung benötigen (Blasennavigation, geschwindigkeitsgesteuerte Drift), verwenden Sie bitteNavigationsmodul… anstatt in jedem Zyklus manuell Daten zu streamen set_transform——Es übernimmt für Sie die physikalischen Berechnungen, das haptische Feedback und die Abgrenzung des Arbeitsbereichs.