室内定位系统的卡尔曼滤波算法

时间:2017-03-03 10:52:03

标签: android iphone arduino localization kalman-filter

我通过其RSSI和三边测量算法将BLE(蓝牙低功耗)用于室内定位系统。

问题是如何使用RSSI找到准确的距离。

每次,由于某些干扰,信标会提供不同的RSSI值。

我读到卡尔曼滤波器可以在一定程度上解决这个问题,但我如何使用卡尔曼滤波器?

据我所知,有两个功能。一个是预测,另一个是校正。但是我应该从哪里开始呢?

3 个答案:

答案 0 :(得分:2)

卡尔曼滤波器不适合您的问题。

问题

  1. 您将噪音描述为"某些干扰"。你需要知道 噪音分布提前。
  2. 由遮挡引起的错误(人类位于遮挡之间)     移动设备和BLE信标将极大地产生过滤错误     大。事实上,您需要调查许多解决方法     这里规避非线性的方法。
  3. BLE的RSS指示器不是移动设备实际位置的线性函数(再次,非线性
  4. 答案

    1. 您需要在您的网站上详细了解Bayssian建模 例如,你想调查" Unscented卡尔曼滤波器","扩展 卡尔曼滤波器" (非线性扩展)或"粒子滤波器" (例如,非线性滤波器,噪声分布无关)。简短概述 本地化(在机器人技术的背景下)可以在这里找到: http://robots.stanford.edu/papers/thrun.probrob.pdf以及更多 详情请点击此处:http://www.probabilistic-robotics.org/
    2. 因为我假设你对房间和灯塔有预先了解 立场,更直接的方法可能是一个 调查BLE fingerprinting技术。该链接还包含其他室内定位技术的进一步文献。

答案 1 :(得分:1)

使用BLE很难估计准确的距离。如果您使用许多信标(每1米),您可以估计它,但如果信标之间的距离很大,则由于信号的反射和吸收而很难。 您可以尝试使用指纹识别以获得更好的准确性。卡尔曼滤波器不适合此应用,因为您没有额外的控制矢量来预测。如果你是静止的,那么KF可以提供帮助,但对于动态情况,你需要有控制矢量来预测,你的BLE RSSI水平可以用作测量。

答案 2 :(得分:0)

卡尔曼滤波器仅与“在场”检测相关,而与“位置”无关,即,如果位置是静态的,则很有用。

预测函数将是一个简单的常数函数:RSSI(t) = RSSI(t-1)。 为了更正,您将需要设置一个任意值,以表示您对测量值的“信任”程度。

如果您想研究此解决方案,那么此blog post可能是一个不错的起点:它提供了说明,简化的模型以及此类卡尔曼滤波器的实现。