四元数转旋转矩阵
C b a = [ q 1 2 + q 2 2 − q 3 2 − q 4 2 2 ( q 2 q 3 − q 1 q 4 ) 2 ( q 2 q 4 + q 1 q 3 ) 2 ( q 2 q 3 + q 1 q 4 ) q 1 2 − q 2 2 + q 3 2 − q 4 2 2 ( q 3 q 4 − q 1 q 2 ) 2 ( q 2 q 4 − q 1 q 3 ) 2 ( q 3 q 4 + q 1 q 2 ) q 1 2 − q 2 2 − q 3 2 + q 4 2 ] C_{b}^{a} = \begin{bmatrix} q_{1}^{2} + q_{2}^{2} - q_{3}^{2} - q_{4}^{2} & 2(q_{2}q_{3} - q_{1}q_{4}) & 2(q_{2}q_{4} + q_{1}q_{3}) \\ 2(q_{2}q_{3} + q_{1}q_{4}) & q_{1}^{2} - q_{2}^{2} + q_{3}^{2} - q_{4}^{2} & 2(q_{3}q_{4} - q_{1}q_{2}) \\ 2(q_{2}q_{4} - q_{1}q_{3}) & 2(q_{3}q_{4} + q_{1}q_{2}) & q_{1}^{2} - q_{2}^{2} - q_{3}^{2} + q_{4}^{2} \\ \end{bmatrix} Cba=⎣⎡q12+q22−q32−q422(q2q3+q1q4)2(q2q4−q1q3)2(q2q3−q1q4)q12−q22+q32−q422(q3q4+q1q2)2(q2q4+q1q3)2(q3q4−q1q2)q12−q22−q32+q42⎦⎤
旋转矩阵转四元数
P
1
=
1
+
t
r
a
c
e
(
C
b
a
)
,
P
2
=
1
+
2
c
11
−
t
r
a
c
e
(
C
b
a
)
P
3
=
1
+
2
c
22
−
t
r
a
c
e
(
C
b
a
)
,
P
4
=
1
+
2
c
33
−
t
r
a
c
e
(
C
b
a
)
P_{1}=1+ trace(C_{b}^{a}), P_{2}=1+2c_{11} - trace(C_{b}^{a}) \\ P_{3}=1 + 2c_{22} - trace(C_{b}^{a}), P_{4}=1+2c_{33} - trace(C_{b}^{a})
P1=1+trace(Cba),P2=1+2c11−trace(Cba)P3=1+2c22−trace(Cba),P4=1+2c33−trace(Cba)
其中
C
b
a
C_{b}^{a}
Cba是trace转矩阵,trace为矩阵迹,
c
i
j
c_{ij}
cij是矩阵
C
b
a
C_{b}^{a}
Cba的元素。
-
case1: P 1 = m a x ( P 1 , P 2 , P 3 , P 4 ) P_{1}= max(P_{1}, P_{2}, P_{3}, P_{4}) P1=max(P1,P2,P3,P4),则:
q 1 = 0.5 P 1 q 2 = c 32 − c 23 4 q 1 q 3 = c 13 − c 31 4 q 1 q 4 = c 21 − c 12 4 q 1 q_{1} = 0.5\sqrt{P1}\\ q_{2} = \frac{c_{32} - c_{23}}{4q_{1}}\\ q_{3} = \frac{c_{13} - c_{31}}{4q_{1}}\\ q_{4} = \frac{c_{21} - c_{12}}{4q_{1}} q1=0.5P1q2=4q1c32−c23q3=4q1c13−c31q4=4q1c21−c12 -
case2: P 2 = m a x ( P 1 , P 2 , P 3 , P 4 ) P_{2}= max(P_{1}, P_{2}, P_{3}, P_{4}) P2=max(P1,P2,P3,P4),则:
q 2 = 0.5 P 2 q 3 = c 21 + c 12 4 q 2 q 4 = c 13 + c 31 4 q 2 q 1 = c 32 − c 23 4 q 2 q_{2} = 0.5\sqrt{P2}\\ q_{3} = \frac{c_{21} + c_{12}}{4q_{2}}\\ q_{4} = \frac{c_{13} + c_{31}}{4q_{2}}\\ q_{1} = \frac{c_{32} - c_{23}}{4q_{2}} q2=0.5P2q3=4q2c21+c12q4=4q2c13+c31q1=4q2c32−c23 -
case3: P 3 = m a x ( P 1 , P 2 , P 3 , P 4 ) P_{3}= max(P_{1}, P_{2}, P_{3}, P_{4}) P3=max(P1,P2,P3,P4),则:
q 3 = 0.5 P 3 q 4 = c 32 + c 23 4 q 3 q 1 = c 13 − c 31 4 q 3 q 2 = c 21 + c 12 4 q 3 q_{3} = 0.5\sqrt{P3}\\ q_{4} = \frac{c_{32} + c_{23}}{4q_{3}}\\ q_{1} = \frac{c_{13} - c_{31}}{4q_{3}}\\ q_{2} = \frac{c_{21} + c_{12}}{4q_{3}} q3=0.5P3q4=4q3c32+c23q1=4q3c13−c31q2=4q3c21+c12 -
case3: P 4 = m a x ( P 1 , P 2 , P 3 , P 4 ) P_{4}= max(P_{1}, P_{2}, P_{3}, P_{4}) P4=max(P1,P2,P3,P4),则:
q 4 = 0.5 P 4 q 1 = c 21 − c 12 4 q 4 q 2 = c 13 + c 31 4 q 4 q 3 = c 32 + c 23 4 q 4 q_{4} = 0.5\sqrt{P4}\\ q_{1} = \frac{c_{21} - c_{12}}{4q_{4}}\\ q_{2} = \frac{c_{13} + c_{31}}{4q_{4}}\\ q_{3} = \frac{c_{32} + c_{23}}{4q_{4}} q4=0.5P4q1=4q4c21−c12q2=4q4c13+c31q3=4q4c32+c23
最后,如果 q 1 < 0 q_{1} < 0 q1<0,则q=-q