Algorithm 使用具有不同采样率的多个传感器的粒子过滤器

Algorithm 使用具有不同采样率的多个传感器的粒子过滤器,algorithm,sensors,sample-rate,indoor-positioning-system,particle-filter,Algorithm,Sensors,Sample Rate,Indoor Positioning System,Particle Filter,当前情况: 我已经为室内定位系统实现了一个粒子过滤器。它使用磁场的指纹。粒子过滤器的实现非常简单: 我创建了均匀分布在整个区域上的所有粒子 每个粒子都有一个速度(以“正常”行走速度的平均值为高斯分布)和一个方向(在所有方向上均匀分布) 改变速度和方向(均为高斯分布) 按速度乘以上次和当前测量的时间差,沿给定方向移动所有粒子 找到每个粒子最近的指纹 通过比较最近的指纹和给定的测量值,计算每个粒子的新重量 正常化 重采样 每次测量重复3到9次 问题: 现在,我想做基本相同的事情,但在系统中添加另一个

当前情况:

我已经为室内定位系统实现了一个粒子过滤器。它使用磁场的指纹。粒子过滤器的实现非常简单:

  • 我创建了均匀分布在整个区域上的所有粒子
  • 每个粒子都有一个速度(以“正常”行走速度的平均值为高斯分布)和一个方向(在所有方向上均匀分布)
  • 改变速度和方向(均为高斯分布)
  • 按速度乘以上次和当前测量的时间差,沿给定方向移动所有粒子
  • 找到每个粒子最近的指纹
  • 通过比较最近的指纹和给定的测量值,计算每个粒子的新重量
  • 正常化
  • 重采样
  • 每次测量重复3到9次
  • 问题:

    现在,我想做基本相同的事情,但在系统中添加另一个传感器(即WiFi测量)。如果测量同时出现,就不会有问题。然后我会计算第一个传感器的概率,然后乘以第二个传感器的概率,得到粒子在#6的重量

    但磁场传感器的采样率非常高(约100 Hz),WiFi测量几乎每秒出现一次

    我不知道处理这个问题的最好办法是什么

    可能的解决方案:

  • 我可以扔掉(或平均)所有磁场测量值,直到出现WiFi测量值,然后将最后一次磁场测量值(或平均值)和WiFi信号一起使用。所以基本上我把磁场传感器的采样率降低到WiFi传感器的采样率
  • 对于每次磁场测量,我都使用上次看到的WiFi测量
  • 我使用分离的传感器。这意味着如果我得到一个传感器的测量值,我会执行所有步骤#3到#9,而不使用另一个传感器的任何测量数据
  • 我没有考虑过的任何其他解决方案;) 我不确定哪一个是最好的解决方案。所有的解决方案似乎都不好

    有了#1,我会说我失去了信息。虽然我不确定使用大约100 Hz的采样率作为粒子过滤器是否有意义

    在#2时,我不得不假设WiFi信号不会很快出现,我无法证明这一点

    如果我单独使用传感器,磁场测量将比WiFi测量更重要,因为所有步骤都会与磁数据一起发生100次,直到出现一次WiFi测量

    你知道一篇处理这个问题的好论文吗

    是否已经有了一个标准的解决方案,如何在粒子过滤器中处理具有不同样本大小的多个传感器

    100赫兹的样本大小有意义吗?或者,对于粒子过滤器的一个步骤,适当的时间差是多少

    非常感谢您提供的任何提示或解决方案:)

    在#2中,您可以将滤波器延迟1s,并在WiFi测量值之间进行插值,以便进行上采样,从而使两个信号均为100Hz

    如果您对WiFi行为了解更多,您可以使用比线性插值更先进的方法来模拟更新之间的WiFi行为。使用更高级的异步保持对较慢的传感器信号进行上采样,但类似于卡尔曼滤波器的方法也可以工作


    关于更新速度,我认为100Hz对于你的应用来说听起来很高(假设你正在做室内行走的人的定位),因为你可能会考虑很多噪音,降低采样频率是过滤高频噪音的一种廉价方法。

    非常感谢你的链接。我还没有完全阅读,但它似乎真的很有趣,对我很有用!对于像我这样的系统,你知道什么样的采样率比较好吗?假设一个正常人以大约1.1米/秒的速度行走。我想说1Hz的采样率听起来并没有那么糟糕,这将导致我的解决方案#1。或者你会说更高(或更低)的采样率会更好(或值得测试;))Hi@Mr.Floppy,你最终找到了解决方案吗?我面临着类似的问题,另外,在重新采样过程中,你会根据最终组合重量(通过乘以所有重量获得)对粒子重新采样吗或者,只要单个WiFi或单个磁系统的重量满足重采样条件,您就进行重采样?@mosdkr这是一个4.5年后提出的非常好的问题:D我查阅了一些我写过的文件,但没有立即找到答案。我不确定我是否还有一些源代码。过几天我会设法弄清楚的。如果我在一周内没有给你回复,请提醒我:)