【问题标题】:Update/Refresh Rate for monitoring iBeacons用于监控 iBeacon 的更新/刷新率
【发布时间】:2013-12-13 14:13:15
【问题描述】:

过去几天我一直在玩 Estimote Beacons。我开始怀疑 iBeacons 的有效性,因为它们在确定 Beacon 位置时具有很高的延迟。

当您移动 2-3 米时,需要几秒钟才能找到正确的位置。 像这样的用例场景,捕捉一个经过信标的人可能很难确定。

是否可以操纵 CLLocationManager 或 CLBeaconRegion 的更新/刷新率?例如每 0.1 秒

【问题讨论】:

  • 因此,您使用信标功能让 iOS 唤醒您的应用,然后发布通知让用户让您进入活动状态,然后使用 Core Bluetooth 获取详细的最新数据。

标签: ios ios7 cllocationmanager ibeacon


【解决方案1】:

您看到 iOS 距离测量(他们在 CLBeacon 对象中称为“准确性”)需要很长时间才能稳定的原因是因为它基于 RSSI 的运行平均值 - 接收信号强度.这种信号强度测量本质上是嘈杂的,并且会四处反弹。这就是为什么需要收集多个样本来平滑它的原因。

但由于这种平均,存在滞后。最近的估计是基于几秒钟前的测量结果。

您无法更改 CLLocationManager 或 CLBeaconRegion 的刷新率,但您可以获得比 1s 基线更频繁传输的 iBeacon。更多的传输为您提供更多的 RSSI 测量值,它可能有助于消除噪音。因为我不确定 CoreLocation 的内部实现,所以我不确定更高的 iBeacon 传输率是否会降低距离测量的噪声。

您也可以随时根据 RSSI 和 iBeacon 发出的功率校准值计算自己的距离测量值。如果您使用单个 RSSI 样本,则与较早的测量值进行平均不会有滞后,但您将具有高度的可变性。您基本上必须接受在过滤掉噪声和过滤掉基于不同位置的旧测量值之间的权衡。

如果您想尝试自己的计算,可以使用如下所示的方法(有关详细信息,请参阅我对this question 的回答)。

distanceInMeters =  0.89976 * (rssi/txPower)**7.7095 + 0.111

您必须对该估算的准确度设定切合实际的期望。 Apple 通常建议您不要在 CLBeacon 中使用他们的“准确度”测量,除非它结合了其他更粗略的测量,例如“接近”,将距离测量分为“立即”、“近”和“远”分组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多