当前位置:   article > 正文

陀螺仪角速度的积分是否等于姿态角(欧拉角)?_陀螺仪的角度和角速度的关系

陀螺仪的角度和角速度的关系

1 IMU测量的是什么角速度?

IMU测量的是本体系在惯性系下的角速度在本体系下的分量,其测量的是绝对角速度 ω \omega ω。测量原理[[陀螺仪测量角速度原理|详见]]。

2 陀螺仪角速度的积分是否等于姿态角(欧拉角)?

首先回答不等于。

先给出否定的例子:
一个例子

我们仅用陀螺仪测量的角速度积分作为姿态角度,第一张图,本体系处于水平,此时三轴姿态角为0°,

第一次旋转,绕俯仰轴旋转45度,此时姿态角为:俯仰角45° 滚转角0° 偏航角0°;

第二次旋转,绕偏航轴旋转90度,此时姿态角为:俯仰角0° 滚转角45° 偏航角90°;

显然,上述过程,如果用陀螺仪测得的角速度作为积分计算姿态,则得到,俯仰角45° 滚转角0° 偏航角90°;而实际上,旋转过后,俯仰角0° 滚转角45° 偏航角90°,与实际情况不符。

俯仰角滚转角偏航角
陀螺仪测得45090
实际上04590

原因在于,角速度积分不等于姿态角,而欧拉角速度积分才等于姿态角,角速度、欧拉角、欧拉角速度三者之间存在一定的关系,即欧拉运动学方程

下面给出欧拉角运动学方程的推导过程。

欧拉角的定义
我们把坐标系旋转中的“3-2-1”旋转(Z-Y-X旋转)中的三个角度定义为偏航角 ϕ \phi ϕ、俯仰角 θ \theta θ和滚转角 ψ \psi ψ
对应的旋转矩阵分别为:
R 3 ( ϕ ) = [ cos ⁡ ϕ sin ⁡ ϕ 0 − sin ⁡ ϕ cos ⁡ ϕ 0 0 0 1 ] , R 2 ( θ ) = [ cos ⁡ θ 0 − sin ⁡ θ 0 1 0 s i n θ 0 cos ⁡ θ ] , R 1 ( ψ ) = [ 1 0 0 0 c o s ψ sin ⁡ ψ 0 − sin ⁡ ψ cos ⁡ ψ ] R_{3}(\phi)=

[cosϕsinϕ0sinϕcosϕ0001]
, R_{2}(\theta)=
[cosθ0sinθ010sinθ0cosθ]
, R_{1}(\psi)=
[1000cosψsinψ0sinψcosψ]
R3(ϕ)= cosϕsinϕ0sinϕcosϕ0001 ,R2(θ)= cosθ0sinθ010sinθ0cosθ ,R1(ψ)= 1000cosψsinψ0sinψcosψ
旋转方向为从惯性系到本体系的旋转即:
[ x y z ] = R 1 ( ψ ) R 2 ( θ ) R 3 ( ϕ ) [ X Y Z ]
[xyz]
= R_1(\psi)R_2(\theta)R_3(\phi)
[XYZ]
xyz =R1(ψ)R2(θ)R3(ϕ) XYZ

我们最后要得出的是 [ ω x , ω y , ω z ] ′ [\omega_x,\omega_y,\omega_z]' [ωx,ωy,ωz] [ ϕ ˙ , θ ˙ , ψ ˙ ] ′ [\dot{\phi},\dot{\theta},\dot{\psi}]' [ϕ˙,θ˙,ψ˙],之间的关系,由于 ω \omega ω通常是陀螺仪测得的,其在本体系下分解,因此将其全部转换至本体系,
[ ω x ω y ω z ] = A i ⃗ + B j ⃗ + C k ⃗

[ωxωyωz]
= A\vec{i}+B\vec{j}+C\vec{k} ωxωyωz =Ai +Bj +Ck

因此,将每一步旋转过程中出现的欧拉角速度向量,都要转化为最终在本体系下的分量。

假设,惯性系为 ( I ⃗ , J ⃗ , K ⃗ ) (\vec{I},\vec{J},\vec{K}) (I ,J ,K ),第一次旋转产生的新坐标系为 ( I ⃗ ′ , J ⃗ ′ , K ⃗ ′ ) (\vec{I}',\vec{J}',\vec{K}') (I ,J ,K ),第二次旋转产生的新坐标系为 ( I ⃗ ′ ′ , J ⃗ ′ ′ , K ⃗ ′ ′ ) (\vec{I}'',\vec{J}'',\vec{K}'') (I ′′,J ′′,K ′′),第三次旋转产生的新坐标系为 ( i ⃗ , j ⃗ , k ⃗ ) (\vec{i},\vec{j},\vec{k}) (i ,j ,k )

从第三次旋转开始看,第三次旋转了 ψ \psi ψ角度,产生的角速度向量为
[ i ⃗ j ⃗ k ⃗ ] [ ψ ˙ 0 0 ]

[ijk]
[ψ˙00]
[i j k ] ψ˙00

第二次旋转了 θ \theta θ角度,产生的角速度向量为
[ I ⃗ ′ ′ J ⃗ ′ ′ K ⃗ ′ ′ ] [ 0 θ ˙ 0 ] = [ i ⃗ j ⃗ k ⃗ ] R 1 ( ψ ) [ 0 θ ˙ 0 ]

[IJK]
[0θ˙0]
=
[ijk]
R_1(\psi)
[0θ˙0]
[I ′′J ′′K ′′] 0θ˙0 =[i j k ]R1(ψ) 0θ˙0

第一次旋转了 ϕ \phi ϕ角度,产生的角速度向量为
[ I ⃗ ′ J ⃗ ′ K ⃗ ′ ] [ 0 0 ϕ ˙ ] = [ i ⃗ j ⃗ k ⃗ ] R 1 ( ψ ) R 2 ( θ ) [ 0 0 ϕ ˙ ]

[IJK]
[00ϕ˙]
=
[ijk]
R_1(\psi)R_2(\theta)
[00ϕ˙]
[I J K ] 00ϕ˙ =[i j k ]R1(ψ)R2(θ) 00ϕ˙

把上述三个式子相加,可得到
[ ω x ω y ω z ] 在 i j k 中表示 = R 1 ( ψ ) R 2 ( θ ) [ 0 0 ϕ ˙ ] + R 1 ( ψ ) [ 0 θ ˙ 0 ] + [ ψ ˙ 0 0 ]

[ωxωyωz]
_{在ijk中表示}= R_1(\psi)R_2(\theta)
[00ϕ˙]
+ R_1(\psi)
[0θ˙0]
+
[ψ˙00]
ωxωyωz ijk中表示=R1(ψ)R2(θ) 00ϕ˙ +R1(ψ) 0θ˙0 + ψ˙00
展开后,可得:
[ ω x ω y ω z ] = [ 1 0 0 0 c o s ψ sin ⁡ ψ 0 − sin ⁡ ψ cos ⁡ ψ ] [ cos ⁡ θ 0 − sin ⁡ θ 0 1 0 s i n θ 0 cos ⁡ θ ] [ 0 0 ϕ ˙ ] + [ 1 0 0 0 c o s ψ sin ⁡ ψ 0 − sin ⁡ ψ cos ⁡ ψ ] [ 0 θ ˙ 0 ] + [ 1 0 0 0 1 0 0 0 1 ] [ ψ ˙ 0 0 ]
[ωxωyωz]
=
[1000cosψsinψ0sinψcosψ]
[cosθ0sinθ010sinθ0cosθ]
[00ϕ˙]
+
[1000cosψsinψ0sinψcosψ]
[0θ˙0]
+
[100010001]
[ψ˙00]
ωxωyωz = 1000cosψsinψ0sinψcosψ cosθ0sinθ010sinθ0cosθ 00ϕ˙ + 1000cosψsinψ0sinψcosψ 0θ˙0 + 100010001 ψ˙00

最终得到
[ ω x ω y ω z ] = [ 1 0 − sin ⁡ θ 0 c o s ψ cos ⁡ θ sin ⁡ ψ 0 − sin ⁡ ψ cos ⁡ θ cos ⁡ ψ ] [ ψ ˙ θ ˙ ϕ ˙ ]

[ωxωyωz]
=
[10sinθ0cosψcosθsinψ0sinψcosθcosψ]
[ψ˙θ˙ϕ˙]
ωxωyωz = 1000cosψsinψsinθcosθsinψcosθcosψ ψ˙θ˙ϕ˙

姿态角,可以从上式解出,值得注意的是,小角度下,上式可以进一步简化为:
[ ω x ω y ω z ] = [ 1 0 0 0 1 0 0 0 1 ] [ ψ ˙ θ ˙ ϕ ˙ ]

[ωxωyωz]
=
[100010001]
[ψ˙θ˙ϕ˙]
ωxωyωz = 100010001 ψ˙θ˙ϕ˙
此时角速度积分近似等于欧拉角速度积分等于欧拉角。

上式解方程过于困难,因此后续引入了四元数运动学方程来进行姿态解算。

3 关于欧拉角万向锁的解释

无伤理解欧拉角中的“万向死锁”现象_哔哩哔哩_bilibili

把一个问题想清楚并讲清楚不容易,感谢各位看官点赞!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/537505
推荐阅读
相关标签
  

闽ICP备14008679号