卡爾曼濾波---簡述(一)

感慨

雖然本人只是個小小碼農,主攻java後臺開發,但吾以爲,學習技術,應當不分領域。
本文首先假設讀者像我當初一樣,是個對卡爾曼濾波望而生畏的小白。

參考鏈接

https://zhuanlan.zhihu.com/p/39912633
該鏈接是本人覺得描述得比較好理解的一篇文章了,從基礎一步一步推進,推導出卡爾曼濾波的過程。

https://zh.wikipedia.org/wiki/卡爾曼濾波
該鏈接有很詳盡的說明,不得不提,維基百科是個學習的好地方

公式

時間更新方程

x^kˉ=Ax^k1+Buk1                {\hat{x}}_{\bar{k}}=A{\hat{x}}_{{k-1}}+Bu_{k-1} ~~~~~~~~~~~~~~~ ①
Pkˉ=APk1AT+Q                P_{\bar{k}}=AP_{k-1}A^T+Q ~~~~~~~~~~~~~~~ ②

狀態更新方程

Kk=PkˉHTHPkˉHT+R                K_k=\frac {P_{\bar{k}}H^T} {HP_{\bar{k}}H^T+R}~~~~~~~~~~~~~~~ ③
x^k=x^kˉ+Kk(zkHx^kˉ)                {\hat{x}}_{k}={\hat{x}}_{\bar{k}}+K_k(z_k-H{\hat{x}}_{\bar{k}})~~~~~~~~~~~~~~~ ④
Pk=IKkHPkˉ                P_k=(I-K_kH)P_{\bar{k}}~~~~~~~~~~~~~~~ ⑤

時間更新方程解讀

爲何要稱它爲時間更新方程,主要在於等式左邊都是當前值,而右邊變量則都是上一時刻值。故方程是隨着時間在推進的。
方程的目標在於,預測一個當前值以及得到該預測值的誤差。假設我們再知道測量值以及測量值的誤差,那麼就可以按照 z=ax+(1a)yz=ax+(1-a)y 進行融合,即
=+結果=預測值佔一定比例+測量值佔一定比例
決定比例大小的因素就是誤差,誤差小更可信,佔比會更大。

①式解讀

本式子是一個預測模型的表示,通俗地翻譯公式爲:
=+ 當前預測值=上一個最優估計值+外力作用
其中的A和B矩陣用於轉換關係的表示,並不影響理解。
一般來講,有沒有外力都無所謂的,甚至你採用的預測模型不夠準確,也是可以應用卡爾曼濾波的,只要你的預測值不要與實際差個十萬八千里即可

②式解讀

翻譯公式爲:
=+ 先驗估計協方差=上一後驗估計協方差+噪聲協方差
首先搞清楚何爲先驗,何爲後驗。
舉一個先驗的例子,兩個骰子,和爲5的概率。共36種可能性,其中和爲8有1+4,2+3,3+2,4+1四種,故概率爲1/9。
舉一個後驗的例子,兩個骰子,現在搖出5點,求一個是1另一個是4的概率。由上面列舉可見,概率爲1/2。
主要是①式兩邊求協方差得到的,其中使用到如下公式
Cov(Ax)=ACov(x)AT Cov(Ax)=ACov(x)A^T

狀態更新方程解讀

狀態更新方程兩邊都是k量,目標是融合出一個最優估計值,同時求出其協方差。

③式解讀

翻譯公式爲:
=+ 卡爾曼增益=先驗估計協方差+量噪聲協方差
卡爾曼增益指明瞭預測值和測量值之間的以何種比例進行結果融合,這涉及兩個高斯分佈之間的融合,參考鏈接中有詳細說明

④式解讀(目標)

翻譯公式爲:
=+ 最優估計值=預測值+一定比例的(測量值-當前預測值)
乍一看,好像哪裏不對,加號右邊的預測值比左邊的預測值多了一個HkH_k,原因其實是最開始都帶了HkH_k,從而兩邊都消掉了HkH_k,而加號右邊的預測值攜帶的HkH_k無法被消掉,從而在公式上顯得比較突兀,實際表達的意思和z=ax+(1a)yz=ax+(1-a)y是一致的。
本式子也是我們最關心的一個式子,該式子對外輸出了最優估計值,而其他的式子,對外並不輸出外部關心的信息。

⑤式解讀

沒得翻譯,是通過對④式兩邊求協方差得來的。

總結

講解卡爾曼濾波的文章有很多,小弟也只是初學,表達一下個人粗淺看法,純屬筆記。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章