对LOAM的特征点法的创新性评价

lua find_tbs是什么意思 loaf是什么_LOAM

对于图像来说,特征点法的普及度已经非常高了

但是对于雷达点云来说,将特征点的概念推广到激光点云领域是LOAM作者zhang ji的一大贡献! 

LOAM的角点_论文提法和程序写法

lua find_tbs是什么意思 loaf是什么_lua find_tbs是什么意思_02

 博主在自家屋子里做了实验,预期的四个墙角都会有红色的角点,但是并没有达到,只有一个墙角是整齐的红色的角点

在代码里,除了sharp point边缘点,flat point平面点,还有less sharp point和less flat point,实际代码里是这四种策略

lua find_tbs是什么意思 loaf是什么_点云_03

下面这个动图描绘velodyne 16雷达的扫描频率设置为10Hz下的建图过程,其返回的点云数据是按照先上下,后左右的顺序

这个雷达的水平扫描角度的分辨率是0.2°,我们可以算出来理论上一帧有360 / 0.2 × 16 = 28800 个点,但是实际上你可以试试,每次的点数不是完全一样的,有时多一点有时少一点,在程序中将存储点的数组定义为40000个元素,这是选了一个保守的上限。

 

lua find_tbs是什么意思 loaf是什么_lua find_tbs是什么意思_04

LOAM计算角点到折线的距离、计算平面点到平面的距离

计算角点到折线的距离,看下方网址

Point-Line Distance--2-Dimensional -- from Wolfram MathWorld

lua find_tbs是什么意思 loaf是什么_点云_05

https://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html计算平面点到平面的距离,看下方网址

Point-Plane Distance -- from Wolfram MathWorld

lua find_tbs是什么意思 loaf是什么_点云_05

https://mathworld.wolfram.com/Point-PlaneDistance.html特别注意的是,LOAM使用了点到直线和点到平面来计算距离,这就意味着他适用于结构化比较好的室内环境,因为在室内环境中充满了平直的墙壁、地面、家具、平直的转折角。对于室外环境就没这么理想了,可能充满了树叶、石块、车辆等等不规则的物体,其直线和平面的假设就不太准确了。

后续改进的LEGO-LOAM就充分利用了地面信息,实现了室外场景下的适应

LOAM处理运动畸变

lua find_tbs是什么意思 loaf是什么_特征点_07

 LOAM解决运动畸变的方法比较简单,就是根据每个点的相对时间进行补偿。无独有偶,我最近看百度Apollo的激光雷达运动补偿源代码的时候,发现百度也是这么简单处理的。雷达扫描一帧的时间是固定的,可以得到每个点的采集时刻,将所有点都统一到同一时刻,这里选择的是每完成一帧扫描的末尾时刻

论文中假设雷达做最简单的运动,即匀速运动,也就是说一次扫描过程中雷达的线速度和角速度都是不变的。在时间间隔不大时,例如100ms,可以认为这样的假设比较合理。当然如果是无人机这种做剧烈运动的,这个假设就不太合理了,此时可以用IMU补偿

优化_由最小一乘引出最小二乘

如图可见,最小一乘就像这种,离群点害群之马直接影响了整个的曲线的曲率

最小二乘法则为了避免这个问题

lua find_tbs是什么意思 loaf是什么_lua find_tbs是什么意思_08

 求解非线性最小二乘问题的常用方法有LM( Levenberg-Marquardt)方法和高斯牛顿法。作者在论文中声称采用了LM方法,但是在程序中却使用了高斯牛顿法。不管用哪种方法,都需要计算目标函数的雅克比矩阵,这个是最繁琐的一步。雅克比矩阵由一阶导数构成,求导数可以采用数值法,也可以用解析法。数值法就是用很小的差分近似表示导数,一般用在函数复杂或者根本无法得到解析解的情况;解析法就是直接用初等函数的求导公式求出复合函数的导数,这样比较精确。

在A-LOAM版本里,引入了ceres库,省去了计算雅可比矩阵的繁琐过程
 

建图

这块的主成分分析其实是这个意思(来自靓仔刘的理解)

这块因为特征点多了十倍,所以采用ICP的效果不再可行,采用类似于NDT的思想

直接拿这堆待匹配的点云,通过他们的特征向量来判断这一块点云大概是线或者是面,然后做匹配

特征值两长一短,则是平面,短的那个作为平面的法向量

特征值两短一长,则是边缘,长的那个作为边缘的方向向量

三个向量相交于几何中心,由此确定边缘线和平面

可以结合下述的动图看

lua find_tbs是什么意思 loaf是什么_LOAM_09