Dieses Kapitel enthält Operatoren für die Verwendung von dualen 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.
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.
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:
Die Schraubungsparameter sind:
Rotationswinkel der Schraubung
Translation der Schraubung
Richtung der Schraubenachse mit
Moment der Schraubenachse mit
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
zu finden).
dual_quat_conjugate
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,
deserialize_dual_quat
dual_quat_compose
dual_quat_conjugate
dual_quat_interpolate
dual_quat_normalize
dual_quat_to_hom_mat3d
dual_quat_to_screw
dual_quat_trans_line_3d
screw_to_dual_quat
serialize_dual_quat