android - 当用户在车辆中移动时计算与信标的距离

标签 android bluetooth-lowenergy ibeacon ibeacon-android altbeacon

如果用户以 2-15kmph 的速度行驶,如何使用 BLE 信标计算距离?此外,如果距离不能给我准确的结果,是否有任何其他机制可以帮助我计算最近的信标。默认实现不会给我正确的结果,因为距离估计有 20 秒的滞后。 其次,ARMA滤波器应该在什么情况下使用。

最佳答案

信标距离估计值只是估计值,因此您必须相应地设置准确度预期。为了减少 radio 信号电平上的噪声,许多样本在一段时间内取平均值。

确定合适的平均时间取决于用例。正如您所注意到的,Android Beacon Library默认情况下使用 20 秒运行平均值。这会根据车辆在过去 20 秒内的平均位置估算距离。

对于时速高达 15 公里/小时(约 5 米/秒)且信标传输半径为 50 米的车辆,它在信标范围内的时间最长为 10 秒。您需要获得多少距离测量值?如果一个就够了,平均超过 10 秒。如果您需要更多,请将周期设置得更短。

了解减少样本间隔会给距离估计增加更多的噪声误差,因为您将使用更少的统计样本。您可以做一些事情来充分利用您获得的样本:

  1. 将信标设置为尽可能频繁地发布广告。一些信标以 1Hz 或更低的频率发布广告以节省电池电量。这导致距离估计不佳。如果可能,将其增加到 10Hz 或更高。

  2. 关闭信标上的蓝牙可配置性/连接性。某些 Android 设备在可连接模式下每次 BLE 扫描仅允许一个信号电平样本(库中默认为 1.1 秒)。这可能会丢失 10 Hz 时 90% 的样本。

  3. 将信标发射器配置为最高功率设置并正确校准。更强的信号具有更高的信噪比,从而提供更好的距离估计。

ARMA 过滤器基于每个样本的百分比变化使用不确定的样本间隔。它更适合具有缓慢移动的信标接收器的用例。

关于android - 当用户在车辆中移动时计算与信标的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745369/

相关文章:

android - Android 2.3 中的 SSL 损坏的 PIPE 通过代理调用 HTTPS

android - 需要帮助在手机的默认浏览器中打开 url

xamarin.ios - 如何为 Xamarin 使用(或转换)这个 NATIVE BLE DFU 库?

ios - 用于信标的 CoreBluetooth

ios - 如何扫描我所在地区 iOS 中的可用信标

java - 在两个以上的 fragment 之间传递数据

android - 我想从我们开发的移动应用程序的 11 字节数据中识别 BLE 车轮和曲柄传感器数据

android - 一个 Physical Web Beacon 可以写入多少个 URL?

ios - 在 iBeacon Detection 上触发对被杀死/退出的应用程序的本地通知

android - 防止 Google Play 上的虚假评论