SLAM入门学习指南

SLAM入门学习指南

本次博客给大家介绍什么是SLAM,然后介绍一下SLAM的发展前景,当然很多都是在网上资料找到的,也有作者总结的。

SLAM雏形,近几天看的是在水下核潜艇的定位与建图的时候开始有了雏形,然后最近几年的扫地机器人、AR和VR等将SLAM技术推向了大众的视线中,当然无人驾驶也是。SLAM是Simultaneous Localization And Mapping,根据全称我们就可以知道,SLAM技术就是在定位和建图的,这些是机器人的关键部分。当然经过了SLAM之后,路径规划是机器人接下来需要做的事情。

视觉SLAM的基础知识-高翔_bilibili_哔哩哔哩_bilibili

上面这个网址是高博士于16年录制的视频,那个时候高博士写的视觉SLAM14讲非常的经典,并且以纸质版的书进行了公布。首先SLAM的输入是啥呢,答案是相机数据、激光数据或者IMU数据。根据输入数据的不同,可以分为视觉SLAM和激光SLAM两大阵营。这两个的发展可谓是十分迅速,然后现在多传感器融合SLAM也逐渐盛行起来。

说到SLAM的话,必须提起前后端两个部分。前端的话就是里程计,说实在的就是在估计SLAMbody系的运动。根据是否使用特征点,将前端分为了特征点法和非特征点法两个部分。首先特征点就是关键点+描述子来组成的,代码的话就是keypoints和descriptor两个变量的名称,使用opencv里面的函数直接计算就可以了。这里特征点的提取的话,作者会放在后面写篇博客专门介绍此内容。对于前端得到的位姿等,它必然是存在误差的,比如说它实际左转了50°,但是你算的是49.95°,这样随着系统的不断运行,这个误差会慢慢累计,最后就发生了漂移的现象(draft)。这里的draft的话就是误差的不断积累。然后此时就需要后端来帮忙,后端的目的主要是优化,目标函数是误差,使得误差最小,这样前端获得数据以后,然后后端帮忙优化一下,系统便可以在长时间的运行下保持较高的精度。然后说到后端,闭环检测的内容也必不可少。这个概念也很简单,就根据字面意思,看看系统是否经历了闭环,就是当前系统走到了之前走过的位置。闭环检测的话,最经典之一就是词袋模型,这个词袋模型的话,简单来说,就是将特征分为一个个单词,然后针对后来输入的某个场景or图片,来看看这个场景里面有多少个上述分类好的单词,然后来进行闭环判断。当然现在随着深度学习的热潮,这个部分也有深度学习来进行的。这个部分的话,作者后期也会更新相应的文章,来供大家学习参考。

然后后端优化的部分,之前是滤波作为主要的优化方式,现在使用图优化。使用图优化的原因之一就是根据矩阵的稀疏性,找到了这个特点之后呢,就利用图优化,加速目标函数的求解。说到图优化,可以这么想,节点就是优化变量,边就是约束。具体的话,大家可以随着学习的深入以后,来进行进一步的思考。

还有这里的话多说两句前端的内容,前端的话可以使用基于特征的方法,也可以不使用特征直接进行vo。对于到底用不用特征呢,这个问题的话根据具体的情况来决定。这里的特征就是特征点的意思,如果使用特征,即提取特征点以后进行里程计,那么此时用到的点相对较少,这样建图就被称为稀疏建图。如果不使用特征(这里不使用特征的原因是,如果使用特征点,那么图像中大部分的像素点会被丢弃,这样认为我在处理图像的过程中丢掉了大部分的信息),那么所有的像素点都会被使用,这样的建图称为稠密建图。对于前端里面的内容还有特征点的提取,有SIFT、Harris角点,SURF,ORB等内容,这个后续也会单独出一篇博客来对其进行详细的介绍。当然这个部分就属于cv里面的内容了,大家如果cv比较好的,这个部分一般也就没啥问题。然后知道了特征点以后,来估计系统运动的时候,就会有2维和3维之间的转换关系,这里面有对极几何 pnp问题 ba问题等,这个后续也会出相应的博客进行介绍。当然具体的话,高博士的视觉SLAM14讲是个不错的选择!

SLAM的前世今生 终于有人说清楚了 | 雷锋网公开课 | 雷峰网

SLAM的前世今生,有兴趣的小伙伴可以看一看。

以上呢就是SLAM入门的所有介绍了,希望通过我1400多字的简短介绍能够让大家对SLAM有个初步的认识,然后逐渐深入学习!!!逐渐迈进SLAM这个坑中!

你可能感兴趣的:(SLAM+计算机视觉,大数据,SLAM)