激光slam课程学习笔记--第7课:基于滤波的SLAM方法(Grid-based)
前言:這系列筆記是學習曾書格老師的激光slam課程所得,這里分享只是個人理解,有誤之處,望大佬們賜教。這節課主要介紹基于濾波的slam方法,重點學習其中的濾波數學理論,而非應用在slam。
[當前的實際使用的激光SLAM都不會選擇濾波器類型的,因為其效果并不好.由于基于濾波方式在SLAM發展是有重要的意義的,所以也進行介紹一下.當然,濾波的知識在激光slam應用不多,但其背后的數學理論,貝葉斯估計\粒子濾波,知識在其他領域很多使用]
1.貝葉斯濾波
[在狀態估計里面,分為兩派,一個是貝葉斯派,另外一個是頻率派,其中狀態估計大部分采用的是貝葉斯]
1.1 數學概念
[條件貝葉斯,條件部分后面不斷添加條件ki,其對應的公式的條件部分,也添加ki也是成立的,如現在里面添加了一個條件z]
1.2 貝葉斯濾波特性
1)估計的是一個概率分布,不是具體的數值
2)貝葉斯濾波是一大類方法的統稱[并沒有一個具體的概率分布的,所以也是一個抽象的表達形式]
3)是一個抽象的表達形式--對于不同問題有不同的實現方式(卡爾曼家族(KF,EKF,VKF,PF),粒子濾波)
4)迭代估計形式[計算量比較小]
[與貝葉斯濾波不同派的頻率派,其是MLE,采用的是極大似然估計(找到一個數值,使得當前發生的概率最大)]
[貝葉斯是最大后驗估計(估計出數值的后驗概率分布,從而找到概率最大值的地方)]
[兩派區別在于,頻率派認為有些參數只是數值而已,需要對參數進行估計;而貝葉斯派認為一切都是概率]
1.3 貝葉斯濾波的推導
[貝葉斯濾波公式,左側bel(xt)表示后驗概率;中間的bel(xt)頂-表示預測分布,專用術語稱為proposal分布]
[右下"功能"部分,"uz"應該修改為”ut”的]
[凡是算法流程可以寫成這種形式的,都可以稱為貝葉斯估計(濾波)]
[卡爾曼濾波是貝葉斯濾波在線性高斯的特例]
[公式中,z1:t,u1:t可視為觀測數據,比如分別表示雷達觀測數據,里程計觀測數據,然后進行估計機器人的位姿]
[x理解為地圖位姿,z理解為里程計數據,u為激光數據,注意數據前后幀是相互獨立的,里程計數據和激光數據也是相互獨立的]
[上圖第左側第一條公式使用的是條件貝葉斯公式,后面只是添加了一個公共項Z1:t-1]
[左側其中,第一條公式,由于Zt跟Z1:t-1,也跟u1:t都是沒有關系的,所有根據貝葉斯公式,可以化簡得到右側式子;順數第二條公式,使用了全概率公式,但是沒有理解;順數的第三個公式,根據相關性,化簡得到的是運動模型;順數第四個公式,右側獲得的是t-1時刻的概率分布]
[右側從上往下第一條公式,bel(xt)表示后延概率分布;bel(xt)帶桿,表示預測分布]
[右側倒數第二條公式,右側是一個矯正和預測概率分布相乘得到;該公式可表示一個迭代估計的過程][只要知道初始位置,既可以一直進行迭代估計]
[個人感覺老師這里寫錯字了,后延概率應該寫成后驗概率,詳細可參考維基百科]
[貝葉斯公式推導:https://www.cnblogs.com/ycwang16/p/5995702.html]
[公式中的p(xt|zt)寫錯了,應該為p(zt|xt)]
[注意紅色的波峰,其會根據機器人的位置進行移動,而每次走到門前的所得到的觀測概率都是順數第二個波峰形態,而第三個波峰是由根據前一個波峰形態隨機器人移動后,當前門情況觀測波峰情況進行卷積得到的,最后就是得到了第四個波峰情況][機器人有星星才表示有觀測到了]
[最高峰位置,表示機器人的位置]
[隨著移動,不斷預測與觀測,進而不斷更新機器人位置概率分布;這是全局定位的過程]
[上面的內容出自《概率機器人》,可以google找一個pdf版本來看]
2.粒子濾波
[粒子濾波是貝葉斯濾波的一種特例,一種實現方式][在物體跟蹤,機器人定位,slam都可以使用]
[粒子濾波存在粒子耗散問題,當前沒法解決]
[在視覺里面構建地圖,使用粒子濾波方法,其地圖更新就是在對狀態向量求逆,隨著狀態向量的增大,其計算就會耗時越多,導致速度越來越慢,所以僅適合小環境里面使用;而在激光領域,實現了位姿估計和地圖估計是分開,所以濾波方法在在稍微大一點的環境也是適用的][但是,大一點環境,濾波方式都不適用,因為粒子耗散問題的出現]
2.1 粒子濾波器特性
特性:
1)貝葉斯估計器的一種實現方式
2)能處理非線性情況
3)能處理多峰分布的情況[多峰分布處理,可理解為全局定位]
4)能用一系列的粒子(particle)近似概率分布
5)非參濾波器
2.2 粒子濾波流程
[地圖匹配度,里面存在一個重采樣,其作用是去除權重小的部分][流程中考慮的是單個粒子情況.][這部分沒理解]
2.3 粒子濾波狀態傳播
[上圖中間公式得到是一個概率分布;最下面得到是單個粒子具體位置]
2.4 權重評估原理
無法知道機器人位姿的實際分布;從機器人的預測分布進行采樣,聯合權重一起近似機器人的后驗概率分布;權重用來評估實際的預測分布和實際分布的差,差越大,權重越小.
[注意右側公式考慮的是一個粒子情況,所以沒有積分號]
[權重w里面的p,被稱為觀測模型]
2.5 權重評估
[左側圖f表示真值分布,g表示proposal(粒子數量)分布;右側圖f表示權重大小分布,g表示粒子密度]
2.6 重采樣
[重采樣,讓權重大的地方,粒子多一些,權重小的地方粒子少一些]
[這一點也是可以從重采樣的示意圖(轉盤指針)獲得,權重大地方,同一個粒子,可多次重復選中,權重小的粒子,選中的概率會小一些甚至直接刪除了]
[重采樣,用預測分布的粒子和觀測模型的權重生成符合后驗概率分布的粒子群]
[重采樣后,權重高的地方(左側f表示權重),粒子更密集(右側下方粒子密度)了]
[f是粒子后驗分布情況][重采樣的目的是,使得粒子更符合后驗分布]
2.7 粒子濾波算法流程
[算法流程,對每個粒子都進行運動學模型傳播,利用權重進行評估,后面進行重采樣,使得粒子分布更符合粒子后驗分布]
粒子濾波存在問題:
1)粒子耗散問題(粒子多樣性的喪失)[對于建圖來說極為致命][主要是重采樣產生;重采樣是復制權重高粒子,刪除權重低的粒子,但是保持粒子總量不變]
2)維數災難[粒子濾波,如果粒子信息,維數增大,計算量指數級增長]
3)當proposal比較差的時候,需要用很多的粒子才能較好的表示機器人的后驗概率分布[如扁平型(比較差的類型)的里程計,需要添加很多粒子才能表示模型后驗分布樣式]
3. FastSLAM的原理及優化
[FastSLAM是基于粒子濾波的]
3.1 fast-slam原理
[RB分解,形式如同條件概率p(ab) = p(b|a)*p(a),已知p(b|a),估計p(a)就可以對p(a|b) 進行求解]
[公式展開時,視為條件概率展開即可;p(xt,m|ut,zt) = p(xt,m,ut,zt)/p(ut,zt)接著常規操作就行]
3.2 算法流程
[先預測,再矯正,將一個路徑規劃問題轉換為迭代估計問題]
3.3 存在的問題及優化
["方法"的作用是減少粒子數目]
3.4 粒子耗散優化
[當前粒子不好的粒子,后面可能是好的,所以重采樣時,可能會把一些好的粒子替換掉了][粒子耗散就是粒子多樣性的缺失,上面"問題"最后一句已具體說明]
[這里介紹的方法,只能緩解粒子耗散問題,而不能根除]
3.5 proposal分布優化
[進一步優化proposal分布,目的減少粒子數]
[優化原理是,利用激光的比較少的點數目,替換很多的imu粒子數目]
3.6 proposal優化--激光點符合高斯分布
[左側第一個為加權平均值;第二個為方差]
[右側倒數第二行公式,使用的是全概率展開的,個人目前不會推導]
[這里可以達到優化的目的,換了一種分布方式,其方差最小,保證了粒子數目最少]
3.7 算法流程
[scan-match是對每個粒子都進行的]
[右側流程的偽代碼加號,是假設沒有噪聲前提下直接進行的]
[除了右下的點點步驟外,其他三步是對每個粒子都進行的操作]
[gmapping 里面并沒有進行fastslam優化的]
[個人對偽代碼流程還沒理解透]
4. Gmapping的介紹
[這里介紹一個基于濾波方式的slam框架,gmapping的基本特性]
#####################
圖片版權歸原作者所有
致謝曾老師的付出
不積硅步,無以至千里
好記性不如爛筆頭
感覺有點收獲的話,麻煩大大們點贊收藏哈
總結
以上是生活随笔為你收集整理的激光slam课程学习笔记--第7课:基于滤波的SLAM方法(Grid-based)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Juniper考试认证介绍
- 下一篇: WIN2000服务器安全配置(一)(转)