当前位置: 代码迷 >> 综合 >> SLAM for Dummies 全文总结
  详细解决方案

SLAM for Dummies 全文总结

热度:53   发布时间:2023-12-17 06:00:54.0

转载请注明出处:https://blog.csdn.net/q_z_r_s/article/details/84311010

机器感知
一个专注于SLAM、三维重建、机器视觉等相关技术文章分享的公众号

SLAM for Dummies 全文总结

1. Introduction

本文的目的是介绍针对移动机器人的SLAM教程。有很多论文是关于SLAM的,对于此领域的新手而言,这可能需要花费很多时间去理解实现SLAM所涉及的intricacies。因此本文希望在呈现此领域时尽量保持需要最少的先决条件。当你读完本文之后,相信你也可以实现一个基本的SLAM。

SLAM实现方法很多,首先就是可使用的硬件很多,其次SLAM与其说是一个算法,不如果它更像一个概念(concept)。SLAM涉及的步骤很多,不同的步骤又可以用不同的算法来实现。大部分时候我们针对这些不同的步骤阐述一个单一的方法,但为了进一步阅读,提示其他可能的方法。

写这篇文章的动机主要是保住我们自己去更好的理解SLAM,俗话说:能把别人教懂了,才是真的懂了(英语原文不是这样的,我临时编的^_^)。另一个原因是,现存的很多关于SLAM的论文都是偏向理论的,而且主要关注的是SLAM某一个小领域上的创新,当然这也是这些论文的初衷所在。本文的目的是希望能更偏向于实践,且简单、基本的SLAM算法,这可以成为一个去更好的理解SLAM的开始(这句话翻译的自己读着都别扭)。对于了解SLAM的同学,我们将展现一个完整的、使用用EKF的SLAM解决方案。完整并不意味着完美,意思是我们会涉及实现SLAM的所有基本步骤。值得注意的是,SLAM问题并没有完全被决解,此领域依然有很多值得研究的地方。

为了方便大家,这里提供了所有代码,所以只需要下载、编译、安装到硬件中运行即可。

2. 关于SLAM

SLAM这个术语是Simultaneous Localization And Mapping的缩写形式。最初由Hugh Durrant-Whyte 和 John J. Leonard[7] 基于 Smith, Self and Cheeseman [6]早期的工作研发的。Durrant-Whyte 和 Leonard 刚开始的时候称其为SMAL,但后来改了。SLAM关注的问题是使用移动机器人在未知环境建图,同时使用此地图在此环境中进行导航

SLAM有很多部分组成: Landmark extraction, data association, state estimation, state update and landmark update(保持原文)。每一个小部分都有很多方法来解决,我们将展示每部分的例子,这也说明某些部分是可以使用新的方法来实现的·······SLAM可以应用的2D和3D运动中,我们这里只考虑2D运动。

3.硬件

机器人:里程计、相机、机器人控制系统、激光扫描仪、声纳。

4. SLAM步骤
5. 激光数据
6. 里程计数据

提供机器人大致的位置,里程计的输出当作EKF的初始估计值;里程计数据和激光数据需要时序对应,为了解决时序不匹配,可以在相同的时间点对其中一个数据进行插值。对里程计进行插值是最容易的,因为控制是已知的。而激光下一次的测量是多少很难预测。

7. 路标
  • 所谓路标:是那些容易被再次观测到的且明显跟环境不一样的特征。
  • 决定让机器人识别的路标点应该足够多,否则机器人会走丢。
  • 路标点应该是静止的,选择人为路标点是很糟糕的想法,原因很明显,如果路标点不在同一个地方,机器人如何确定给定的路标点在哪里呢?(路标点在哪都不知道,又何来的估计自己的位置呢?)
  • 适合作为路标点的关键点应具有以下特性:
    • 容易被再次观测到
    • 明显区别于其他的关键点
    • 数量要多
    • 需要是静止的
8. 路标点提取

使用激光扫描仪的基本路标点提取算法:Spikes 和 RANSAC。

  相关解决方案