如何使用万向节信标装置进行室内定位,提高数据的稳定性和准确性?

时间:2014-11-14 10:13:56

标签: java android ios jar gimbal

在android中如何提高多重信标检测的稳定性?我正在使用万向节信标进行室内定位。是否BLE适合室内位置数据访问?

2 个答案:

答案 0 :(得分:1)

我已经对此进行了广泛的研究,因为我已经将信标放在一个满是会议室的走廊里,所有这些都在附近。

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

接下来,请务必为signal smoothing使用一个好的选项。 Gimbal SDK适用于到达和离开的概念。仅当信号在特定阈值内时才会触发这些事件。信号平滑将防止一个信标具有-56的报告信号然后将下一秒跳到-75的情况。它使用平均算法来平滑信号,以防止如此巨大的报告间隙。这可以防止由于报告信号出现大量尖峰而导致的错误到达和离开。

最后,调整您的到达和离开信号,信号平滑选项和信标放置以找到有效的方法。遗憾的是,并不是一个适合所有人的解决方案,您必须进行连续的网站调查,以确保您的调整按照预期的方式进行。

如果您想了解更多关于使用Proximity for Android的Gimbal SDK,我已经深入研究了这个主题。您可以查看该文章here。但是,如果您使用的是来自Gimbal的最新SDK,他们已更新了他们的API并删除了VisitManager。因此,我的文章仅与其v1.33的SDK相关。我将来会在他们更新的SDK上写一篇新文章,我现在正在积极合作。

答案 1 :(得分:0)

在我看来,答案是:是的,BLE适合室内定位。

我建议使用low pass filter 平滑距离/信号强度读数。我可以想到两种方法:

  1. 简单:平均值。只是平均最后3/10/30读数。看看什么效果最好。
  2. 或者:

    1. 更复杂但更易于配置: RC过滤器。算法像这样:

      // FOR EACH new reading from the BLE do this:
      
      // fc = cutoff frequency [Hz]; i.e.:
      // how frequent do you want to detect the BLE coming and parting from the receptor
      // this depends on the range and speed of people (see table below)
      var real fc := 0.21  // <-- configure this!
      // a constant [-], also pi = 3.1415
      var real RC := 1 / (2*pi + fc) // <-- OR configure this from the table below!
      // dt = time between two consecutive readings [s]
      var real dt := 1 // <-- might need updating at each reading !
      // a constant
      var real α  := dt / (RC + dt)
      //the current estimate of the distance that is based on:
      // the current reading x[i] and the previous estimate y[i-1]
      y[i] := α * x[i] + (1-α) * y[i-1] // <-- result !!!!
      
    2. 我为RC(常数)计算了一个表;在我看来,这取决于BLE的范围,因为如果一个人进出该范围,如果距离较小,进出的频率会更高。试试这5个值,看看它是否适用于你:

      我们查看[m],RC (constant)的最大距离:RC

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

      祝你好运