Rotationsmatrix und Translationsvektor¶
Eine Pose kann mit einer Rotationsmatrix R und einem Translationsvektor T definiert werden.
R=(r00r01r02r10r11r12r20r21r22),T=(XYZ).
Die Posentransformation für einen Punkt P ist
P′=RP+T.
Umrechnung von Rotationsmatrizen in Quaternionen¶
Die Umrechnung von einer Rotationsmatrix (mit det(R)=1) in eine Quaternion q=(xyzw) kann wie folgt durchgeführt werden.
x=sign(r21−r12)12√max(0,1+r00−r11−r22)y=sign(r02−r20)12√max(0,1−r00+r11−r22)z=sign(r10−r01)12√max(0,1−r00−r11+r22)w=12√max(0,1+r00+r11+r22)
Der sign Operator gibt -1 zurück, falls sein Argument negativ ist. Sonst wird 1 zurück gegeben. Er wird zur Wiederherstellung das Vorzeichens der Wurzel benutzt. Die max Funktion stellt sicher, dass das Argument der Wurzel nicht negativ ist, was in der Praxis durch Rundungsfehler passieren kann.
Umrechnung von Quaternionen in Rotationsmatrizen¶
Die Umrechnung von einer Quaternion q=(xyzw) mit ||q||=1 in eine Rotationsmatrix kann wie folgt durchgeführt werden.
R=2(12−y2−z2xy−zwxz+ywxy+zw12−x2−z2yz−xwxz−ywyz+xw12−x2−y2)