本文主要是介绍四元数与角轴、旋转矩阵、so(3)、SO(3) 的关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
四元数定义
q = [ s , υ ] T , s = q 0 ∈ R , υ = [ q 1 , q 2 , q 3 ] T ∈ R 3 \left.q=\left[\begin{matrix}{s,\upsilon}\\\end{matrix}\right.\right]^{\mathrm{T}},s=q_{0}\in\mathbb{R},\upsilon=\left[\begin{matrix}{q_{1}},q_{2},q_{3}\\\end{matrix}\right]^{\mathrm{T}}\in\mathbb{R}^{3} q=[s,υ]T,s=q0∈R,υ=[q1,q2,q3]T∈R3
可用单位四元数表示三维空间的旋转
用虚四元数表示空间中一点 p = [ 0 , x , y , z ] T = [ 0 , υ ] T p = {\left[ {0,x,y,z} \right]^{\rm{T}}} = {\left[ {0,\upsilon } \right]^{\rm{T}}} p=[0,x,y,z]T=[0,υ]T
用四元数q旋转p后的点 p ′ = q p q − 1 p' = qp{q^{ - 1}} p′=qpq−1
四元数与角轴、旋转矩阵、so(3)、SO(3) 的关系
R = exp ( ϕ ∧ ) = E x p ( ϕ ) = E x p ( θ n ) R = \exp ({\phi ^ \wedge }) = {\rm{Exp(}}\phi {\rm{) = Exp(}}\theta n{\rm{)}} R=exp(ϕ∧)=Exp(ϕ)=Exp(θn) ⇕ \Updownarrow ⇕ q = [ cos θ 2 , n sin θ 2 ] T = exp ( [ 0 , 1 2 θ n ] T ) q = {[\cos {\theta \over 2},n\sin {\theta \over 2}]^{\rm{T}}} = \exp ({[0,{1 \over 2}\theta n]^{\rm{T}}}) q=[cos2θ,nsin2θ]T=exp([0,21θn]T)
即单位四元数为纯虚四元数 [ 0 , 1 2 θ n ] T {[0,{1 \over 2}\theta n]^{\rm{T}}} [0,21θn]T的指数映射,纯虚四元数可以理解为四元数形式的李代数,其虚部为so(3)李代数一半
当四元数十分小时, q = [ 1 , 1 2 θ n ] q = [1,{1 \over 2}\theta n] q=[1,21θn]
这篇关于四元数与角轴、旋转矩阵、so(3)、SO(3) 的关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!