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.面:前两个特征值特别大