本文是LOAM框架的開山大作,是近年來鐳射SLAM領域的一篇代表性的文章。

摘要:

本文主要貢獻在於,作者把複雜的SLAM問題一分為二,一個演算法是高頻率(10hz)低精度的odometry過程,另外一個演算法是低頻率(1hz)高精度的mapping過程,兩者結合起來,可以做到低計算量、低漂移和高精度SLAM。如果IMU可用,則其速度測量值可以作為演算法一的先驗。為了確保odometry的實時性,兩個演算法都需要提取線特徵和麵特徵。而在mapping演算法中,地圖的一致性是由區域性點雲簇的幾何分佈決定的,透過計算其特徵值和特徵向量。mapping過程使用ICP演算法來保證其高精度。

流程圖:

LOAM: Lidar Odometry and Mapping in Real-time

P為在鐳射雷達座標系下鐳射雷達掃描得到的點集,而Pk為第k次掃描得到的點集,而後分別進行兩種演算法——Lidar Odometry演算法 和 Mapping演算法。

Lidar Odometry演算法中: 鐳射雷達里程計取點雲,計算連續兩次掃描之間鐳射雷達的運動。並將估計得到的運動用於修正Pk中的畸變點。該演算法執行速率在10Hz左右。

Mapping演算法中:將經Lidar Odometry演算法去畸變的點雲以及鐳射雷達運動資訊結合來為環境建圖。該演算法的執行速率在1Hz左右。

Lidar Odometry:

(1)特徵點提取:

定義描述區域性表明光滑度的量:

LOAM: Lidar Odometry and Mapping in Real-time

在每一次掃描中,根據c值對點進行排序,來作為評價區域性表面平滑性的標準。c值最大的為邊緣點,c值最小的為平面點。

1、每一個區域性區域必須提取2個邊緣點和4個平面點。

2、並且所選的特徵點其周圍的點沒有被選擇。

(2)運動估計:

分別計算與特徵點相鄰近的線或面(corner對應線,surface對應面),然後計算點與線/面的距離:

LOAM: Lidar Odometry and Mapping in Real-time

LOAM: Lidar Odometry and Mapping in Real-time

將該距離作為cost function:

LOAM: Lidar Odometry and Mapping in Real-time

然後對位姿T求雅可比,使用高斯-牛頓法迭代最佳化T來降低cost function直至收斂。

Mapping:

完成一次掃描(sweep)後,然後進入建圖過程。 使用已有地圖去匹配和配準沒有畸變的點雲資料,以1Hz的頻率輸出。建圖過程如下:

LOAM: Lidar Odometry and Mapping in Real-time

特徵點的提取方式與前述方法相同。使用LM演算法最佳化位姿結果。

附:鐳射雷達基本效能指標