关于这个简单的一维卡尔曼案例的 2 个问题

问题描述 投票:0回答:1

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

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

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

当X <= 95, then reverse while X >= 5时平台会向前移动,我想使用滤波器来估计X,并在靠近墙壁时使用从L/R传入的数据来校正X。我的争论点如下:

  1. 在视频中15:50,弗朗西斯·戈弗斯 (Francis Govers) 表示,如果您丢失了传感器,那么误差将达到无穷大,您将能够看出您的传感器没有提供良好的数据。然而,当我实现网页上呈现的一维情况时,即使我向其提供变化很大的数据,误差也会继续减少。为什么?误差不是应该增大吗?

  2. 关于 1,当误差太高或者我知道传感器给出无效数据时我该怎么办?我是否只是不将传感器包含在校正步骤中,除非有其他情况?

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

position sensors robotics kalman-filter proximitysensor
1个回答
1
投票
  1. 我根本不熟悉那个视频,但他可能的意思是,如果你反复添加过程噪声(
    P = FPF' + Q
    )但从未通过测量减少
    P
    ,那么
    P
    只能增加。 但总的来说,我会警告您不要将协方差矩阵
    P
    视为过滤器的 output。 您会注意到它不受您的测量结果(除了缺乏测量结果之外)或您的状态的影响。 它只会受到重复应用您自己的过程和测量噪声估计(
    Q
    R
    )的影响,因此,如果您错了(例如,正如您尝试的那样,使用相同的
    R
    放入垃圾测量值),您仍然会得到同样的
    P
  2. 卡尔曼滤波器的基本假设之一是所有噪声都是高斯(经典钟形曲线分布)和零均值。 您可以在分布上做很多修改,但将噪声平均为零非常重要。 这被写为
    E(v) = 0
    ,即期望值。 如果您的传感器读数“大约 5”或
    5 + v
    ,其中
    v
    是一个具有 零平均值 的随机变量,那么对您的传感器读数进行平均将得到非常接近 5 的结果。这就是您的传感器在处于范围。
    v
    的大小是您在
    R
    中估计的值,因此过滤器知道需要多少平均。 如果您的传感器“超出范围”,那么您最好不要将其包含在测量中。 当传感器读数超出范围时,该值不是“大约 10”,而是“可能至少 10,甚至更多”,并且您的噪声存在偏差。
© www.soinside.com 2019 - 2024. All rights reserved.