用于GPS安卓的卡尔曼滤波器

时间:2012-03-16 10:38:46

标签: android gps kalman-filter

为了从GPS获得更准确的数据,建议使用卡尔曼滤波器。但我找不到任何教程如何实现GPS的卡尔曼滤波器,android。

2 个答案:

答案 0 :(得分:10)

GPS数据已经过卡尔曼过滤。这是在GPS接收器内完成的。 如果您创建自己的卡尔曼滤波器,请不要期望位置(纬度/经度)的精度增益。 此外,你没有内部GPS接收器的信息。它在输出一个位置之前,每秒/每秒输入其内部卡尔曼滤波器。

在您自己的后期处理过滤器中,您可能会获得更平滑的轨迹(与可视化位置相关)。但更平滑并不准确,只能看得更愉快。

另一个主题是GPS位置是否必须实时可用,例如在屏幕上显示当前位置。如果你想在之后平滑你的音轨(非实时)你可能会成功,但我不会在那种情况下使用卡尔曼滤波器。 卡尔曼滤波器非常适合实时滤波,对于后期处理,您可以尝试使用三角窗滤波器的滑动平均值(易于实现,而卡尔曼非常复杂)

答案 1 :(得分:6)

你可以通过谷歌和维基百科找到很多东西,但有一个基本的直觉可能是有用的。

基本上,卡尔曼滤波器意味着重复应用两步过程:

  1. 猜猜
  2. 使用测量来更新猜测
  3. 卡尔曼滤波器形成了一个简单的想法:当您知道自己的速度有多快时,您可以根据上次报告的GPS位置预测地理位置,然后在新的GPS报告进入时进行更新。

    我们将在这里讨论两个变量:平均值,这是您最好的猜测,以及不确定性,它代表了猜测的准确性。就GPS而言,您将谈论GPS位置和误差范围(例如10米)。

    每次更新都会增加你的不确定性,因为你并不确定速度没有改变。当有新的测量值时,您可以更新位置和确定性。

    平均值和不确定度可以表示为贝尔曲线(正态分布),X轴上的变量以及它在Y轴上具有该值的概率:

    Normal distribution

    这里μ(mu)是平均值,σ(sigma)是不确定性。任何这样的曲线都可以用这两个值来描述。

    诀窍在于,您实际上可以实现多个两个钟形曲线(您的预测和测量)并获得一个代表组合知识的新曲线,当您在完成一些预测后获得新的GPS位置时,您将会这样做。你可以在维基百科和其他网站上找到这个数学。