谷歌cartographer 論文翻譯筆記
google cartographer的論文Real-Time Loop Closure in 2D LIDAR SLAM
剛剛研究完gmapping,現在來看看谷歌開源的cartographer,在看源碼之前先研究一下它的論文;
(所有的都是在看完後根據自己理解寫的,如有疑問、疏漏、錯誤等可留言)
摘要:便攜式激光測距儀比如雷達再配合SLAM是獲得平面地圖的一種有效方法,實時的產生可視化平面圖可以幫助處理評估所捕獲數據的質量。在有限的計算資源下建立一個易用的平臺很有必要,我們實現了在mapping後臺的一種實時建圖和閉環檢測的方法,可以生成5cm分辨率的柵格地圖。為了實現閉環檢測,我們采用了branch-and-bound方法來作為計算scan-to-submap的約束。
(總而言之,他們使用了branch-and-bound作為計算scan-to-submap的約束,然後與其它現有建圖方法對比,谷歌認為他們的的方法是有競爭性的。。。)
簡介:建立平面圖對很多應用很有用,人工使用激光測量設備並使用CAD等輔助設計軟件任然需要大量的方法對直線等進行優化,這也不一定會得到空間準確的測量數據。而使用SLAM就可能短時間能夠準確的建立空間尺寸和復雜結構。
應用SLAM在這個領域並不是一個新的方法,但是本文的貢獻在於減少了計算從激光數據中回環約束的需求量,這樣能夠保證我們建立更大的地圖,1w平米的尺寸,並且提供實時的優化結果。
(也不知道計算資源是不是真的減少了,是在什麽平臺、什麽計算硬件下進行的???)
相關工作:
Scan-to-scan 是基於激光SLAM中頻繁使用的用來計算坐標變換的的方法,比如文獻【1-4】,就本身而言,scan-to-scan匹配法是會積累累計誤差的。
scan-to-map匹配法有助於減少這種誤差,這種方法使用高斯牛頓法采用線性插值圖找出局部最優解(參考文獻5),當前坐標的估計由高數據平率的雷達提供,局部最優scan-to-map匹配是有效的和魯邦的,在不穩定的平臺,可以使用IMU獲得重力方位。(本論文使用的方法)
pixel-accurate scan方法能夠進一步減少局部誤差,盡管有很大的花費,這個方法使用用於回環除錯。一些方法通過匹配激光額外的特征來改善計算花費。其他的用於回環檢測的比如histogram-based matching、feature detection in scan data 和用machine learning。
解決累計誤差的方法有兩種,粒子濾波和基於圖優化。
粒子濾波會為每一個粒子保存系統狀態,這會使得地圖花費的資源你大大增加。
圖優化是基於位姿和特征的集合法,圖中的邊事從觀察的結果中得到的約束,節點存儲位置和特征。
系統綜述:
谷歌的cartographer提供實時的室內slam,可以采用背包形式背著傳感器建立分辨率為5cm的室內地圖。激光數據在最好的估計位置時插入子圖,這個最好的位置是使用短期的數據進行測量的,誤差會在全局進行積累。
為了在較差的傳感器上獲得好的表現,我們的SLAM沒有采用粒子濾波器,為了處理積累誤,我們定時跑一個坐標優化,當一個子圖生成完畢,將不會有新的激光加入,這個子圖將用來進行回環檢測。所有完成的子圖和激光數據將自動進行回環檢測。如果基於現在的坐標估計足夠近,那麽一個極光數據的試圖匹配會在子圖中找到接近的激光數據,如果找到了,那麽將添加作為優化問題的閉環約束。通過幾秒鐘就進行一次優化,要求閉環檢測必須在新的點被加入到submap中之前完成,否則失敗,通過分支上界法以及對於每個完成的submap有對應的幾個預處理的網格。
局部SLAM:
這個系統包括了局部和全局的優化方法(關於2Dslam)。每一個連續的激光點集與全局地圖的一部分進行匹配,也是submap,使用非線性優化法把激光和suamap進行匹配,最後再在全局中進行優化去除累積誤差。
A.Scans
子圖的構建,是激光數據的連續處理,。。。這個地方的描述看得不是很明白;需要研究一下。
B.Submaps
少數連續的激光數據用來構建一個子圖 ,這些子圖以柵格地圖的形式存在,這種圖以給的雷達距離給定激光點,
拿5cm舉例,表示5*5的範圍內被占據。對於每一個柵格,我們定義這個像素代表著所有的柵格內的點。
無論何時插入一個激光數據到柵格地圖上,一系列被占據的柵格和沒有被占據的柵格計算出來,對於每一個激光線,我們把點插入到最近點,hit?miss?似乎沒怎麽看明白,好吧。。。這部分也忽略。。
谷歌cartographer 論文翻譯筆記