1 概述

所谓的九轴姿态融合就是将通过传感器获得的3轴加速度、3轴角速度、3轴磁场数据,在相应的算法处理后能够得到飞行器的姿态信息(欧拉角)。输入输出如下图

在惯性导航领域的欧拉角分别表示的是航向角(yaw)、横滚角(roll)、俯仰角(pitch)。我们拟建一空间直角坐标系,在该坐标系中,物体做出的任何姿态同样也可以用一个空间直角坐标系表示,而这个新的坐标系都可以通过原坐标系围绕三个轴向进行一共三次转动得到。也是就说,物体的姿态变化可以通过与三个轴向的转动情况来表示。如若将原坐标系定位地球坐标系,也就是我们的参考坐标系,将物体姿态坐标系作为机体坐标系。则飞行器的任何姿态变化便能通过欧拉角来表示(这里暂不考虑万向节死锁的情况)。

2 传感器

2.1 加速度计

加速度计可以被用来测量三个轴向的加速度。设计方式就像在一个立方体中放入一个球体。当我们将这个立方盒放在一个没有地球引力的地方时,球体不会对任意一个面有作用力,此时三个轴向输出的压力都是0,也就没有加速度。当我们放在正常环境下时,由于只受到重力作用,小球会压盒子下表面。我们将得到下表面的压力。用牛顿第一定律力等于质量乘加速度可求得相应轴向的加速度,这里的加速度正好等于重力加速度g(9.8m/s^2)。当我们将盒子选择45°时,小球将会同时接触X和Z面。也就是会对两个面有作用力。当盒子只守重力时,那两个面的垂直分力之和也等于重力g。通常情况下,立方盒的三个面都会受到小球的作用力,当物体保持静止或者匀速直线运动时,三个轴的合力等于重力加速度g,并且方向永远垂直地面向下的。

我们能够通过加速度计求得一个用于参考对比的重力向量,比对求得的重力向量与各个轴向量的大小,能够求出对应的姿态角。但加速度也有缺陷,首先是求得标准重力加速度的条件是垂直方向上的静止或者匀速直线运动,其次就是当物体围绕重力方向旋转的时候,加速度计时无法感知的。加速度计通常适应静态或者低速的情况,所以单单加速度计是无法满足姿态解算的需求的。

2.2 陀螺仪

陀螺仪又名角速度传感器,是被用来检测角速度的(单位时间内旋转角度的变化)。陀螺仪的主要理论基础是角动量守恒定理,它的轴心有一个可以旋转的转子。当转子高速转动的时候,能够保持其旋转轴在惯性空间内的方向稳定性不变。角速度数据的推导过程比较复杂,文章重点在于数据处理,暂且将他作为一个能够输出三轴角速度的传感器来使用。

陀螺仪能够弥补加速度计动态特性不足的问题,通过他能够得到三个轴向的角速度。想要得到角度其实我们只需要对角速度积分即可,计算出来的就是姿态角,但陀螺仪也有一些问题导致我们没法完全相信得出的姿态角数据。误差与噪声的影响使其每次得出的数据并不准确,尤其又通过积分使其误差累计,这样数据就更加不可信了。为了能减小误差,通常会在使用陀螺仪的时候进行零偏矫正,也就是当陀螺仪在处于静止状态的时候,仍然会有一定的数据输出,我们通过累计一定的数据,算出偏差值,来修正使其处于静止状态的时候,三轴数据趋于零。

2.3 磁力计

磁力计是通过内部电路的电阻变化来检测三轴磁场强度的传感器。这里磁力计主要是用来纠正垂直于地面这个轴向(下面简称Z轴)数据总是漂移的问题。由于加速度计无法测量重力方向同时也是Z轴方向的旋转,于是就只能依靠陀螺仪,但由于陀螺仪会累计误差,又得不到加速度计的修正,误差只会越来越大,这个时候就需要能准确知道东南西北方向的磁力计来修正。地球磁场总是由磁南指向磁北的,在空中划出一道弧线,以垂直地面为Z轴,我们同样可以建立一个空间直角坐标系,而磁力计得到的三轴磁场强度,也就是该坐标系下的三个轴向。我们可以通过垂直于Z轴的两个轴向量来求得一个和向量,这个和向量就是指向磁北的。于是我们就能得到一个参考向量,从而修正绕Z轴旋转的角度了。由于地球磁场通常是很微弱的,会受到外界大量的干扰,就必须对它进行校准。理想情况下,在坐标系中,我们将物体绕一个轴旋转360°,每个磁场强度的点连接起来是一个圆形,如果有干扰的话,绘制出来的变是一个椭圆。我们就需要对数据处理修正。这里使用的是一元一次函数。首先使用Xmax,Xmin,Ymax,Ymin分别表示垂直与指向地面轴线的另外两个轴向的磁场最大最小值,先拟定最大最小值差距更大的一组轴的比例系数Xk为1,另外一个轴的比例系数可由下公式可得出:

Y_k=〖(X〗_max-X_min)/Y_max-Y_min

之后求出两轴的常数Xb,Yb:

X_b=X_k [1/2(X_max-X_min ) -X_max]
Y_b=Y_k [1/2(Y_max-Y_min ) -Y_max]

最后使用比例和偏置常数对数据进行修正:

X_output=X_input∙X_k+X_b
Y_output=Y_input∙Y_k+Y_b

微型四轴飞行器(5)九轴姿态融合算法A相关推荐

  1. 微型四轴飞行器(5)九轴姿态融合算法B

    方向余弦矩阵 飞行器在空中的运行姿态可以用平面和转动来表示,为了方便使用向量表示,需要建立两个空间直角坐标系.设R表示单位矢量在机体坐标系下的三个轴的投影,B表示单位矢量在地球坐标系下的三个轴的投影. ...

  2. 使用扩展卡尔曼滤波(EKF)进行AHRS九轴姿态融合

    AHRS九轴姿态融合 EKF滤波 卡尔曼滤波 在做九轴姿态融合的过程中,这里介绍一种融合算法,基于EKF的九轴姿态融合算法: 首先表明,该算法并非自己想到的,算法原理参考了这篇论文:Dale E. S ...

  3. GD32F103+MPU9150四旋翼飞行器第一步:姿态融合算法

    前言: 相比直升机来说,四旋翼乃至多旋翼飞行器的机械结构简单,操控灵活,飞行稳定,体积也能做的更小,当然也能更大,它将直升机复杂的机械结构设计难度转化到了电子电路和算法上面,因此四旋翼飞行器的设计更容 ...

  4. 【51单片机快速入门指南】4.4.2:Mahony AHRS 九轴姿态融合获取四元数、欧拉角

    目录 传感器的方向 源码 Mahony_9.c Mahony_9.h 使用方法 测试 main.c 效果 STC15F2K60S2 22.1184MHz Keil uVision V5.29.0.0 ...

  5. 【51单片机快速入门指南】4.4.3:Madgwick AHRS 九轴姿态融合获取四元数、欧拉角

    目录 传感器的方向 源码 Madgwick_9.c Madgwick_9.h 使用方法 测试 main.c 效果 STC15F2K60S2 22.1184MHz Keil uVision V5.29. ...

  6. 四轴飞行器1.1 Matlab 姿态显示

    四轴飞行器1.1 Matlab 姿态显示 开始做四轴了,一步一步来,东西实在很多,比较杂.先做matlab上位机,主要用来做数据分析,等板子到了可以写飞控的程序了,从底层一层一层开始写..希望能好好的 ...

  7. 学习 STM32之九轴姿态传感器(BWT901CL)串口通信读取数据

    由于个人应用到3轴传感器,所以买了直接买了一个9轴的,用于学习STM32Core平台串口2连接维特智能串口Normal协议,然后通过串口1直接打印数据,接收传感器数据和与传感器进行通信:需要看产品文档 ...

  8. 一群微型四轴飞行器怎么玩

    一群微型四轴飞行器怎么玩 http://v.youku.com/v_show/id_XMzQ5OTA0Nzcy.html?from=y1.2-1-98.4.8-1.12-1-2-7

  9. 微型四轴飞行器(4)通讯设计

    通讯方式选择 如今的四轴飞行器上使用的无线通信模块有5种大类,WIFI.蓝牙.2.4G模块.433M模块.868M模块.Wifi和2.4G其实都是一个频段,但是wifi是经过了协议封装的结果,而后者模 ...

最新文章

  1. 通过神经图稳定对脑机接口的即插即用控制,四肢瘫痪患者可以轻松控制电脑光标...
  2. C#与Java的比较(转)
  3. extjs 基础部分
  4. Python字典的操作与使用
  5. 解构控制反转(IoC)和依赖注入(DI)
  6. Linux samba服务
  7. 类似地图比例尺钩子下边框实现
  8. 卡巴斯基注册码的操作
  9. 如何将计算机网络作为热点,怎么把笔记本作为WIFI热点供其他电脑使用无线网...
  10. 关于PAT报错:warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
  11. DDOS 攻击的防范教程
  12. 兰德公司:零日漏洞平均生存期为6.9年
  13. 爬取《电影天堂》,保存评分大于7.0 的电影地址
  14. Hive之数仓的分层及建模理论(3)
  15. java练习题---前五章
  16. 推荐几个帮你避坑和赚钱的公众号
  17. 什么是Ajax 和 json
  18. Mac 不显示未知来源选项的解决办法
  19. 道高一尺魔高一丈:iOS破解应用下载中心AppTrackr VS. 苹果
  20. 安卓系统6.0设置默认打开允许安装来自未知来源的应用的开关

热门文章

  1. 2023最新51单片机毕设选题推荐
  2. Google Earth Engine ——(COPERNICUS/S5P/OFFL/L3系列——CH4/CO/CLOUD/CO/HCHO/NO2/O3/SO2)数据集
  3. python手机区块链,初学者用Python搭建区块链
  4. 如何在线将ofd转成Word格式文档
  5. Cisco Packet Tracer路由方式介绍和静态路由简单配置
  6. 1号店的分布式搜索引擎的架构实践
  7. 疫情之下互联网跳槽面试全攻略
  8. Win7 64位下配置Qt5.3和Wincap
  9. Java 桌面精灵关键代码
  10. 飞信服务器未响应,移动飞信即将停止服务 将于6月30日下线