Zum Hauptinhalt springen

Transformationen in der Montage und im Arbeitsbereich

Zwei Transformationen ordnen das Gerät im Anwendungsraum ein. Wenn Sie die Verarbeitungskette verstehen, können Sie die richtige auswählen.

Koordinatenverarbeitungskette​

EtappeRolleWie lässt sie sich definieren?Bleibt das so?
BasisWeist die Achsen neu zu (z. B. Z nach oben → Y nach oben)session.configure.basis — siehe Tutorial 08 (HTTP-Fernkonfiguration)Ja
MontageumwandlungPhysikalische Versätze bei der Montage des Geräts (Armposition, Drehung, Maßstab)configure.mount ou configure.preset — siehe Tutorial 08 (HTTP-Fernkonfiguration)Ja
Umgestaltung des ArbeitsbereichsNavigationsabweichung der Kamera oder der Szenecommands.set_transform — siehe Tutorial 09 (kontinuierliche WebSocket-Übertragung in jedem Zyklus)Ja (dauerhaft)

Montageumwandlung​

Die Montage beschreibt, wo sich das Gerät physisch befindet – seinen Armversatz, seine Ausrichtung und seinen Maßstab. Sie wird einmalig definiert (oder wenn der Benutzer die physische Konfiguration ändert) und während der Ausführung nur selten aktualisiert.

Voreinstellungen (Werkseinstellungen)​

Anstatt die Montage selbst zu berechnen, wählen Sie eine Voreinstellung mit dem Namen:

VoreinstellungLage des UrsprungsAusrichtung des Arms
defaultsGeräteunterteilNach vorne (Vorderseite des Arms)
arm_frontGeräteunterteilVorwärts
arm_front_centeredArbeitsbereichszentrumVorwärts
led_frontGeräteunterteilLED-Seite nach vorne
led_front_centeredArbeitsbereichszentrumLED-Seite nach vorne
customHandbuch – Die Montage selbst vornehmen—

Mit einer Voreinstellung lassen sich die Montage, die Basis und der Ursprung des Arbeitsbereichs in einem Schritt festlegen.

Die Montage 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 et preset schließen sich gegenseitig aus

Beides in derselben Nachricht zu senden, ist mehrdeutig: Der Dienst lehnt dies ab. Wählen Sie eines davon aus: eines preset nommé (der die Montage für Sie festlegt) oder eine Transformation mount ausdrücklich.

Asymmetrie zwischen Befehl und Momentaufnahme

Wenn Sie senden Sie In einer Montage fassen Sie die Verwandlung zusammen: { "mount": { "transform": { … } } }. Wenn Sie Lesen Sie Eine Montage aus dem Schnappschuss – er ist abgeflacht: { "mount": { "position": …, "rotation": …, "scale": … } }. Das ist beabsichtigt: Die Befehle verwenden die einheitliche Hüllkurve command_data ; die Momentaufnahmen werden direkt serialisiert core::transform.

Umgestaltung des Arbeitsbereichs​

Die Transformation des Arbeitsbereichs ist eine Ausführungsableitung, die über die Montage angewendet wird. Ein typischer Anwendungsfall ist die Navigation innerhalb der Szene (Schwenken, Drehen oder Zoomen in der Anwendungsansicht), während das Gerät physisch an Ort und Stelle bleibt.

Sowohl die Einrichtung als auch die Umgestaltung des Arbeitsbereichs sind persistent: Der Dienst speichert den letzten Wert, den Sie gesendet haben. Der Unterschied liegt in der Nutzung und der Leistung:

  • Die Konfiguration ist so konzipiert, dass sie einmal festgelegt wird und dann unverändert bleibt; sie beschreibt die physikalische Anordnung und ist für seltene Aktualisierungen optimiert.
  • Die Transformation des Arbeitsraums ist für eine hohe Aktualisierungsfrequenz ausgelegt (beispielsweise bei jedem Bild während der Kamerabewegung); die interne Verarbeitungskette ist für diese Aktualisierungsrate 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 }
}
}
}
}]
}
Durch die Skalierung ändert sich die erzeugte Kraft, oft in die gewünschte Richtung.

Die Skalierung der Montage oder des Arbeitsbereichs verändert die vom Gerät ausgegebene Kraft, da sie sich auf die Eindringtiefe die zur Berechnung der Kontaktkraft verwendet wird. Beispielsweise eine Skala von 2x reduziert die Eindringtiefe um etwa die Hälfte (die virtuelle Szene ist im Verhältnis zum Hub der Kamera doppelt so groß), sodass die erzielte Kraft etwa die Hälfte weniger als die, die man bei 1x. Umgekehrt gilt eine Skala von 0.5x verdoppelt die Kraft ungefähr.

Dies ist in der Regel das gewünschte Verhalten: Ein Herauszoomen in einer haptischen Szene führt naturgemäß zu schwächeren Berührungsreaktionen (Sie sind „weiter entfernt“), während ein Heranzoomen diese verstärkt. Wenn dies nicht Ihren Vorstellungen entspricht (beispielsweise wenn die Steifigkeit beim Zoomen des Benutzers konstant bleiben soll), gleichen Sie dies aus, indem Sie die Kraftverstärkungen umgekehrt skalieren.

Verwenden Sie das Navigationsmodul für die automatisierte Drift

Wenn Sie eine kontinuierliche Bewegung benötigen (Blasennavigation, geschwindigkeitsgesteuerte Drift), verwenden Sie die Modul „Navigation“ anstatt manuell zu versenden set_transform Bei jedem Tick: Es übernimmt für Sie die Physik, das haptische Feedback und die Abgrenzung des Arbeitsbereichs.