搜索
bottom↓
回复: 40

开个帖子,讨论卡尔曼滤波算法,关于加速度传感器和陀螺仪的融合 有参考程序

  [复制链接]

出0入0汤圆

发表于 2012-1-10 14:36:41 | 显示全部楼层 |阅读模式
首先列出我对卡尔曼滤波用于两个传感器融合的一点见解:
卡尔曼滤波 实现性最优解的一种求解算法,他必须有根据建模的预测值和传感器数据采集的测量值 才能够进行相应的滤波算法
卡尔曼滤波要点:建立系统模型,确定滤波量 确定预测量 确定测量量 进行五个方程计算滤波
在陀螺仪和加速度传感器滤波的融合中,我们得首先建立起模型(融合只适用于重力情况下,若加速度传感器因为有其他力引入会造成队伍,故只用来进行水平姿态的测量)模型我找了篇论文这里详细的介绍了模型,点击此处下载 ourdev_711905ORLKPP.pdf(文件大小:497K) (原文件名:数据融合论文.pdf)
这里我重点说一下论文里的模型的特点,首先模型是一个2维模型,故在写程序的时候需要先把卡尔曼滤波的五个方程用线性代数的方法解算出来,这样才能够进行相应的卡尔曼滤波程序的编写。贴上程序的文档 (一定注意这是2维的卡尔曼滤波,根据论文中的五个方程进行相应的线性代数化简才能够看懂程序),一定注意程序是在用线性代数解算后的方程,如果不明白可以自己推到以下,我有在纸上的推导过程,有空拍照上传,这里现就不上传了。 这里的我们的预测量就是用陀螺仪测量的数据,而测量量就是加速度传感器测量的数据。点击此处下载 ourdev_711906BBHNLD.txt(文件大小:1K) (原文件名:新建文本文档.txt)
而之后就是进行五个方程的递归运算,即预测的更新,而输入量参照论文则是带有偏差的陀螺仪测量的角速度,和加速度测量的角度。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2012-1-10 14:45:19 | 显示全部楼层
我以前考虑过用偏差作为滤波量,不知道可以不可。

出0入0汤圆

发表于 2012-2-1 16:14:52 | 显示全部楼层
前辈 貌似没人跟帖啊 !!
           你这个代码现在基本上大家都在用 貌似懂的人真不多 我用的时候它的角度值总漂移 很是苦恼啊 不知你遇到没

出0入0汤圆

发表于 2012-2-1 16:25:30 | 显示全部楼层
等上电脑我再好好看看…学习学习~

出0入0汤圆

发表于 2012-2-9 21:26:26 | 显示全部楼层
那个pdf好东西,谢谢

出0入0汤圆

发表于 2012-2-9 22:09:21 | 显示全部楼层
第一篇pdf裡面的model是錯的....Orz

出0入0汤圆

发表于 2012-2-9 22:59:57 | 显示全部楼层
顶一下  楼主的文件不错  想看看你的推导过程?

出0入0汤圆

发表于 2012-2-10 15:39:11 | 显示全部楼层
回复【5楼】g921002
-----------------------------------------------------------------------

哪里错的??

出0入0汤圆

发表于 2012-2-10 23:18:47 | 显示全部楼层
回复【7楼】zfelight  
哪里错的??
-----------------------------------------------------------------------
φ <-- 傾角
b   <-- gyro offset
Wa,Wg <-- White noise

狀態方程展開 dφ = -b + Wgyro + Wg --> dφ = (Wgyro-b)+ Wg = Wrate + Wg
                                               
db = 0 <-- gyro offset跟時間無關 <-- MEMS gyro 可以這樣假設。
這樣的狀態方程可以降到一階。

觀測方程
φacc = φ + Wa <--- 無視外力項。假設Wa是白噪訊就是錯誤的。然後觀測方程一樣降到一階。

上面的狀態方程跟觀測方程直接降到一階,然後Kalman退化到最小二乘....那用Kalman幹嘛?
裡面提到一句"在该系统中,采用加速度计估计出陀螺仪常值偏差b",後面完全沒提到b怎樣用加速規標定出來。

db = 0 --> b = 任意常數。<--標定個鬼啊!!

總結:垃圾paper

出0入0汤圆

发表于 2012-2-11 19:52:23 | 显示全部楼层
额。。。。楼主?8楼?谁对谁错?求续集。。。。

出0入0汤圆

发表于 2012-3-29 17:34:55 | 显示全部楼层
不知前辈知不知道加速度在有一定倾角(即拿在手上上下左右动)的时候怎么样判断运动轨迹
析上有一个陀螺仪和一个加速度

出0入0汤圆

发表于 2012-3-30 17:11:15 | 显示全部楼层
不错,是个好资料

出0入0汤圆

发表于 2012-3-30 21:00:46 来自手机 | 显示全部楼层
我觉得用加速度计修正陀螺仪,最困难的就是剔除有害加速度,得到真实的重力分量,这不单需要滤波,还要根据上一时刻的姿态、运动速度通过力学计算进行剔除

出0入0汤圆

发表于 2012-3-31 06:01:46 | 显示全部楼层
ratar 发表于 2012-3-30 21:00
我觉得用加速度计修正陀螺仪,最困难的就是剔除有害加速度,得到真实的重力分量,这不单需要滤波,还要根据 ...

引入动态模型是个好思路,不过这个建模有难度。和飞行器的各项参数有密切关系。

出0入0汤圆

发表于 2012-3-31 08:54:35 | 显示全部楼层
学习四轴算法

出0入0汤圆

发表于 2013-4-21 21:37:42 | 显示全部楼层
学习

出0入0汤圆

发表于 2013-4-21 21:41:16 | 显示全部楼层
学习              

出0入0汤圆

发表于 2013-4-21 22:02:23 | 显示全部楼层
收藏了,呵呵

出0入0汤圆

发表于 2013-4-23 19:49:43 | 显示全部楼层
看看,      

出0入0汤圆

发表于 2013-4-24 11:16:28 | 显示全部楼层
非常好,正在学习啊

出0入0汤圆

发表于 2013-4-24 18:15:43 | 显示全部楼层
学习中,谢谢了

出0入0汤圆

发表于 2013-5-18 11:05:57 | 显示全部楼层
谢谢了,像我这样的新手有需要

出0入0汤圆

发表于 2013-5-20 19:15:58 | 显示全部楼层
貌似用的人不少,但能推导出来的人凤毛麟角。希望楼主发扬一下,能把推导过程写上来拯救一下苍生。

出0入0汤圆

发表于 2013-7-6 23:06:30 | 显示全部楼层
学习学习~

出0入0汤圆

发表于 2013-8-11 18:56:32 | 显示全部楼层
学习一下!

出0入0汤圆

发表于 2013-8-11 23:19:40 来自手机 | 显示全部楼层
电脑上时再看看

出0入0汤圆

发表于 2013-8-13 17:17:26 | 显示全部楼层
好帖帮顶

出0入0汤圆

发表于 2013-8-19 21:28:13 | 显示全部楼层
帮顶!正好学习。

出0入0汤圆

发表于 2013-8-23 15:03:19 | 显示全部楼层
这个程序大家都在用啊。。

出0入0汤圆

发表于 2013-8-30 16:35:22 | 显示全部楼层
三个轴的加速度和角速度可以通过一个卡尔曼吗?

出0入0汤圆

发表于 2013-12-20 18:16:10 | 显示全部楼层
那篇论文我看了,但是有个疑问,先关参数是怎么确定的啊?纠结中

出0入0汤圆

发表于 2013-12-26 22:15:27 | 显示全部楼层
怎么没有大师来讲解呢!!

出0入0汤圆

发表于 2013-12-27 10:38:52 | 显示全部楼层
拍个视频 讲解 一下

出0入0汤圆

发表于 2014-1-8 14:19:15 | 显示全部楼层
9楼说的是不是对的?

出0入0汤圆

发表于 2014-6-25 20:50:45 | 显示全部楼层
小伙子,可以加你QQ交流下卡尔曼滤波吗

出0入0汤圆

发表于 2014-6-27 21:50:33 | 显示全部楼层
zhaoqingtao008 发表于 2014-6-25 20:50
小伙子,可以加你QQ交流下卡尔曼滤波吗

哈哈,楼主开了讨论帖不久就失踪啦!
不要等了。

出0入0汤圆

发表于 2014-7-4 18:07:37 | 显示全部楼层
卡尔曼滤波器的状态变换矩阵取四元数作为状态变量,测量矩阵去加速度计和磁罗盘为测量变量。这样就可以构建模型,剩余几个矩阵得考打点,可以参考论文《基于ARM与低成本MEMS器件的AHRS设计》。

出0入0汤圆

发表于 2014-7-6 02:51:44 | 显示全部楼层
楼主能说明下,程序里的 pdot , p 数组  还有PCt_0, PCt_1, K_0, K_1, t_0, t_1 这些变量在卡尔曼的公式里各代表什么下。

出0入0汤圆

发表于 2014-10-8 22:22:14 | 显示全部楼层
g921002 发表于 2012-2-10 23:18
回复【7楼】zfelight  
哪里错的??
----------------------------------------------------------------- ...

那个不是降阶了,是离散化了,所以没有了微分

出0入0汤圆

发表于 2014-10-23 17:32:48 | 显示全部楼层
数据融合的基础原理已经熟悉到不能再熟悉。用kalman却一直无法把方程列出来。
卡尔曼的基本原理是测量噪声协方差R大的话,评估值的权重就更高一些。反之,测量值的权重更高。
但是在数据融合里,我们知道在非匀速运动状态下,accel的值是不可靠的,此时gyro的权重应该更高,反之,accel的值是可靠的,应该及时修正gyro的bias,
以备系统再次做非匀速运动时进行姿态解算。

常规的kalman是一个输入源(测量),一个先验评估值,解算出一个最佳估计值。
而数据融合的情况是,多个输入源(传感器值)的情况,阅读众多的文献资料,却一直没能找到多输入源的情况的滤波。经常都是一笔带过。
wiki上就一句话,翻译过来就是:
数据融合的结果取决是数据来源的质量,如果A数据源的质量好,那么融合结果中A的权重就越大,反之B的权重就越大。真心说了跟没说一样。

本坛流传的balance filter中的互补公式也是站不住脚,这里的系数应该是动态变化的。
angle = (0.98)*(angle + gyro*dt) + (0.02)*(x_acc)

假设物体静止平放方在水平面上,(0.02)*(x_acc)的结果为常数,而gyro因为drift却一直是累加的,也就是最终的angle必然变化,这公式怎么能用?

总而言之,列不出基础方程,不知道怎么用得上kalman filter。
太糟心了。

出0入0汤圆

发表于 2015-1-20 21:26:09 | 显示全部楼层
说好的参考程序呢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 11:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表