Getting started with laser SLAM from scratch (1) - what is SLAM

Hello everyone, I am a doctoral candidate in the direction of SLAM. I know the ups and downs of the SLAM learning process along the way, and I am very grateful to everyone for their high-quality articles and source code. With more and more knowledge, I am going to organize a column of my own laser SLAM study notes, from 0 to take everyone to quickly get started with laser SLAM, and it is also convenient for students who want to get started with SLAM and Xiaobai study reference, I believe you can read it There will be certain gains in the end. If there is something wrong, please point it out, and welcome everyone to exchange and discuss and make progress together.

1. What is SLAM

The full name of SLAM is Simultaneous Localization and Mapping real-time positioning and map construction, in order to solve the problem of robot autonomous navigation. Humans don’t know how to move in an unknown environment, and we don’t know how to walk with our eyes closed. Robots, like humans, also need an “eye” to interact with the environment to know their position, and can build a map to let them Robot autonomous navigation. As shown in the picture below, the camera is equivalent to our eyes, the lidar is like thousands of long sticks to survey obstacles, and the map is equivalent to our daily navigation map. With these things, the robot can walk (decision making, planning, control).

The solution of SLAM problems has been one of the most notable achievements in the field of robotics over the past decade. As a theoretical method, SLAM has been proposed and solved in many different forms, and it has been widely used in indoor, outdoor, underwater and air environments. At the same time, SLAM technology is an essential technology for unmanned driving. In an environment with poor GPS accuracy and unstable signals, SLAM technology is a prerequisite for autonomous navigation.

For now you just need to know that SLAM problems can be divided into the following two parts:

Localization: Estimate the pose of the robot given the map;

Mapping: Estimate the environment map given the pose of the robot;

2. SLAM development history

2.1 Traditional Era

Classical Age (1986-2004): The SLAM problem was proposed, and the problem was converted into a state estimation problem, which was solved by means of extended Kalman filter, particle filter and maximum likelihood estimation. The first challenge is the efficiency and robustness of data association (solving pose).

2.2 The Era of Algorithm Analysis

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

2.3鲁棒性-预测性时代

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

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算法的特点,下面将简单介绍一下常见传感器的优缺点。

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

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

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

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

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

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

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

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

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

3.2激光雷达简介

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

  • 机械激光雷达

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

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

  • 固态激光雷达

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.3 激光SLAM

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

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

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

  • 2D建图

  • 3D建图

4.SLAM的应用场景举例

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

请各位小主自行领会更多的应用场景,现在相信你知道激光SLAM是什么东西,要干什么了。下一期内容将带你走进Ubuntu系统。

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

Guess you like

Origin blog.csdn.net/HUASHUDEYANJING/article/details/129696250