感慨
雖然本人只是個小小碼農,主攻java後臺開發,但吾以爲,學習技術,應當不分領域。
本文首先假設讀者像我當初一樣,是個對卡爾曼濾波望而生畏的小白。
參考鏈接
https://zhuanlan.zhihu.com/p/39912633
該鏈接是本人覺得描述得比較好理解的一篇文章了,從基礎一步一步推進,推導出卡爾曼濾波的過程。
https://zh.wikipedia.org/wiki/卡爾曼濾波
該鏈接有很詳盡的說明,不得不提,維基百科是個學習的好地方
公式
時間更新方程
狀態更新方程
時間更新方程解讀
爲何要稱它爲時間更新方程,主要在於等式左邊都是當前值,而右邊變量則都是上一時刻值。故方程是隨着時間在推進的。
方程的目標在於,預測一個當前值以及得到該預測值的誤差。假設我們再知道測量值以及測量值的誤差,那麼就可以按照 進行融合,即
決定比例大小的因素就是誤差,誤差小更可信,佔比會更大。
①式解讀
本式子是一個預測模型的表示,通俗地翻譯公式爲:
其中的A和B矩陣用於轉換關係的表示,並不影響理解。
一般來講,有沒有外力都無所謂的,甚至你採用的預測模型不夠準確,也是可以應用卡爾曼濾波的,只要你的預測值不要與實際差個十萬八千里即可
②式解讀
翻譯公式爲:
首先搞清楚何爲先驗,何爲後驗。
舉一個先驗的例子,兩個骰子,和爲5的概率。共36種可能性,其中和爲8有1+4,2+3,3+2,4+1四種,故概率爲1/9。
舉一個後驗的例子,兩個骰子,現在搖出5點,求一個是1另一個是4的概率。由上面列舉可見,概率爲1/2。
主要是①式兩邊求協方差得到的,其中使用到如下公式
狀態更新方程解讀
狀態更新方程兩邊都是k量,目標是融合出一個最優估計值,同時求出其協方差。
③式解讀
翻譯公式爲:
卡爾曼增益指明瞭預測值和測量值之間的以何種比例進行結果融合,這涉及兩個高斯分佈之間的融合,參考鏈接中有詳細說明
④式解讀(目標)
翻譯公式爲:
乍一看,好像哪裏不對,加號右邊的預測值比左邊的預測值多了一個,原因其實是最開始都帶了,從而兩邊都消掉了,而加號右邊的預測值攜帶的無法被消掉,從而在公式上顯得比較突兀,實際表達的意思和是一致的。
本式子也是我們最關心的一個式子,該式子對外輸出了最優估計值,而其他的式子,對外並不輸出外部關心的信息。
⑤式解讀
沒得翻譯,是通過對④式兩邊求協方差得來的。
總結
講解卡爾曼濾波的文章有很多,小弟也只是初學,表達一下個人粗淺看法,純屬筆記。