位置跟踪 - 带计步器和WIFI的Sigma Point卡尔曼滤波器

时间:2013-02-26 15:15:18

标签: android math statistics kalman-filter

我正在建立一个使用android的室内位置跟踪应用程序。

我已经成功实施了一个计步器,它计算步数并将它们转换为上一次WIFI / GPS修正的更改,以更准确地跟踪建筑物内的用户位置。

计步器就像魅力一样,我的结果非常准确,但是, 当获得新的WIFI修复时,路径变得不准确并且跳跃。

我在网上搜索并阅读了很多论文和案例研究,我发现我需要某种过滤器来平滑结果。

我已经缩小了我需要使用粒子滤波器或Sigma-Point卡尔曼滤波器(或扩展卡尔曼滤波器)

我已经阅读了很多关于这些过滤器的文章,我在UDACITY.com上看过这个课程但仍然无法得到它。

简而言之,我的计步器输出是基于手机标题的步数的新经度和纬度,WIFI位置管理器输出也是纬度和经度。

有人可以为我提供一个简短的阐述,说明我应该做些什么来平滑新的WIFI修复到我当前的计步器路径?

1 个答案:

答案 0 :(得分:3)

要使用卡尔曼滤波器(线性或扩展),您需要:

  1. 定义你的状态空间:大概是这个位置和速度 人(经验法则:如果您实际测量它,则仅包括加速度)。 您可以在Lat / Lon坐标中执行此操作,而不用担心 非线性,因为人们走得那么远。
  2. 定义您的测量空间:即您的传感器告诉您的内容以及相关信息 到州空间。
  3. 定义植物噪声模型:确定真实世界的运动特征 你的目标;通常这只是一个协方差矩阵,在统计上描述了如何 目标的动作可以在观察之间发生变化。
  4. 定义测量噪声模型:估算传感器报告的数据中的误差; 同样,这是一个统计模型,通常用测量误差的协方差表示。
  5. 我的猜测是你的问题来自(4):你没有适当地模拟基于计步器的子系统和基于GPS固定的子系统的测量误差。

    也许值得尝试一个基本的线性卡尔曼滤波器来解决你的问题;所涉及的数学运算有点复杂,可以或多或少地用作黑盒子(一旦你定义了上面的模型);扩展方法(sigma-point KF或粒子过滤)通常需要更多的问题域特定调整。