Catalogue
第1节

renqian:前端不要求精度,而对于平滑性要求较高

激光雷达介绍


前端里程计汇总

ICP理论


去质心(\(u_x,u_y\))目的:把旋转和平移进行解耦,然后先求解旋转R,再求解平移t


因为\(x_i'^T R y_i'\)是一个数,常量,因此,Trace就是它本身

最终求解

ICP汇总

NDT理论






NDT汇总

LOAM系列理论


renqian: 如果按这种思路进行分割,有可能会飞线(16线还好,32、64可能会出现这种问题),最好是激光雷达驱动把每个点对应的线束ID保留下来






scan-to-map: 因为合并地图的时候,把特征点都划分到对应的网格了,优化的时候直接从grid中索引特征,而不是从‘上一帧’点云中索引。
LOAM汇总

ALOAM使用四元数 自动求导:效率较低

FLOAM使用李代数

lego-loam: - 计算点到面的距离的时候,只计算地面特征,而计算点到线距离的时候,不再从地面提取特征 - 对环境中的点做了聚类,去除树冠等影响 - 分两次优化,但代码又回到了6自由度优化


LOAM部分代码
线数分割

计算曲率(粗糙度)

特征点提取
点分成了四类:
- 曲率特别大的点(从中挑选点)
- 曲率一般大的点(从中获取边缘线)
- 曲率特别小的点(从中挑选点)
- 曲率一般小的点(从中获取平面)
Trick:把360度分成6等份,即每60度分别提取,这是为了避免某些特征点聚集在某个角度上,引起后面求解的病态矩阵


计算特征距离(残差)
第k+1帧来了,按照估计的位姿,将k+1帧投影回第k帧,使用最近邻算法,找到投影点最近的一个点,然后再找一个其他线束的最近点,找到两个点可形成直线。
求点到线的距离

还需要求梯度

检验拟合的直线、平面是否正确: 找5个最近邻点 对5个点的方差,求特征值分解 1.线:最大特征值特别大 2.面:前两个特征值特别大
KITTI数据集





evo使用
