LOAM 全称Lidar Odometry and Mapping in Real-time,是激光匹配SLAM方法,分为四个部分,如下图:

文章见https://www.ri.cmu.edu/pub_files/2014/7/Ji_LidarMapping_RSS2014_v8.pdf。
特征提取 Lidar Registration:
众所周知,为了计算雷达帧间的姿态变换,使用全部激光数据是不现实的,为了减少计算量,提出了特征点代替全部点云的方案。
作者提出量一种根据点的曲率计算平面光滑度的方法提取特征点.

具体到代码上是通过判断点\(X_{(k,j)}^L\)前后5个点的均值来计算平滑度。
得到平滑度之后通过一下标准将数据分为平面点和边缘点。
- 平面点:在三维空间中处于平滑平面上的点,其和周围点的大小差距不大,曲率较低,平滑度较低。
- 边缘点:在三维空间中处于尖锐边缘上的点,其和周围点的大小差距较大,曲率较高,平滑度较高。
同时,选取特征点也有一定的限制:
- 该点的周围的点尽量不要被再被取到,这样可以使整体的特征点分布更加的平均
- 该点不能与雷达扫描束过于平行,这样也会出现问题

里程计 Odometry:
提取特征点之后就是特征匹配,并使用scan-to-scan的方法计算里程计。当然也是分为平面点和边缘点。
定义第\(k\)次扫描点云为\(P_k\),提取的边缘点为\(E_k\),平面点为\(H_k\),去畸变之后的边缘点和平面点分别为\(\hat{E_k},\hat{H_k}\)。
边缘点
对于边缘点,就是三维结构信息中的线,因此可以构建评价函数为点到线的距离。因此需要匹配\(E_k\)中的一点在\(\hat{E_{k+1}}\)中的最近不共线的两点。

其中,分母为向量\(\vec{ij},\vec{il}\)构成平行四边形面积,分母\(\vec{jl}\)构成底,因此高等于面积除以底。
平面点
类似的,对于平面点可以构建评价函数为点到面的距离。因此需要匹配\(H_k\)中的一点在\(\hat{H_{k+1}}\)中最近不公面的三点。

其中分子为构成的三维物体的体积,分母为地面构成的平行四边形的面积。
因此可构建最小二乘如下:
建图 Mapping:
Reference
https://www.ri.cmu.edu/pub_files/2014/7/Ji_LidarMapping_RSS2014_v8.pdf