Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 3360|回復: 3
打印 上一主題 下一主題

請問有關arduino四軸卡爾曼濾波的問題!!

[複製鏈接]
跳轉到指定樓層
1#
發表於 2013-6-11 17:47:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請問卡爾慢濾波中的:

#define Q_angle 0.01 // 角度數據置信度
#define Q_omega 0.0003 // 角速度數據置信度
#define R_angle 0.01 // 方差噪聲

這三個要如何決定???

這三個值會影響到哪些改變???

先說說我自己測試的結果:

我自己調了以後發現"角度數據置信度"調越大感測姿態的速度會越靈敏,但是對於抗震的效果就越差,調小則反之。


"角速度數據置信度" 這個值我調了後都沒什麼改變,不知是否有人也試過??

"方差噪聲" 這個值調大後,感測器的值會超出原本的大小,然後慢慢減低。

好像有一種自動調整這三個值的方法,不知是否有人知道??




Klm_angle += (omega2 - bias) * dt; // 先驗估計
P_00 += -(P_10 + P_01) * dt + Q_angle *dt;
P_01 += -P_11 * dt;
P_10 += -P_11 * dt;
P_11 += +Q_omega * dt; // 先驗估計誤差協方差
float K_0 = P_00 / (P_00 + R_angle);
float K_1 = P_10 / (P_00 + R_angle);
bias += K_1 * (angleA2 - Klm_angle);
Klm_angle += K_0 * (angleA2 - Klm_angle); // 後驗估計
P_00 -= K_0 * P_00;
P_01 -= K_0 * P_01;
P_10 -= K_1 * P_00;
P_11 -= K_1 * P_01;


謝謝
2#
發表於 2013-6-12 03:42:22 | 只看該作者
回復 1# snake0907
也沒多少協方差數字可以選擇:大致
float Q_angle  =  0.01; //0.001
    float Q_gyro   =  0.003; //0.0003
    float R_angle  =  0.03;  //0.5就這幾個數字比較適合,
這是自然界物理現象的基本法則 ,卡爾曼濾波也遵循這法則,
3#
 樓主| 發表於 2013-6-12 18:02:14 | 只看該作者
本帖最後由 snake0907 於 2013-6-12 18:04 編輯

回復 2# vegewell

請問調整這三個值會有什麼效果??

尤其是方差噪聲,我最不知道是什麼??

謝謝
4#
發表於 2013-6-13 03:15:17 | 只看該作者
本帖最後由 vegewell 於 2013-6-13 03:16 編輯

回復 3# snake0907


   >>請問調整這三個值會有什麼效果??



卡爾曼濾波器就不斷的把covariance遞迴,從而估算出最優的溫度值。
他運行的很快,而且它只保留了上一時刻的covariance。


調整這三個值, 剛開始有明顯差異 ,但是你很快會知道如何調整才有意義, 不調整也行,


>>尤其是方差噪聲,我最不知道是什麼??
R_angle is the measurment noise covariance.
協方差R,我們的主觀觀測噪聲,
要大致瞭解 請讀此網頁:
Kalman Filter 介紹:
http://www.wretch.cc/blog/mamason79/25637416
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-29 11:02 , Processed in 0.134286 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表