1:已知上一時刻的地圖m,也是未完成的submap。因為scan to map的過程,就是scan to current submap的過程。
2:submap是柵格地圖,這是為了方便匹配。
3:機器人在任意時刻,都能看到map上的所有occupied points。但是,scan不一定能掃描到所有的點。
4:matching的過程,實際上就是把scan的所有掃描數據,映射到當前的submap,去和已有的occupied points匹配,匹配度最高的位姿,就是當前時刻機器人的位姿。
5:由運動模型(odom,IMU),會得到機器人的估計位姿p,在p附近確定一個search window,即機器人的真實位姿可能在這個window的任意位置。遍歷window的每一個位置,同時遍歷該位置的每一個角度范圍例如[-10,10]。
6:假設當前位於search window的某一個位置的某一個角度,即已知p,或者說已知scan到submap原點的變換矩陣T。對scan的每一個beam point(bp)進行映射:T×bp,即可得到該beam point在submap下的坐標,如果當前坐標處是occupied,那么該beam point的匹配值就是1,反之就是0。對所有的beam point求匹配值,所有beam point的匹配值之和就是當前位置的匹配度。但是求得的坐標可能帶有小數,因此對應的匹配值用周圍柵格的匹配值來近似表示,這一過程應用到了雙三次插值算法,這里不做解釋。
7:最佳位姿處的scan插入到submap,從而更新submap。