2021出了一篇论文,是hdl_graph_slam和VGICP的作者koide(二作)发表的一篇论文,论文题目是《LiTAMIN2: Ultra Light LiDAR-based SLAM by Geometric Approximation applied with Symmetric KL-Divergence》。该论文在2020年LiTAMIN的基础上改进了前端,从KL散度的角度,改进了激光里程计的优化目标函数。
论文最大的亮点是精度比肩Suma,速度能达到500-1000Hz。即便对精度要求比较高,也可以达到200Hz。由于论文配套的代码没有开源,因此尝试进行复现。
由于对Loop部分不是特别感兴趣,因此仅复现其前端。论文中的性能如下:
即对于KITTI 00序列,该算法的ATE是1.6°和5.8m,这里我们主要关注位移。速度方面,KITTI的FPS在189-597之间波动。00序列是597Hz。
这是论文中的图,其中紫色为真值,绿色为我们想要实现的LiTAMIN2,暗黄为SuMA,亮黄为LEGO-LOAM,深蓝为hdl_graph_slam,红色为LOAM。可以看到误差最明显的就是左上角和末尾段。
我的结果是:
evo_ape:
max 71.701893
mean 20.674706
median 13.618805
min 0.000000
rmse 27.567659
sse 3449530.302230
std 18.235470
单帧总耗时(包括了建voxel map) 190ms。
我的实现用的ceres自动求导,残差类完全按照论文进行构建,包括权重因子wICP,voxel参数选的论文上的参考值3.0。在构建voxel map时,没有进行多线程优化。所以整体的速度应该还是有提升空间的。但精度达不到论文的精度是我无法理解的。
目前,网上并没有看到太多的复现的案例,如果能开源出来就好了,我实在想不明白怎么能做到500Hz,且是在不使用GPU技术的前提下。