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

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

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

首先回答不等于。

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

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

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

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

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

俯仰角 滚转角 偏航角
陀螺仪测得 45 0 90
实际上 0 45 90

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

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

欧拉角的定义
我们把坐标系旋转中的“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)=\begin{bmatrix} \cos\phi&\sin\phi&0\\ -\sin\phi&\cos\phi&0\\ 0&0&1 \end{bmatrix}, R_{2}(\theta)=\begin{bmatrix} \cos\theta&0&-\sin\theta\\ 0&1&0\\ sin\theta&0&\cos\theta \end{bmatrix}, R_{1}(\psi)=\begin{bmatrix} 1&0&0\\ 0&cos\psi&\sin\psi\\ 0&-\sin\psi&\cos\psi\\ \end{bmatrix} 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 ] \begin{bmatrix} x\\ y\\ z \end{bmatrix}= R_1(\psi)R_2(\theta)R_3(\phi) \begin{bmatrix} X\\Y\\Z \end{bmatrix} 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 ⃗ \begin{bmatrix} \omega_x\\\omega_y\\\omega_z \end{bmatrix}= 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 ] \begin{bmatrix} \vec{i}& \vec{j}& \vec{k} \end{bmatrix} \begin{bmatrix} \dot{\psi}\\0\\0 \end{bmatrix} [i j k ] ψ˙00

第二次旋转了 θ \theta θ角度,产生的角速度向量为
[ I ⃗ ′ ′ J ⃗ ′ ′ K ⃗ ′ ′ ] [ 0 θ ˙ 0 ] = [ i ⃗ j ⃗ k ⃗ ] R 1 ( ψ ) [ 0 θ ˙ 0 ] \begin{bmatrix} \vec{I}''&\vec{J}''&\vec{K}'' \end{bmatrix} \begin{bmatrix} 0\\ \dot{\theta}\\ 0\\ \end{bmatrix}= \begin{bmatrix} \vec{i}& \vec{j}& \vec{k} \end{bmatrix} R_1(\psi) \begin{bmatrix} 0\\ \dot{\theta}\\ 0\\ \end{bmatrix} [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 ϕ ˙ ] \begin{bmatrix} \vec{I}'&\vec{J}'&\vec{K}' \end{bmatrix} \begin{bmatrix} 0\\0\\\dot{\phi} \end{bmatrix} =\begin{bmatrix} \vec{i}& \vec{j}& \vec{k} \end{bmatrix} R_1(\psi)R_2(\theta) \begin{bmatrix} 0\\0\\\dot{\phi} \end{bmatrix} [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 ] \begin{bmatrix} \omega_x\\\omega_y\\\omega_z \end{bmatrix}_{在ijk中表示}= R_1(\psi)R_2(\theta) \begin{bmatrix} 0\\0\\\dot{\phi} \end{bmatrix}+ R_1(\psi) \begin{bmatrix} 0\\ \dot{\theta}\\ 0\\ \end{bmatrix}+ \begin{bmatrix} \dot{\psi}\\ 0\\ 0\\ \end{bmatrix} ω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 ] \begin{bmatrix} \omega_x\\\omega_y\\\omega_z \end{bmatrix}= \begin{bmatrix} 1&0&0\\ 0&cos\psi&\sin\psi\\ 0&-\sin\psi&\cos\psi\\ \end{bmatrix} \begin{bmatrix} \cos\theta&0&-\sin\theta\\ 0&1&0\\ sin\theta&0&\cos\theta \end{bmatrix} \begin{bmatrix} 0\\ 0\\ \dot{\phi}\\ \end{bmatrix}+ \begin{bmatrix} 1&0&0\\ 0&cos\psi&\sin\psi\\ 0&-\sin\psi&\cos\psi\\ \end{bmatrix} \begin{bmatrix} 0\\ \dot{\theta}\\ 0\\ \end{bmatrix}+ \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1 \end{bmatrix} \begin{bmatrix} \dot{\psi}\\ 0\\ 0\\ \end{bmatrix} ω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 ⁡ ψ ] [ ψ ˙ θ ˙ ϕ ˙ ] \begin{bmatrix} \omega_x\\\omega_y\\\omega_z \end{bmatrix}= \begin{bmatrix} 1&0&-\sin\theta\\ 0&cos\psi&\cos\theta\sin\psi\\ 0&-\sin\psi&\cos\theta\cos\psi\\ \end{bmatrix} \begin{bmatrix} \dot{\psi}\\\dot{\theta}\\\dot{\phi} \end{bmatrix} ωxωyωz = 1000cosψsinψsinθcosθsinψcosθcosψ ψ˙θ˙ϕ˙

姿态角,可以从上式解出,值得注意的是,小角度下,上式可以进一步简化为:
[ ω x ω y ω z ] = [ 1 0 0 0 1 0 0 0 1 ] [ ψ ˙ θ ˙ ϕ ˙ ] \begin{bmatrix} \omega_x\\\omega_y\\\omega_z \end{bmatrix}= \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1\\ \end{bmatrix} \begin{bmatrix} \dot{\psi}\\\dot{\theta}\\\dot{\phi} \end{bmatrix} ωxωyωz = 100010001 ψ˙θ˙ϕ˙
此时角速度积分近似等于欧拉角速度积分等于欧拉角。

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

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

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

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐