互补滤波原理

  对mpu6050来说,加速度计对四轴飞行器的加速度比较敏感,取瞬时值计算倾角误差比较大;而陀螺仪积分得到的角度则不受加速度的影响,但是随着时间的增加积分漂移和温度漂移带来的误差比较大。那么要怎么弥补这两个缺点呢?那就要用到互补滤波了。

  这里讲的互补滤波就是在短时间内采用陀螺仪得到的角度做为最优,定时对加速度采样来的角度进行取平均值来校正陀螺仪的得到的角度。也就是说,短时间内用陀螺仪比较准确,以它为主;长时间用加速度计比较准确,这时候加大它的比重,这就是互补了。

  那么滤波在哪里?加速度计要滤掉高频信号,陀螺仪要滤掉低频信号,互补滤波器就是根据传感器特性不同,通过不同的滤波器(高通或低通,互补的),然后再相加得到整个频带的信号。例如,加速度计测倾角,其动态响应较慢,在高频时信号不可用,所以可通过低通抑制高频;陀螺响应快,积分后可测倾角,不过由于零漂等,在低频段信号不好。通过高通滤波可抑制低频噪声。将两者结合,就将陀螺和加表的优点融合起来,得到在高频和低频都较好的信号,互补滤波需要选择切换的频率点,即高通和低通的频率。

  鉴于加速度计低频特性比较好,因为加速度的角度可以直接算出来,没有累积误差,所以长时间后也比较准。而陀螺仪长时间后由于积分误差的累加,会造成输出误差比较大,甚至无法使用。所以用互补滤波法根据他们的特性取长补短进行姿态解算,每过一段时间就让加速度计去校准一下陀螺仪。互补滤波就是在短时间内采用陀螺仪得到的角度做为最优值,定时对加速度采样来的加速度值进行取平均值来校正陀螺仪的得到的角度。短时间内用陀螺仪比较准确,以它为主;长时间用加速度计比较准确,这时候加大它的比重,这就是互补了,不过加速度计要滤掉高频信号,陀螺仪要滤掉低频信号,互补滤波器就是根据传感器特性不同,通过不同的滤波器(高通或低通,互补的),然后再相加得到整个频带的信号。互补是给他们不同的权重加权求和。

  互补滤波用公式就是这样的: 

              陀螺积分角度 += 角速度 * dt;

              融合角度 =  陀螺仪权值 * 陀螺积分角度 + (1 - 陀螺仪权值) * 加速度角度

  还有一种就最大梯度法,用公式表示是这样的:

              陀螺积分角度 += 角速度 * dt;

              角度偏差 = 加速度角度 - 陀螺积分角度;

              融合角度 = 陀螺角度 + 衰减系数 * 角度偏差;

  用来矫正陀螺本身的静态漂移:

              角度偏差积分 += 角度偏差;

              角速度 = 角速度 + 衰减系数 * 角度偏差积分;

  这个可以一定程度上矫正陀螺的零漂。

参考博客

http://blog.csdn.net/superrunner_wujin/article/details/55809648
http://blog.csdn.net/wkdwl/article/details/52119163
http://blog.csdn.net/Gen_Ye/article/details/52522721?locationNum=10
http://blog.csdn.net/Gen_Ye/article/details/52524190

原文地址:https://www.cnblogs.com/jasonchan1202/p/8400695.html

时间: 2024-08-08 13:56:17

互补滤波原理的相关文章

四轴之互补滤波与四元数算法最详细分析

有人问我关于四元数姿态解算算法的分析,每次都解释好久,今日空闲,特发一帖,供大家参考.本分析将结合程序,分析姿态解算思路,由于能力有限,难免有错误之处请谅解,同时希望能够抛砖引玉,得到大神指点.再此感谢圆点博士提供资料参考. 为尊重原创,转载请注明原出处,谢谢. 原创:冰三点水 关键字:姿态解算 互补滤波 四元数 下面进入正题. 第一部分 传感器说明 通常我们开源小四轴使用mpu6050姿态传感器,可以输出三轴加速度和三轴角速度数据.角速度数据就是x.y.z三个轴的旋转角速度.而加速度是沿三个轴

双边滤波原理与C++实现

一.原理 双边滤波(Bilateral filter)是一种可以去噪保边的滤波器.之所以可以达到此效果,是因为滤波器是由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个由像素差值决定滤波器系数. 原理示意图如下: 双边滤波器中,输出像素的值依赖于邻域像素的值的加权组合, 权重系数w(i,j,k,l)取决于定义域核 和值域核 的乘积 二.C++实现 2.1 OpenCV调用方法: cvSmooth(m_iplImg, dstImg, CV_BILATERAL, 2 * r + 1, 0

HP滤波原理浅学

今天偶然看到如果使用eviews做HP滤波,一时好奇,于是找了点资料看看~ 由于纯属自学,没有找到教材,大家姑且一看咯,也不知道对不对哈.

电容滤波&电感滤波原理

整流电路的输出电压不是完美的直流,从示波器观察整流电路的输出,能看到有闫的脉动成份,这就是纹波.为了获得比较理想的直流电压,需要使用滤波电路. 滤波电路中常常使用电感.电容.电阻.其中电感和电容都是具有储能作用的电抗元件,意思就是电容电容对不同频率的信号具有不同的电抗,而一定意义上说电阻对所有频率的信号都具有相同的电阻.而纹波是具有交流特性的,因此电容.电感对纹波具有与电阻不同的电抗.电容对频率越高的信号抗性越小,电感对频率越高的信号抗性越高.滤波电路的本质就是通过构建这个一个电路网络,使这个电

自适应滤波原理及simulink

双边滤波算法原理及实现

双边滤波算法原理 双边滤波是一种非线性滤波器,它可以达到保持边缘.降噪平滑的效果.和其他滤波原理一样,双边滤波也是采用加权平均的方法,用周边像素亮度值的加权平均代表某个像素的强度,所用的加权平均基于高斯分布[1].最重要的是,双边滤波的权重不仅考虑了像素的欧氏距离(如普通的高斯低通滤波,只考虑了位置对中心像素的影响),还考虑了像素范围域中的辐射差异(例如卷积核中像素与中心像素之间相似程度.颜色强度,深度距离等),在计算中心像素的时候同时考虑这两个权重. 双边滤波的核函数是空间域核与像素范围域核的

Canny边缘检测算法原理及其VC实现详解(一)

转自:http://blog.csdn.net/likezhaobin/article/details/6892176 图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值.图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量.检测和定位,自从1959提出边缘检测以来,经过五十多年

OpenCV-跟我学一起学数字图像处理之中值滤波

中值滤波(median filter)在数字图像处理中属于空域平滑滤波的内容(spatial filtering).对消除椒盐噪声具有很好的效果. 数学原理 为了讲述的便捷,我们以灰度图为例.RGB三通道的彩色图可以通过每一个通道各自的中值滤波联合得到. 数字图像是以矩阵的方式存储的,具体存储方式可以参见OpenCV手册.中值滤波是通过所谓的mask operation操作进行的.以3x3的mask为例.设图像的矩阵形式如下: 0,0 0,1 0,2 0,3 0,4 0,5 1,0 1,1 1,

双边滤波

Qt 平台,双边滤波原理代码例如以下: #include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> #include <cmath> using namespace cv; usi