【TIPS】PX4姿态解算基本原理(上)

常用的坐标系

在惯性导航中常用的坐标系有实用惯性坐标系(i-frame)、地心地固坐标系(e-frame)、导航坐标系(n-frame)和载体坐标系(b-frame)。

1、实用惯性坐标系 O − x i y i z i O-x_iy_iz_i Oxiyizi

实用惯性坐标系是以牛顿运动定律为基础的坐标系,不受外力影响的静止的坐标系。但世界中一切物体都是运动的,因此根本就不存在静止的惯性坐标系,只能人为地选取所需的惯性坐标系。地心是地球附近唯一不参与地球自转的空间点,因此选取地球中心当做实用惯性坐标系的原点,该坐标系适用于地球附近的物体。 z i z_i zi轴沿地球自转轴方向,由地心指向北极点, x i x_i xi轴在赤道平面内,由地心指向春分点, y i y_i yi轴与 x i x_i xi , z i z_i zi轴构成右手坐标系。

2、地心地固坐标系 O − x e y e z e O-x_ey_ez_e Oxeyeze

地心地固坐标系是惯性导航工作中最常用到的坐标系,是指固联在地球上的坐标系,原点在地球的质心,它相对于惯性坐标系以地球自转角速度旋转。 z e z_e ze轴沿地球自转轴方向,由地心指向北极点, x e x_e xe轴在赤道平面内,由地心指向格林尼治子午线, y e y_e ye轴与 x e x_e xe , z e z_e ze轴构成右手坐标系。

3、导航坐标系 O − x n y n z n O-x_ny_nz_n Oxnynzn

导航坐标系是根据导航过程中载体的工作任务、工作环境、以及载体本身的需求而确定的基准坐标系,俗称东北天坐标系。坐标原点在载体质心或参考点, z n z_n zn轴沿当地垂线指向天空, x n x_n xn轴指向正东, y n y_n yn轴指向正北, x n x_n xn , y n y_n yn , z n z_n zn轴构成右手坐标系。

4、载体坐标系 O − x b y b z b O-x_by_bz_b Oxbybzb

载体坐标系是以载体的重心处为坐标原点, x b x_b xb轴平行于载体横切面指向载体右侧, y b y_b yb轴平行于载体纵切面指向前, z b z_b zb轴垂直于载体横切面竖直向上, x b x_b xb , y b y_b yb , z b z_b zb轴构成右手坐标系。通常利用载体坐标系相对导航坐标系的坐标变换矩阵求取载体的姿态角和航向角。

在这里插入图片描述

姿态角

姿态角包括横滚角(roll)、俯仰角(pitch)和航向角(yaw),姿态角也称欧拉角,它是描述载体姿态最直观的方式。本文对载体姿态角做出如下规定:首先坐标系绕着某一坐标轴旋转时遵循右手螺旋定则,即大拇指指向旋转轴的正向,规定向四指弯曲指向的方向旋转取值为正,相对于观察者来说,当某一坐标旋转轴指向观察者时,规定向逆时针方向旋转为正。将Z轴保持不动,X轴和Y轴绕Z轴转动得到航向角(水平面内与Y轴夹角)且航向角逆时针旋转从0º到+360º依次增加;将X轴保持不动,Y轴和Z轴绕X轴转动得到俯仰角,按逆时针旋转,最大旋转到+90º,顺时针最大旋转到-90º,即俯仰角范围是-90º 到+90º;将Y轴保持不动,X轴和Z轴绕Y轴转动得到横滚角,逆时针旋转即0º到+180º依次增加,顺时针旋转从0º到-180º依次减小,且+180º与-180º重合,即横滚角范围是-180º到+180º。

在这里插入图片描述

坐标系变换

不同坐标系间都存在一定的位置关系,这种关系可用变换矩阵表示。对于导航坐标系向载体坐标系的变换,设导航坐标系 O − x n y n z n O-x_ny_nz_n Oxnynzn O z n Oz_n Ozn轴旋转 ψ \psi ψ角后得到坐标系 O − x 1 y 1 z 1 O-x_1y_1z_1 Ox1y1z1,坐标系 O − x 1 y 1 z 1 O-x_1y_1z_1 Ox1y1z1 O y 1 Oy_1 Oy1轴旋转 θ \theta θ角后得到坐标系 O − x 2 y 2 z 2 O-x_2y_2z_2 Ox2y2z2,坐标系 O − x 2 y 2 z 2 O-x_2y_2z_2 Ox2y2z2 O x 2 Ox_2 Ox2轴旋转 ϕ \phi ϕ角后得到载体坐标系 O − x b y b z b O-x_by_bz_b Oxbybzb,经过三次绕轴旋转可以完成坐标系的变换。

在这里插入图片描述

对于坐标系 O − x n y n z n O-x_ny_nz_n Oxnynzn中坐标为 [ α n β n γ n ] T \begin{bmatrix} \alpha_n & \beta_n & \gamma_n \end{bmatrix}^T [αnβnγn]T的某点,其在坐标系 O − x 1 y 1 z 1 O-x_1y_1z_1 Ox1y1z1中的坐标为 [ α 1 β 1 γ 1 ] T \begin{bmatrix} \alpha_1 & \beta_1 & \gamma_1 \end{bmatrix}^T [α1β1γ1]T,在坐标系 O − x 2 y 2 z 2 O-x_2y_2z_2 Ox2y2z2中的坐标为 [ α 2 β 2 γ 2 ] T \begin{bmatrix} \alpha_2 & \beta_2 & \gamma_2 \end{bmatrix}^T [α2β2γ2]T,在坐标系 O − x b y b z b O-x_by_bz_b Oxbybzb中的坐标为 [ α b β b γ b ] T \begin{bmatrix} \alpha_b & \beta_b & \gamma_b \end{bmatrix}^T [αbβbγb]T,有对应关系:

[ α 1 β 1 γ 1 ] = R n 1 [ α n β n γ n ] = [ c o s ψ s i n ψ 0 − s i n ψ c o s ψ 0 0 0 1 ] [ α n β n γ n ] \left[ \begin{array}{c} \alpha _1\\ \beta _1\\ \gamma _1\\ \end{array} \right] =R_{n}^{1}\left[ \begin{array}{c} \alpha _n\\ \beta _n\\ \gamma _n\\ \end{array} \right] =\left[ \begin{matrix} cos\psi& sin\psi& 0\\ -sin\psi& cos\psi& 0\\ 0& 0& 1\\ \end{matrix} \right] \left[ \begin{array}{c} \alpha _n\\ \beta _n\\ \gamma _n\\ \end{array} \right] α1β1γ1 =Rn1 αnβnγn = cosψsinψ0sinψcosψ0001 αnβnγn

[ α 2 β 2 γ 2 ] = R 1 2 [ α 1 β 1 γ 1 ] = [ c o s θ 0 − s i n θ 0 1 0 s i n θ 0 c o s θ ] [ α 1 β 1 γ 1 ] \left[ \begin{array}{c} \alpha _2\\ \beta _2\\ \gamma _2\\ \end{array} \right] =R_{1}^{2}\left[ \begin{array}{c} \alpha _1\\ \beta _1\\ \gamma _1\\ \end{array} \right] =\left[ \begin{matrix} cos\theta& 0& -sin\theta\\ 0& 1& 0\\ sin\theta& 0& cos\theta\\ \end{matrix} \right] \left[ \begin{array}{c} \alpha _1\\ \beta _1\\ \gamma _1\\ \end{array} \right] α2β2γ2 =R12 α1β1γ1 = cosθ0sinθ010sinθ0cosθ α1β1γ1

[ α b β b γ b ] = R 2 b [ α 2 β 2 γ 2 ] = [ 1 0 0 0 c o s ϕ s i n ϕ 0 − s i n ϕ c o s ϕ ] [ α 2 β 2 γ 2 ] \left[ \begin{array}{c} \alpha _b\\ \beta _b\\ \gamma _b\\ \end{array} \right] =R_{2}^{b}\left[ \begin{array}{c} \alpha _2\\ \beta _2\\ \gamma _2\\ \end{array} \right] =\left[ \begin{matrix} 1& 0& 0\\ 0& cos\phi& sin\phi\\ 0& -sin\phi& cos\phi\\ \end{matrix} \right] \left[ \begin{array}{c} \alpha _2\\ \beta _2\\ \gamma _2\\ \end{array} \right] αbβbγb =R2b α2β2γ2 = 1000cosϕsinϕ0sinϕcosϕ α2β2γ2

以上三个基本变换矩阵依次合并后可得由地心地固坐标系向载体坐标系的变换矩阵:

R n b = R 2 b R 1 2 R n 1 = [ 1 0 0 0 c o s ϕ s i n ϕ 0 − s i n ϕ c o s ϕ ] [ c o s θ 0 − s i n θ 0 1 0 s i n θ 0 c o s θ ] [ c o s ψ s i n ψ 0 − s i n ψ c o s ψ 0 0 0 1 ] = [ c o s θ c o s ψ c o s θ s i n ψ − s i n θ s i n ϕ s i 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 ψ s i n ϕ c o s θ c o s ϕ s i n θ c o s ψ + s i n ϕ s i n ψ c o s ϕ s i n θ s i n ψ − s i n ϕ c o s ψ c o s ϕ c o s θ ] \begin{aligned} R_n^b &= R_2^b R_1^2 R_n^1\\ &= \begin{bmatrix} 1 & 0 & 0\\ 0 & cos\phi & sin\phi\\ 0 & -sin\phi & cos\phi \end{bmatrix} \begin{bmatrix} cos\theta & 0 & -sin\theta\\ 0 & 1 & 0\\ sin\theta & 0 & cos\theta \end{bmatrix} \begin{bmatrix} cos\psi & sin\psi & 0\\ -sin\psi & cos\psi & 0\\ 0 & 0 & 1 \end{bmatrix}\\ &= \begin{bmatrix} cos\theta cos\psi & cos\theta sin\psi & -sin\theta\\ sin\phi sin\theta cos\psi-cos\phi sin\psi & sin\phi sin\theta sin\psi+cos\phi cos\psi & sin\phi cos\theta\\ cos\phi sin\theta cos\psi+sin\phi sin\psi & cos\phi sin\theta sin\psi-sin\phi cos\psi & cos\phi cos\theta \end{bmatrix} \end{aligned} Rnb=R2bR12Rn1= 1000cosϕsinϕ0sinϕcosϕ cosθ0sinθ010sinθ0cosθ cosψsinψ0sinψcosψ0001 = cosθcosψsinϕsinθcosψcosϕsinψcosϕsinθcosψ+sinϕsinψcosθsinψsinϕsinθsinψ+cosϕcosψcosϕsinθsinψsinϕcosψsinθsinϕcosθcosϕcosθ

则有:

[ α b β b γ b ] = R n b [ α n β n γ n ] \left[ \begin{array}{c} \alpha _b\\ \beta _b\\ \gamma _b\\ \end{array} \right] =R_{n}^{b}\left[ \begin{array}{c} \alpha _n\\ \beta _n\\ \gamma _n\\ \end{array} \right] αbβbγb =Rnb αnβnγn

如果由地心地固坐标系向载体坐标系的旋转过程中各坐标系都保持为直角坐标系,则根据正交矩阵的性质有:

R b n = ( R n b ) T = [ c o s θ c o s ψ s i n ϕ s i n θ c o s ψ − c o s ϕ s i n ψ c o s ϕ s i n θ c o s ψ + s i n ϕ s i n ψ 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 ψ − s i n ϕ c o s ψ − s i n θ s i n ϕ c o s θ c o s ϕ c o s θ ] \begin{aligned} R_{b}^{n}&=(R_{n}^{b})^T\\ &=\left[ \begin{matrix} cos\theta cos\psi& sin\phi sin\theta cos\psi -cos\phi sin\psi& cos\phi sin\theta cos\psi +sin\phi sin\psi\\ cos\theta sin\psi& sin\phi sin\theta sin\psi +cos\phi cos\psi& cos\phi sin\theta sin\psi -sin\phi cos\psi\\ -sin\theta& sin\phi cos\theta& cos\phi cos\theta\\ \end{matrix} \right]\\ \end{aligned} Rbn=(Rnb)T= cosθcosψcosθsinψsinθsinϕsinθcosψcosϕsinψsinϕsinθsinψ+cosϕcosψsinϕcosθcosϕsinθcosψ+sinϕsinψcosϕsinθsinψsinϕcosψcosϕcosθ

同理有:

[ α n β n γ n ] = R b n [ α b β b γ b ] \left[ \begin{array}{c} \alpha _n\\ \beta _n\\ \gamma _n\\ \end{array} \right] =R_{b}^{n}\left[ \begin{array}{c} \alpha _b\\ \beta _b\\ \gamma _b\\ \end{array} \right] αnβnγn =Rbn αbβbγb

姿态角的确定

如果已知由导航坐标系向载体坐标系的变换矩阵,则可求出载体的姿态角。将变换矩阵 R n b R_n^b Rnb中的每一个元素用带有下标的字母 r i j r_{ij} rij表示, r i j r_{ij} rij表示矩阵中第 i i i行,第 j j j列的元素。

R n b = [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] R_{n}^{b}=\left[ \begin{matrix} r_{11}& r_{12}& r_{13}\\ r_{21}& r_{22}& r_{23}\\ r_{31}& r_{32}& r_{33}\\ \end{matrix} \right] Rnb= r11r21r31r12r22r32r13r23r33

则可以根据变换矩阵的姿态角表达形式求出姿态角:

{ ψ = a r c t a n ( r 12 r 11 ) θ = − a r c s i n ( r 13 ) ϕ = a r c t a n ( r 23 r 33 ) \begin{cases} \psi=arctan\Big(\displaystyle\frac{r_{12}}{r_{11}}\Big)\\ \\ \theta=-arcsin(r_{13})\\ \\ \phi=arctan\Big(\displaystyle\frac{r_{23}}{r_{33}}\Big) \end{cases} ψ=arctan(r11r12)θ=arcsin(r13)ϕ=arctan(r33r23)

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后厂村路练习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值