卡爾曼濾波器的工作原理(一)

2021-01-14 電波之矛

可以說,卡爾曼濾波器是非常神奇的,因為它是一個在不確定性的情況下組合信息的通用且強大的工具。有時它提取準確信息的能力幾乎是驚人的。


視頻演示了一個卡爾曼濾波器通過測量一個自由浮動物體的速度計算出它的方向。


1.卡爾曼濾波器是什麼?


可以在任何有關某些動態系統的不確定信息的地方使用卡爾曼濾波器,並且可以對有關系統下一步做什麼進行有根據的預測。即使出現凌亂的動作並幹擾了所預測到的乾淨的動作,卡爾曼過濾器也會常常很好地計算出實際發生的動作。這可能得益於它可以利用一些不可思議的現象之間的相關性!

卡爾曼濾波器是連續變化系統的理想選擇。卡爾曼濾波器具有佔用存儲小(不需要保留除先前狀態之外的任何歷史記錄),運算速度快,適合實時處理和嵌入式系統的優點。

利用谷歌搜索到的對實現卡爾曼濾波器的數學描述普遍非常模糊。這其實很糟心,因為如果你以正確的方式看待它,卡爾曼濾波器實際上是超簡單易懂的。因此,它是一個非常好的文章主題,這裡嘗試利用清晰,漂亮的圖片以及顏色來闡述卡爾曼濾波器。讀懂這篇文章的條件很簡單,所需要的只是對概率和矩陣的基本了解。下面我們從一個卡爾曼濾波器可以解決的簡單的例子開始。

2.卡爾曼濾波器究竟可以做什麼?


舉一個有趣的例子:假如你有一個可以在樹林裡漫步的小機器人,那麼這個機器人一定需要準確知道它在哪裡以便它可以導航。

 

這裡假設機器人有一個狀態,記為,其只與位置和速度有關。注意,狀態只是系統的底層配置的參數,當然狀態還可以表示其他任何事項。本例中,特指位置和速度,但它可以表示諸如,罐中的流體量,汽車發動機的溫度,用戶的手指在觸摸板上的位置的數據,或者你需要跟蹤的任何具有數值的東西。

機器人頭頂還有一個GPS傳感器,精確到約10米,但它需要知道它的位置信息並且比10米更精確。實際中,樹林裡有很多的溝渠和懸崖,如果機器人定位超過幾英尺,它可能會掉下懸崖。所以僅僅擁有GPS本身還不足夠。

 我們可能會知道機器人如何移動:知道發送到車輪電機的命令,知道如果機器人朝向一個方向,在沒有任何幹擾條件下會在下一個時刻可能會沿著同樣的方向進一步。然而,我們不知道有關動作的一切:風可能會受到影響,車輪可能會滑落一點,或者滾過顛簸的地形。所以輪子轉動的量可能並不能完全代表機器人實際走過的距離,而且預測也不完美。GPS傳感器告訴我們一些關於狀態,但只是間接地,有一些不確定性或不準確。我們的預測告訴我們關於機器人如何移動,但只是間接地,有一定的不確定性或不準確性。

但是,如果我們利用所有可用的信息,會得到比任何估計本身給出的更好答案嗎?當然答案是肯定的,這就是卡爾曼濾波器。


3.卡爾曼濾波器如何看待要解決的問題


繼續上述描繪的情形。一個只有位置和速度的簡單狀態向量。我們不知道實際的位置和速度是什麼。位置和速度的可能組合有可能是真實的,而有些可能組合只是比其他更有可能:


卡爾曼濾波器假設兩個變量(位置和速度)是隨機的並服從高斯分布的。每個變量具有平均值,它表示隨機分布(及其最可能的狀態)的中心,方差

表示不確定性:

在上面的圖片中,位置和速度是不相關的。這意味著其中一個變量的狀態與其他變量的狀態不相關。下面的例子顯示了一些更有趣的內容:位置和速度是相關的。所觀察位置的可能性取決於其具有的速度:

例如,基於舊的位置估計一個新的位置,這種相關情況就有可能會出現。如果舊的速度很大,那麼很可能會移動得很遠,因而相應新位置很可能很遠。相反,如果舊的速度很小,那麼新的位置很可能很近。這種關係對於跟蹤是非常重要的,因為它提供了更多的信息:一個觀測與其他觀測有關。這就是卡爾曼濾波器的目標,而我們希望的正是從不確定性觀測中擠出儘可能多的信息!

通常,這種相關性表示為一個協方差矩陣。簡而言之,協方差矩陣的每個元素表示第i 個狀態變量和第 j個狀態變量之間的相關度。(協方差矩陣可能是對稱的,那麼交換i 和 j並不重要)。


4.利用矩陣描述要解決的問題


將狀態信息建模為高斯斑,在時間 需要兩條信息:最佳估計(亦為均值)及其協方差矩陣。 

(當然,這裡只使用位置和速度,但狀態可以包含其他任意數值變量,並可以表示任何有用信息)。接下來,需要某種方法來觀測當前狀態(在時間 k-1)並預測在時間 的下一個狀態。注意,我們不知道哪個狀態是「真實的」,但預測功能並不在意這一點,它只是對所有信息起作用,並提供一個新的分布:

 

用矩陣表示這個預測步驟:

 將原始估計值中的每一點都轉移到新的預測位置,如果原始估計是正確的,系統將會移動。

應用這一點。我們如何使用矩陣來預測下一時刻的位置和速度呢?我們將使用一個實際上非常基本的運動公式: 

這裡雖有一個預測矩陣可以用於表示下一個狀態,但是仍然不知道如何更新協方差矩陣。於是我們需要利用另一個公式。如果我們將一個分布中的每個點乘以矩陣,那麼它的協方差矩陣會發生什麼變化?很簡單,可以得到下面的等式:

5.外部影響


然而,我們無法捕獲一切。可能存在一些與狀態本身無關的變化,即外界因素可能會影響系統。例如,當狀態模擬火車的運動時,列車駕員可能會按下油門,導致火車加速。類似地,在上述機器人的示例中,導航軟體可能會發出命令來轉動車輪或停止。如果我們知道有關外界發生了什麼的信息,那麼我們可以將其引入至一個名為的向量中,然後使用它作為一種校正引入至預測過程。假設已知由於油門設置或控制命令而導致的預期加速度a 。從基本運動學得到:


6.外部不確定性


如果狀態基於自身的特性發展,一切都很好。如果狀態外部因素髮展,只要我們知道這些外部因素是什麼,一切仍然很好。

但是我們不知道的外部因素怎麼辦?例如,跟蹤一個四翼直升機,很可能會受到風的影響。如果跟蹤一個輪式機器人,車輪可能會打滑,或者地面碰撞可能會減慢。如果發生這些情況中的任何一個,都不能實現目標跟蹤和預測,因為我們沒有考慮到這些額外的因素。我們可以通過在每個預測步驟之後增加某種新的不確定性來模擬與外界因素相關的不確定性。

 過程中產生一個新的高斯斑點,具有不同的協方差(但是相同的平均值):

未完,待續。。。。

感謝溫博士提供的材料!

歡迎您的關注!轉載請標明出處!

相關焦點

  • 視頻教程 | 理解卡爾曼濾波器(英語中字)
    卡爾曼濾波器是一種優化估算算法,用於在不確定和間接測量的情況下估算系統狀態。本視頻教程由7個小節組成,系統介紹了卡爾曼濾波器,言簡意賅,適合入門。各個小節的主要內容為:第一節:通過幾個案例了解使用卡爾曼濾波器的常見場景。了解卡爾曼濾波器背後的工作原理。第二節:介紹了解狀態觀測器的工作原理,並解釋其背後的數學原理。在無法直接測量時,使用狀態觀測器估算系統的內部狀態。
  • 為什麼叫「卡爾曼」,卡爾曼濾波器算法介紹
    就是這樣,卡爾曼濾波器就不斷的把covariance遞歸,從而估算出最優的溫度值。他運行的很快,而且它只保留了上一時刻的covariance。上面的Kg,就是卡爾曼增益(Kalman Gain)。他可以隨不同的時刻而改變他自己的值,是不是很神奇!  下面就要言歸正傳,討論真正工程系統上的卡爾曼。
  • 為什麼叫「卡爾曼」?卡爾曼濾波器算法介紹
    我們現在要學習的卡爾曼濾波器,正是源於他的博士論文和1960年發表的論文《A New Approach to Linear Filtering and Prediction Problems》(線性濾波與預測問題的新方法)。簡單來說,卡爾曼濾波器是一個「最優化自回歸數據處理算法」。
  • 開發者說 | 手把手教你寫卡爾曼濾波器
    這兩步完成後,我們就會獲得某一時刻,自車坐標系下的各種傳感器數據。這些數據包括障礙物的位置、速度;車道線的曲線方程、車道線的類型和有效長度;自車的GPS坐標等等。這些信號的組合,表示了無人車當前時刻的環境信息。由於傳感器本身的特性,任何測量結果都是有誤差的。以障礙物檢測為例,如果直接使用傳感器的測量結果,在車輛顛簸時,可能會造成障礙物測量結果的突變,這對無人車的感知來說是不可接受的。
  • 面向軟體工程師的卡爾曼濾波器
    與我的朋友交談時,我經常聽到:「哦,卡爾曼(Kalman)濾波器……我經常學它,然後我什麼都忘了」。好吧,考慮到卡爾曼濾波器(KF)是世界上應用最廣泛的算法之一(如果環顧四周,你80%的技術可能已經在內部運行某種KF),讓我們嘗試將其弄清楚。
  • 卡爾曼濾波的原理
    就是這樣,卡爾曼濾波器就不斷的把covariance遞歸,從而估算出最優的溫度值。他運行的很快,而且它只保留了上一時刻的covariance。上面的Kg,就是卡爾曼增益(Kalman Gain)。他可以隨不同的時刻而改變他自己的值,是不是很神奇!下面就要言歸正傳,討論真正工程系統上的卡爾曼。
  • 擴展卡爾曼濾波器在同步電機無速度矢量控制系統中的應用
    ,通過控制開關器件的開關狀態得到期望的電壓空間矢量,進而得到近似的圓形磁鏈,此為SVPWM的基本原理。2 卡爾曼濾波器  卡爾曼濾波器採用遞歸算法,利用系統當前的已知信息(包括系統的觀測序列和前一時刻的狀態)去估計系統的狀態變量
  • 【強基固本】卡爾曼濾波器
    轉載來源:https://longaspire.github.io/blog/卡爾曼濾波/Kalman Filter (KF) 是一個高效的遞歸濾波器,它可以實現從一系列的噪聲觀測中,估計動態系統的狀態。01卡爾曼濾波器以它的發明者Rudolf. Emil. Kalman先生(2016年去世,向這位傳奇的科學家致敬)而命名。
  • 使用卡爾曼濾波器和路標實現機器人定位
    第一部分-線性卡爾曼濾波器 卡爾曼濾波器可以理解為一種感知充滿噪聲的世界的方式。當我們要定位機器人在哪裡,依賴兩個條件:我們知道機器人如何從一個時刻移動到下個時刻,因為我們以某種確定的方式命令它移動。
  • 基於卡爾曼濾波器和CAN智能從站技術實現開關磁阻電機調速系統設計
    引 言 由於應用環境的複雜,地域的廣闊等不利工作條件,給開關磁阻電機的調速控制與相關參數監控帶來了很多影響。 卡爾曼濾算法是一種遞推算法,對於系統存在過程及測量噪聲,狀態變量受到汙染,可以利用卡爾曼濾波技術進行處理。本文將卡爾曼濾波器與傳統的PID控制相結合,使SRD控制效果得到明顯改善。 1、系統設計方案 基於CAN總線的開關磁阻電機遠程控制系統如圖1所示。系統主要包括PC(上位機)、RS-485與CAN結合的通信網絡、CAN智能節點與開關組電機四大部分。
  • 一代宗師卡爾曼
    在RIAS期間,卡爾曼做出了他一生中最著名的貢獻,也就是所謂的「卡爾曼濾波」。1958年底到1959年初期間,他在離散時間(採樣數據)問題方面取得了一些成果,並將早期的基礎工作應用在維納濾波、Kolmogorov、伯德、香農、普加喬夫和其他現代狀態空間方法上。
  • 卡爾曼與卡爾曼濾波
    斯坦利·施密特(Stanley Schmidt)首次實現了卡爾曼濾波器。卡爾曼在NASA埃姆斯研究中心訪問時,發現他的方法對於解決阿波羅計劃的軌道預測很有用,後來阿波羅飛船的導航電腦使用了這種濾波器。 關於這種濾波器的論文由Swerling (1958), Kalman (1960)與 Kalman and Bucy (1961)發表。
  • 卡爾曼濾波器及多傳感狀態融合估計算法
    多傳感器信息融合的基本原理如同人腦綜合處理信息的過程, 即充分利用多個傳感器資源, 通過對各種傳感器及其觀測信息的合理支配與使用, 將各種傳感器在空間和時間上的互補與冗餘信息依據某種優化準則組合起來, 從而得出更為準確、可靠的結論。
  • 三種濾波器的工作原理
    打開APP 三種濾波器的工作原理 發表於 2019-11-26 15:09:29 濾波器主要有低通濾波器、高通濾波器和帶通濾波器三種,按照電路工作原理又可分為無源和有源濾波器兩大類。本文主要對低通、高通還有帶通三種濾波器做以下簡單的介紹,希望電子愛好者的朋友們看完有一點小小的收穫。     1 低通濾波器 電感阻止高頻信號通過而允許低頻信號通過,電容的特性卻相反。
  • 卡爾曼濾波是怎麼回事?
    維納濾波就是一個典型的降噪濾波器。卡爾曼濾波Kalman Filter 算法,是一種遞推預測濾波算法。Kalman Filter 提供了一種高效可計算的方法來估計過程的狀態,並使估計均方誤差最小。卡爾曼濾波器應用廣泛且功能強大:它可以估計信號的過去和當前狀態,甚至能估計將來的狀態,即使並不知道模型的確切性質。
  • 深入淺出講解卡爾曼濾波(附Matlab程序)
    為了給大家能講解清楚卡爾曼濾波器,我們找到兩篇關於卡爾曼濾波器非常好的文章:第一篇來源於CSDN博客,為大家詳細的講解了卡爾曼的原理及應用,算作「深入」第二篇來源於知乎,用一個簡單的例子,通俗易懂的講解了卡爾曼濾波,算作「淺出」此外,關於卡爾曼濾波的仿真程序在EETOP論壇裡有很多,大家可以登錄論壇後搜索「卡爾曼」來查找。
  • 卡爾曼濾波應用於自動駕駛
    自主車輛的組成部分卡爾曼濾波器使用的數據來自LIDAR和RADAR 。所以現在只關注這兩個方面。為何使用卡爾曼濾波器?我們可以使用卡爾曼濾波器進行有根據的猜測,在我們對某些動態系統有不確定信息的任何地方,系統將要做什麼。在自主車輛的情況下,卡爾曼濾波器可用於根據我們的車輛接收的數據預測我們的自動駕駛車輛前方的車輛將採取的下一組動作。這是一個使用兩步預測和更新的迭代過程。
  • 基於卡爾曼濾波器及多傳感狀態的融合估計算法介紹
    多傳感器信息融合的基本原理如同人腦綜合處理信息的過程, 即充分利用多個傳感器資源, 通過對各種傳感器及其觀測信息的合理支配與使用, 將各種傳感器在空間和時間上的互補與冗餘信息依據某種優化準則組合起來, 從而得出更為準確、可靠的結論。
  • 抗幹擾濾波器的工作原理解析
    打開APP 抗幹擾濾波器的工作原理解析 佚名 發表於 2019-12-27 16:30:46 伴隨著現在電子技術的高速發展和電子設備的迅速增加
  • 透徹理解擴展卡爾曼濾波
    卡爾曼濾波是貝葉斯濾波的一種特例,是在線性濾波的前提下,以最小均方誤差為最佳準則的。估計線性高斯模型,是對線性模型和高斯分布的優化方法。邊緣分布和條件分布的模型:卡爾曼濾波器的主要參數卡爾曼濾波器假設x(paths), z(observations)都為線性高斯的:主要參數:A是在沒有命令的情況下,由於環境因素造成的機器人的位置移動。