大数据,机器学习,人工智能

使用卡尔曼滤波器和路标实现机器人定位

2019-02-27  本文已影响2人  AI研习社

本文为 AI 研习社编译的技术博客,原标题 :

Robot localization with Kalman-Filters and landmarks

作者 | Jannik Zürn

翻译 | 郭乃峤、ThomasGui

校对 | Disillusion 审核 | 酱番梨 整理 | 立鱼王

原文链接:

https://medium.com/@jannik.zuern/robot-localization-with-kalman-filters-and-landmarks-cf97fa44e80b

让我来介绍一下——Robby 是个机器人。技术上说他是个过于简单的机器人虚拟模型, 但对我们的目的来说足够了。Robby 迷失在它的虚拟世界,这个世界由一个2维平面构成,里面有许多地标。他有一张周围环境的地图(其实不需要地图也行),但是他不知道他在环境中的确切位置。

Robby(红色大圆圈)和2个地标(红色小圆圈)

这个文章的目的是教你用地标检测和扩展卡尔曼滤波器一步一步实现机器人定位。

第一部分-线性卡尔曼滤波器

卡尔曼滤波器可以理解为一种感知充满噪声的世界的方式。当我们要定位机器人在哪里,依赖两个条件:我们知道机器人如何从一个时刻移动到下个时刻,因为我们以某种确定的方式命令它移动。这称为状态转移(即机器人如何从一个状态转移到另一个)而且我们能用各种传感器如相机,激光雷达或回波探测器(德语:毫米波雷达)测量机器人的环境。问题是这2类信息都受到噪声影响。我们不能精确地知道机器人从一个状态转移到下一个状态的精确程度,因为执行部件不完美。而且我们不能无限精确地测量物体间的距离。这就是卡尔曼滤波器发挥作用的场合。

卡尔曼滤波器允许我们结合当前状态的不确定和它的传感器测量的不确定来理想地降低机器人的总体不确定程度。这两类不确定通常用高斯概率分布或正态分布来描述。高斯分布有2个参数:均值和方差。均值表示最高概率的值,方差表示我们认为这个均值有多大的不确定性。

卡尔曼滤波器运行2个步骤。在预测步骤,卡尔曼滤波器以当前状态变量值生成预测和不确定度。当观测到下一次测量结果(必然有一定的误差,包含噪声),就能以加权平均的方式更新这些预测,确定程度高的预测给予更高的权重。算法是递归的。它可以实时运行,仅需要当前测量输入和前个计算的状态和不确定矩阵;不需要更多的过去信息。

因为Wikipedia 关于卡尔曼滤波器的信息流图太好了,我这里就直接用它了:

上一篇下一篇

猜你喜欢

热点阅读