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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 赛罗终极形态_终极战斗仪

    赛罗终极形态_终极战斗仪实践是推广一个产品或技术的最好的方式,特别在IT行业让产品管理产品本事,就是一种很好的推广方式,例如DockerinDocker、k8sink8s,这些已经被大家普遍接受。所以我觉得spinnaker要想很好的推广开来,也需要类似的应用方案,我把它称为SpinnakerOnSpinnaker。架构图如下:最上面部分是主spinnaker,或者叫masterspinn…

    2022年10月26日
    0
  • eclipse安装教程与使用教程「建议收藏」

    eclipse安装教程与使用教程「建议收藏」第一首先在电脑的浏览器中输入“eclipse官网”。 然后在网页中点击进入eclipse的官方下载网站。 2 第二然后再点击页面右边的“download”。 在弹出的页面下面点击“downloadpackages”。 3 第三然后在下面找到“eclipseIDEforjavadevelopers”的选项。 在选项右边有一个“3…

    2022年5月8日
    46
  • 手机看Typora笔记[通俗易懂]

    接触Typora之后感觉还挺好用的,不用上网,不用花钱(白嫖的玩意就是香)。可以写普通的文本,可以添加五个等级的标题,可以插入图片,,还可以插入各种各样的代码块(java,c,html,css等等),简洁而强大。但是当初我以为只能在电脑上看的时候就觉得有点难受,玛德是我S13了,我还去网上搜了半天,看看有没有教程或者手机版的软件,有的还要付费,今天我恍然大悟,尼玛人家开发个软件怎么可能没想到这些东西呢,我真是S13卧槽。看图啥都懂了:别被坑钱和C币吧…

    2022年4月3日
    198
  • 交互神器 Facebook Origami

    交互神器 Facebook Origami

    2022年3月3日
    36
  • 网站防止XSS攻击

    网站防止XSS攻击防止XSS攻击名词解释:XSS全称(CrossSiteScripting)跨站脚本攻击,是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript),当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的.比如获取用户的Cookie,导航到恶意网站,携带木马等。1、鹏云留学:XSS是如何发生的呢假如有下面一个textbox

    2022年7月20日
    14
  • python爬取琳琅社区整站视频(一晚6000部)[通俗易懂]

    python爬取琳琅社区整站视频(一晚6000部)[通俗易懂]琳琅社区(传闻中最受男人喜爱的网站),哼哼,我倒要看看是不是真的该项目用于爬取琳琅社区整站视频(仅供学习)主要使用:python3.7+scrapy2.19+Mysql8.0+win10首先确定需要爬取的内容,定义item:classLinglangItem(scrapy.Item): #视频属于哪个模块video_belong_module=scrap…

    2022年6月25日
    25

发表回复

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

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