stephen · 2019年10月29日

初识SLAM

什么是SLAM

SLAM是Simultaneous Localization and Mapping的缩写,主要用于解决同时估计机器人运动姿态和构建环境模型的问题。以往建图或寻迹问题的求解思路都依赖于先验知识,比如已知地图求解位姿,或者已知机器人的运动轨迹去构建地图,总是先有鸡或者先有蛋。而SLAM问题的不同之处就在于开局什么都没有,只能通过一系列假设然后一步一步迭代的构建出结果。

历史发展

SLAM至今已有近三十年的发展历史,从最早的所谓经典时期(1986-2003),期间包括SLAM概率理论的确立,基于扩展卡尔曼滤波方法的发展以及研究人员面对精度与性能带来的挑战作出的各种尝试;到中期的算法改进时期(2003-2014),人们对SLAM基本理论作了深入探讨和拓展,包括可观性(obervibility),一致性(consistency)和收敛性(convergence),另一方面,SLAM问题中矩阵的稀疏性得以被充分挖掘导致性能飞速提升,视觉传感器为主导的SLAM技术也日趋成熟。基于此,近年来配合手机的普及以及成像质量的提升,视觉SLAM开源系统如雨后春笋遍地开花,当前比较有代表性的是:ORB-SLAM和VINS-MONO,另外闭源商用系统中的姣姣者包括Android平台上的ARCore和iOS系统上的ARKit。

系统介绍

现代SLAM系统的结构一般由多个模块整合而成,包括前端,后端,回环。其中,

  • 前端模块负责接收传感器数据并进行初步处理,一般这部分这部分与计算机视觉领域的研究比较契合,处理的数据是摄像头拍摄到的原始图像,然后对图像进行预处理,搜索特征点并进行匹配或跟踪。
  • 后端模块则对这些数据进行推理和优化,得到轨迹和地图。我们知道传感器输入通常带有噪声,那么如何从这些带噪声的输入中估计整个系统的状态就是后端面临的主要问题。这部分目前主要用的是滤波以及非线性优化算法。
  • 回环则是利用机器人曾经运动过的位置对后端的处理进行一致性优化。这部分包含图像相似性判断,位姿图以及全局优化。

应用场景

目前从研究领域或者应用需要出发,SLAM技术目前在很多场景都有需求,比如虚拟现实,增强现实,虚拟现实室内扫地机,服务型机器人,自动驾驶,无人机,室内导航等。无论哪种场景,都需要学习周围环境并认识自身位置,因此SLAM技术不可或缺。这些应用会催生更准确可靠的SLAM技术,而SLAM技术的发展也会进一步丰富应用类型,形成良性循环。

未来的发展

SLAM技术发展至今,仍面临许多挑战:我们知道SLAM系统既包含前端海量特征的处理,也同时需要对大量传感器进行估值和求解,因此对计算的需求量是比较高的。

  • 如何在应用较多的中低端设备上的以较低功耗得到可以接受的精度范围,就是一个可以不断深入的话题;
  • 另一方面,如何充分利用SLAM运算得到的信息,进行二次加工产生更多的价值,这就催生出了语义SLAM。其引申出的内容包括物体识别与SLAM的整合,基于深度学习网络的语义分割,场景三维重建等。
推荐阅读
关注数
0
内容数
1
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息