从系列:理解卡尔曼滤波器
Melda Ulusoy, MathWorks
观看这个视频了解卡尔曼滤波器的工作原理。卡尔曼滤波器结合两个信息源,预测状态和噪声测量,以产生系统状态的最优无偏估计。滤波器是最优的,因为它使估计状态的方差最小。
这个例子引入了一个线性单状态系统,在这个系统中,测量的输出与状态(汽车的位置)相同。视频解释了影响系统的过程和测量噪声。您将了解到,在存在不确定测量的情况下,卡尔曼滤波器计算一个具有最小方差的无偏状态估计。该视频通过说明概率密度函数展示了卡尔曼滤波器的工作原理。您可以通过下载MATLAB来创建视频中讨论的概率密度函数®代码从MATLAB中央文件交换。
录制时间:2017年3月27日
在这个视频中,我们将讨论卡尔曼滤波算法的工作原理。让我们从一个例子开始。当你绝望地盯着账单时,杂志上的一则广告吸引了你的眼球。如果你参加一个竞赛,设计一辆使用GPS传感器测量位置的自动驾驶汽车,你就可以赚到100万美元。
你的车应该在100个不同的地形上行驶1公里。每次,它都必须在尽可能接近终点线的地方停下来。比赛结束时,计算各车队的平均最终位置,误差方差最小、平均最终位置最接近1公里的车主获得大奖。
这是一个例子。让这些点代表最终的位置,红色的点代表不同队伍的平均最终位置。基于这些结果,1队将会输,因为有偏见的平均最终位置,尽管它有小的方差。第二队也会输。它的平均最终位置在终点线上,但它有很高的方差。获胜者将是第三队,因为它的方差最小,而且它的平均最终位置在终点线上。
如果你想成为百万富翁,你就不要完全依赖GPS读数,因为它们可能会很吵。为了满足赢得比赛所需的标准,你可以使用卡尔曼滤波器估计汽车的位置。让我们看看这个系统来理解卡尔曼滤波器是如何工作的。
给汽车的输入是节流阀。我们感兴趣的输出是汽车的位置。对于这样的系统,我们会有多个状态。但是在这里,为了给你们直观的感觉,我们假设一个过于简单的系统,汽车的输入是速度。这个系统只有一个状态,汽车的位置。我们测量状态矩阵C等于1。
尽可能准确地知道y是很重要的,因为我们希望赛车尽可能地接近终点线。但是GPS的读数会很嘈杂。我们用v来表示测量噪声,v是一个随机变量。类似地,还有过程噪声,它也是随机的,可以表示风或汽车速度变化的影响。
尽管这些随机变量没有规律可循,但利用概率论,我们可以知道它们的平均性质。v,例如,被认为是来自一个高斯分布与零均值和协方差r .这意味着如果我们测量的位置车,假设100次在同一位置,这些数据中的噪声将值,其中大部分位于零均值和更少的位于远离它。这就得到了高斯分布,用协方差R来描述。
因为我们有一个单一的输出系统,协方差R是标量,等于测量噪声的方差。同样地,过程噪声也是随机的,并且假设是协方差q的高斯分布。现在,我们知道测量是有噪声的,因此我们测量的并不能完全反映汽车的真实位置。如果我们知道汽车模型,我们可以通过输入来估计位置。但这个估计也不会是完美的,因为现在我们在估计x,由于过程噪声,它是不确定的。这就是卡尔曼滤波器发挥作用的地方。它将这两种信息结合起来,从而得出在过程和测量噪声存在时汽车位置的最佳估计。
我们将借助概率密度函数直观地讨论卡尔曼滤波器的工作原理。在初始时间步长,k - 1,汽车的实际位置可以在估计的x帽(k - 1)附近的任何地方。这个不确定性用这个概率密度函数来描述。
这幅图还告诉我们,汽车很可能会在这个分布的均值附近。在下一个时间步,估计中的不确定性增加,以更大的方差表示。这是因为在时间步长k - 1到k之间,汽车可能撞到了一个坑,或者车轮可能滑了一点。因此,它移动的距离可能与我们通过模型预测的距离不同。
正如我们之前讨论过的,关于汽车位置的另一个信息来源来自测量。这里的方差表示噪声测量的不确定度。再次强调,真实位置可以是均值附近的任何位置。
现在我们有了预测和测量,问题是,对赛车位置的最佳估计是多少?结果表明,估计汽车位置的最佳方法是将这两种信息结合起来。这是通过将这两个概率函数相乘来完成的。得到的乘积也是一个高斯函数。
这个估计的方差比之前的任何一个估计的方差都小,这个概率密度函数的均值为我们提供了汽车位置的最优估计。这是卡尔曼滤波器的基本思想。但要想赢得比赛,你需要能够实现算法。我们将在下个视频中讨论这个。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。