单位四元数(unit quaternion)
在机器人学中,表示旋转变换的有旋转矩阵、欧拉角、角/度轴和单位四元数。
在机器人学中,表示旋转变换的有旋转矩阵、欧拉角、角/度轴和单位四元数。
##1、四元数的表示
四元数是由复数扩展而来:
a + b i ⟹ ω + x i + y j + z k a + bi \Longrightarrow \omega + xi +yj +zk a+bi⟹ω+xi+yj+zk
四元数表示为(齐次形式):
q = ( ω , x , y , z ) q = ( \omega,x,y,z) q=(ω,x,y,z)
或者(标量/向量形式):
q = ( ω , v → ) q = ( \omega , \overrightarrow v ) q=(ω,v)
##2、单位四元数表示旋转:
- 对于3D旋转:
坐标系绕轴 $ r $ 旋转 $ \theta $ 可以用四元数表示为:
ω = c o s ( θ / 2 ) \omega = cos(\theta /2) ω=cos(θ/2)
( x , y , z ) = v → = s i n ( θ / 2 ) r ^ (x,y,z) = \overrightarrow v = sin(\theta /2) \hat r (x,y,z)=v=sin(θ/2)r^
- 3D旋转的逆
若 q q q 是单位四元数,则
q = ( ω , v → ) = ( c o s ( θ / 2 ) , s i n ( θ / 2 ) r ^ ) = ( c o s ( − θ / 2 ) , s i n ( − θ / 2 ) r ^ ) = ( ω , − v → ) = q ∗ q = ( \omega , \overrightarrow v ) = ( cos(\theta /2) , sin(\theta /2) \hat r ) = ( cos(-\theta /2) , sin(-\theta /2) \hat r ) = ( \omega , -\overrightarrow v ) = q ^* q=(ω,v)=(cos(θ/2),sin(θ/2)r^)=(cos(−θ/2),sin(−θ/2)r^)=(ω,−v)=q∗
四元数就是 轴/角 的进化,解决了 轴/角 无法表示转角位零的情况。
##3、四元数旋转
对向量 $ \overrightarrow p $ 和四元数 q q q, p p p 可看做四元数 $ p= (0, \overrightarrow p) $, 向量 $ p $ 旋转 q q q 后为:
p ′ = q p q − 1 p'= q p q ^{-1} p′=qpq−1
附:
i
2
=
j
2
=
k
2
=
i
j
k
=
−
1
i^2 = j^2 =k^2=ijk=-1
i2=j2=k2=ijk=−1
i
j
=
k
,
j
k
=
i
,
k
i
=
j
ij=k,jk=i,ki=j
ij=k,jk=i,ki=j
j
i
=
−
k
,
k
j
=
−
i
,
i
k
=
−
j
ji=-k,kj=-i,ik=-j
ji=−k,kj=−i,ik=−j
单位四元数:
ω 2 + x 2 + y 2 + z 2 = 1 \omega ^2 + x^2 +y^2 + z^2 =1 ω2+x2+y2+z2=1
##参考:
http://blog.csdn.net/silangquan/article/details/39008903
https://www.zhihu.com/question/23005815
http://www.qiujiawei.com/understanding-quaternions/
Bruno Siciliano 等,机器人学 建模、规划与控制[M],西安交通大学出版社,2013.11
勃拉坎茨. 四元数在刚体走位问题中的应用[M]. 国防工业出版社, 1977.
更多推荐
所有评论(0)