Advertisement

LOAM, ALOAM, LegoLOAM, hdl graph slam比较

阅读量:

LOAM

LOAM:

  • LOAM采用了自定义的特征提取与匹配机制,并着重于去除边缘和平坦区域的特征。
  • LOAM假设激光雷达在扫描过程中呈现匀速运动状态,并通过这一假设来修正扫描数据中的运动畸变。相比之下,在VLOAM中则会采用视觉里程计来估计每个扫描数据的具体运动情况。
  • 此外,在优化过程中,系统会调用一个低频运行的全局优化线程。

A-LOAM

ALOAM github page

此外,基于hdl_graph_slam算法处理的室外数据集进行了结果验证,并生成了相应的模型图像。然而,在缺乏真实轨迹数据的情况下,我们未对轨迹误差进行对比分析。

LOAM和ALOAM的区别(Difference LOAM vs A-LOAM):

  • LOOM中包含了IMU信息校正接口功能,在ALOOSM中这一模块被省略掉了。
  • ALOOSM在处理特征点方面存在不足之处,在代码实现部分未包含特征筛选机制。
  • 在优化算法方面, LOOM采用了作者自行设计实现的方式,而ALOOSM则利用了Ceres库来完成这一功能。
  • 为了进一步完善系统性能, ALOOSM采用了Ceres库提供的自动导数计算工具,这不仅简化了程序开发流程,还能保证计算精度,尽管运算时间会稍有延长,但整体性能表现更为稳定。
  • 相较于传统的LOOM算法,A L O O S M具有更高的可读性特点,特别适合用于学习理解阶段.特别是在处理复杂度较高的雅各比矩阵计算时,A L O O S M算法直接采用了自动求导技术,避免了繁琐的手动推导过程。

Performance:
• 相对于其他方法而言,A-LOAM表现得更为出色。
• 但其在远处边缘处出现较大的误差。
• 与LOAM方法相比,在我们所处理的场景中,并没有对地面高度保持一致的假设。
• 与LOAM方法相比,在逻辑上是相似的(similar logical),但其性能却大打折扣。

ALOAM result

本文对ALOAM算法中的三个核心模块运行时间进行了系统评估(所有实验数据均在Intel i5-9300F CPU平台上完成),具体包括但不限于scan registration、odometry以及mapping三个核心模块。其中mapping模块负责全局优化任务;而其余两个模块则着重于实时性能。

在这里插入图片描述
  • ALOAM - scan refistration
    the maximum time is : 0.034434
    the mean of time is : 0.0148146394612

  • ALOAM - odometry
    the maximum time is : 0.027296
    the mean of time is : 0.0157431030928

  • ALOAM - mapping
    the maximum time is : 0.326849
    the mean of time is : 0.257764385093

On average, each input scan requires 0.03 seconds.
When processing a new scan frame, it approximately takes 0.03 seconds.
Low-frequency optimizations require about 0.25 seconds per iteration without impacting real-time performance.

LEGO LOAM

lego LOAM

vs LOAM:

Lego LOAM对运算效率进行了优化,在保持精度水平的同时显著提升了计算速度,并且呈现出更为直观的全局地图显示效果。

Difference LOAM:

  • LogoLOAM增加了额外的预处理步骤,在此过程中主要包括以下两个方面:一是地面提取(不假设地面是平面),二是基于图像的方法对空间数据进行分割。经过进一步筛选后的高密度点云用于精确地提取出一系列具有代表性的特征点。
  • 在具体实施特征点提取的过程中,则会采用以下策略:将空间数据划分为多个子区域,在每个子区域内独立地完成特征参数计算工作,并通过合理规划实现各区域间的均衡分布。
  • 在完成上述基础工作后,在后续的关键环节——即基于上述计算结果的空间参数匹配阶段——则会采用以下创新手段:通过引入预先计算得到的空间分段标签信息来进行过滤工作,在保证原有精度的基础上显著提升了整体算法运行效率。
  • 该算法采用了两阶段LM(Levenberg-Marquardt)优化方法:第一阶段主要针对空间平面上的数据建立模型并完成参数求解;第二阶段则根据实际观测情况对非平面区域的数据进行二次校正与完善。整个过程不仅能够显著提升计算速度(较传统方法快40%),而且完全保留了原有的精度水平。
  • 该算法在数据存储方面采用了两种不同的策略:一种类似于传统的LOAM方法;另一种则是基于图论的方法实现全局最优解算器的应用方案。

另外LeGO LOAM要求对激光设备进行标定。它应当在预处理阶段使用将激光数据转换为range image的方法来实现这一过程,并且只有当相关参数被正确地设置时才能确保算法能够正常运行。在源代码中可以找到一些针对Velodyne设备的完整配置记录;然而对于速腾(rslidar)目前并未完成此类参数的设置工作,则必须自行完成这方面的配置以确保能够正常运行该算法。经过尝试我发现仅使用源代码中的Velodyne参数就可以顺利实现目标

我认为,在这个室外场景的数据中LeGO LOAM是最好的算法。它运行速度很快、具有较高的精度水平,并且相比LOAM而言可以通过回环优化进一步提升性能。

但是,在室内运行中发现LeGO LOAM容易出现误配问题,并且LOAM的表现更好,在面对较大的运动时也能正确处理。

Performance:
• Lego Slam表现出色,在误差方面达到了最佳水平。
• 平坦平面拥有美观外观,并成功生成稠密地图;同时维持了其一致性和稳定性。

lego loam result

该算法的主要工作流程包括三个关键子流程:图像投影子流程、特征匹配子流程以及全局优化子流程。具体来说,图像投影子流程负责将扫描数据转换为二维矩阵形式,并执行预处理操作;特征匹配子流程与LOAM算法大体一致的方式进行特征提取和匹配;最后的全局优化子流程基于低频更新机制完成大范围的优化过程。

在这里插入图片描述
  • LEGO LOAM - image projection
    the maximum time is : 0.029819
    the mean of time is : 0.0123906096595

  • LEGO LOAM - feature association
    the maximum time is : 1.226773
    the mean of time is : 0.0126770831335

  • LEGO LOAM - map optimization
    the maximum time is : 0.427468
    the mean of time is : 0.30585172524

For each input frame, the processing time averages approximately 0.025 seconds, which represents a 25% improvement over ALOAM. Additionally, owing to the integration of a distinct map structure and enhanced optimization techniques (such as loop closure optimizations), the map optimization process incurs a slightly extended duration of around 0.3 seconds per iteration compared to other methods.

HDL GRAPH SLAM

hdl graph slam

hdl_graph_slam:

  • 它是一个基础性图优化算法。
  • 使用ICP或NDT方法对新点云进行配准,并匹配回环候选。
  • 该算法假设存在一个共同的地面,并将地面简化为平面模型。
  • 在全局图优化阶段仅利用相邻帧间的相对位姿信息以及每帧检测到的地平面信息。
  • 回环优化模块被提供出来作为辅助功能。
  • 总体而言该方案在激光SLAM领域具有一定的创新性。

Performance:
• The system exhibits limited margin of error for distant points, which is attributed to its loop closure mechanism.
• The system generates abundant redundant data points without any optimization efforts on the point cloud structure. However, the global occupancy grid shows significant thickness along these structural elements.

在这里插入图片描述

该系统包含四个核心功能模块:点云预处理与降采样阶段、用于检测公共平面作为地面的floor detection stage、odometry计算模块以及图优化阶段。其中,在测试环境中采用OpenMP加速的NDT算法被用于odometry计算模块中。图优化模块则负责优化相邻帧之间的约束关系、回环检测以及每帧的地平线约束等关键环节。

在这里插入图片描述
  • HDL - prefiltering
    the maximum time is : 0.395365
    the mean of time is : 0.00943357786885

  • HDL - floor detection
    the maximum time is : 0.856617
    the mean of time is : 0.0456638586777

  • HDL - odometry
    the maximum time is : 0.309964
    the mean of time is : 0.0742533234078

  • HDL - graph slam
    the maximum time is : 2.140327
    the mean of time is : 0.13695704878

它的处理时间明显超过其他两种方法;相比之下,在使用NDT(经过OpenMP加速后的NDT)方面表现不佳;该算法每帧所需的时间大约为0.07秒;在全局优化过程中;由于仅考虑了简单的相对位姿(包括相邻帧之间的相对位置以及各帧与地面之间的相对位置);因此图优化过程非常高效;所需的时间大约是LOAM衍生算法的一半左右。

全部评论 (0)

还没有任何评论哟~