本文轉載至:框架
添加一些本身的理解和標註的重點,算是學習筆記吧;學習
一. 什麼是卡爾曼濾波:
首先定義問題: 對於某一個系統,知道當前狀態Xt,存在以上兩個問題:ui
1. 通過時間△t後,下一個狀態如何求出?spa
2. 假定已求出,在t+1時刻收到傳感器的非直接信息,如何對狀態進行更正?.net
這兩個問題正式卡爾曼濾波要解決的問題,形式化兩個問題以下:3d
1.預測將來code
2.修正當下blog
下面以一個一維的例子簡單理解一下卡爾曼濾波的理論框架。ci
二. 卡爾曼濾波的理論框架:
以一維運動爲例,假若有一個小車,開始位於x= 的位置,可是因爲偏差的存在,其真實分佈是高斯分佈,其方差是 ,即其原始位置分佈是 ,當該小車通過運動,到達終點位置,可是因爲運動也是不許確的(打滑等),其移動過程的分佈也是高斯分佈,移動分佈爲,那麼其最終的位置分佈是多少呢?get
這是一個預測將來的過程,由前一時刻的位置和猜想的偏移,求新的位置,求預測位置符合全機率法則,即:
即,最終分佈的均值爲均值相加,方差也爲方差相加,感性理解就是一個不肯定的分佈,通過一段不肯定的移動後,其方差更大了,分佈中心爲兩個中心和。
考慮另一種狀況,假入有一個小車,開始位於x= 的位置,可是因爲偏差的存在,其真實分佈是高斯分佈,其方差是 ,即其原始位置分佈是,當時此時有一個傳感器檢測到該小車位於,分佈方差爲,那麼小車的真實位置分佈爲多少呢?
這是一個感知過程,也就是經過傳感器的數據修正當下,其感知過程符合貝葉斯法則,其最終分佈是兩個分佈相乘,即
感性理解就是一個不肯定位置的小車,通過傳感器觀測,其最終位置分佈方差會更小,且位置中心位於兩個分佈之間。
在一維模式下,感知過程融合後的均值和方差分別爲:
咱們令
則,
總結:當一個位置小車通過移動後,且其定位和移動過程都是高斯分佈時,其最終估計位置分佈會更分散,即更不許確;當一個小車通過傳感器觀測定位,且其定位和觀測都是高斯分佈時,其觀測後的位置分佈會更集中,即更準確。
又總結:上面的兩個例子總結了在一維狀態下,預測過程和感知過程的均值和協方差的更新是如何更新的,也就是和,的關係,以及 之間的關係;下面的博客更清晰地講解了預測過程和感知過程.
接下來是擴展到二維狀態下的一個例子:
問題場景以下:一個機器人, 咱們想知道它實時的狀態, 同時也想作到預測將來和修正當下這兩件事.
其狀態x表示爲一個一維的大小爲2的向量, 元素分別表示位置信息與速度信息:
可是這個狀態不必定準確, 其不肯定性用協方差表示:
預測將來
只考慮機器人自己的運動, 根據物理公式,可得:
用矩陣表示以下:
在狀態變化的過程當中引入了新的不肯定性, 根據協方差的乘積公式,
可得:
其中是系統在k-1時刻狀態的不肯定性;
考慮外部狀態, 以引入加速度爲例, 引入變量,
同時,環境中仍然存在咱們沒法刻畫的偏差, 以表示, 最終的預測公式以下:
也就是在本來的不肯定性的基礎上,又加入了新的不肯定性,獲得了新的當前時刻狀態變量的不肯定度,也就是協方差;
修正當下
咱們已經獲得,, 下面要經過觀測到的測量值 對 , 進行更新;
由於 , 和 的數據尺度不必定相同,例如 ,包含了笛卡爾的座標信息, 使用雷達獲得的則包含極座標信息. 因此首先應該把二者擋在相同的尺度下去比較, 尺度轉換使用 將預測信息轉換爲測量信息的尺度.
這樣一來,獲得測量尺度上的兩個分佈:
1. 測量值的分佈
2. 預測值的分佈
在修正當下的過程當中,這兩個分佈會組成新的分佈.
新的均值和方差的計算在第一部分的時候已經推導過, (姑且稱之爲感知變化公式),即爲:
擴展到二維狀況下,公式以下(該公式也是kalman濾波的核心,):
而在這裏這種狀況裏,測量值對應的均值和協方差分別是,
預測將來的到的狀態的均值和協方差分別是:
根據感知變化公式,可得在這個例子裏面新的均值和協方差的公式以下:K變成, 就得到了新的狀態量的值,以及其對應的不肯定性
總結
預測將來
修正當下
理論總結:
kalman濾波的理論框架是全機率法則和貝葉斯法則,在設定中假設預測和感知均有偏差,且均服從正態分佈,且預測過程(預測將來)和感知過程(修正當下)採用不一樣的機率更新策略,具體採起的策略以下所示:
- 預測過程符合全機率法則,是卷積過程,即採用機率分佈相加;
- 感知過程符合貝葉斯法則,是乘積過程,即採用機率分佈相乘;
參考:(建議按照順序閱讀下面的博客,對於理解卡爾曼濾波很重要)
本文同步分享在 博客「莫奈的三輪車」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。