搜索
bottom↓
回复: 26

论文把我搞晕了,颠覆了以前的概念。关于卡尔曼滤波问题

[复制链接]

出0入0汤圆

发表于 2014-3-12 21:04:24 | 显示全部楼层 |阅读模式
本帖最后由 s15200380596 于 2014-3-12 20:18 编辑

   
《磁强计加速度陀螺姿态估计卡尔曼滤波》中结论:
卡尔曼滤波器只适用于载体没有线加速度的情况。因此在I M U 应用中,需要先根据加速度计的输出,判断载体的状态。 如果载体是静止或者没有线加速度,则使用此滤波器计算姿态,否则直接使用陀螺输出数据计算姿态,而不使用此滤波器。

问题:
1.加速度计不是线加速度与重力加速度的融合吗?怎么载体是静止或者没有线加速度使用此滤波器计算姿态,没有线加速度应该不能计算出姿态角度吧?
2.卡尔曼滤波是将(加速度,磁力计解算后的四元数)与(陀螺仪节微分方程得出的四元数)进行融合?而不是将两组传感器得出的姿态角度融合??
3.有没有完整的卡尔曼滤波程序C的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

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

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2014-3-12 21:52:43 | 显示全部楼层
问题1.加速度计不是线加速度与重力加速度的融合吗?怎么载体是静止或者没有线加速度使用此滤波器计算姿态,没有线加速度应该不能计算出姿态角度吧?

加速度計輸出 (Acc) = 重力加速度 (Acc_g) + 運動加速度 (Acc_m)

當 Acc = Acc_g 時,計算出來的姿態才可信,
因為角度是由"X, Y 軸"與"重力方向"所計算出來的。

若存在運動加速度,則會影響到 X、Y、Z 軸的數值,進而影響到結果。

出0入0汤圆

发表于 2014-3-12 23:05:13 | 显示全部楼层
john800422 发表于 2014-3-12 21:52
问题1.加速度计不是线加速度与重力加速度的融合吗?怎么载体是静止或者没有线加速度使用此滤波器计算姿态, ...

不同意     

出0入0汤圆

发表于 2014-3-12 23:16:16 | 显示全部楼层


不知道為何不同意,
可以說一下你的想法

出0入0汤圆

发表于 2014-3-13 00:47:36 来自手机 | 显示全部楼层
john800422 发表于 2014-3-12 23:16
不知道為何不同意,
可以說一下你的想法

同意,加速计是这样。

出0入0汤圆

发表于 2014-3-13 12:10:17 | 显示全部楼层
论文的意思是如果要先从加速度计中算出四元数,就得要求没有额外的加速度。其实如果能处理好在有额外加速度的情况下去改变系统输入量和协方差矩阵,那就不需要这个限制,但文章没有详细分析这两个量是怎么算的,尤其是q_m对协方差的影响。
姿态角没有线性运算所以原则上是不能作为线性观测器的状态量的,当然非得要用的话也能做、有处理方法。分别算出四元数在做卡尔曼滤波的话,需要处理好在四元数计算过程中测量误差的传递,如上所述论文没说这个。

另外建议lz换篇文章看吧,这篇感觉水平不高,参考文献里也没有作者的其他成果,怕是凑文章毕业用的……

出0入0汤圆

 楼主| 发表于 2014-3-13 14:20:10 | 显示全部楼层
john800422 发表于 2014-3-12 21:52
问题1.加速度计不是线加速度与重力加速度的融合吗?怎么载体是静止或者没有线加速度使用此滤波器计算姿态, ...

没有运动加速度才准确,也就是静止或者匀速运动的时候,但是四轴飞行时很难保证静止或者匀速吧,也就是加速度计不准确那么怎么对陀螺仪修正?

出0入0汤圆

 楼主| 发表于 2014-3-13 14:22:30 | 显示全部楼层
K.O.Carnivist 发表于 2014-3-13 12:10
论文的意思是如果要先从加速度计中算出四元数,就得要求没有额外的加速度。其实如果能处理好在有额外加速度 ...

嗯嗯,大神有没有推荐的啊?

出0入0汤圆

发表于 2014-3-13 16:30:19 | 显示全部楼层
s15200380596 发表于 2014-3-13 14:20
没有运动加速度才准确,也就是静止或者匀速运动的时候,但是四轴飞行时很难保证静止或者匀速吧,也就是加 ...

實際上當然不可能完全沒有運動加速度,
所以通常會認為四軸的震盪不大,沒有左右移動等等情況,
也就是穩定懸停( 飄移可接受 )的時候,會假定沒有運動加速度,

當然這些都是建立在穩定懸停時,Acc_g >> Acc_m 的情況下成立。
誤差是一定會存在的,只是如何去縮小他。

出0入0汤圆

发表于 2014-3-13 17:01:45 | 显示全部楼层
john800422 发表于 2014-3-12 23:16
不知道為何不同意,
可以說一下你的想法

自由落体时的加速度计输出时多少

出0入0汤圆

发表于 2014-3-13 18:15:50 | 显示全部楼层
hemeizhi 发表于 2014-3-13 17:01
自由落体时的加速度计输出时多少

以 MPU6050 為例,水平放置( Z 軸朝上 ),
做自由落體時,Acc_g = +g、Acc_m = -g,
Acc = Acc_g + Acc_m = +g + (-g) = 0
自流落體時,加速度計應該輸出為 0。

出0入0汤圆

 楼主| 发表于 2014-3-13 20:03:34 | 显示全部楼层
john800422 发表于 2014-3-12 21:52
问题1.加速度计不是线加速度与重力加速度的融合吗?怎么载体是静止或者没有线加速度使用此滤波器计算姿态, ...


加速度計輸出 (Acc) = 重力加速度 (Acc_g) + 運動加速度 (Acc_m)

當 Acc = Acc_g 時,計算出來的姿態才可信。

也就是说只有重力加速度的时候可以用来修正陀螺的漂移是吧?

刚看到一个论文他怎么是用任意状态的加速度计输出量来计算姿态角度啊?

不好意思实在是被搞糊涂了,多谢赐教。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-3-12 21:04:25 | 显示全部楼层
s15200380596 发表于 2014-3-13 20:03
加速度計輸出 (Acc) = 重力加速度 (Acc_g) + 運動加速度 (Acc_m)

當 Acc = Acc_g 時,計算出來的姿態才 ...

也就是说只有重力加速度的时候可以用来修正陀螺的漂移是吧?
→此時修正可信度較高

刚看到一个论文他怎么是用任意状态的加速度计输出量来计算姿态角度啊?
→不是"任意狀態"而是"任意姿態",任意姿態指的是不一定為水平,可以任意角度。

Ab = T*At 表示"任意姿態的加速度測量值 = 旋轉矩陣 * 水平姿態的加速度測量值"
也就是說任意姿態下的加速度值,都可以由重力加速度旋轉後得到。
反過來說,重力加速度固定,任意姿態下的加速度值可以由加速度計測得,
所以旋轉矩陣也可以得知 ( Pitch and Roll )。

出0入0汤圆

 楼主| 发表于 2014-3-13 21:40:07 | 显示全部楼层
john800422 发表于 2014-3-13 20:20
也就是说只有重力加速度的时候可以用来修正陀螺的漂移是吧?
→此時修正可信度較高

哦哦,懂了,谢谢大神。
麻烦你把我地二个问题也回答了呗,
2.卡尔曼滤波是将(加速度,磁力计解算后的四元数)与(陀螺仪节微分方程得出的四元数)进行融合?还是将两组传感器得出的姿态角度融合??
分先奉上哈。

出0入0汤圆

发表于 2014-3-13 22:17:49 | 显示全部楼层
s15200380596 发表于 2014-3-13 21:40
哦哦,懂了,谢谢大神。
麻烦你把我地二个问题也回答了呗,
2.卡尔曼滤波是将(加速度,磁力计解算后的四 ...

沒有詳細了解過 kalman filter,所以不太了解,
但從內文及下圖可以看出,q(h) 和 qm 都是四元數,
所以應該是先將兩四元數作融合,再計算姿態,有錯指正。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-3-13 22:46:34 | 显示全部楼层
john800422 发表于 2014-3-13 18:15
以 MPU6050 為例,水平放置( Z 軸朝上 ),
做自由落體時,Acc_g = +g、Acc_m = -g,
Acc = Acc_g + Acc_m ...

这么算也对

出0入0汤圆

 楼主| 发表于 2014-4-5 21:06:48 | 显示全部楼层
john800422 发表于 2014-3-12 21:04
也就是说只有重力加速度的时候可以用来修正陀螺的漂移是吧?
→此時修正可信度較高

不好意思,关于加速度计定姿还有几个问题想请教你一下。
1.根据图片里的公式横滚角用反正弦解出,但反正弦值域只有(-90 90)但横滚角的定义域是(-180 180)这里不知道怎么办。
2.加速度计只有在只有重力加速度的时候才有参考价值。也就是Aa=[ax,ay,az]=[0,0,g]的时候有参考价值。
   在任意位置时要想有参考价值那么只能保持静止或者匀速此时输出的加速度为Ab=[0,0,g].
   由公式Ab=T*Aa那么有参考价值的姿态角度应该一直是不变的啊(Aa=Ab),怎么能实时反映角度的变化呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-4-6 00:11:57 | 显示全部楼层
s15200380596 发表于 2014-4-5 21:06
不好意思,关于加速度计定姿还有几个问题想请教你一下。
1.根据图片里的公式横滚角用反正弦解出,但反正 ...


1. 不懂你的問題,但關於尤拉角的定義可以參考 http://en.wikipedia.org/wiki/Euler_angles
2. 嚴謹來說,並不是"只有重力加速度才有參考價值",應該說"當運動加速度可以忽略時,才有參考價值",這前面可能沒有解釋得很好,
 另外就是"Aa=[ax,ay,az]=[0,0,g]的时候有参考价值"是其中一種狀況,
 Aa=[ax,ay,az]=[g, 0, 0]
 Aa=[ax,ay,az]=[0, g, 0]
 Aa=[ax,ay,az]=[(3/5)g, (4/5)g, 0]
 只要 Sqrt( ( ax )^2 + ( ay )^2 + ( az )^2 ) = g,都表示存在重力加速度,
 也就是向量大小不變,但是相對於載體座標的方向變了。

出0入0汤圆

 楼主| 发表于 2014-4-6 19:44:32 | 显示全部楼层
本帖最后由 s15200380596 于 2014-4-6 19:46 编辑
john800422 发表于 2014-4-6 00:11
1. 不懂你的問題,但關於尤拉角的定義可以參考 http://en.wikipedia.org/wiki/Euler_angles
2. 嚴謹來說 ...


网上买了个加速度计和陀螺仪模块,根据数据输出得到这样的图形,感觉加速度计根本就什么参考价值啊。
X轴角度     是加速度计和陀螺仪卡尔曼滤波后输出的姿态角度。(可信度高)
X轴加速度计角度        是加速度计输出后(输出x轴加速度单位是多少g)根据公式  角度=arcsin(-ax/g)得到的。
问题:这样有问题吗?。谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-4-6 20:07:01 | 显示全部楼层
john800422 发表于 2014-4-6 00:11
1. 不懂你的問題,但關於尤拉角的定義可以參考 http://en.wikipedia.org/wiki/Euler_angles
2. 嚴謹來說 ...

谢谢回答,第二个问题已经懂了。
第一个的意思是反正弦函数定义域【-1 1】。如果某个位置x轴有2个加速度即acrsin(-2g/g)就已经超过定义域了这怎么办
还有就是反正弦函数计算出来的角度只有(-90 90)但横滚角是(-180 180),如果横滚角是150度那么公式计算不出来的吧?

出0入0汤圆

发表于 2014-4-6 20:52:30 | 显示全部楼层
s15200380596 发表于 2014-4-6 20:07
谢谢回答,第二个问题已经懂了。
第一个的意思是反正弦函数定义域【-1 1】。如果某个位置x轴有2个加速度 ...

加速度計算角度錯了,建議你先了解如何用加速度計求出角度,
不要一味的找公式,看似捷徑但實際上是繞遠路,深入地去思考驗證。

出0入0汤圆

 楼主| 发表于 2014-4-6 20:59:37 | 显示全部楼层
john800422 发表于 2014-4-6 20:52
加速度計算角度錯了,建議你先了解如何用加速度計求出角度,
不要一味的找公式,看似捷徑但實際上是繞遠 ...

好的,谢谢提醒。那这个论文里的公式是错的吗?
那我先好好看看原理。谢谢你。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-4-7 15:02:24 | 显示全部楼层
john800422 发表于 2014-4-6 20:52
加速度計算角度錯了,建議你先了解如何用加速度計求出角度,
不要一味的找公式,看似捷徑但實際上是繞遠 ...

谢谢你的建议,认真看了加速度计定姿后采集数据计算得到波形大体还可以。
真心谢谢你。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-8-26 12:56:27 | 显示全部楼层
你们的讨论对我太有帮助了~

出0入0汤圆

发表于 2014-8-28 11:12:35 | 显示全部楼层
很好的讨论

出0入0汤圆

发表于 2014-8-28 13:03:41 | 显示全部楼层
john800422 发表于 2014-4-6 00:11
1. 不懂你的問題,但關於尤拉角的定義可以參考 http://en.wikipedia.org/wiki/Euler_angles
2. 嚴謹來說 ...

J神你好,我下了你的QCopter的代码,我看了下,然后有些地方比较疑惑,第一个你对MS56611也用了DMA读取,为何前面没有检测I2C是否繁忙和其他标志位是否到达,直接就开启I2C,然后后面只检测了EV5和EV6,大神能否给我解答下。第二个,你的超时判断程序return到Time_Out,可是我看了下,time——out是个无限循环的延时程序,这样不还是陷入死循环。。。。。。请大神不吝赐教。。谢谢

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-10-3 08:24

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

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