📜  同时定位和映射

📅  最后修改于: 2022-05-13 01:58:08.206000             🧑  作者: Mango

同时定位和映射

SLAM 是同时对机器人姿态和环境地图的估计。 SLAM 很困难,因为定位需要地图,而建图需要良好的姿态估计

  • 本地化:在给定地图的情况下推断位置。
  • 映射:推断给定位置的地图。
  • SLAM :学习地图并同时定位机器人。

SLAM 问题很难,因为它是一种悖论,即:

  • 为了构建地图,我们现在需要位置。
  • 为了确定我们的位置,我们需要一张地图。

这就像一个鸡蛋问题。

SLAM 有多个部分,每个部分都可以通过多种不同的方式执行:

  • 地标检测
  • 数据关联
  • 状态估计
  • 状态更新
  • 地标更新

一步一步的SLAM

SLAM 步骤 1

>SLAM 步骤 2

大满贯第 3 步

SLAM 步骤 4

  • SLAM 过程包括以下步骤:
    • 第一步,它使用环境来更新机器人的位置。我们可以使用里程计,但它可能是错误的,我们不能只直接依赖里程计。
    • 我们可以使用激光扫描环境来校正机器人的位置。但是,它在水下等某些环境中不起作用。
    • 因此,可以通过从环境中提取特征来更好地识别机器人的位置。

扩展卡尔曼滤波器

扩展卡尔曼滤波器(EKF)是 SLAM 过程的核心。它是对非线性过程或测量关系的估计。它负责根据地标更新机器人认为它所在的位置。

激光和里程计数据

激光数据是从扫描中获得的读数,而里程计数据的目标是提供机器人的大致位置。里程计数据和激光数据的难点在于正确计时。

地标:地标是可以很容易地重新观察并与环境区分开来的特征。这些用于定位机器人。地标应该很容易获得,可以相互区分,环境中应该是丰富的并且是固定的

地标提取

在选择和决定地标之后,我们需要从机器人传感器的输入中提取地标。使用的两个基本地标提取是 Spikes 和 RANSAC。

  • 尖峰

尖峰地标依赖于两个激光束之间变化很大的景观。这意味着该算法将在平滑环境中失败。

长钉

  • RANSAC(随机抽样和共识):

RANSAC 通过随机采样激光读数找到地标,然后使用最小二乘近似法找到贯穿这些读数的最佳拟合线。

RANSAC 共识

这背后的主要思想是将每个点分类为异常值和内部值,同时仅使用内部值来找到最适合该线的值并丢弃异常值。

数据关联

数据关联或数据匹配是将来自不同(激光)扫描的观察到的地标相互匹配。数据关联存在一些挑战,

  • 该算法可能不会重新观察每一帧中的地标。
  • 该算法错误地将地标与先前观察到的地标相关联。

执行数据关联的方法很少,我们将首先讨论最近邻算法:

  • 首先,当您从激光扫描中获取数据时,使用地标提取来提取所有可见的地标。
  • 之后,我们将所有提取的地标与可以观察到 >N 次的最近的地标相关联。
  • 现在,我们输入提取的地标列表和数据库中先前检测到的地标列表,如果地标已经在数据库中,我们将它们的计数增加 N,如果它们不存在,则将它们的计数设置为1.

在上述步骤之后,我们需要执行以下更新步骤:

  • 状态估计:在这一步中,我们使用里程表数据来获得当前状态估计。
  • 状态更新:在这个阶段,我们通过重新观察地标来更新我们新的估计状态。
  • 地标更新:在这一步中,我们添加在当前阶段检测到的新地标。

SLAM的应用

  • SLAM 问题是让机器人自主的基础。它有各种各样的应用,我们想用地图来表示环境,如室内、水下、外太空等。

参考:

  • 布法罗大学 SLAM 幻灯片