1

所以我正在尝试学习如何使用卡尔曼滤波器在某个时候在小型机器人中实现它们。该视频和以下网页对于我了解这些过滤器来说是非常好的来源:

YouTube:卡尔曼滤波器教程
http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx

让我们以一个简单的 1D 案例为例,其中我有一个传感器平台,两侧都有 1 个距离传感器,我们会说 L 是左侧传感器,R 是右侧。机器人被绑定在一个 100 个单位长的盒子中,每个传感器的范围只有 10 个单位,我们认为其中任何大于 ~7.5 的值都是无效的。

当 X <= 95 时平台将向前移动,然后当 X >= 5 时反向移动,我想使用过滤器来估计 X,并在靠近墙壁时使用来自 L/R 的数据来校正 X。我的论点如下:

  1. 在视频中的15:50,弗朗西斯·戈弗斯说,如果您丢失了一个传感器,那么错误将达到无穷大,您将能够判断出您的传感器没有提供好的数据。但是,当我实现网页上显示的 1D 案例时,即使我提供了变化很大的数据,错误也会继续减少。为什么?错误不应该增加吗?

  2. 关于 1,当错误变得太高或我知道传感器提供无效数据时我该怎么办?除非另有说明,否则我是否根本不将传感器包括在校正步骤中?

很抱歉,如果以前有人问过这些问题,我通常很擅长自己寻找答案,但这些问题似乎有点晦涩(或更可能答案很明显),但我似乎无法找到它我。

4

1 回答 1

1
  1. 我根本不熟悉那个视频,但他可能的意思是,如果你反复添加过程噪声(P = FPF' + Q)但从不P通过测量减少,那么P只能增加。不过,总的来说,我会提醒您不要将协方差矩阵P视为滤波器的输出。您会注意到它不受您的测量值(除了缺少它们)或您的状态的影响。它只会受到重复应用您自己对过程和测量噪声(QR)的估计的影响,因此如果您错了(例如,当您尝试使用相同的垃圾测量时R),您仍然会得到相同的结果P
  2. 卡尔曼滤波器的基本假设之一是您的所有噪声都是高斯(经典钟形曲线分布)和零均值。您可以在分布上进行大量修改,但非常重要的是您的噪声平均为零。这写为E(v) = 0,期望值。如果您的传感器读数为“大约 5”,或者5 + v其中是一个均值为零v的随机变量,那么平均您的传感器读数将使您的结果非常接近 5。这就是您的传感器在范围内时的工作方式。的幅度是您估计的,因此过滤器知道需要多少平均。如果您的传感器超出范围vR那么你最好不要将它包括在测量中。当传感器读数超出范围时,该值不是“大约 10”,而是“可能至少 10 甚至更多”,并且您的噪音有偏差。
于 2015-02-17T17:42:36.250 回答