四元数定义:

q

=

q

w

+

q

x

i

+

q

y

j

+

q

z

k

=

[

q

w

q

x

q

y

q

z

]

\bold{q} = q_w+q_xi+q_yj+q_zk = \begin{bmatrix} q_w\\ q_x\\ q_y\\ q_z \end{bmatrix}

q=qw+qxi+qyj+qzk=qwqxqyqz
在 Hamilton 表示法中:

i

2

=

j

2

=

k

2

=

i

j

k

=

1

i

j

=

j

i

=

k

,

 

j

k

=

k

j

=

i

,

 

k

i

=

i

k

=

j

i^2=j^2=k^2=ijk=-1 \\ ij=-ji=k,\ jk=-kj=i,\ ki=-ik=j

i2=j2=k2=ijk=1ij=ji=k, jk=kj=i, ki=ik=j
在 JPL 表示法中,

i

j

=

j

i

=

k

-ij=ji=k

ij=ji=k,Eigen3 中使用的是 Hamilton 表示法,所以下面公式都是用的 Hamilton 表示法。

四元数相乘:

p

q

=

[

p

w

q

w

p

x

q

x

p

y

q

y

p

z

q

z

p

w

q

x

+

p

x

q

w

+

p

y

q

z

p

z

q

y

p

w

q

y

p

x

q

z

+

p

y

q

w

+

p

z

q

x

p

w

q

z

+

p

x

q

y

p

y

q

x

+

p

z

q

w

]

\bold{p}\otimes\bold{q}= \begin{bmatrix} p_wq_w-p_xq_x-p_yq_y-p_zq_z\\ p_wq_x+p_xq_w+p_yq_z-p_zq_y\\ p_wq_y-p_xq_z+p_yq_w+p_zq_x\\ p_wq_z+p_xq_y-p_yq_x+p_zq_w \end{bmatrix}

pq=pwqwpxqxpyqypzqzpwqx+pxqw+pyqzpzqypwqypxqz+pyqw+pzqxpwqz+pxqypyqx+pzqw

四元数

q

\bold{q}

q 对向量

v

\bold{v}

v 进行旋转,首先将向量写成四元数形式(实部为0):

p

=

[

0

,

x

,

y

,

z

]

T

=

[

0

,

v

]

T

\bold{p} = [0,x,y,z]^T = [0, \bold{v}]^T

p=[0,x,y,z]T=[0,v]T
然后计算:

p

=

q

p

q

1

\bold{p}’ = \bold{qpq}^{-1}

p=qpq1
可以验证

p

\bold{p}’

p 实部也是0,取出其虚部作为旋转后的向量

v

\bold{v}’

v:

v

=

[

(

q

w

2

+

q

x

2

q

y

2

q

z

2

)

x

+

2

(

q

x

q

y

q

w

q

z

)

y

+

2

(

q

w

q

y

+

q

x

q

z

)

z

2

(

q

w

q

z

+

q

x

q

y

)

x

+

(

q

w

2

q

x

2

+

q

y

2

q

z

2

)

y

+

2

(

q

y

q

z

q

w

q

x

)

z

2

(

q

x

q

z

q

w

q

y

)

x

+

2

(

q

w

q

x

+

q

y

q

z

)

y

+

(

q

w

2

q

x

2

q

y

2

+

q

z

2

)

z

]

\bold{v}’=\begin{bmatrix} (q_w^2+q_x^2-q_y^2-q_z^2)x+2(q_xq_y-q_wq_z)y+2(q_wq_y+q_xq_z)z\\ 2(q_wq_z+q_xq_y)x+(q_w^2-q_x^2+q_y^2-q_z^2)y+2(q_yq_z-q_wq_x)z\\ 2(q_xq_z-q_wq_y)x+2(q_wq_x+q_yq_z)y+(q_w^2-q_x^2-q_y^2+q_z^2)z \end{bmatrix}

v=(qw2+qx2qy2qz2)x+2(qxqyqwqz)y+2(qwqy+qxqz)z2(qwqz+qxqy)x+(qw2qx2+qy2qz2)y+2(qyqzqwqx)z2(qxqzqwqy)x+2(qwqx+qyqz)y+(qw2qx2qy2+qz2)z


版权声明:本文为mightbxg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/mightbxg/article/details/122113078