gpt4 book ai didi

ios - 计算准确的 Ibeacon 距离

转载 作者:行者123 更新时间:2023-11-28 06:14:46 24 4
gpt4 key购买 nike

我正开始借助 iOS 中的 Beacons 开发室内导航系统。我们现在有 3 个 Bluecast 信标,但我无法获得与这三个信标的准确距离。我已经通过将三个信标放在同一位置进行了测试,但它在主要时间显示了不同的距离和 rssi 值。

我对信标提供商显示应用程序和我自己的应用程序进行了相同的尝试,但两个应用程序都显示了相同的值。

示例代码是

 locationManager = CLLocationManager()
locationManager.delegate = self

let uuid = UUID(uuidString: uuidStr)
beaconRegion = CLBeaconRegion(proximityUUID: uuid!, identifier: "Beacones")

beaconRegion.notifyOnEntry = true
beaconRegion.notifyOnExit = true
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoring(for: beaconRegion)
locationManager.startUpdatingLocation()

距离计算逻辑在下面

 public func calculateAccuracy(txPower : Double, rssi : Double) -> Double {
if (rssi == 0) {
return -1.0; // if we cannot determine accuracy, return -1.
}

let ratio :Double = rssi*1.0/txPower;
if (ratio < 1.0) {
return pow(ratio,10.0);
}
else {
let accuracy :Double = (0.89976)*pow(ratio,7.7095) + 0.111;
return accuracy;
}
}

最佳答案

注意不要对您可以获得的准确度设定不切实际的期望。使用蓝牙信号电平估计距离最多只能提供粗略的距离估计,但存在许多可能使其无法正常工作的陷阱。

为了获得最佳结果:

  • 将您的信标发射器设置为尽可能高的值,以增加信噪比并使 rssi 更加一致。

  • 将信标广告率设置得尽可能高,以获得尽可能多的统计样本以平均掉噪音。

  • 将您的 txPower 常量调整为特定设备接收器在一米处测得的平均 RSSI,以用于距离估计。

  • 如果您发现与公式一致的高估或低估,请根据需要调整常量以获得最佳拟合。

请注意,障碍物(甚至是人体)、反射、 radio 噪音、手机壳,甚至不同的手机型号都会影响结果。估计距离在 2-3 米时效果最佳。在更远的距离,您会看到更高的错误率,因为信号水平随距离呈指数下降。

关于ios - 计算准确的 Ibeacon 距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45507211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com