如何直觀理解粒子濾波並進行Python程式設計實踐

2021-09-26 14:25:41 字數 817 閱讀 4799

推薦開源專案:簡單的slam與機械人教程與程式設計實踐-github

瘋言瘋語

如果你對乙個演算法有什麼用都一無所知,那麼學這個演算法的難度那就增加了100倍。——知乎@ai醬

首先我們看看粒子濾波怎麼用的。我以粒子濾波可以用來機械人自主定位為例。現在已知機械人腦子裡面有某個商場的地圖,然後它想知道自己到底在哪。注意:現在機械人已知商場地圖,並且能看到周圍長啥樣,需要求機械人位於地圖哪個位置(就像我們人自己在商場都經常迷路不知道自己在哪)。那麼根據粒子濾波演算法機械人怎麼知道自己在地圖中哪個位置呢?

前面我們提到機械人是知道地圖的,所以機械人先猜自己的位置,然後根據自己當前的觀測來縮小猜的範圍。下面這幅圖就是乙個商場的地圖,紅點是機械人猜自己可能在的位置。藍色是建築物。然後它根據自己的攝像頭或者雷達看周圍環境,比如它能夠看到圓形建築物,(由於機械人已知商場的地圖)那麼它就可以確定自己在商場的**區域。這樣就可以縮小猜的範圍。

然後它再走兩下發現,自己右側有三個建築物。然後猜測的範圍又縮小了。

就這樣根據觀測和地圖來不斷縮小猜測範圍,最終可以確定機械人所在的位置。

粒子濾波(PF Particle Filter)

粒子濾波 pf particle filter 與卡爾曼濾波 kalman filter 相比較 粒子濾波 pf particle filter 的思想基於蒙特卡洛方法 monte carlo methods 它是利用粒子集來表示概率,可以用在任何形式的狀態空間模型上。其核心思想是通過從後驗概率中抽...

粒子濾波概述

粒子濾波器是貝葉斯濾波器的一種非引數執 況,且經常用於估計乙個動態系統的狀態。粒子濾波器的關鍵思想是採用一套假設 即粒子 來表示後驗概率,其中每乙個假設代表了這個系統可能存在的一種潛在狀態。狀態假設表示為乙個有 n 個加權隨機樣本的集合 s s left w i 1,2,n right 式中 s 是...

粒子濾波跟蹤方法

粒子濾波法是指通過尋找一組在狀態空間傳播的隨機樣本對概率密度函式進行近似,以樣本均值代替積分運算,從而獲得狀態最小方差分布的過程。對於粒子濾波跟蹤方法,這裡有一篇很淺顯易懂的部落格,我分享給大家他的工作也是參考rob hess的程式做的,感謝老外的開源精神,我看了他的程式,我也提出了我的幾點改進,作...