姿态解算基础知识(一)

目前,对于姿态解算已经有些认识,至少可以看懂别人的开源代码。感觉我现在知道的东西像一堆点连起来的线段,还有些地方是散的,没有联通。暂且在这记录下。

版权声明
原创文章,转载请说明出处:sheng-blog.cn
原文出处

首先,四轴上用到mpu6050进行姿态解算属于惯性导航的范畴,为了了解基本概念跑去图书馆借了四本书回来(这里吐槽下图书馆,《卡尔曼滤波和组合导航原理》在图书检索系统显示在阅览室,十几层阅览室你让我上哪找去),四本里面科学出版社的《惯性器件与惯性导航系统》比较有感觉。惯性导航的目的主要包括输出航向、姿态、速度以及自主定位信息。做小四轴仅仅只需要姿态而已,想想用惯性导航进行定位就吓人~

惯性导航系统分平台式惯性导航系统和捷联式惯性导航系统。平台式是有一个由陀螺仪控制的实体平台保证加速度计能始终测得在导航坐标系下的各轴加速度值,而载体姿态通过读取平台刻度即可获得。而捷联式惯性导航系统则没有实体平台,加计测得的是载体坐标系下的各轴加速度,我们需要通过数学办法进行坐标系变换将加计的数据转换成导航坐标系下的各轴加速度值,相当于用数学办法构建一个“平台”。

SO,先来解决坐标变换的表示。先从二维平面OXY坐标系讲起:当OXY逆时针旋转α度时,同一矢量R在不同坐标下的表示:

根据方向余弦矩阵我们可以得到三个姿态角

方向余弦矩阵参与运算的话计算量比较大,所以我们用四元数进行坐标变换的运算(四元数的概念性质自行百度,或者下篇补充吧),它与方向余弦矩阵描述的关系及变换公式的推导如下:

事实上四轴姿态解算就加计和陀螺的融合而言要用到的是导航坐标系到载体坐标系的变换,推导过程一样。

你可能感兴趣的:(STM32,多旋翼无人机)