1. 程式人生 > >卡爾曼濾波(Kalman filtering)小結

卡爾曼濾波(Kalman filtering)小結

最近專案用到了kalman濾波,本博文簡單介紹下卡爾曼濾波器的概念、原理和應用,做個小結。

概念

卡爾曼濾波(Kalman filtering)一種利用線性系統狀態方程,通過系統輸入輸出觀測資料,對系統狀態進行最優估計的演算法。由於觀測資料中包括系統中的噪聲和干擾的影響,所以最優估計也可看作是濾波過程。

斯坦利·施密特(Stanley Schmidt)首次實現了卡爾曼濾波器。卡爾曼在NASA埃姆斯研究中心訪問時,發現他的方法對於解決阿波羅計劃的軌道預測很有用,後來阿波羅飛船的導航電腦使用了這種濾波器。 關於這種濾波器的論文由Swerling (1958), Kalman (1960)與 Kalman and Bucy (1961)發表[1]。

卡爾曼濾波的一個典型例項是從一組有限的,包含噪聲的,對物體位置的觀察序列(可能有偏差)預測出物體的位置的座標及速度。在很多工程應用(如雷達、計算機視覺)中都可以找到它的身影。同時,卡爾曼濾波也是控制理論以及控制系統工程中的一個重要課題[2]。

應用

例如,對於雷達來說,人們感興趣的是其能夠跟蹤目標。但目標的位置、速度、加速度的測量值往往在任何時候都有噪聲。卡爾曼濾波利用目標的動態資訊,設法去掉噪聲的影響,得到一個關於目標位置的好的估計。這個估計可以是對當前目標位置的估計(濾波),也可以是對於將來位置的估計(預測),也可以是對過去位置的估計(插值或平滑)。
擴充套件卡爾曼濾波(EXTEND KALMAN FILTER, EKF)是由kalman filter考慮時間非線性的動態系統,常應用於目標跟蹤系統。

kalman濾波器

理論上,kalman濾波器需要三個重要假設:
1)被建模的系統是線性的;
2)影響測量的噪聲屬於白噪聲;
3)噪聲本質上是高斯分佈的。
第一條假設是指k時刻的系統狀態可以用某個矩陣與k-1時刻的系統狀態的乘積表示。餘下兩條假設,即噪聲是高斯分佈的白噪聲,其含義為噪聲與時間不相關,且只用均值和協方差就可以準確地為幅值建模。

在kalman濾波器濾波器應用中,一般考慮三種運動:
1)動態運動:這種運動是我們期望的前次測量時系統狀態的直接結果,如勻速運動等。
2)控制運動:這種運動是我們期望的,由於某種已知的外部因素以某種原因施加於系統,如加速運動等。
3)隨機運動

:隨機的無規則運動,在Kalman濾波器中,至少是可以用高斯模型有效地來建模。

以下是兩個重要方程:
狀態方程:

xk=Axk1+Buk1+qk1
觀測方程:
yk=Hxk+rk
上兩式子中,x(k)是k時刻的系統狀態,u(k)是k時刻對系統的控制量。A是傳輸引數、B是控制引數,都是系統引數,對於多模型系統,他們為矩陣。y(k)是k時刻的測量值,H是測量系統的引數,對於多測量系統,H為狀態轉移矩陣。q(k)和r(k)分別表示狀態和測量的噪聲。他們被假設成高斯白噪聲,他們的協方差分別是Q,R(這裡我們假設他們不隨系統狀態變化而變化)。

KF演算法流程如下圖:
1
這裡的K是kalman增益矩陣。

五個重要更新公式:
時間更新:

x^k=Ax^k1+Buk1(1)
上標”-“表示“在新的測量之前”,求出先驗估計x^k;
Pk=APk1AT+Q(2)
這個等式構成預測部分的基礎,這告訴我們根據已看到的“我們可以期望什麼”;
狀態更新:
Kk=PkHT(HPkHT+R)1(3)
這裡給出所謂的Kalman增益或更新率或混合比例,告訴我們如何給定新資訊相對已知資訊的權重,在直接測量一個位置變數的一維例子中,狀態誤差是σ2k1,測量誤差是σ2kK=σ2k1σ2k1+σ2k
x^k=x^k+Kk(ykHx^k)(4)
Pk=(IKkH)Pk(5)
得到“新的測量之後”,就可以用更新率K對x^kPk做更新得到最優的更新值x^kPk

舉例

以測量在停車場行駛的汽車為實際例子,汽車的狀態用兩個位置變數xy,以及兩個速度變數vxvy表示。這四個變數組成狀態向量xk的元素。dt表示速度增量。這裡假設的是動態運動模型。

xk=[xyvxvy]T
A=10000100dt0100dt01
當使用攝像機觀測汽車的狀態時,可能只觀測量到位置變數:

相關推薦

濾波(Kalman filtering)小結

最近專案用到了kalman濾波,本博文簡單介紹下卡爾曼濾波器的概念、原理和應用,做個小結。 概念 卡爾曼濾波(Kalman filtering)一種利用線性系統狀態方程,通過系統輸入輸出觀測資料,對系統狀態進行最優估計的演算法。由於觀測資料中包括系統中的

cv2使用濾波Kalman Filter)捕捉滑鼠運動

本文主要介紹在cv2中使用Kalman濾波捕捉滑鼠運動。 cv2.KalmanFilter(dynamParams=None,#狀態的維度 measureParams=None, #測量的維度 controlParams=None,#控制的維度 type=None)#矩陣的型別

濾波Kalman Filter)原理與公式推導

公式推導 領域 公式 不一定 技術 精度 原理 應用 定性 一、背景---卡爾曼濾波的意義 隨著傳感技術、機器人、自動駕駛以及航空航天等技術的不斷發展,對控制系統的精度及穩定性的要求也越來越高。卡爾曼濾波作為一種狀態最優估計的方法,其應用也越來越普遍,如在無人機、機器人等領

Kalman Filter : 理解濾波的三重境界

第一重:初見Kalman 假設我養了一隻豬: 一週前,這隻豬的體重是46±0.5kg。注意,在這裡我用了±0.5,表示其實我對這隻豬一週前的體重並不是那麼確定的,也就是說,46kg這個體重有0.5kg的誤差。現在,我又養了這隻豬一個星期。那麼我想要知道它

Kalman filter濾波的原理說明

在學習卡爾曼濾波器之前,首先看看為什麼叫“卡爾曼”。跟其他著名的理論(例如傅立葉變換,泰勒級數等等)一樣,卡爾曼也是一個人的名字,而跟他們不同的是,他是個現代人! 卡爾曼全名Rudolf Emil Kalman,匈牙利數學家,1930年出生於匈牙利首都布達佩斯。1953,1954年於麻省理工學院分別獲得電

濾波Kalman Filter)原理理解和測試

Kalman Filter學原理學習 1. Kalman Filter 歷史 Kalman濾波器的歷史,最早要追溯到17世紀,Roger Cotes開始研究最小均方問題。但由於缺少實際案例的支撐(那個時候哪來那麼多雷達啊啥的這些訊號啊),Cotes

濾波Kalman Filter)的通俗解釋

假設你有兩個感測器,測的是同一個訊號。可是它們每次的讀數都不太一樣,怎麼辦? 取平均。 再假設你知道其中貴的那個感測器應該準一些,便宜的那個應該差一些。那有比取平均更好的辦法嗎? 加權平均。 怎麼加權?假設兩個感測器的誤差都符合正態分佈,假設你知道這兩個正態分佈的方差,用這兩個方差值,(此處省略若干數學公式

Kalman濾波(一)--Kalman濾波的本質

1.Kalman濾波的簡介        接觸過訊號處理的朋友應該清楚,訊號在傳輸過程中必然受到噪聲干擾(外界的二和內部的),使得輸出訊號具有隨機性,為了最大限度降低這種干擾,就需要從混雜在一起的各種訊號中提取自己想要的訊號,這過程稱之為濾波,濾波的方法因訊號而異。    

OpenCV之Kalman fileter(濾波

原理的通俗解釋 用一個網上流傳溫度估計的例子(根據 k-1 時刻的溫度值,估算 k 時刻的是實際溫度值),為了通俗會意,我這裡儘量避免使用專業術語。 假設我們相信溫度是恆定的,所以得到 k 時刻的溫度預測值是跟 k-1 時刻一樣的,假設是23 度,同時該值的高斯噪聲的偏差是 5 度。然後,你

Kalman濾波Matlab簡單實現

  本節卡爾曼濾波Matlab實現是針對線性系統估計的,僅為簡單模擬。 1.離散時間線性動態系統的狀態方程   線性系統採用狀態方程、觀測方程及其初始條件來描述。線性離散時間系統的一般狀態方程可描述為   其中,X(k) 是 k 時刻目標的狀態向量,V

Kalman濾波(四)--深入淺出Kalman濾波演算法

       Kalman濾波是一種遞迴過程,主要有兩個更新過程:時間更新和觀測更新,其中時間更新主要包括狀態預測和協方差預測,主要是對系統的預測,而觀測更新主要包括計算卡爾曼增益、狀態更新和協方差更新,因此整個遞迴過程主要包括五個方面的計算:1)狀態預測;2)協方差預測;

濾波實現多項式擬合Matlab

nom and kalman ffi 樣本 矩陣 協方差 數組 fontsize %%%%%%%%%%%%%Q3:多項式系數估計%%%%%%%%%%%%%%%% %%%%%%%%%%2016/07/21%%%%%%%%%%%%%%%%%%% clc;clear;

濾波的一個簡單demo: 恒定加速度模型

obi vtt efk rtp end atp cee cdn bs4 p { margin-bottom: 0.1in; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align: left }

濾波3

比較 應該 想要 不能 模型 不同 隨著 而已 風景 假設你去一個風景區旅遊時候,種下一棵果樹,但顯然從果樹苗到果實不是一天兩天能完成對。需要慢慢長高。而你又不可能經常去看,但又想知道樹的高度,哪怎麽辦? 所以要解決的問題是:如何正確估計一棵果樹的高度? 我們想要知道的果

濾波2

推導 概率 精確 情況 多維 結果 width tex 為什麽 作者:肖暢鏈接:https://www.zhihu.com/question/23971601/answer/46480923來源:知乎著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

濾波

nbsp 應用 一周 log -1 現在 richtext http 一是 假設我養了一只豬: 一周前,這只豬的體重是46±0.5kg。註意,在這裏我用了±0.5,表示其實我對這只豬一周前的體重並不是那麽確定的,也就是說,46k

濾波的原理說明

收集 引入 濾波 div 概率 一個人 pdf span net 在學習卡爾曼濾波器之前,首先看看為什麽叫“卡爾曼”。跟其他著名的理論(例如傅立葉變換,泰勒級數等等)一樣,卡爾曼也是一個人的名字,而跟他們不同的是,他是個現代人!卡爾曼全名Ru

【概率機器人】3.1 濾波、擴展濾波和無跡濾波

取出 嘗試 bar return tar 簡化 exp 回顧 clas 這一章將介紹卡爾曼濾波、擴展卡爾曼濾波以及無跡卡爾曼濾波,並從貝葉斯濾波的角度來進行分析並完成數學推導。如果您對貝葉斯濾波不了解,可以查閱相關書籍或閱讀 【概率機器人 2 遞歸狀態估計】。 這三種濾波方

MATLAB-濾波簡單運用示例

south noi 增加 jacob mage 影響 方差 sqrt mark 1、角度和弧度之間的轉換公式? 設角度為 angle,弧度為 radian radian = angle * pi / 180; angle = radian * 180 / pi; 所以在ma