SLAM算法调研「建议收藏」

SLAM算法调研「建议收藏」作为一名机器人运行控制算法工程师,SLAM算法的调研已初步完成,特意分享。

大家好,又见面了,我是你们的朋友全栈君。

1 SLAM算法

  SLAM,即:同步定位与地图创建(Simultaneous Localization and Mapping,SLAM)。它试图解决这样的问题:一个机器人在未知环境中运动,如何通过环境的观测确定自身的运动轨迹,同时构建出环境的地图。SLAM根据硬件设备的不同主要有两种:基于激光雷达的SLAM和基于视觉的SLAM(VSLAM)。
在这里插入图片描述
可以明显看出,对于同一个场景,视觉SLAM 在后半程中出现了偏差,这是因为累积误差所引起的,所以视觉SLAM 要进行回环检验。

1.1 各类SLAM算法的发展

在这里插入图片描述

1.2各类SLAM的优缺点

在这里插入图片描述
总体来说,激光 SLAM 是目前比较成熟的机器人定位导航技术,而视觉 SLAM是未来研究的主流方向。未来,多传感器的融合是一种必然的趋势。取长补短,优势结合,为市场打造出真正好用的、易用的 SLAM 方案。

2 SLAM算法框架

2.1 基于激光雷达的SLAM算法

  下面介绍几种基于激光雷达的SLAM算法的特点以及优劣,如下表:

在这里插入图片描述

2.2 基于视觉的SLAM

  只利用相机作为外部感知传感器的SLAM称为视觉SLAM (vSLAM)。相机具有视觉信息丰富、硬件成本低等优点,经典的vSLAM系统一般包含前端视觉里程计、 后端优化、 闭环检测和构图四个主要部分。
在这里插入图片描述

  • 视觉里程计 (Visual Odometry):仅有视觉输入的姿态估计;
  • 闭环检测 (Loop Closing): 指机器人在地图构建过程中, 通过视觉等传感器信息检测是否发生了轨迹闭环, 即判断自身是否进入历史同一地点;
  • 后端优化 (Optimization): 后端接受不同时刻视觉里程计测量的相机位姿,以及闭环检测的信息,对它们进行优化,得到全局一致的轨迹和地图;
  • 建图 (Mapping): 根据估计的轨迹,建立与任务要求对应的地图。

根据生成方法的不同,视觉SLAM可以分成两大类:间接方法和直接方法。下面进行详细介绍。

2.3 视觉SLAM-间接法

  间接法首先对测量数据进行预处理来产生中间层,通过稀疏的特征点提取和匹配来实现的,也可以采用稠密规则的光流,或者提取直线或曲线特征来实现。然后计算出地图点坐标或光流向量等几何量,因此间接法优化的是几何误差:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3.1 ORB-SLAM

  采用间接法思想的视觉SLAM主要有MonoSLAM、PTAM和ORB-SLAM。 此处重点介绍ORB-SLAM。ORB-SLAM围绕ORB (Orinted FAST and BRIEF) 特征计算,包括视觉里程计与回环检测的 ORB字典。ORB 特征计算效率比 SIFT 或 SURF 高,又具有良好的旋转和缩放不变性。ORB-SLAM 创新地使用了三个线程完成 SLAM,三个线程是:实时跟踪特征点的Tracking线程,局部 Bundle Adjustment 的优化线程和全局 Pose Graph 的回环检测与优化线程。
  该方法的缺点:每幅图像都计算一遍 ORB 特征非常耗时,三线程结构给 CPU带来了较重负担。稀疏特征点地图只能满足定位需求,无法提供导航、避障等功能。

在这里插入图片描述

2.4 视觉SLAM-直接法

  直接法跳过预处理步骤直接使用实际传感器测量值,例如在特定时间内从某个方向接收的光,如图5所示。在被动视觉的情况下,由于相机提供光度测量,因此直接法优化的是光度误差:
在这里插入图片描述

采用直接法思想的视觉SLAM主要有DTAM、LSD-SLAM、SVO(Semi-direct Visual Odoemtry )、DSO(Direct Sparse Odometry)和基于深度学习的SLAM。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149127.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Tomcat国内镜像下载地址【速度超快】

    Tomcat国内镜像下载地址【速度超快】https://mirrors.cnnic.cn/apache/tomcat/ 选择想下载的版本,最新的就是那个tomcat-9 继续点进去 进去以后,要下载的可执行文件就在Bin目录下 exe结尾的就是安装文件了 …

    2022年5月18日
    43
  • c++语言截取字符串,详解C++ string常用截取字符串方法

    c++语言截取字符串,详解C++ string常用截取字符串方法string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求:find(stringstrSub,npos);find_last_of(stringstrSub,npos);其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子字符串首次出现的位置,否则返回-1;注:(1)find_last_of的npos为从末尾开始寻找的位置。(2)下文中用到的strs…

    2022年5月19日
    28
  • 开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]

    开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]

    2021年12月4日
    63
  • 虚拟机ifconfig或ip addr不显示ip地址「建议收藏」

    虚拟机ifconfig或ip addr不显示ip地址「建议收藏」虚拟机ifconfig或ipaddr不显示ip地址报错图片:一直查不到ip地址,有重新启动很多次解决方法(1)命令查看配置文件:vi/etc/sysconfig/network-scripts/ifcfg-ens33ens33注意看这个修改的文件后缀把ONBOOT的状态no改为yes然后重启,应该就没问题了。(2):还有一种可能是因为虚拟网卡没有正常连接,解决方法是开启虚拟网卡的服务:打开任务管理器,选择服务标签,为了保险,开启所有的和vmware有关的服务检

    2022年7月27日
    3
  • 快排优化Python表示「建议收藏」

    基本快速排序分析以从小到大排序为例*选取一个主元(选取方式多样)*利用主元,将序列分为两个子序列,左侧都比主元小,右侧都比主元大。*对两个子序列重复此操作例如取第一个元素,代码表示如下:defqsort(arr):iflen(arr)<=1:returnarrelse:pivot=arr[0]r

    2022年4月12日
    200
  • java 415_415错误[通俗易懂]

    java 415_415错误[通俗易懂]WhitelabelErrorPageThisapplicationhasnoexplicitmappingfor/error,soyouareseeingthisasafallback.TueNov1314:41:09CST2018Therewasanunexpectederror(type=UnsupportedMediaType,s…

    2022年6月12日
    174

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号