概述
算法概括
激光雷达在走动的时候每列点云都具有不同的被扫描位置,因此会带来误差。LOAM通过估计雷达的速度来修正了雷达运动导致的帧间扭曲。
整体算法分为两部分:一部分能够快速计算里程计,并对速度进行估计。另一部分算法做fine matching 并配准点云。如果有IMU信息可用,高频运动也能被捕捉。
两种算法中的点云匹配都是基于提取陡峭的边和平面特征的。将特征点和边缘线、平面块匹配。在里程计算法里,这些匹配都被快速计算;在建图算法里,匹配通过计算点云的特征值特征向量实现几何特征的匹配。
软硬件架构
他用了个40线,40Hz的激光雷达,智能扫到前方180°范围内的东西。
里程计
特征点
首先把每一个scan分成四份,通过计算这个c值,每一份最多能够得到四个平面点或者两个边缘点。
除了c之外,还需要考虑如ab两种情况,左边的情况是patch和beam平行,右边的情况是存在遮挡时,A点就不作为edge了。
特征匹配
LOAM考虑了激光雷达螺旋前进的特征,类似于摆线,同一个frame中的不同点实际上在不同的时间被测量,因此需要projection来进行修正。
他把蓝色的投影到绿色的,时间从
t
k
+
1
t_{k+1}
tk+1开始,橙色的新一帧点逐渐被加入,并不断代更新当前时刻位姿。根据当前估计的最新位姿,把当前时刻扫到的点都投影到
t
k
+
1
t_{k+1}
tk+1,并在上一帧投过来的数据上检索最近邻。
对于边界点和平面点,分别采用不同的方法进行拟合。图里面所有的线都是上一时刻投影到
t
k
+
1
t_{k+1}
tk+1时刻的。黄色的是最近邻所在的直线,然后上下找一找,需要拟合直线找两个,需要拟合平面则找三个。在计算特征点匹配的情况时,分别用到了点到直线的距离和点到平面的距离。
最终通过非线性优化来优化整体的距离和最小得到一个好的位姿变换。
位姿估计
这个算法在P k+1中点数增多时反复进行。不断估计一帧之内的不同时刻的位姿。
日期2020年10月9日