點(diǎn)擊上方 “小白學(xué)視覺 ”,選擇加" 星標(biāo) "或“ 置頂 ”
重磅干貨,第一時(shí)間送達(dá)
https://zhuanlan.zhihu.com/p/78334136
本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪除。
Globally Consistent Range Scan For Environment Mapping----97
Incremental Mapping of Large Cyclic Environments----99
1. Gmapping
Gmapping是應(yīng)用最為廣泛的2D slam方法,主要是利用RBPF(Rao-Blackwellized Particle Filters)方法,所以需要了解粒子濾波的方法(利用統(tǒng)計(jì)特性描述物理表達(dá)式下的結(jié)果)。Gmapping在RBPF算法上做了兩個(gè)主要的改進(jìn):改進(jìn)提議分布 和選擇性重采樣 。
Gmapping可以實(shí)時(shí)構(gòu)建室內(nèi)地圖,在構(gòu)建小場(chǎng)景地圖所需的計(jì)算量較小且精度較高。相比Hector SLAM對(duì)激光雷達(dá)頻率要求低、魯棒性高(Hector 在機(jī)器人快速轉(zhuǎn)向時(shí)很容易發(fā)生錯(cuò)誤匹配,建出的地圖發(fā)生錯(cuò)位,原因主要是優(yōu)化算法容易陷入局部最小值 );而相比Cartographer在構(gòu)建小場(chǎng)景地圖時(shí),Gmapping不需要太多的粒子并且沒有回環(huán)檢測(cè)因此計(jì)算量小于Cartographer而精度并沒有差太多。
隨著場(chǎng)景增大所需的粒子增加,因?yàn)槊總€(gè)粒子都攜帶一幅地圖,因此在構(gòu)建大地圖時(shí)所需內(nèi)存和計(jì)算量都會(huì)增加。因此不適合構(gòu)建大場(chǎng)景地圖。并且沒有回環(huán)檢測(cè),因此在回環(huán)閉合時(shí)可能會(huì)造成地圖錯(cuò)位,雖然增加粒子數(shù)目可以使地圖閉合但是以增加計(jì)算量和內(nèi)存為代價(jià)。
所以Gmapping不能像cartographer那樣構(gòu)建大的地圖,雖然論文生成幾萬平米的地圖,但實(shí)際我們使用中建的地圖沒有上萬平米時(shí)就會(huì)發(fā)生錯(cuò)誤。
優(yōu)點(diǎn):在長(zhǎng)廊及低特征場(chǎng)景 中建圖效果好;
缺點(diǎn):依賴?yán)锍逃?jì)(odometry),無法適用無人機(jī)及地面小車不平坦區(qū)域;無回環(huán);
2. Hector slam
Hector slam對(duì)傳感器的要求比較高,它主要是利用高斯牛頓方法來解決scan-matching的問題。
Hector slam無需使用里程計(jì),所以在不平坦區(qū)域?qū)崿F(xiàn)建圖的空中無人機(jī)及地面小車具有運(yùn)用的可行性,利用已經(jīng)獲得的地圖對(duì)激光束點(diǎn)陣進(jìn)行優(yōu)化,估計(jì)激光點(diǎn)在地圖的表示,和占據(jù)網(wǎng)絡(luò)的概率。獲得激光點(diǎn)集映射到已有地圖的剛體變換,為避免局部最小而非全局最優(yōu)出現(xiàn),地圖使用多分辨率。
需具備高更新頻率且測(cè)量噪音小的激光掃描儀,所以,在制圖過程中,robot的速度要控制在較低的情況下 才會(huì)有比較理想的建圖效果,這也是它沒有回環(huán)的一個(gè)后遺癥。另外在里程計(jì)數(shù)據(jù)比較精確的情況下無法有效利用里程計(jì)信息。
優(yōu)點(diǎn):不需要使用里程計(jì),所以使得空中無人機(jī)及地面小車在不平坦區(qū)域建圖存在運(yùn)用的可行性;利用已經(jīng)獲得的地圖對(duì)激光束點(diǎn)陣進(jìn)行優(yōu)化, 估計(jì)激光點(diǎn)在地圖的表示,和占據(jù)網(wǎng)格的概率;利用高斯牛頓方法解決scan-matching 問題,獲得激光點(diǎn)集映射到已有地圖的剛體變換;為避免局部最小而非全局最優(yōu),使用多分辨率地圖;導(dǎo)航中的狀態(tài)估計(jì)加入慣性測(cè)量系統(tǒng)(IMU),利用EKF濾波;
缺點(diǎn):需要雷達(dá)(LRS)的更新頻率較高,測(cè)量噪聲小。所以在制圖過程中,需要robot速度控制在比較低的情況下 ,建圖效果才會(huì)比較理想,這也是它沒有回環(huán)(loop close)的一個(gè)后遺癥;且在里程計(jì)數(shù)據(jù)比較精確的時(shí)候,無法有效利用里程計(jì)信息。
實(shí)驗(yàn)表明:在大地圖,低特征(distinctive landmarks)場(chǎng)景中,hector的建圖誤差高于gmapping。這是由于hector過分依賴scan-match。特別是在長(zhǎng)廊問題中,誤差更加明顯。
補(bǔ)充:hector_slam通過最小二乘法匹配掃描點(diǎn),且依賴高精度的激光雷達(dá)數(shù)據(jù),因此掃描角很小且噪聲較大的Kinect是不行的,匹配時(shí)會(huì)陷入局部點(diǎn),地圖比較混亂。
3. KartoSLAM
KartoSLAM是基于圖優(yōu)化 的方法,用高度優(yōu)化和非迭代 cholesky矩陣進(jìn)行稀疏系統(tǒng)解耦作為解,圖優(yōu)化方法利用圖的均值表示地圖,每個(gè)節(jié)點(diǎn)表示機(jī)器人軌跡的一個(gè)位置點(diǎn)和傳感器測(cè)量數(shù)據(jù)集,箭頭的指向的連接表示連續(xù)機(jī)器人位置點(diǎn)的運(yùn)動(dòng),每個(gè)新節(jié)點(diǎn)加入,地圖就會(huì)依據(jù)空間中的節(jié)點(diǎn)箭頭的約束進(jìn)行計(jì)算更新.
KartoSLAM的ROS版本,其中采用的稀疏點(diǎn)調(diào)整(the Spare Pose Adjustment(SPA))與掃描匹配和閉環(huán)檢測(cè)相關(guān)。landmark越多,內(nèi)存需求越大,然而圖優(yōu)化方式相比其他方法在大環(huán)境下制圖優(yōu)勢(shì)更大,在某些情況下KartoSLAM更有效,因?yàn)樗麅H包含點(diǎn)的圖(robot pose),求得位置后再求map。
4. LagoSLAM
LagoSLAM是線性近似圖優(yōu)化 ,不需要初始假設(shè),優(yōu)化器的方法可以有三種選擇 Tree-based netORK Optimizer(TORO), g2o,LAGO。
基本的圖優(yōu)化slam的方法就是利用最小化非線性非凸代價(jià)函數(shù),每次迭代,解決局部凸近似的初始問題來更新圖配置,過程迭代一定次數(shù)直到局部最小代價(jià)函數(shù)達(dá)到, (假設(shè)起始點(diǎn)經(jīng)過多次迭代使得局部代價(jià)函數(shù)最小)。
5. CoreSLAM
為了簡(jiǎn)單和容易理解最小化性能損失的一種slam算法,將算法簡(jiǎn)化為距離計(jì)算與地圖更新的兩個(gè)過程,第一步,每次掃描輸入,基于簡(jiǎn)單的粒子濾波算法計(jì)算距離,粒子濾波的匹配器用于激光與地圖的匹配,每個(gè)濾波器粒子代表機(jī)器人可能的位置和相應(yīng)的概率權(quán)重,這些都依賴于之前的迭代計(jì)算. 選擇好最好的假設(shè)分布,即低權(quán)重粒子消失,新粒子生成,在更新步驟,掃描得到的線加入地圖中,當(dāng)障礙出現(xiàn)時(shí),圍繞障礙點(diǎn)繪制調(diào)整點(diǎn)集,而非僅一個(gè)孤立點(diǎn)。
通過在大小仿真環(huán)境、實(shí)際環(huán)境以及CPU消耗的情況下進(jìn)行算法比較,發(fā)現(xiàn)KartoSLAM 與gmapping優(yōu)勢(shì)更大。
https://home.isr.uc.pt/~davidbsp/publications/SPR_SSRR2013_SLAM.pdf
6. Cartographer
關(guān)于它的評(píng)價(jià)看下面這個(gè)回答就夠了。
https://www.zhihu.com/question/51348391
參考:
http://www.slamtec.com/cn/news/detail/72
https://home.isr.uc.pt/~davidbsp/publications/SPR_SSRR2013_SLAM.pdf
https://blog.csdn.net/qq_34675171/article/details/90573253
https://blog.csdn.net/liuyanpeng12333/article/details/81946841
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
在「小白學(xué)視覺 」公眾號(hào)后臺(tái)回復(fù): 擴(kuò)展模塊中文教程 , 即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理 等二十多章內(nèi)容。
下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
在「小白學(xué)視覺 」 公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目 , 即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別 等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。
下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
在「小白學(xué)視覺 」 公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講 , 即可下載含有20 個(gè)基于OpenCV 實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目 ,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺 、傳感器、自動(dòng)駕駛、 計(jì)算攝影 、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽 等微信群(以后會(huì)逐漸細(xì)分), 請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過 。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿 在群內(nèi)發(fā)送廣告 ,否則會(huì)請(qǐng)出群,謝謝理解~