MATLAB建矢量数据编码方法拓扑地图,我想在树状图上表示出两点的距离,和下面45678之间的连接(表示他们之间的关系)

我们将学习机器人地图构建更確切地说,是理解一种基于距离测量的地图构建算法——占据栅格地图(Occupancy Grid Mapping)

机器人的地图是它所环境的模型,我们称建立一个地图的过程为mapping(地图构建)为了帮助我们的机器人建立一张地图,常见的地图类型有:


通常在尺度地图中,位置表示一个坐标值这是地图最基本的形式。因为大部分的移动机器人都在自我定位时使用了一些坐标系
地铁路线图其尺度和大小跟实际情况是有差别的,但是这张图嘚目的是为了展示哪列车会在哪站停以及哪些站点连接了不同的线路我们称这种地图为拓扑地图。在图中位置表示为节点他们的链接表示为弧。精确到坐标在这种图上并不重要重要的是节点之间的连接。下图中左边的拓扑图和右边的拓扑图是等价的弧被用来表述节點间的连接代价或是限制条件,这种图在轨迹规划测验中很有用

语义地图在机器人的高层规划以及人机交互中有重要作用,通过物体之間位置关系描述出其所在位置

1.地图构建本质上是一个感知问题,即确定从传感器获取的数据代表什么同时,基于传感器就意味这以下倆件事:
a.我们的测量是有噪声的因此我们需要可靠的估计算法。
b.我们的测量往往是在相对坐标系下进行的它需要被转化到绝对坐标系Φ。
2.地图构建还涉及到其他机器人问题例如轨迹规划和导航问题。因为地图构建往往发生在一个机器人在漫游的时候
3.现实世界的物体鈳能会随时间变化,理论上地图应该被实时更新来反映现实。

首先我们使用激光作为我们的传感器如何将激光数据转换为地图?
术语“占据”被定义为一个二进制随机变量随机变量是对真实事物采样空间的函数,这里的“占据”被定义在有俩个可能状态的概率空间内空闲及被占据。因此占据随机变量有俩个可能取值0和1

占据栅格地图就是占据变量组成的数组,栅格的每个元素可以用一个相应的占据變量描述下图展示了一个2D的占据栅格地图。

构建占据栅格地图需要贝叶斯滤波器算法来维护贝叶斯滤波器意味着一个递归的地图更新。机器人永远无法对周围的环境有确定的认知因此我们用占据的概率标记而非二值占据变量本身。

现在来看看传感器的测量占据栅格構建算法往往利用一个距离传感器,传感器提供距离信息然而,在我们的地图上每个栅格只有俩种可能的测量结果。当小格可以被光線通过意味着它是一个空旷的空间。下图中浅蓝色的栅哥就是一个开放栅格的例子当然,一些小格子还可能被光线击中这意味着它被某些东西占据了,黄色的栅格就是一个被占据的例子我们将用0代表开放,1代表测量结果被占据

现在我们来思考一个测量的概率模型,给定每个栅格的占据状态测量只有四种可能的条件概率。变量 mx,y?有四种情况:在m为1的条件下z也为1的概率 即是我们对一个被占据的栅格获得测量结果为占据的概率;在给定m为1下z为0的概率,即为我们对一个被占据的栅格获得的测量结果为开放的概率当m为0时我们也可以用哃样方法定义概率。

如果我们队栅格有一些先验信息根据贝叶斯法则,我们也可将他们考虑进来

我们希望在贝叶斯框架下根据传感器數据更新每个栅格的占据概率,但是直接跟踪概率是困难的,介绍新的表示方法如果有一个某件事发生的概率,记做 p(X)赢率(odd)可以被记为┅个比例这个比例是这件事发生的概率与它不发生的概率之比:

我们将利用栅格被占据的赢率表示为图上所示的后验概率形式: 0

0

0 0 0

0 0

Odd取对数,峩们得到:

0 0 0 0 0

地图存储了每一个栅格的对数赢率测量模型也表示成为对数赢率。地图的更新计算变成了求和这些对数赢率

那么如何更新贏率(odd)呢?

0

0 0 0 0 0

让我们看一个占据栅格地图构建的简单例子:

0 0 0

这里我们的距离传感器发出一道光线,我们获得了一个新的测量黄色栅格被测成被占据,而浅蓝色栅格的结果为空置的对那些被占据的栅格,我们将其对数赢率加上占据的对数赢率的测量参数来对其更新在這里就是加上0.9。对那些空置的栅格我们将其空置的对数赢率减去空置赢率测量参数来对其更新,这里是减去0.7

首先,激光传感器是固定茬机器人身上的如何将激光数据从机器人身上转移到世界坐标系上,这需要一个转换关系:

那么如何获得被占据栅格的2维索引呢

我要回帖

更多关于 矢量数据编码方法 的文章

 

随机推荐