声明:因为接触本课题时间不长,对于四元数解法一直没太懂什么意思,本篇博客就对这几天的学习进行总结,肯定会有错误,希望读者能够帮忙指正。本篇博客主要参考秦永元老师《惯性导航》第九章第二小节以及几篇论文。
四元数就是由四个元构成的数: Q ( q 0 , q 1 , q 2 , q 3 ) = q 0 + q 1 i + q 2 j + q 3 k Q(q_0,q_1,q_2,q_3)=q_0+q_1\bold i+q_2\bold j+q_3\bold k Q(q0,q1,q2,q3)=q0+q1i+q2j+q3k
其中, q 0 , q 1 , q 2 , q 3 q_0,q_1,q_2,q_3 q0,q1,q2,q3是实数,在一些文献或者相关书籍里也会写作 q 1 , q 2 , q 3 , q 4 q_1,q_2,q_3,q_4 q1,q2,q3,q4或者 w , x , y , z w,x,y,z w,x,y,z, i , j , k \bold i,\bold j,\bold k i,j,k即是互相正交的向量,又是虚单位 − 1 \sqrt{-1} −1,具体规定体现在四元数乘法关系中:
i ⨂ i = − 1 , j ⨂ j = − 1 , k ⨂ k = − 1 \bold i\bigotimes \bold i=-1,\bold j\bigotimes \bold j=-1,\bold k\bigotimes \bold k=-1 i⨂i=−1,j⨂j=−1,k⨂k=−1
i ⨂ j = k , j ⨂ k = i , k ⨂ i = j \bold i\bigotimes \bold j=\bold k,\bold j\bigotimes \bold k=\bold i,\bold k\bigotimes \bold i=\bold j i⨂j=k,j⨂k=i,k⨂i=j
j ⨂ i = − k , k ⨂ j = − i , i ⨂ k = − j \bold j\bigotimes \bold i=-\bold k,\bold k\bigotimes \bold j=-\bold i,\bold i\bigotimes \bold k=-\bold j j⨂i=−k,k⨂j=−i,i⨂k=−j
上述公式符合 右手螺旋定则,可以绘制一个如下所示的三维图,用右手螺旋定则判断:
(1)矢量式: Q = q 0 + q Q = q_0+\bold q Q=q0+q
(2)复数式: Q = q 0 + q 1 i + q 2 j + q 3 k Q=q_0+q_1\bold i+q_2\bold j+q_3\bold k Q=q0+q1i+q2j+q3k
(3)三角式: Q = c o s θ 2 + u s i n θ 2 Q=cos \frac {\theta}{2}+\bold usin\frac {\theta}{2} Q=cos2θ+usin2θ
(4)指数式: Q = e u θ 2 Q=e^{\bold u\frac {\theta}{2}} Q=eu2θ
(5)矩阵式: Q = [ q 0 q 1 q 2 q 3 ] Q=\begin{bmatrix}q_0\\q_1\\q_2\\q_3\end{bmatrix} Q= q0q1q2q3
四元数的范数: ∣ ∣ Q ∣ ∣ = q 0 2 + q 1 2 + q 2 2 + q 3 2 ||Q||=q_0^2+q_1^2+q_2^2+q_3^2 ∣∣Q∣∣=q02+q12+q22+q32
若 ∣ ∣ Q ∣ ∣ = 1 ||Q||=1 ∣∣Q∣∣=1,则称为规范四元数。
(1)加法和减法:设 Q = q 0 + q 1 i + q 2 j + q 3 k \bold Q=q_0+q_1\bold i+q_2\bold j+q_3\bold k Q=q0+q1i+q2j+q3k
P = p 0 + p 1 i + p 2 j + p 3 k \bold P=p_0+p_1\bold i+p_2\bold j+p_3\bold k P=p0+p1i+p2j+p3k
则 Q ± P = ( q 0 ± p 0 ) + ( q 1 ± p 1 ) i + ( q 2 ± p 2 ) j + ( q 3 ± p 3 ) k \bold Q±\bold P=(q_0±p_0)+(q_1±p_1)\bold i+(q_2±p_2)\bold j+(q_3±p_3)\bold k Q±P=(q0±p0)+(q1±p1)i+(q2±p2)j+(q3±p3)k
(2)乘法: a Q = a q 0 + a q 1 i + a q 2 j + a q 3 k a\bold Q=aq_0+aq_1\bold i+aq_2\bold j+aq_3\bold k aQ=aq0+aq1i+aq2j+aq3k
P ⨂ Q = ( p 0 + p 1 i + p 2 j + p 3 k ) ⨂ ( q 0 + q 1 i + q 2 j + q 3 k ) = ( p 0 q 0 − p 1 q 1 − p 2 q 2 − p 3 q 3 ) + ( p 0 q 1 + p 1 q 0 + p 2 q 3 − p 3 q 2 ) i + ( p 0 q 2 + p 2 q 0 + p 3 q 1 − p 1 q 3 ) j + ( p 0 q 3 + p 3 q 0 + p 1 q 2 − p 2 q 1 ) k = r 0 + r 1 i + r 2 j + r 3 k \bold P \bigotimes \bold Q =(p_0+p_1\bold i+p_2\bold j+p_3\bold k) \bigotimes (q_0+q_1\bold i+q_2\bold j+q_3\bold k)\\=(p_0q_0-p_1q_1-p_2q_2-p_3q_3)+(p_0q_1+p_1q_0+p_2q_3-p_3q_2)\bold i+\\(p_0q_2+p_2q_0+p_3q_1-p_1q_3)\bold j+(p_0q_3+p_3q_0+p_1q_2-p_2q_1)\bold k\\=r_0+r_1\bold i+r_2\bold j+r_3\bold k P⨂Q=(p0+p1i+p2j+p3k)⨂(q0+q1i+q2j+q3k)=(p0q0−p1q1−p2q2−p3q3)+(p0q1+p1q0+p2q3−p3q2)i+(p0q2+p2q0+p3q1−p1q3)j+(p0q3+p3q0+p1q2−p2q1)k=r0+r1i+r2j+r3k
上式写成矩阵:
公式比较麻烦,就不敲了,记住一点就好, 四元数乘法不满足交换律。
(3)求逆: P − 1 = P ∗ ∣ ∣ P ∣ ∣ P^{-1}=\frac{P^*}{||P||} P−1=∣∣P∣∣P∗
秦老师的《惯性导航》在推导这部分时比较详细,推导部分这里就不再详细介绍了,主要讲一下几个重要的公式:
《惯性导航》一书中取 u R = [ l m n ] \bold u^R=\begin{bmatrix}l\\m\\n\end{bmatrix} uR= lmn ,在薛启龙老师《Data Analytics for Drilling Engineering》的第三章“Dynamic Measurement of Spatial Attitude at the Bottom Rotating Drillstring”中,选择了 u R = [ ( Θ x / Θ ) ( Θ y / Θ ) ( Θ z / Θ ) ] \bold u^R=\begin{bmatrix}(\Theta_x/\Theta)\\(\Theta_y/\Theta)\\(\Theta_z/\Theta)\end{bmatrix} uR= (Θx/Θ)(Θy/Θ)(Θz/Θ) , Θ x / Θ 、 Θ y / Θ 、 Θ z / Θ \Theta_x/\Theta、\Theta_y/\Theta、\Theta_z/\Theta Θx/Θ、Θy/Θ、Θz/Θ是导航系中的方向余弦。
姿态转换矩阵:
C b R = [ 1 0 0 0 1 0 0 0 1 ] + 2 c o s θ 2 [ 0 − n s i n θ 2 m s i n θ 2 n s i n θ 2 0 − l s i n θ 2 − m s i n θ 2 l s i n θ 2 0 ] + 2 [ − ( m 2 + n 2 ) s i n 2 θ 2 l m s i n 2 θ 2 l n s i n 2 θ 2 l m s i n 2 θ 2 − ( l 2 + n 2 ) s i n 2 θ 2 m n s i n 2 θ 2 l n s i n 2 θ 2 m n s i n 2 θ 2 − ( m 2 + n 2 ) s i n 2 θ 2 ] C_b^R=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix}+2cos\frac{\theta}{2}\begin{bmatrix}0&-nsin\frac{\theta}{2}&msin\frac{\theta}{2}\\nsin\frac{\theta}{2}&0&-lsin\frac{\theta}{2}\\-msin\frac{\theta}{2}&lsin\frac{\theta}{2}&0\end{bmatrix}\\+2\begin{bmatrix}-(m^2+n^2)sin^2\frac{\theta}{2}&lmsin^2\frac{\theta}{2}&lnsin^2\frac{\theta}{2}\\lmsin^2\frac{\theta}{2}&-(l^2+n^2)sin^2\frac{\theta}{2}&mnsin^2\frac{\theta}{2}\\lnsin^2\frac{\theta}{2}&mnsin^2\frac{\theta}{2}&-(m^2+n^2)sin^2\frac{\theta}{2}\end{bmatrix} CbR= 100010001 +2cos2θ 0nsin2θ−msin2θ−nsin2θ0lsin2θmsin2θ−lsin2θ0 +2 −(m2+n2)sin22θlmsin22θlnsin22θlmsin22θ−(l2+n2)sin22θmnsin22θlnsin22θmnsin22θ−(m2+n2)sin22θ
简化上式,令: { q 0 = c o s θ 2 q 1 = l s i n θ 2 q 2 = m s i n θ 2 q 3 = n s i n θ 2 \begin{cases}q_0=cos\frac{\theta}{2}\\q_1=lsin\frac{\theta}{2}\\q_2=msin\frac{\theta}{2}\\q_3=nsin\frac{\theta}{2}\end{cases} ⎩ ⎨ ⎧q0=cos2θq1=lsin2θq2=msin2θq3=nsin2θ
∣ ∣ Q ∣ ∣ = q 0 2 + q 1 2 + q 2 2 + q 3 2 = 1 ||Q||=q_0^2+q_1^2+q_2^2+q_3^2=1 ∣∣Q∣∣=q02+q12+q22+q32=1,为规范四元数,并且以 q 0 , q 1 , q 2 , q 3 q_0,q_1,q_2,q_3 q0,q1,q2,q3构造四元数:
Q = c o s θ 2 + u R s i n θ 2 Q=cos\frac{\theta}{2}+\bold u^Rsin\frac{\theta}{2} Q=cos2θ+uRsin2θ
(1)物理意义: 绕参考坐标系R内的一个的单位向量 u ⃗ \vec u u转动角度 θ \theta θ,注意:不是转动 θ 2 \frac{\theta}{2} 2θ!!!
(2)四元数可以确定b系至R(R是参考坐标系,一般选择导航坐标系n)系的姿态转换矩阵:
C b R = [ 1 − 2 ( q 2 2 + q 3 2 ) 2 ( q 1 q 2 − q 3 q 0 ) 2 ( q 1 q 3 + q 2 q 0 ) 2 ( q 1 q 2 + q 3 q 0 ) 1 − 2 ( q 1 2 + q 3 2 ) 2 ( q 2 q 3 − q 1 q 0 ) 2 ( q 1 q 3 − q 2 q 0 ) 2 ( q 2 q 3 + q 1 q 0 ) 1 − ( q 1 2 + q 3 2 ) ] C_b^R=\begin{bmatrix} 1-2(q^2_{2}+q^2_{3}) &2(q_{1}q_{2}-q_{3}q_{0})&2(q_{1}q_{3}+q_{2}q_{0})\\ 2(q_{1}q_{2}+q_{3}q_{0}) &1-2(q^2_{1}+q^2_{3})&2(q_{2}q_{3}-q_{1}q_{0})\\ 2(q_{1}q_{3}-q_{2}q_{0})&2(q_{2}q_{3}+q_{1}q_{0})&1-(q^2_{1}+q^2_{3}) \end{bmatrix} CbR= 1−2(q22+q32)2(q1q2+q3q0)2(q1q3−q2q0)2(q1q2−q3q0)1−2(q12+q32)2(q2q3+q1q0)2(q1q3+q2q0)2(q2q3−q1q0)1−(q12+q32)
由于是规范四元数,也可以写作下式
C b R = [ q 1 2 − q 2 2 − q 3 2 + q 0 2 2 ( q 1 q 2 − q 3 q 0 ) 2 ( q 1 q 3 + q 2 q 0 ) 2 ( q 1 q 2 + q 3 q 0 ) − q 1 2 + q 2 2 − q 3 2 + q 0 2 2 ( q 2 q 3 − q 1 q 0 ) 2 ( q 1 q 3 − q 2 q 0 ) 2 ( q 2 q 3 + q 1 q 0 ) − q 1 2 − q 2 2 + q 3 2 + q 0 2 ] C_b^R=\begin{bmatrix} q^2_{1}-q^2_{2}-q^2_{3}+q^2_{0} &2(q_{1}q_{2}-q_{3}q_{0})&2(q_{1}q_{3}+q_{2}q_{0})\\ 2(q_{1}q_{2}+q_{3}q_{0}) &-q^2_{1}+q^2_{2}-q^2_{3}+q^2_{0}&2(q_{2}q_{3}-q_{1}q_{0})\\ 2(q_{1}q_{3}-q_{2}q_{0})&2(q_{2}q_{3}+q_{1}q_{0})&-q^2_{1}-q^2_{2}+q^2_{3}+q^2_{0} \end{bmatrix} CbR= q12−q22−q32+q022(q1q2+q3q0)2(q1q3−q2q0)2(q1q2−q3q0)−q12+q22−q32+q022(q2q3+q1q0)2(q1q3+q2q0)2(q2q3−q1q0)−q12−q22+q32+q02
(3)如果把 r R 、 r b \bold r^R、\bold r^b rR、rb看做是零标量的四元数,那么他们之间的变换关系可以采用四元数乘法表示: r R = Q ⨂ r b ⨂ Q ∗ \bold r^R=\bold Q\bigotimes\bold r^b\bigotimes\bold Q^* rR=Q⨂rb⨂Q∗
该式称为坐标变换的四元数乘表示法
设参考坐标系为导航坐标系n,设航向角为 Ψ \Psi Ψ,俯仰角为 θ \theta θ,横滚角为 γ \gamma γ:
C b n = [ c o s Ψ c o s γ + s i n Ψ s i n θ s i n γ s i n Ψ c o s θ c o s Ψ c o s γ − s i n Ψ s i n θ c o s γ − s i n Ψ c o s γ + c o s Ψ s i n θ s i n γ c o s Ψ c o s θ − s i n Ψ s i n γ − c o s Ψ s i n θ c o s γ − c o s θ s i n γ s i n θ c o s θ c o s γ ] = [ T 11 T 12 T 13 T 21 T 22 T 23 T 31 T 32 T 33 ] C_b^n=\begin{bmatrix} cos\Psi cos\gamma+sin\Psi sin\theta sin\gamma&sin\Psi cos\theta &cos\Psi cos\gamma-sin\Psi sin\theta cos\gamma\\ -sin\Psi cos\gamma+cos\Psi sin\theta sin\gamma&cos\Psi cos\theta &-sin\Psi sin\gamma-cos\Psi sin\theta cos\gamma\\ -cos\theta sin\gamma&sin\theta &cos\theta cos\gamma\end{bmatrix}\\=\begin{bmatrix}T_{11}&T_{12}&T_{13}\\T_{21}&T_{22}&T_{23}\\T_{31}&T_{32}&T_{33}\end{bmatrix} Cbn= cosΨcosγ+sinΨsinθsinγ−sinΨcosγ+cosΨsinθsinγ−cosθsinγsinΨcosθcosΨcosθsinθcosΨcosγ−sinΨsinθcosγ−sinΨsinγ−cosΨsinθcosγcosθcosγ = T11T21T31T12T22T32T13T23T33
下图为姿态角的真值表:
经过上述的分析:如果旋转四元数 Q \bold Q Q已经确定,那么就可以表示出 C b n C_b^n Cbn:
C b n = [ q 1 2 − q 2 2 − q 3 2 + q 0 2 2 ( q 1 q 2 − q 3 q 0 ) 2 ( q 1 q 3 + q 2 q 0 ) 2 ( q 1 q 2 + q 3 q 0 ) − q 1 2 + q 2 2 − q 3 2 + q 0 2 2 ( q 2 q 3 − q 1 q 0 ) 2 ( q 1 q 3 − q 2 q 0 ) 2 ( q 2 q 3 + q 1 q 0 ) − q 1 2 − q 2 2 + q 3 2 + q 0 2 ] = [ M 11 M 12 M 13 M 21 M 22 M 23 M 31 M 32 M 33 ] C_b^n=\begin{bmatrix} q^2_{1}-q^2_{2}-q^2_{3}+q^2_{0} &2(q_{1}q_{2}-q_{3}q_{0})&2(q_{1}q_{3}+q_{2}q_{0})\\ 2(q_{1}q_{2}+q_{3}q_{0}) &-q^2_{1}+q^2_{2}-q^2_{3}+q^2_{0}&2(q_{2}q_{3}-q_{1}q_{0})\\ 2(q_{1}q_{3}-q_{2}q_{0})&2(q_{2}q_{3}+q_{1}q_{0})&-q^2_{1}-q^2_{2}+q^2_{3}+q^2_{0} \end{bmatrix}\\=\begin{bmatrix}M_{11}&M_{12}&M_{13}\\M_{21}&M_{22}&M_{23}\\M_{31}&M_{32}&M_{33}\end{bmatrix} Cbn= q12−q22−q32+q022(q1q2+q3q0)2(q1q3−q2q0)2(q1q2−q3q0)−q12+q22−q32+q022(q2q3+q1q0)2(q1q3+q2q0)2(q2q3−q1q0)−q12−q22+q32+q02 = M11M21M31M12M22M32M13M23M33
与基本旋转之后的转换矩阵对比,即可解算出姿态:
C b n = [ c o s Ψ c o s γ + s i n Ψ s i n θ s i n γ s i n Ψ c o s θ c o s Ψ c o s γ − s i n Ψ s i n θ c o s γ − s i n Ψ c o s γ + c o s Ψ s i n θ s i n γ c o s Ψ c o s θ − s i n Ψ s i n γ − c o s Ψ s i n θ c o s γ − c o s θ s i n γ s i n θ c o s θ c o s γ ] = [ T 11 T 12 T 13 T 21 T 22 T 23 T 31 T 32 T 33 ] C_b^n=\begin{bmatrix} cos\Psi cos\gamma+sin\Psi sin\theta sin\gamma&sin\Psi cos\theta &cos\Psi cos\gamma-sin\Psi sin\theta cos\gamma\\ -sin\Psi cos\gamma+cos\Psi sin\theta sin\gamma&cos\Psi cos\theta &-sin\Psi sin\gamma-cos\Psi sin\theta cos\gamma\\ -cos\theta sin\gamma&sin\theta &cos\theta cos\gamma\end{bmatrix}\\=\begin{bmatrix}T_{11}&T_{12}&T_{13}\\T_{21}&T_{22}&T_{23}\\T_{31}&T_{32}&T_{33}\end{bmatrix} Cbn= cosΨcosγ+sinΨsinθsinγ−sinΨcosγ+cosΨsinθsinγ−cosθsinγsinΨcosθcosΨcosθsinθcosΨcosγ−sinΨsinθcosγ−sinΨsinγ−cosΨsinθcosγcosθcosγ = T11T21T31T12T22T32T13T23T33
一定注意的是, C b n 、 C n b C_b^n、 C_n^b Cbn、Cnb矩阵存在着转置的关系!!!计算时一定要注意!!!
例如,求解 θ \theta θ时可以用 C n b C_n^b Cnb中可以第二列求解,即 θ = a r c t a n ( s i n θ ( s i n Ψ c o s θ ) 2 + ( c o s Ψ c o s θ ) 2 ) \theta=arctan(\frac{sin\theta}{\sqrt{(sin\Psi cos\theta)^2+(cos\Psi cos\theta)^2}}) θ=arctan((sinΨcosθ)2+(cosΨcosθ)2sinθ),也就是 θ = a r c t a n ( T 32 T 12 2 + T 22 2 ) \theta=arctan(\frac{T_{32}}{\sqrt{T_{12}^2+T_{22}^2}}) θ=arctan(T122+T222T32),由于知道了四元素构成的 C b n C_b^n Cbn,那么 θ = a r c t a n ( M 32 M 12 2 + M 22 2 ) \theta=arctan(\frac{M_{32}}{\sqrt{M_{12}^2+M_{22}^2}}) θ=arctan(M122+M222M32) ,这就是最终的计算公式。
下面是我的代码中使用的姿态解算公式:
gyro_var->euler.pit = (asin(2*q2q3 + 2*q0q1))*57.29578f;
gyro_var->euler.roll = (atan2(-2*q1q3 + 2*q0q2, -2*q1q1-2*q2q2 + 1))*57.29578f;
gyro_var->euler.yaw = (atan2(2*q1q2 - 2*q0q3, -2*q2q2-2*q3q3+1))*57.29578f;
令 ω R b b = [ ω x ω y ω z ] \omega_{Rb}^b=\begin{bmatrix}\omega_x\\\omega_y\\\omega_z\end{bmatrix} ωRbb= ωxωyωz , d Q d t = 1 2 M ′ ( ω R b b ) Q \frac{d\bold Q}{dt}=\frac{1}{2}\bold M'(\omega_{Rb}^b)\bold Q dtdQ=21M′(ωRbb)Q
即 [ q ˙ 0 q ˙ 1 q ˙ 2 q ˙ 3 ] = 1 2 [ 0 − ω x − ω y − ω z ω x 0 ω z − ω y ω y − ω z 0 ω x ω z ω y − ω x 0 ] [ q 0 q 1 q 2 q 3 ] \begin{bmatrix}\dot q_0\\\dot q_1\\\dot q_2\\\dot q_3\end{bmatrix}=\frac{1}{2}\begin{bmatrix}0&-\omega_x&-\omega_y&-\omega_z\\ \omega_x&0&\omega_z&-\omega_y\\ \omega_y&-\omega_z&0&\omega_x\\ \omega_z&\omega_y&-\omega_x&0 \end{bmatrix} \begin{bmatrix} q_0\\q_1\\ q_2\\ q_3\end{bmatrix} q˙0q˙1q˙2q˙3 =21 0ωxωyωz−ωx0−ωzωy−ωyωz0−ωx−ωz−ωyωx0 q0q1q2q3
ω n b b \omega_{nb}^b ωnbb可以使用 ω n b b = ω i b b − C n b ( ω i e n + ω e n n ) \omega_{nb}^b=\omega_{ib}^b-C_n^b(\omega_{ie}^n+\omega_{en}^n) ωnbb=ωibb−Cnb(ωien+ωenn)公式计算, ω i b b \omega_{ib}^b ωibb是陀螺仪的输出(对陀螺仪必须经过动、静态误差的补偿), ω i e n 、 ω e n n \omega_{ie}^n、\omega_{en}^n ωien、ωenn分别是 位置速率和地球自转速率:
ω i e n + ω e n n = ( − V N R M V E R N + ω i e c o s L V E t a n L R N + ω i e s i n L ) \omega_{ie}^n+\omega_{en}^n=\begin{pmatrix}\frac{-V_N}{R_M}\\ \frac{V_E}{R_N}+\omega_{ie}cosL \\ \frac{V_{E}tanL}{R_N}+\omega_{ie}sinL \end{pmatrix} ωien+ωenn= RM−VNRNVE+ωiecosLRNVEtanL+ωiesinL
秦老师在第七章介绍了上式的一些定义:
L L L为地理纬度, R M , R N R_M,R_N RM,RN分别是沿子午圈和沿卯酉圈的曲率半径:
R M = R e ( 1 − f ) 2 [ 1 − ( 2 − f ) s i n 2 L ] − 3 2 R_M=R_e(1-f)^2[1-(2-f)sin^2L]^{-\frac{3}{2}} RM=Re(1−f)2[1−(2−f)sin2L]−23
R N = R e [ 1 − ( 2 − f ) s i n 2 L ] − 1 2 R_N=R_e[1-(2-f)sin^2L]^{-\frac{1}{2}} RN=Re[1−(2−f)sin2L]−21
R e R_e Re是地球(椭圆)的长轴, R p R_p Rp是地球(椭圆)的短轴, R p = ( 1 − f ) R e R_p=(1-f)R_e Rp=(1−f)Re 。
这里只介绍一下定时采样增量法,主要是通过对 Q Q Q进行泰勒展开,对四元数进行各阶的近似:
一般通常使用一阶近似算法即可,四元数计算如下:
当选取: { q 0 = c o s θ 2 q 1 = l s i n θ 2 q 2 = m s i n θ 2 q 3 = n s i n θ 2 \begin{cases}q_0=cos\frac{\theta}{2}\\q_1=lsin\frac{\theta}{2}\\q_2=msin\frac{\theta}{2}\\q_3=nsin\frac{\theta}{2}\end{cases} ⎩ ⎨ ⎧q0=cos2θq1=lsin2θq2=msin2θq3=nsin2θ
Q ( k + 1 ) Q(k+1) Q(k+1)计算如下
Q ( k + 1 ) = Q ( k ) + 1 2 ( 0 − Δ θ x − Δ θ y − Δ θ z Δ θ x 0 Δ θ z − Δ θ y Δ θ y − Δ θ z 0 Δ θ x Δ θ z Δ θ y − Δ θ x 0 ) Q ( k ) Q(k+1)= Q(k)+\frac{1}{2}\begin{pmatrix} 0&-\Delta\theta_x&-\Delta\theta_y&-\Delta\theta_z\\ \Delta\theta_x&0&\Delta\theta_z&-\Delta\theta_y\\ \Delta\theta_y&-\Delta\theta_z&0&\Delta\theta_x\\ \Delta\theta_z&\Delta\theta_y&-\Delta\theta_x&0\end{pmatrix}Q(k) Q(k+1)=Q(k)+21 0ΔθxΔθyΔθz−Δθx0−ΔθzΔθy−ΔθyΔθz0−Δθx−Δθz−ΔθyΔθx0 Q(k)
注意,在一些论文或者书籍中, q 0 , q 1 , q 2 , q 3 q_0,q_1,q_2,q_3 q0,q1,q2,q3与上面的选取不同,例如选取,当选取如下时: { q 0 = l s i n θ 2 q 1 = m s i n θ 2 q 2 = n s i n θ 2 q 3 = c o s θ 2 \begin{cases}q_0=lsin\frac{\theta}{2}\\q_1=msin\frac{\theta}{2}\\q_2=nsin\frac{\theta}{2}\\q_3=cos\frac{\theta}{2}\end{cases} ⎩ ⎨ ⎧q0=lsin2θq1=msin2θq2=nsin2θq3=cos2θ
Q ( k + 1 ) Q(k+1) Q(k+1)计算如下
Q ( k + 1 ) = Q ( k ) + 1 2 ( 0 Δ θ z − Δ θ y Δ θ x − Δ θ z 0 Δ θ x Δ θ y Δ θ y − Δ θ x 0 Δ θ z − Δ θ x − Δ θ y − Δ θ z 0 ) Q ( k ) Q(k+1)= Q(k)+\frac{1}{2}\begin{pmatrix} 0&\Delta\theta_z&-\Delta\theta_y&\Delta\theta_x \\ -\Delta\theta_z&0&\Delta\theta_x&\Delta\theta_y\\ \Delta\theta_y&-\Delta\theta_x&0&\Delta\theta_z\\ -\Delta\theta_x&-\Delta\theta_y&-\Delta\theta_z&0\end{pmatrix}Q(k) Q(k+1)=Q(k)+21 0−ΔθzΔθy−ΔθxΔθz0−Δθx−Δθy−ΔθyΔθx0−ΔθzΔθxΔθyΔθz0 Q(k)
课题学习(一)----静态测量
课题学习(二)----倾角和方位角的动态测量方法(基于磁场的测量系统)
课题学习(三)----倾角和方位角的动态测量方法(基于陀螺仪的测量系统)
课题学习(四)----四元数解法
课题学习(五)----阅读论文《抗差自适应滤波的导向钻具动态姿态测量方法》
课题学习(六)----安装误差校准、实验方法
课题学习(七)----粘滑运动的动态算法
课题学习(八)----卡尔曼滤波动态求解倾角、方位角
课题学习(九)----阅读《导向钻井工具姿态动态测量的自适应滤波方法》论文笔记
课题学习(十)----阅读《基于数据融合的近钻头井眼轨迹参数动态测量方法》论文笔记
课题学习(十一)----阅读《Attitude Determination with Magnetometers and Accelerometers to Use in Satellite》
课题学习(十二)----阅读《Extension of a Two-Step Calibration Methodology to Include Nonorthogonal Sensor Axes》
课题学习(十三)----阅读《Calibration of Strapdown Magnetometers in Magnetic Field Domain》论文笔记
课题学习(十四)----三轴加速度计+三轴陀螺仪传感器-ICM20602
课题学习(十五)----阅读《测斜仪旋转姿态测量信号处理方法》论文
课题学习(十六)----阅读《Continuous Wellbore Surveying While Drilling Utilizing MEMS Gyroscopes Based…》论文