SLAM:即时定位与地图构建的入门指南

什么是SLAM?

即时定位与地图构建(simultaneous localization and mapping,简写成SLAM),用于环境模型(map)的并行构建,以及在其中移动机器人的状态估算。换句话说,SLAM为你提供了一种实时跟踪机器人在世界上的位置、并识别地标(例如建筑物,树木,岩石和其他世界特征)位置的方法。除了本地化之外,我们还希望建立机器人环境模型,这样我们就有了一个物体的概念,以及围绕机器人的地标,以便我们可以使用此地图数据来确保机器人在世界各地移动时走在正确的道路上。因此,构建地图的关键是机器人本身可能会由于其运动不确定性而失去对其位置的跟踪,因为现有的地图是不存在且我们是使用机器人并行构建地图的。而这就是SLAM发挥作用的地方。

SLAM的工作原理:

同时定位和地图绘制(SLAM)的基础是从机器人的传感器和随时间推移的运动中收集到信息数据,然后使用有关测量和运动的信息来重建世界地图。在这种情况下,我们将机器人定位在2D网格世界中,因此基于图的SLAM方法通过提取原始传感器的测量值来构造简化的估计问题。这些原始测量值将替换为图中的边缘,然后可以将其视为虚拟测量值。假设我们有一个机器人和初始位置 x0 = 0 和 y0 = 0 。对于此示例,为了保持简单,我们并不关心方向。让我们假设机器人在X方向上向右移动了10。所以,在理想世界中,你可以知道运动后的位置x1与x0 + 10相同,即x1 = x0 + 10,同理,y1y0相同。

如图,机器人在x方向上的位移为10:

但是根据卡尔曼滤波器(https://medium.com/@krunalkshirsagar/the-curious-case-of-kalman-filters-f29c3d17b121) 和其他各种机器人技术,我们知道位置实际上是不确定的。因此,与其假设我们的XY坐标系中的机器人精确地向右移动了10个位置,不如理解成它在运动更新后的实际位置是以(10,0)为中心的高斯分布,但是机器人也可能在其他地方。

如图:运动更新后,高斯以机器人的位置为中心

这是x变量的高斯数学公式:当这两个条件相同时,与其将x1设置为x0+10,不如用高斯函数来表示,此时高斯函数达到峰值。因此,如果你减去x1-x0-10,把它变成一个正方形,然后将其转换为高斯,我们将得到与x1和x0相关的概率分布。我们可以对y做同样的转换。根据我们的运动y不变,因此y1和y0尽可能靠近。

这两个高斯的乘积现在是我们的约束条件。目标是在位置x0为(0,0)的情况下最大化位置x1的可能性。因此,Graph SLAM所做的是,它使用一系列此类约束条件来定义概率。 假设我们有一个在某个空间中移动的机器人,GRAPH SLAM会收集其初始位置(0,0),最初也称为“初始约束”,然后收集许多相对约束,这些相对约束会将每个机器人姿态与之前的机器人姿态相关联作为相对运动约束。例如,让我们使用机器人可以在各个位置看到的地标,这是每次机器人看到地标时的相对测量约束因此,Graph SLAM收集这些约束,以便找到最可能的机器人路径配置以及地标位置,即映射过程。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值