如何使用Gimbal信标设备提高室内定位的稳定性和准确性?

3

如何提高Android中多个信标检测的稳定性?我正在使用Gimbal信标进行室内定位。BLE是否适用于室内位置数据访问?

2个回答

1

我在一个会议室走廊里放置了许多信标,因此我对此进行了广泛的研究。

首先,我建议将信标放在天花板上。信号应该向下角度广播,这可以大大减少干扰。请记住,这可能不是每个房间的解决方案,但在我接近彼此的房间的情况下,这有很大帮助。

其次,请确保使用信号平滑的良好选项。Gimbal SDK基于到达和离开的概念工作。只有当信号处于某个阈值范围内时,才会触发这些事件。信号平滑将防止出现一种情况,即一个信标报告的信号为-56,然后在下一秒跳到-75。它使用一种平均算法来平滑信号,以防止出现如此巨大的报告间隙。这可以防止由于报告的信号出现巨大峰值而导致的虚假到达和离开。

最后,请调整您的到达和离开信号、信号平滑选项和信标位置,找到适合您的解决方案。不幸的是,并没有一种通用的解决方案,您将不断进行现场调查,以确保您的调整达到预期的效果。

如果您想了解有关Android上带有Proximity的Gimbal SDK的更多信息,我已经对此进行了深入探讨。您可以在这里查看该文章。然而,如果您正在使用来自Gimbal的最新SDK,则他们已更新其API并删除了VisitManager。因此,我的文章仅适用于他们的SDK版本v1.33及以下。我将来会写一篇关于他们更新后的SDK的新文章,我现在正在积极与之合作。

0
在我看来,答案是:是的,BLE适用于室内定位。
我建议使用低通滤波器来平滑距离/信号强度读数。我可以想到两种方法来做到这一点:
  1. 简单:运行平均值。只需对最近的3/10/30个读数取平均值。看看哪种方法效果最好。
或者:
  • 更复杂但更可配置的算法是RC滤波器。该算法如下:

    // 对于每个来自BLE的新读数,执行以下操作:
    
    // fc = 截止频率[Hz];即:
    // 您想要检测BLE何时从接收器进入和离开的频率
    // 这取决于人员的范围和速度(见下表)
    var real fc := 0.21  // <-- 配置此项!
    // 一个常数[-],也是pi = 3.1415
    var real RC := 1 / (2*pi + fc) // <-- 或者从下表中配置此项!
    // dt = 两个连续读数之间的时间[s]
    var real dt := 1 // <-- 可能需要在每次读数时更新!
    // 一个常数
    var real α  := dt / (RC + dt)
    // 基于以下内容的当前距离估计值:
    // 当前读数x[i]和先前估计值y[i-1]
    y[i] := α * x[i] + (1-α) * y[i-1] // <-- 结果!!!
    
  • 我已经计算了一个RC(常数)的表格;我认为它取决于BLE的范围,因为如果一个人在那个范围内走来走去,进出的频率会更高,如果距离较小,则频率会更高。尝试这些5个值,看看是否适用:

    我们考虑的最大距离[m],RC(常数):RC

    1:0.212212849, 3:0.636638548, 10:2.122128495, 30:6.366385485, 60:12.73277097

    祝好运


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接