从零入门激光SLAM(一)——什么是SLAM

这篇具有很好参考价值的文章主要介绍了从零入门激光SLAM(一)——什么是SLAM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看完会有一定的收获。如有不对的地方欢迎指出,欢迎各位大佬交流讨论,一起进步。 博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论。

1.什么是SLAM

SLAM的全称是Simultaneous Localization and Mapping即时定位与地图构建,为解决机器人自主导航的问题。人在一个未知的环境下也不知如何行进,我们闭着眼睛也不知道怎么走路,机器人如人一样,也需要一个“眼睛”与环境之间交互知道自己的位置,并且能够建立一个地图来让机器人自主导航。如下图所是,相机相当于我们的眼睛,激光雷达像是成千上万个很长的拐棍去勘测障碍物,地图相当于我们日常用的导航地图。机器人有了这些东西就可以进行走路(决策、规划、控制)。

在过去的十年里,SLAM问题的解决方案一直是机器人邻域最显著的成就之一。SLAM作为一种理论方法,它被以多种不同形式的方式被提出并解决,它被广泛的应用到了室内、室外、水下和空中等的环境中。同时SLAM技术对于无人驾驶来说是一项必不可少的技术。在GPS精度差,信号不稳定的环境中,SLAM技术是实现自主导航的前提。

从零入门激光SLAM(一)——什么是SLAM

现在你只需要知道SLAM问题可以分为以下两部分:

Localization:在给定地图的情况下,估计机器人的位姿;

Mapping:在给定机器人位姿的情况下,估计环境地图;

2.SLAM发展历程

2.1传统时代

Classical Age(1986-2004):SLAM问题的提出,并将该问题转换为一个状态估计问题,利用扩展卡尔曼滤波、粒子滤波及最大似然估计等手段来求解。第一个挑战是效率和数据关联(求解位姿)的鲁棒性问题。

从零入门激光SLAM(一)——什么是SLAM

2.2算法分析时代

algorithmic-analysis age: (2004-2015)研究SLAM的基本特性,包括观测性、收敛性和一致性。研究者们理解了稀疏特征在高效SLAM解决方案中的重要角色,开发了主要开源SLAM库。

从零入门激光SLAM(一)——什么是SLAM

2.3鲁棒性-预测性时代

robust-perception(2015-):鲁棒性、高级别的场景理解,多传感器融合,计算资源优化,任务驱动的环境感知。

从零入门激光SLAM(一)——什么是SLAM

2.4未来发展

未来SLAM的发展方向可以归结为以下几点:

(1)解决鲁棒性问题

(2)基于监督学习的特征点提取方法

(3)基于监督学习的图像深度估计

(4)基于无监督学习图像深度与里程计估计

(5)语义地图的建立与表达

(6)主动式SLAM

(7)基于新的非传统的传感器的SLAM

(8)多节点车路协同下的SLAM

在理论和概念层面上,SLAM现在可以被认为是一个已解决的问题了。然而,在实际实现更通用的SLAM解决方案方面,尤其是在构建和使用感知丰富的地图作为SLAM算法的一部分方面,仍然存在大量棘手的问题。例如一个地下车库停车的SLAM场景就需要在已有的SLAM算法基础上进行优化和多传感器融合才能达到不错的效果。

3.SLAM种类

3.1 SLAM种类介绍

SLAM的种类与传感器的发展息息相关,最开始的图像SLAM到后面的激光SLAM。近年来,随着激光雷达、摄像机、惯性测量单元等传感器的快速发展,SLAM技术应运而生。常见的SLAM分类有激光SLAM、视觉SLAM、多传感器融合SLAM和基于深度学习的SLAM。

从零入门激光SLAM(一)——什么是SLAM

各传感器的特点也决定了各种SLAM算法的特点,下面将简单介绍一下常见传感器的优缺点。

  • 激光雷达:机械、固态、混合

优点:精度高、频率快、不受光线影响、计算量小

缺点:成本高、信息量有限、功耗大

  • 摄像头:单目、双目、RGB-D相机、全景相机

优点:便宜、体积小、信息丰富

缺点:计算量大、易受干扰、对环境假设强

  • 惯性测量单元:IMU、轮速计

优点:可以测量出载体的加速度和角加速度,结合数学方法快速计算出载体的位置和姿态信息。

缺点:随着时间增加会有漂移误差

3.2激光雷达简介

本专栏将围绕激光SLAM的基础展开,激光SLAM即是围绕激光雷达为主传感器进行感知的算法。激光雷达目前主要分为机械式和固态式,那么下面就介绍一下激光雷达是什么。

从零入门激光SLAM(一)——什么是SLAM
  • 机械激光雷达

机械激光雷达体积更大,总体来说价格更为昂贵,但测量精度相对较高。机械激光雷达的工作原理是利用激光束在周围环境中反射并返回到传感器的时间来确定距离。当激光束照射到一个物体上时,它会被反射回传感器,并且传感器可以通过测量返回的激光脉冲的时间来计算物体的距离。通过不断旋转反射镜,激光束可以在水平和垂直方向上扫描周围环境,并创建出物体的三维点云图,通常可以扫描360度。

从零入门激光SLAM(一)——什么是SLAM
从零入门激光SLAM(一)——什么是SLAM

来一个通俗点的解释,想像出一个竖起来的梳子,每个梳齿向外发射激光并接收,现在让它旋转起来,每一个梳齿都会扫描一圈,有多少个梳齿就是我们常说的多少线激光雷达。下图右上的图是点云投影到图片的,可以看到像梳子一样一条一条排列的,右下是一帧的三维点云。

从零入门激光SLAM(一)——什么是SLAM
  • 固态激光雷达

固态激光雷达尺寸较小,成本低,但测量精度相对会低一些。一些非完全旋转的激光雷达也被统称为“固态激光雷达”,它们具备了固态激光雷达很多的性能特点,如分辨率高、有限水平FOV(前向而不是360°)等。

固态激光雷达则采用固态光电元件,如半导体激光器和光电探测器,代替了机械部件,从而提高了可靠性和稳定性。固态激光雷达的工作原理与机械激光雷达类似,也是利用激光束发射并接收反射回来的信号来测量距离,但其发射和接收是由固态电路实现的,可以通过电子控制来调整激光束的方向和强度。这种激光雷达具有更快的测量速度和更高的精度,但由于使用了固态光电元件,其成本相对较高。

因此,机械激光雷达和固态激光雷达的主要区别在于技术实现方式,机械激光雷达需要旋转部件来扫描整个场景,而固态激光雷达使用固态电路来控制激光束的方向和强度。下图是livox的avia的工作原理,点云形状像是一朵花。

从零入门激光SLAM(一)——什么是SLAM

真实用起来点云是这样的:

从零入门激光SLAM(一)——什么是SLAM

利用光学相控阵扫描技术的固态激光雷达的确有很多优势,例如:

①其结构简单,尺寸小,无需旋转部件,在结构和尺寸上可以大大压缩,提高使用寿命并使其成本降低。

②扫描精度高,光学相控阵的扫描精度取决于控制电信号的精度,可以达到千分之一度量级以上。

③可控性好,在允许的角度范围内可以做到任意指向,可以在重点区域进行高密度的扫描。

④扫描速度快,光学相控阵的扫描速度取决于所用材料的电子学特性,一般都可以达到MHz量级。

当然固态激光雷达也同样存在一些劣势,如:

①扫描角有限,固态意味着激光雷达不能进行360度旋转,只能探测前方。因此要实现全方位扫描,需在不同方向布置多个(至少前后两个)固态激光雷达

②旁瓣问题,光栅衍射除了中央明纹外还会形成其他明纹,这一问题会让激光在最大功率方向以外形成旁瓣,分散激光的能量。

③加工难度高,光学相控阵要求阵列单元尺寸必须不大于半个波长,一般目前激光雷达的工作波长均在1微米左右,故阵列单元的尺寸必须不大于500nm。而且阵列密度越高,能量也越集中,这都提高了对加工精度的要求,需要一定的技术突破。

④接收面大、信噪比差:传统机械雷达只需要很小的接收窗口,但固态激光雷达却需要一整个接收面,因此会引入较多的环境光噪声,增加了扫描解析的难度。

3.3 激光SLAM

上面说了那么多,总算引出我们的主角激光SLAM,激光SLAM就是根据前后帧之间的点云匹配,估算出位姿,再根据点云和计算出的位姿进行建图。下图就是两个点云进行匹配,具体算法后面会介绍,现在只需要知道位姿是通过点云匹配计算来的就好。

从零入门激光SLAM(一)——什么是SLAM

纯激光SLAM主要分为2D和3D,下图给出一些经典的算法,当然现在还有多传感器紧耦合的算法,本专栏先不涉及。

从零入门激光SLAM(一)——什么是SLAM

下面给出2d和3dSLAM的样例,现在你只需要有个印象,后面会手把手带你跑起来这些代码。

  • 2D建图

从零入门激光SLAM(一)——什么是SLAM
  • 3D建图

从零入门激光SLAM(一)——什么是SLAM

4.SLAM的应用场景举例

上面说了一大堆,SLAM具体有什么用呢,什么AI,元宇宙,游戏等等都太大了,博主能不能举一个具体的例子。好,扫地机器人:

从零入门激光SLAM(一)——什么是SLAM
从零入门激光SLAM(一)——什么是SLAM
从零入门激光SLAM(一)——什么是SLAM

请各位小主自行领会更多的应用场景,现在相信你知道激光SLAM是什么东西,要干什么了。下一期内容将带你走进Ubuntu系统。文章来源地址https://www.toymoban.com/news/detail-445891.html

感谢各位小伙伴能读到这里,如有不清楚或不对的地方欢迎评论区讨论,博主也是初学者,按自己理解区解释,恳请各位理解,下一篇将很快到来~
如果喜欢就关注一下吧!

到了这里,关于从零入门激光SLAM(一)——什么是SLAM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零入门激光SLAM(五)——手把手带你编译运行Lego_loam

    大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看

    2024年01月17日
    浏览(107)
  • 从零开始的三维激光雷达SLAM教程第二讲(搭建Gazebo仿真环境,并添加动态障碍物)

    毕业设计打算做三维激光SLAM,记录一些学习历程,也给后面人一点帮助。本教程不涉及SLAM基本概念(如果没有自行补充),主要包含以下几部分内容。 搭建激光SLAM的运行环境并运行数据集 在Gazebo中构建仿真地图并添加动态障碍物,使用仿真小车采集激光数据。 A-LOAM详解,

    2024年02月01日
    浏览(51)
  • SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化

    好久没更新这部分了,最近在搞中期答辩的东西,简单补充一部分多线激光雷达建图的内容。上文介绍使用自己的激光雷达如何通过GMapping算法建图,接下来两节介绍怎么运行Velodyne的16线激光雷达,并使用港科大改进的A-Loam进行建图。 前文链接如下 SLAM实操入门(一):在已

    2024年02月09日
    浏览(39)
  • 我是如何入门网络安全?有什么自学心得?

    那年我高三毕业的时候要填志愿前几天 我妈问我想学什么专业。 我说,想学网络设计、或者计算机、网络安全工程师 那时候还比较年轻,也对网络,计算机这方面感兴趣嘛 于是我妈和我爸决定让我学网管。 我说不想做网管,想直接成为一名网络设计、或者计算机、网络安

    2024年02月09日
    浏览(64)
  • 【激光SLAM】激光的前端配准算法

    在激光SLAM中,前端配准(Frontend Registration)是实现定位和地图构建的关键步骤之一。它的作用是将当前帧的激光扫描数据与先前帧(或参考帧)的激光扫描数据进行配准,以获取它们之间的 相对位姿变换 。 通过前端配准,激光SLAM系统可以实现对机器人在环境中的位置和姿

    2024年02月19日
    浏览(39)
  • 移动机器人激光SLAM导航(五):Cartographer SLAM 篇

    参考 Cartographer 官方文档 Cartographer 从入门到精通 1.1 前置条件 推荐在刚装好的 Ubuntu 16.04 或 Ubuntu 18.04 上进行编译 ROS 安装:ROS学习1:ROS概述与环境搭建 1.2 依赖库安装 资源下载完解压并执行以下指令 https://pan.baidu.com/s/1LWqZ4SOKn2sZecQUDDXXEw?pwd=j6cf 1.3 编译 本文只编译 cartographer

    2024年02月21日
    浏览(45)
  • 【3D激光SLAM】Livox-mid-360激光雷达ip配置

    写在前言:请认真阅读mid360官方手册,第一次配雷达ip真的很多坑 参考资料 mid360雷达sdk:https://github.com/Livox-SDK Livox Viewer2:https://www.livoxtech.com/downloads LIO-Livox:https://github.com/Livox-SDK/LIO-Livox Livox-Mapping:https://github.com/Livox-SDK/livox_mapping 首先在Ubuntu20.04下将本机IP地址置于和雷达

    2023年04月23日
    浏览(59)
  • 开源3D激光(视觉)SLAM算法汇总(持续更新)

    目录 一、Cartographer 二、hdl_graph_slam 三、LOAM 四、LeGO-LOAM 五、LIO-SAM 六、S-LOAM 七、M-LOAM 八、livox-loam 九、Livox-Mapping 十、LIO-Livox 十一、FAST-LIO2 十二、LVI-SAM 十三、FAST-Livo 十四、R3LIVE 十五、ImMesh 十六、Point-LIO 十七、PV-LIOVoxelMap Cartographer是由谷歌于2016年开源的一个支持ROS的室内

    2024年02月03日
    浏览(38)
  • 超全!SLAM论文与开源代码汇总(激光+视觉+融合)

    1.代表性视觉SLAM算法论文与开源代码总结 2.代表性激光SLAM算法论文与开源代码总结 3.代表性激光-视觉融合SLAM算法论文总结 激光-视觉-IMU-GPS融合SLAM算法理论与代码讲解: https://mp.weixin.qq.com/s/CEJPWHVAnKsLepqP3lSAbg 参考文献 [1] CADENA C, CARLONE L, CARRILLO H, et al. Past, present, and future of

    2024年02月05日
    浏览(43)
  • 3D激光SLAM:LeGO-LOAM论文解读---激光雷达里程计与建图

    激光雷达里程计模块的功能就是 :估计相邻帧之间的位姿变换。 估计的方式 :在相邻帧之间做点到线的约束和点到面的约束 具体的方式和LOAM一样 针对LOAM的改进 1 基于标签的匹配 在特征提取部分提取的特征点都会有个标签(在点云分割时分配的) 因此在找对应点时,标签

    2023年04月09日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包