自治系统

用MATLAB设计、开发和测试自治系统

粒子过滤器背后的直觉

Brian Douglas的自主导航:第5部分

本文来自布莱恩•道格拉斯他是YouTube控制系统和自主应用的内容创作者。


以前的文章,我们学习了什么是定位,以及如何为机器人和其他自主系统制定定位问题。在接下来的两篇文章中,我们将引用MATLAB示例中演示的定位问题,使用蒙特卡罗本地化TurtleBot.这个例子模拟了一个TurtleBot在办公大楼中移动,测量环境,并使用一个工具估计其位置粒子滤波

如果你不熟悉粒子过滤器,你可能会感到困惑,为什么解决方案中会出现一堆蓝点,并在每个时间步骤中移动,然后在60次左右的更新后以某种方式收敛到TurtleBot的真实位置。过滤器在做什么,这些看似随机的点是如何帮助我们确定机器人的位置的?

为了理解粒子滤波器是如何解决定位问题的,我们应该通过一个完全不涉及机器人的思考练习来开发滤波器背后的一点直觉。

想象一下,你在一个陌生、漆黑的房间里醒来。你以前从来没有来过这个房间,但是给了你一张地图,上面有四面墙,两扇锁着的门,以及开门按钮的位置。你有一盏小灯,可以让你看到前面几英尺的地方,但除此之外就是一片黑暗。我们的目标是确定我们在地图上的位置,然后用我们的位置找到让我们出去的按钮。这是一个本地化问题。

一开始,我们不知道我们在房间的什么地方。我们可以说,我们在地图上的任何地方,面对任何方向都是同样可能的。

我们打开灯,看到我们正对着三英尺外的一堵墙。通过第一次观察,我们能确定我们在地图上的位置吗?

不确定。这个房间里有四面墙,我们可以面对其中的任何一面,或者每一面墙上的任何一面。然而,我们可以看出我们不是在看角落或门,我们也不是在房间的中间,因为墙很近。知道我们面对着一堵特定距离外的墙,我们就会被限制在这些位置和方向中的一个。

然而,由于所有的观测都有一定的噪声和误差,我们可能会声称,我们可能比我们估计的更接近或更远一些,我们可能会稍微转向一个方向或另一个方向。此外,我们也不能肯定地说我们不在房间中间,因为我们看到的可能是地图上没有的临时平坦障碍物。这种情况发生的可能性较低,但仍有可能,所以我们不能排除这种可能性。

因此,在第一次测量之后,我们可以说我们所在位置的概率分布如下图所示。亮黄色表示概率较高,暗黄色表示概率较低。

这已经是非高斯概率分布了。卡尔曼滤波器需要高斯概率分布,这就是为什么我们不能在定位场景中使用它。我们在第一次观察时就已经打破了这个约束!另一方面,粒子滤波器没有这个限制这就是为什么我们最终要用它来解决这个问题。

好了,铺垫足够了,让我们回到我们的思考练习!记住,我们在这个漆黑的房间里,我们只能看到前面几英尺外的一堵墙。这是有道理的,我们不能确定从这一次测量中我们在哪里,所以我们需要四处走动,进行另一次观察。假设我们向左转,继续沿着墙走大约30英尺,最终到达一个角落。关于我们现在所处的位置,我们能推断出什么?我们知道我们在看一个角落,所以我们一定在这四个区域之一,对吧?

然而,我们感觉我们走了30英尺,这几乎是整堵墙的长度,我们没有看到一扇门。因此,我们可以排除右下角和右上角作为可能的位置,因为我们必须经过门才能到达这些角落。

这就是我们如何利用过去观察的知识,以及我们如何移动的知识,来更好地估计我们所处的位置。现在概率分布在左边两个角最高,其他地方都低。我们正在缩小我们的确切位置!

让我们再向左拐一次,然后继续走。走了大约15英尺,我们来到一扇门前。现在我们有两个可能的位置:面对底部的门,或者面对右边的门。然而,根据我们过去的观察以及我们如何转弯和走了多远的知识,我们可以自信地说,我们看到的是底部的门。在这张地图上只有一个地方,我们可以左转,走30英尺,然后再左转,走15英尺,到达一扇门。

知道了我们的位置,我们终于可以用地图导航到出口按钮,离开这个疯狂的房间!

正如我们所看到的,没有一次观测足以确定我们在地图上的位置或位置,然而,通过连续的观测,我们能够将我们认为我们所在的位置整合到更小的区域中,进一步缩小概率分布,直到我们确信我们知道我们在哪里。

我们在这个例子中所做的基本上和粒子滤波器所做的是一样的。如果我们在MATLAB中回顾TurtleBot的例子,我们可以开始看到蓝点是如何代表机器人在办公大楼中的可能位置的。当过滤器运行时,它将环境观测(传感器测量)与机器人在测量之间移动的距离和方向(运动模型)的估计(环境模型)混合在一起,以估计其在地图上的位置(环境模型)。直觉上,这是有道理的,对吧?那么,我们如何赋予机器人这种能力呢?它是如何记住多次连续的测量结果,并随着时间的推移不断锁定自己的确切位置的?好吧,正如我们已经说过的,一种流行的方法是使用粒子过滤器,我们将在下一篇文章中详细讨论它。


要了解更多关于这些功能的信息,您可以观看有关“一个自主导航,第2部分:理解粒子过滤器”。您还可以了解更多关于蒙特卡洛定位算法在这里.谢谢你坚持到最后!如果你还没有,请订阅并关注这个博客,继续获得即将到来的内容的更新。

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。