卡爾曼濾波是一種在不確定狀況下組合多源資訊得到所需狀態最優估計的一種方法。本文將簡要介紹卡爾曼濾波的原理及推導。
首先定義問題:對於某一系統,知道當前狀態xt
,存在以下兩個問題:
經過時間△t
後,下個狀態xt
+1如何求出?
假定已求出xt
+1,在t+
1 時刻收到感測器的非直接資訊zt
+1,如何對狀態xt
+1進行更正?
這兩個問題正是卡爾曼濾波要解決的問題,形式化兩個問題如下:
**未來
修正當下
下面,將以機械人導航為例,從**未來和修正當下兩個角度介紹卡爾曼濾波器。
問題場景如下:乙個機械人,我們想知道它實時的狀態x⃗
,同時也想做到**未來和修正當下這兩件事。
其狀態x
表示為一維大小為2的向量,元素分別表示位置資訊與速度資訊:x⃗
=[pv
]可是狀態
x 不一定是精準的,其不確定性用協方差表示:pk
=[σp
pσvp
σpvς
vv]只考慮自身狀態的情況下,根據物理公式,可得:pk
vk=p
k−1+
δt=v
k−1v
k−1
用矩陣表示如下:x̂
k=[1
0δt1
]x̂ k
−1=f
kx̂ k
−1在狀態變化的過程中引入了新的不確定性,根據協方差的乘積公式可得:co
v(x)
cov(
ax)=
σ=aς
at x
̂ kpk
=fkx
̂ k−1
=fkp
k−1f
tk外部狀態,這裡以加速度為例,引入變數
a (uk
→ )。pk
vk=p
k−1+
δt=v
k−1+
vk−1
+12a
δt2a
δt x
̂ k=f
kx̂ k
−1+⎡
⎣⎢⎢δ
t22δ
t⎤⎦⎥
⎥a=f
kx̂ k
−1+b
kuk→
同時,環境仍然存在我們無法刻畫的誤差,以qk
表示,最終的**公式如下:x̂
kpk=
fkx̂
k−1+
bkuk
→=fk
pk−1
ftk+
qk從上述式子可見:新的
最優估計
是之前最優估計
的**加上已知
的外界影
響 的修正。新的
不確定度
是**的不確定
度 加上環境
的不確定
度 。
我們已得到x̂
k,pk
,下面要通過觀測到的測量值zk
→ 對x̂
k,pk
進行更新。因為x
̂ k,p
k 和zk
→ 的資料尺度不一定相同,例如x̂
k,pk
包含了笛卡
爾 的座標資訊,使用radar得到的zk
→ 則包含極坐
標 資訊。所以首先應該把兩者放在相同的尺度下去比較,尺度轉換使用hk
將**資訊轉化為測量資訊的尺度。μ⃗
expected
σexpected=h
kx̂ k
=hkp
khtk
這樣一來,便得到測量尺度上的兩個分布:
測量值的分布(
x,μ1
,σ1)
**值變換後的分布(
x,μ0
,σ0)
下面乙個問題就是如何用這個兩個分布組成新的分布。(
簡單的一維情況如下:k=
σ20σ
20+σ
21高維情況下,針對測量值分布(μ
1,σ1
)=(z
k→,r
k)與**值的變化分布(μ
0,σ0
)=(h
kx̂ k
,hkp
khtk
) 組合的高斯分布如下:x̂
′kp′
k=x̂
k=pk
+–k′
(zk→
–hkx
̂ k)k
′hkp
k k′
=pkh
tk(h
kpkh
tk+r
k)−1
x̂ k
pk=f
kx̂ k
−1+b
kuk→
=fkp
k−1f
tk+q
k x̂
′kp′
k=x̂
k=pk
+–k′
(zk→
–hkx
̂ k)k
′hkp
k k′
=pkh
tk(h
kpkh
tk+r
k)−1
卡爾曼濾波需要記憶體少,計算速度快,適合實時性情況與嵌入式裝置的需要。
how a kalman filter works, in pictures
kalman filter for dummies
卡爾曼 卡爾曼濾波 1
今天主要介紹一下卡爾曼濾波器,所謂卡爾曼濾波器其實是一種最優化遞迴數字處理演算法 optimal recursive data processing algorithm 卡爾曼濾波器應用 既然我們有了測量儀器,這些測量儀器可以目標給出準確測量值。還需要卡爾曼濾波器進行估計嗎?下面解釋一下為什麼需要卡...
卡爾曼 基礎卡爾曼濾波
卡爾曼濾波器是一種基礎 定位演算法。原理非常簡單易懂。核心過程可以用乙個圖說明 本質上就是這兩個狀態過程的迭代,來逐步的準確定位。更新 更具感測器獲取到比較準確的位置資訊後來更新當前的 問位置,也就是糾正 的錯誤。你可能要問為什麼有感測器的資料了還要進行更新?因為在現實世界中感測器是存在很多雜訊干擾...
卡爾曼濾波
卡爾曼濾波演算法 首先引入乙個離散控制過程的系統,用乙個線性隨機微分方程來描述 x k a x k 1 b u k w k 系統的測量值 z k h x k v k x k 是k時刻的系統狀態,u k 是k時刻對系統的控制量。a和b是系統引數,對於多模型系統,他們為矩陣。z k 是k時刻的測量值,h...