Gängige Typen
Alle JSON-Nutzdaten verwenden diese Typen sowohl über die WebSocket- als auch über die HTTP-Schnittstelle einheitlich.
vec3
Ein 3D-Vektor. Wird für Positionen (Meter), Geschwindigkeiten (m/s), Kräfte (N) und Skalierungsfaktoren verwendet.
{ "x": 0.0, "y": 0.0, "z": 0.0 }
Quaternion
Ein Einheitsquaternion, das eine Drehung darstellt. w steht an erster Stelle in der internen Darstellung des Dienstes,
aber in JSON sind alle vier Komponenten benannte Schlüssel, sodass die Reihenfolge keine Rolle spielt.
{ "w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0 }
Ein Identitätsquaternion (w=1, x=y=z=0) bedeutet „keine Drehung“.
Winkel3
Gelenkwinkel in Grad (nicht in Radianten). Wird für die Winkelposition und die Winkelgeschwindigkeit der drei Gelenke Inverse3 verwendet.
{ "a0": 0.0, "a1": 0.0, "a2": 0.0 }
umwandeln
Eine Kombination aus Position, Drehung und Skalierung. Wird für Mount-Transformationen, Arbeitsbereichstransformationen und die Platzierung von SDF-Effekten verwendet.
{
"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 }
}
Die Identitätstransformation (siehe oben) lässt alles unverändert: Nullposition, keine Drehung, Skalierung 1:1.
mountWenn Senden eine Halterung über configure.mount, wird die Transformation in ein
"transform" Schlüssel: { "mount": { "transform": { … } } }.
Wenn Lesen Wenn man einen Snapshot des Geräts einbindet, erscheint er flach:
{ "mount": { "position": …, "rotation": …, "scale": … } }.
Diese Asymmetrie ist beabsichtigt – siehe Halterung & Arbeitsbereich.