Slam

2023-05-16

SLAM 是什么?

SLAM 是同步定位与地图构建 (Simultaneous Localization And Mapping) 的缩写,最早由 Hugh Durrant-Whyte 和 John J.Leonard 提出。SLAM 主要用于解决移动机器人在未知环境中运行时定位导航与地图构建的问题。

 

SLAM 实际上是一个典型的军转民用的技术,探测器登陆未知环境的星球进行科研研究时,面对复杂的大规模环境,而无法对其进行实时遥控时,必须通过实现同步定位与地图创建才能完成导航任务,例如美国“机遇号”、“勇气号”以及“好奇号”等火星探测器。如果放在当今社会消费级市场来理解的话,扫地机器人没有 SLAM 技术,就无法实现自主移动。


 

1)这个领域的知识是什么样的?

整个 SLAM 大概可以分为前端和后端,前端的功能是根据相邻两帧图像(视觉 SLAM )或者两片点云(激光 SLAM )的匹配与比对,计算出传感器相邻时刻的位置和姿态变化,进而对机器人或者无热车进行定位;根据传感器不一样,分为激光点云、图像、RGB-D 拼接几种,其中图像配准中又分基于稀疏特征 (Sparse) 的和稠密 (Dense) 的两种。后端则主要是对前端出结果进行优化,利用滤波理论或者优化理论,最终得到最优的位姿估计。

 

2)确定学习方向

SLAM 是一个包含技术点范围很广的应用方向,涉及到计算机视觉,优化方法,3D ….,每项之内又会分成更多的点,如果没有目标去学习很容易迷失其中,因此确定目标是非常重要的!

 


 

RGB-D Camera 选择

目前的主流视觉深度传感器方案主要分结构光,Time-of-Flight 和纯双目三类。双目跟结构光一样,都是使用三角测量法根据物体匹配点的视差反算物体距离,只是双目是用自然光,而结构光是用主动光发射特定图案的条纹或散斑。ToF 是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。

曾经红极一时的 Kinect 1,2 代(现已停产)采用的是结构光和 ToF,ToF 和结构光都属于主动光,容易受可见光和物体表面干扰,所以更适合室内和短距离的应用场景。

 

图 | 「视觉+结构光+惯性导航」融合的双目方案效果更好

 

将双目和结构光的优点结合起来,用双目的相差计算方法加上红外的结构光对黑暗和无纹理的情况作辅助,小觅智能采用了「视觉+结构光+惯性导航」融合的双目结构光深度惯导相机方案,可在无纹理的物体(像是白墙)和全黑情况及室内外条件下使用。

 

 

作者:小觅智能
链接:https://www.zhihu.com/question/58214449/answer/499085817
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

5)推荐阅读的书籍

  • [Multiple View Geometry in Computer Vision] 这本书基本涵盖了 Vision-based SLAM这个领域的全部理论基础,另外建议配合 Berkeley 的课件学习。(更新:这本书书后附录也可以一并读完,包括附带 bundle adjustment 最基本的 levenberg marquardt 方法,newton 方法等)
  • [Probabilistic Robotics] 了解概率学是如何解决机器人中的问题的
  • [State Estimation for Robotics] 这本书能够帮你很快建立整套关于状态估计理论的框架,同时在三维运动方面,提供了充分但不那么困难的学习途径
  • [视觉 SLAM 十四讲] 高翔博士大大深入浅出地将 SLAM 数学模型讲解得生动有趣又条理清晰,实在是 SLAM 入门不二之选(引自豆瓣书评)
  • [Quaternion kinematics for the error-state KF]
  • [Convex Optimization 凸优化]
  • [线性系统理论] Chi-Tsong Chen: 9780199959570: Amazon.com: Books7.
  • [An Invitation to 3-D Vision]
  • [Rigid Body Dynamics]

 

6)推荐的视频

  • Tim Davis 可以参考他的课件及视频,讲述 Sparse Matrix — 大型稀疏矩阵处理的一般办法。
  • 激光 SLAM 入门视频,by Cyrill Stachniss(链接:https://pan.baidu.com/s/17U9Fr0u31gIKpQfehnnvEw 密码: u5au)
  • Google 开源的 Cartographer,目前来看还是非常成熟和完善的激光 SLAM 系统,可以作为重点进行学习
  • 小觅智能联合深蓝学院推出的免费公开课:如何进行 VSLAM 技术选型
  • ROS 入门:ROS 机器人操作系统入门-中国大学 MOOC)

 

7)SLAM 相关学习文章(持续更新中)

ORB-SLAM 学习笔记​zhuanlan.zhihu.com图标VINS 学习笔记​zhuanlan.zhihu.com图标

8)欢迎点赞和分享小觅智能 | VINS 学习笔记(持续更新中)8)欢迎点赞和分享

据说知乎有个不成文的规定:只收藏不点赞和分享就是耍流氓!

 

SLAM的发展:

SLAM近年来发展衍生出的一些其他类型的变种有:非刚性SLAM,多目标模型SLAM,动态SLAM,语义SLAM等。

SLAM的一些开源项目:

在项目代码方面,当前比较具有代表性的一些开源SLAM方案有:

Dense SLAM: KinectFusion, ElasticFusion,BundleFusion,InfiniTAM,MaskFusion

Semi-Dense SLAM: LSD-SLAM

Sparse SLAM: ORB-SLAM

SLAM的一些开发工具:

开发SLAM常用到的工具库主要包括:

OpenNI:用于与视觉传感器的交互操作;OpenCV:用于图像处理;PCL:用于点云处理;Eigen:用于矩阵运算;Sophus:用于李群李代数计算;Ceres Solver:用于非线性优化;g2o:用于图优化;DBoW:用于处理词袋模型;OpenGL:用于模型渲染;CUDA toolkit:用于并行计算,等等。


 

 

 

 

 

 

 

 

参考文献:

1.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Slam 的相关文章

随机推荐