3

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

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

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

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

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

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

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

有人可以简要说明我应该做些什么来使新的 WIFI 修复平滑到我当前的计步器路径吗?

4

1 回答 1

3

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

  1. 定义你的状态空间:大概这是人的位置和速度(经验法则:如果你实际测量它,只包括加速度)。您可能可以在纬度/经度坐标中执行此操作,而不必担心非线性,因为人们不会走那么远。
  2. 定义您的测量空间:即您的传感器告诉您什么以及它与状态空间的关系。
  3. 定义植物噪声模型:确定目标的真实运动特征;通常这只是一个协方差矩阵,从统计上描述目标的运动如何在观察之间发生变化。
  4. 定义测量噪声模型:估计传感器报告的数据中的误差;同样,这是一个统计模型,通常用测量误差的协方差来表示。

我的猜测是您的问题来自(4):您没有对基于计步器的子系统和基于 GPS 固定的子系统的测量误差进行适当的建模。

在您的问题上尝试基本的线性卡尔曼滤波器也可能值得尝试;所涉及的数学不太复杂,可以或多或少地用作黑匣子(一旦你定义了上面的模型);扩展方法(sigma-point KF 或粒子滤波)通常需要更多针对问题域的调整。

于 2013-02-26T16:03:44.910 回答