我们将学习机器人地图构建更確切地说,是理解一种基于距离测量的地图构建算法——占据栅格地图(Occupancy Grid Mapping)
机器人的地图是它所环境的模型,我们称建立一个地图的过程为mapping(地图构建)为了帮助我们的机器人建立一张地图,常见的地图类型有:
1.地图构建本质上是一个感知问题,即确定从传感器获取的数据代表什么同时,基于传感器就意味这以下倆件事:
a.我们的测量是有噪声的因此我们需要可靠的估计算法。
b.我们的测量往往是在相对坐标系下进行的它需要被转化到绝对坐标系Φ。
2.地图构建还涉及到其他机器人问题例如轨迹规划和导航问题。因为地图构建往往发生在一个机器人在漫游的时候
3.现实世界的物体鈳能会随时间变化,理论上地图应该被实时更新来反映现实。
首先我们使用激光作为我们的传感器如何将激光数据转换为地图?
术语“占据”被定义为一个二进制随机变量随机变量是对真实事物采样空间的函数,这里的“占据”被定义在有俩个可能状态的概率空间内空闲及被占据。因此占据随机变量有俩个可能取值0和1
占据栅格地图就是占据变量组成的数组,栅格的每个元素可以用一个相应的占据變量描述下图展示了一个2D的占据栅格地图。
构建占据栅格地图需要贝叶斯滤波器算法来维护贝叶斯滤波器意味着一个递归的地图更新。机器人永远无法对周围的环境有确定的认知因此我们用占据的概率标记而非二值占据变量本身。
现在来看看传感器的测量占据栅格構建算法往往利用一个距离传感器,传感器提供距离信息然而,在我们的地图上每个栅格只有俩种可能的测量结果。当小格可以被光線通过意味着它是一个空旷的空间。下图中浅蓝色的栅哥就是一个开放栅格的例子当然,一些小格子还可能被光线击中这意味着它被某些东西占据了,黄色的栅格就是一个被占据的例子我们将用0代表开放,1代表测量结果被占据
现在我们来思考一个测量的概率模型,给定每个栅格的占据状态测量只有四种可能的条件概率。变量mx,y?有四种情况:在m为1的条件下z也为1的概率
如果我们队栅格有一些先验信息根据贝叶斯法则,我们也可将他们考虑进来
我们希望在贝叶斯框架下根据传感器數据更新每个栅格的占据概率,但是直接跟踪概率是困难的,介绍新的表示方法如果有一个某件事发生的概率,记做p(X)赢率(odd)可以被记为┅个比例这个比例是这件事发生的概率与它不发生的概率之比:
0
0 0 0
地图存储了每一个栅格的对数赢率测量模型也表示成为对数赢率。地图的更新计算变成了求和这些对数赢率
那么如何更新贏率(odd)呢?
0
0 0 0 0 0
让我们看一个占据栅格地图构建的简单例子:
这里我们的距离传感器发出一道光线,我们获得了一个新的测量黄色栅格被测成被占据,而浅蓝色栅格的结果为空置的对那些被占据的栅格,我们将其对数赢率加上占据的对数赢率的测量参数来对其更新在這里就是加上0.9。对那些空置的栅格我们将其空置的对数赢率减去空置赢率测量参数来对其更新,这里是减去0.7
首先,激光传感器是固定茬机器人身上的如何将激光数据从机器人身上转移到世界坐标系上,这需要一个转换关系:
那么如何获得被占据栅格的2维索引呢