Duale Quaternionen

Liste der Operatoren ↓

Dieses Kapitel enthält Operatoren für die Verwendung von dualen Quaternionen.

Einführung in Duale Quaternionen

Eine duale Quaternion besteht aus zwei Quaternionen und , wobei den Realteil, den Dualteil und die duale Einheit ( ) darstellt. Jede Quaternion besteht wiederum aus dem Skalarteil und dem Vektorteil , wobei die Basis-Elemente des Quaternionen-Vektorraums darstellen.

Darstellung von Dualen Quaternionen in HALCON

In HALCON werden duale Quaternionen als Tupel mit acht Elementen dargestellt . Dabei sind und der Skalar- und Vektorteil des Realteils und und der Skalar- und Vektorteil des Dualteils.

Duale Einheitsquaternionen, Starre 3D-Abbildungen und Schraubungen

Im Unterschied zu einer Einheitsquaternion, die eine 3D-Rotation beschreibt, beschreibt eine duale Einheitsquaternion eine starre 3D-Abbildung, d.h. eine 3D-Rotation und eine 3D-Translation. Damit stellen duale Einheitsquaternionen neben 3D-Lagen und homogenen 3D-Transformationsmatrizen eine alternative Repräsentation für starre 3D-Abbildungen dar. Im Vergleich zu Transformationsmatrizen mit 12 Elementen stellen duale Quaternionen mit 8 Elementen eine kompaktere Repräsentation dar. Wie Transformationsmatrizen können auch duale Quaternionen sehr einfach kombiniert werden um mehrere Transformationen zu verketten. Darüber hinaus bieten sie die Möglichkeit, weich zwischen zwei starren 3D-Abbildungen zu interpolieren und Linien in 3D sehr effizient zu transformieren. Jede starre 3D-Abbildung kann als Schraubung dargestellt werden:

image/svg+xml (L,M) d θ (L,M) a) b)
a) Eine starre 3D-Abbildung... b) kann durch eine Schraubung dargestellt werden.
image/svg+xml (L,M) P0 y x P1 L=P1-P0 M z L
Moment der Schraubenachse.

Die Schraubungsparameter sind:

Eine Schraubung setzt sich zusammen aus einer Rotation um die Schraubenachse, die durch und definiert ist, um den Winkel und einer Translation um entlang dieser Achse. Die Position der Schraubenachse im Raum ist definiert durch ihr Moment bezüglich des Ursprungs des Koordinatensystems. Der Vektor steht senkrecht auf der Richtung der Schraubenachse und senkrecht auf einem Vektor vom Koordinatensystemursprung zu einem Punkt auf der Schraubenachse. Das Moment wird berechnet durch das Vektorprodukt Damit ist der Normalenvektor der Ebene, die durch die Schraubungsachse und den Ursprung aufgespannt wird. Zu beachten ist, dass der Punkt auf der Schraubenachse mit dem kürzesten Abstand zum Koordinatensystemursprung ist.

Die Elemente einer dualen Einheitsquaternion stehen mit den Schraubungsparametern einer starren 3D-Abbildung wie folgt in Beziehung:

Zu beachten ist, dass und die selbe starre 3D-Abbildung beschreiben. Außerdem ist die Inverse einer dualen Einheitsquaternion gleich ihrer Konjugierten, d.h. (eine Beschreibung der Konjugierten einer dualen Quaternion ist bei dual_quat_conjugatedual_quat_conjugateDualQuatConjugateDualQuatConjugateDualQuatConjugate zu finden).

3D-Linien und Plücker-Koordinaten

Linien in 3D können durch duale Vektoren ausgedrückt werden. Ein dualer Vektor kann als duale Quaternion mit Skalarteil 0 angesehen werden. Eine starre 3D-Abbildung, die durch eine duale Einheitsquaternion dargestellt werden kann, steht in einfacher Beziehung mit den Parametern einer Schraubung um eine Schraubenachse. Wie oben beschrieben ist die Schraubenachse definiert durch ihre Richtung mit und ihr Moment bezüglich des Ursprungs des Koordinatensystem mit . Auf die gleiche Weise kann eine 3D-Linie durch ihre Richtung mit und ihr Moment dargestellt werden. Die sechs Parameter von und sind die Plücker-Koordinaten der 3D-Linie.

Folglich ist eine Linie , die durch eine duale Quaternion mit Skalarteil 0 repräsentiert wird,


Liste der Operatoren

deserialize_dual_quatDeserializeDualQuatDeserializeDualQuatdeserialize_dual_quat
Deserialisieren einer serialisierten dualen Quaternion.
dual_quat_composeDualQuatComposeDualQuatComposedual_quat_compose
Multiplikation zweier dualer Quaternionen.
dual_quat_conjugateDualQuatConjugateDualQuatConjugatedual_quat_conjugate
Konjugation einer dualen Quaternion.
dual_quat_interpolateDualQuatInterpolateDualQuatInterpolatedual_quat_interpolate
Interpolation von zwei dualen Quaternionen.
dual_quat_normalizeDualQuatNormalizeDualQuatNormalizedual_quat_normalize
Normalisierung einer dualen Quaternion.
dual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3ddual_quat_to_hom_mat3d
Umwandlung einer dualen Einheitsquaternion in eine homogene Transformationsmatrix.
dual_quat_to_screwDualQuatToScrewDualQuatToScrewdual_quat_to_screw
Umwandlung einer dualen Einheitsquaternion in eine Schraubung.
dual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3ddual_quat_trans_line_3d
Transformieren einer 3D-Linie mit einer dualen Einheitsquaternion.
screw_to_dual_quatScrewToDualQuatScrewToDualQuatscrew_to_dual_quat
Umwandlung einer Schraubung in eine duale Einheitsquaternion.
serialize_dual_quatSerializeDualQuatSerializeDualQuatserialize_dual_quat
Serialisieren einer dualen Quaternion.