= 參考/轉自:
1 ---https://blog.csdn.net/u010720661/article/details/63253509
2----http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/
3----徐亦達 機器學習課程(優酷)
4 -----https://blog.csdn.net/u010480899/article/details/55656209
不知道為什么,之前學習卡爾曼濾波器,總感覺差了點什么,很多人只知道是5個公式用一用就好,對於我則是不理解毋寧不用。
直到參考上面的才從感性上理解,之前都是理性(公式)。也可能是之前的積累吧。這里沒有我自己的東西(如果整理算的話,那算一點),都是上面參考的。
卡爾曼濾波最好的作用是在。。。。。 這里一些介紹就不寫了,參考鏈接很全,下面的思路講解和圖片部分來自於參考鏈接。
如果表述不對的地方煩請大家批評指正,避免我誤人子弟。
(這里是通過數據融和方式解釋卡爾曼濾波,還有一種是通過估計的均方誤差陣達到最小時,求得其濾波增益K的方式,所以,卡爾曼濾波也被稱為最優的。。。。。)
下面直接給出線性kalman filter 的5個公式:
然后,一個一個公式去搞定和推倒。現在談論一個場景----直線運動:
假設,一個人開着一輛車在一條比值的道路上行駛,我們的目的是要知道這個人的狀態信息(包含車的位置和速度信息
),並假設車的
加速度為。
然后,根據參考鏈接4的表述:
然后,卡爾曼濾波的第一個公式我們知道了。這個式子的意義是:我們通過車輛“理論上”的速度、加速度、初始位置,使用剛體運動知識估計出剛體運動的狀態。
但是,通常我們在項目中可以知道,這種估計因為傳感器、現實生活都是非“理想的、理論上的”,所以,這種估計是比較簡陋粗略、比較不准確的。這時候就要提升精度。
第一個公式也就是正常的初中物理中介紹的,沒問題吧。
-------------------------------------------------------------------------
如何提高估計准確性?
假設,世界上有上帝/神,上帝/神 可以知曉萬物的一切,當神看到我們人類在計算一輛車的直線運動狀態的時候,他心里肯定是這樣想的:”傻瓜“的人類,車載運行中有很多
的不確定,你考慮到了嗎?!!!!然后,神就把這些信息傳遞給我們人類,人類就分析:哪里有不確定呀?????,然后我們就思考了,
假設在0時刻:
1、我們不確定車子是完全從坐標原點O出發的?
2、同時,我們也不確定0時刻車子的速度一定為v,
3 、也不確定如果速度不為v,這種情況對車子的位置影響有多少?
4、也不確定如果車輛初始觸發位置不為原點O,是否對速度有影響?
看到上面的四個疑問是不是會聯想到,這是位置和速度他們自己和自己的關系,還有就是互相的關系,然后答案就是協方差,在多維中就是協方差矩陣!!!!!
下面是參考鏈接4中介紹的:
這就是卡爾曼濾波公式的第二個公式,考慮了不確定性的傳遞和傳遞本身的不確定性。。。
下面是參考鏈接
第二個公式也就是對估計中不確定性給顯示表達出來,沒問題吧。
-------------------------------------------------------------------------
很明顯,目前這兩個公式都是依據我們前一個(t-1),理論推算到t的,對吧,所以這兩個公式歸納在predict環節
---------------------------------------------------------------------------------------------------------------------------------------------------------------
接下來,我們得到后面3個公式,后面的公式涉及到傳感器問題,現在,我們通過卡爾曼公式1 、 2 ,得到了目標的位置預測,實際上
我們還有一些傳感器對目標進行測量,比如說車上的里程計。這時候后面的3個公式的講解將參考‘參考鏈接1’和‘參考鏈接4’的穿插結合。
在t時刻,假設車子出發時,車里程表的數值為0,也就是車子在運動中其車里程表的讀數就是車子直線運動的位置信息。或者在初始時刻
記錄車子的gps,在t時刻再記錄gps,然后兩個gps之間的距離就是車子位置狀態測量的距離(這種在《多源信息融和》書中講的是”量測“信息)
不管其他,總之,就是車輛在真實位置 中,這個位置是要估計的,當然我們不知道,然后傳感器就”看到“車在這個位置,並輸出
自己的探測(量測、測量)信息給用戶做參考,其可以用這個公式表示:,借用參考鏈接4的表述:
----------------
---------------------------
這時后,我們就要開始分析了,如何將觀測信息和估計值進行融和。我們的目的是求車輛位置xt的狀態,
那么,根據估計值有:
那么,根據觀測值有:
我們,對觀測值,按估計值那樣整理,並且得到
假設所有的不確定都是服從高斯分布的,然后,從上面的兩個式子可以理解為:
對於估計值,它是對下一狀態的估計,均值為,方差為:sqrt(
),其圖像為:
但是,這里有一個問題,我們的
的高斯是關於位置的高斯,要和傳感器融和,需要轉換到傳感器上,轉換成傳感器的高斯:
對於測量(觀測、量測)值,同樣是高斯,其均值為:,方差為sqrt(
),圖像為:
這時候,我們分析,舉個例子,
小紅的成績不低於90分(這是估計值),老師看了所有人的試卷,說,最高分不超過98分(這是觀測值),那么小紅成績猜測是多少?
我們通過估計和觀測值知道,小紅的成績是y 范圍在[90,98],之間,做出估計就取平均值:(90+98)/2 = 94分。
同樣的,在參考1中的描述為:
其中:
=
因為是從估計值轉換到傳感器讀書上的預測。
=
按參考鏈接1的處理,展開:
但是,我們求的是位置信息,且上面的Hk可以約掉,將傳感信息,再轉換為位置信息,從變化為
的過程。
支撐,卡爾曼的后面三個公式也推倒出來
總結(個人參考和整理等總結的不成熟的解釋):
如下圖所示,我們給定初始值:
- X初始狀態
- Sigma 初始狀態協方差矩陣
- F 狀態轉移矩陣
- Q 狀態轉移協方差矩陣
- H 觀測矩陣
- R 觀測噪聲方差
給定這些值后,開始進入卡爾曼跟蹤:
首先,通過初始值和前兩個公式獲得下一個時刻的位置、不確定的預測。然后,獲得卡爾曼增益K,再獲得下一時刻的融和值(最終值),
接着修正方差。其內在的工作機制是將觀測和估計進行融和,內在原理是取兩個高斯分布的交集,因為交集的誤差比小於等於任何單個集合
的誤差,從而獲得更加精准的結果。(是否是越多傳感器越好呢??),同時,這也提供了多個傳感器的融和方案。(附圖來源參考鏈接1)
暫時寫到這里吧,后面還有jpda、ekf等等