0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解激光SLAM框架LeGO-LOAM

3D视觉工坊 来源:计算机视觉工坊 2023-06-11 15:02 次阅读

LOAM存在的问题

LeGO-LOAM全称为:Lightweight and Groud-Optimized Lidar Odometry and Mapping on Variable Terrain,从标题可以看出 LeGO-LOAM 为应对可变地面进行了地面优化,同时保证了轻量级。 LeGO-LOAM是专门为地面车辆设计的SLAM算法,要求在安装的时候Lidar能以水平方式安装在车辆上;如果是倾斜安装的话,也要进行位姿转换到车辆上。

而LOAM对Lidar的安装方式没有要求,即使手持都没有关系。 作者的实验平台是一个移动小车(UGA),挂载了一个Velodyne VLP-16 线激光雷达,还配有一个低精度的 IMU;选用的硬件平台是 Nvidia Jetson TX2(ARM Cortex-A57 CPU);整体负载是 20Kg;移动速度为:2.0m/s;测试场景为:地面不平(比较颠簸)的草地

72451652-06df-11ee-962d-dac502259ad0.jpg

图1 硬件平台 LOAM框架在这样的硬件环境和使用场景中会存在一些问题:

由于搭载的是嵌入式系统,计算能力将会受限,LOAM的计算需要将难以满足,致使无法做到实时;

如果使用LOAM框架,系统计算每个点曲率的处理频率(数据量很大,VLP-16一条线是1800个点)将难以跟上传感器的更新频率;

UGA行驶的路面是非平滑连续的(运动是颠簸的),采集的数据将会失真(运动畸变,匀速运动模型无法适用于颠簸场景),使用LOAM很难在两帧之间找到可靠的特征对应。

在噪杂的环境中操作UGV也会给LOAM带来一些挑战,例如:浮动的草丛和摆动的树叶的点云将被误提取为角点或面点,这些特征是不可靠的,难以在连续帧之间获取准确的匹配,从而会造成较大的漂移。

LeGO-LOAM的设计思路

72779c76-06df-11ee-962d-dac502259ad0.png

对地面点云的配准主要使用的是面点特征;在分割后的点云配准主要使用的是边缘点和面点特征。从中可以看出使用边缘点的数量是要远小于平面点的数量,这也是能实现加速的主要原因。

72c582f6-06df-11ee-962d-dac502259ad0.png

LeGO_LOAM的软件系统输入 3D Lidar 的点云,输出 6 DOF 的位姿估计。整个软件系统分为 5 个部分:

第一部分:Segmentation: 这一部分的主要操作是分离出地面点云;同时对剩下的点云进行聚类,滤除数量较少的点云簇。

第二部分:Feature Extraction: 对分割后的点云(已经分离出地面点云)进行边缘点和面点特征提取,这一步和LOAM里面的操作一样。

第三部分:Lidar 里程计: 在连续帧之间进行(边缘点和面点)特征匹配找到连续帧之间的位姿变换矩阵。

第四部分:Lidar Mapping: 对feature进一步处理,然后在全局的 point cloud map 中进行配准。

第五部分:Transform Integration: Transform Integration 融合了来自 Lidar Odometry 和 Lidar Mapping 的 pose estimation 进行输出最终的 pose estimate。

LeGO-LOAM的算法细节

72eb068e-06df-11ee-962d-dac502259ad0.jpg

图3 噪声环境中一条scan的特征提取过程

73250e42-06df-11ee-962d-dac502259ad0.png

A. Segmentation

734a28e4-06df-11ee-962d-dac502259ad0.png

提取地面点之后,再对剩下的距离图像进行聚类(分簇),过滤掉点云数量小于 30 的点云簇,对保留下来的点云簇分配不同的标签。地面点云属于特殊的一类点云簇(一开始我们就提取出来了)。对点云进行聚类再处理,可以提高运行效率和提取更稳定的特征。

例如,小车运行于嘈杂的环境,树叶将会产生不可靠的特征,相同的叶子不太可能在连续两帧扫描中看到。图3(a)是原始点云,包含了很多植被点云;经过处理之后变成了图3(b),只剩下大物体点云,例如:树干。地面点云将被保留以作进一步处理。

此时,保留下来的每个点将具备三种属性:(1)点云的标签;(2)在距离图像中的行列数;(3)距离值。

B. Feature Extraction

这一步主要是从地面点云和分割出来的点云中提取特征,与LOAM中的操作一样。主要要搞清楚几个特征点集合的概念。

7378ed46-06df-11ee-962d-dac502259ad0.png

为了从各个方向均匀地提取特征,我们将距离图像水平分割成几个相等的子图像,将360°均匀分成6等分,每一等分的精度是 300 imes 16(因为VLP-16线Lidar,一条scan是1800个点)。

计算子图中每一行的点的曲率值,对曲率值进行排序分类,> Cth,分为边缘点特征;< Cth 分为面点特征。设置以下几个集合(论文中这部分语句相近,以下是我个人的理解,可能不准确):

73984286-06df-11ee-962d-dac502259ad0.png

C. Lidar Odometry

73df66ca-06df-11ee-962d-dac502259ad0.png

1)Label Matching:LeGO-LOAM对点云进行了聚类分簇,不同的点云簇具有不同的Label。Label 信息可以作为两帧匹配的约束条件,连续两帧之间只有同类标签点云簇才能进行配准。这种方式可以提高配准的精度和效率。

740269e0-06df-11ee-962d-dac502259ad0.png

745b623e-06df-11ee-962d-dac502259ad0.png

D. Lidar Mapping

749d700c-06df-11ee-962d-dac502259ad0.png

74eac078-06df-11ee-962d-dac502259ad0.png

LeGO-LOAM的性能表现

作者为测试LeGO-LOAM的性能,设计了一系列的实验来对比LeGO-LOAM和LOAM的表现性能。 作者在户外的小场景和大场景中,分别对LeGO-LOAM和LOAM测试平台执行激烈和平缓的控制,来查看两者的建图效果和效率。 在小场景的激烈运动过程中:LOAM 会把草丛、树叶提取为边缘点特征(草丛和树叶是不稳定特征的主要来源);而LeGOU-LOAM会过滤掉这些不稳定的特征,只会在树干,地面,台阶等上提取稳定特征。如下图所示(绿色是边缘点,粉色是面点):

75217a96-06df-11ee-962d-dac502259ad0.jpg

在LOAM框架中,剧烈的运动容易造成点云地图的发散,如下图中(a)LOAM,有三个树干。

7540180c-06df-11ee-962d-dac502259ad0.jpg

作者在大场景的都市环境(是一个学校,不同地点的海拔误差在19m之内)里也进行多种测试以验证建图的精度,有人行道,水泥路,土路和草丛。 LOAM 在人行道上的建图效果并不好,可能是一端存在树木叶子的干扰,如下图所示:

756e466e-06df-11ee-962d-dac502259ad0.jpg

在其他三种场景中,LeGO-LOAM的偏差(终点相对于初始位置的偏差)表现都要优于LOAM。

75a119a4-06df-11ee-962d-dac502259ad0.jpg

整个测试的结果如下:

特征点数量对比:LeGO-LOAM特征点整体下降幅度超过:29%,40%,68%,72%。

75d69f66-06df-11ee-962d-dac502259ad0.png

迭代次数对比:里程计的迭代次数降低了34%,48%。

75fe3670-06df-11ee-962d-dac502259ad0.png

运行时间对比:降低了 60%

7632681e-06df-11ee-962d-dac502259ad0.png

位姿误差对比:LeGOLOAM可以用更少的计算时间实现可比或更好的位置估计精度。

765a7818-06df-11ee-962d-dac502259ad0.jpg





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 激光雷达
    +关注

    关注

    968

    文章

    3967

    浏览量

    189825
  • IMU
    IMU
    +关注

    关注

    6

    文章

    306

    浏览量

    45727
  • Cortex-A57
    +关注

    关注

    0

    文章

    6

    浏览量

    9226
  • SLAM算法
    +关注

    关注

    0

    文章

    11

    浏览量

    2528

原文标题:一文详解激光SLAM框架LeGO-LOAM

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    激光SLAM与视觉SLAM有什么区别?

    机器人定位导航中,目前主要涉及到激光SLAM与视觉SLAM激光SLAM在理论、技术和产品落地上都较为成熟,因而成为现下最为主流的定位导航方
    发表于 07-05 06:41

    激光SLAM技术在机器人运动控制系统中的应用是什么

    什么是激光SLAM激光SLAM技术在机器人运动控制系统中的应用是什么?
    发表于 07-30 06:37

    激光SLAM和视觉VSLAM的分析比较

    什么是激光SLAM?视觉VSLAM又是什么?激光SLAM和视觉VSLAM有哪些不同之处?
    发表于 11-10 07:16

    HOOFR-SLAM的系统框架及其特征提取

    Intelligent Vehicles Applications1. 介绍2. HOOFR-SLAM2.1 系统框架2.2 HOOFR特征提取2.3 映射线程2.3.1 特征匹配1. 介绍提出一种HOOFR-...
    发表于 12-21 06:35

    测试的SLAM方案

    在实验中,hdl_graph_slam和BLAM在所有数据集上的性能均不理想,因而下面不再讨论。而SC-LeGo-LOAM的性能较之LeGo-LOAM也没有明显改善,因而下面也不再讨论。
    发表于 08-03 10:46 1471次阅读

    用于3D激光雷达SLAM回环检测的实时词袋模型BoW3D

    Lego-LOAM是基于轨迹位姿方法的回环检测,使用KDtree寻找当前位姿的历史最近位姿,之后把历史位姿作为候选,用ICP算法修正位姿。
    的头像 发表于 01-11 09:12 2162次阅读

    基于LeGo-LOAM框架激光SLAM技术解析

    相对于LOAM算法,LeGo-LAOM能够进行地面优化,同时保证了轻量级,也加入了回环检测模块。本课程从必备的数学知识,到算法框架、源码,再到最后的实践,力求衔接清晰,通俗易懂,便于大家消化吸收。
    发表于 06-09 15:20 211次阅读
    基于<b class='flag-5'>LeGo-LOAM</b><b class='flag-5'>框架</b>的<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b>技术解析

    聊聊3D激光SLAM开源算法-LeGo-LOAM

    相对于LOAM算法,LeGo-LAOM能够进行地面优化,同时保证了轻量级,也加入了回环检测模块。本课程从必备的数学知识,到算法框架、源码,再到最后的实践,力求衔接清晰,通俗易懂,便于大家消化吸收。
    的头像 发表于 06-11 10:21 1775次阅读
    聊聊3D<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b>开源算法-<b class='flag-5'>LeGo-LOAM</b>

    3D激光SLAM是用LOAM还是LeGo-LOAM

    激光slam中,LOAM(Lidar Odometry and Mapping in Real-time)系列具有举足轻重的地位。
    的头像 发表于 06-28 09:25 719次阅读
    3D<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b>是用<b class='flag-5'>LOAM</b>还是<b class='flag-5'>LeGo-LOAM</b>?

    基于LeGo-LOAM框架的3D激光SLAM技术

    激光SLAM很多人都觉得很难,对于初学者更是不知道从哪里开始学起,怎样才能更高效的学习,进入相关企业需要达到什么样的要求,这也是很多初学者面临的难题。如果掌握了3D激光SLAM的核心技
    的头像 发表于 06-29 15:28 659次阅读
    基于<b class='flag-5'>LeGo-LOAM</b><b class='flag-5'>框架</b>的3D<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b>技术

    3D激光SLAM,为什么要选LeGo-LOAM

    对于学术研究而言,LeGo-LOAM激光SLAM的经典框架LeGo-LOAM源码简洁清晰,比LOAM
    的头像 发表于 07-03 10:47 875次阅读
    3D<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b>,为什么要选<b class='flag-5'>LeGo-LOAM</b>?

    不同3D激光SLAM方案对比分析

    在实验中,hdl_graph_slam和BLAM在所有数据集上的性能均不理想,因而下面不再讨论。而SC-LeGo-LOAM的性能较之LeGo-LOAM也没有明显改善,因而下面也不再讨论。
    发表于 08-28 11:47 632次阅读
    不同3D<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b>方案对比分析

    对于3D激光SLAMLeGo-LOAM到底有多重要?

    激光slam中,LOAM(Lidar Odometry and Mapping in Real-time)系列具有举足轻重的地位。下面的表格是近年来LOAM系列算法的汇总。
    的头像 发表于 08-31 15:54 702次阅读
    对于3D<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b>,<b class='flag-5'>LeGo-LOAM</b>到底有多重要?

    视觉SLAM是什么?视觉SLAM的工作原理 视觉SLAM框架解读

    近年来,SLAM技术取得了惊人的发展,领先一步的激光SLAM已成熟的应用于各大场景中,视觉SLAM虽在落地应用上不及激光
    的头像 发表于 09-05 09:31 3963次阅读
    视觉<b class='flag-5'>SLAM</b>是什么?视觉<b class='flag-5'>SLAM</b>的工作原理 视觉<b class='flag-5'>SLAM</b><b class='flag-5'>框架</b>解读

    基于深度学习的LiDAR SLAM框架(DeepPointMap)

    定位准确性:与六种最新的里程计和SLAM方法进行比较,包括KISS-ICP、LeGO-LOAM、SC-LeGO-LOAM、MULLS、CT-ICP和GeoTransformer。在SemanticKITTI、KITTI-360和
    发表于 12-29 11:48 1169次阅读
    基于深度学习的LiDAR <b class='flag-5'>SLAM</b><b class='flag-5'>框架</b>(DeepPointMap)