altbeacon - 计算距离的常量

altbeacon - constants for calculating distance


我正在使用 iBeacons 撰写有关室内导航的学士论文。为此,我使用三边测量来找到我的位置。我一直在使用 android 信标库(现在称为 AltBeacon 库)来检测信标并计算距离。我注意到,我得到的距离不是那么准确,在这里搜索之后,我遇到了 DavidYoung 的 post 说因为大多数设备都有不同的蓝牙天线,所以我在计算时必须考虑到这一点距离。
AltBeacon 库计算这样的距离(取自 DavidYoungs post):

protected static double calculateAccuracy(int txPower, double rssi) {
  if (rssi == 0) {
    return -1.0; // if we cannot determine accuracy, return -1.
  }

  double ratio = rssi*1.0/txPower;
  if (ratio < 1.0) {
    return Math.pow(ratio,10);
  }
  else {
    double accuracy =  (0.89976)*Math.pow(ratio,7.7095) + 0.111;    
    return accuracy;
  }
}   

我现在的问题是: 我如何计算我的 Lg G2 的这些值(0.89976、7.7095、0.111)以及从信标以特定米间隔进行 RSSI 测量?
我发现 this 作为具有计算系数的测量值的示例。

Nexus 5 Distance Data

Meters RSSI
0.25 -41
0.5 -43
1 -49
2 -65
3 -58
4 -57
5 -67
6 -67
7 -77
8 -70
9 -69
10 -75
12 -72
14 -72
16 -78
18 -83
20 -81
25 -81
30 -75
40 -83

Android device:
version: 4.4.2
build_number: LPV79
model: Nexus 5
manufacturer: LGE

Beacon Info:
RadBeacon Tag
Advertisements per second: 10
Transmit Power: Max

IPhone 5s Average RSSI @1m: -51

Distance formula coefficients calculated for these values:

Intercept: 0.1820634
Multiplier: 0.8229884
Power: 6.6525179

术语截距表示线性回归,但是当我将这些值放入线性回归计算器时,它给我的结果与这些值相去甚远。
我希望你能帮助我,我的问题很清楚:)

进行最佳拟合回归时可以使用多种公式。对于距离计算,我们使用功率曲线,免费的 R 统计包支持拟合。您可以在此处阅读有关如何执行此操作的更多信息:

https://github.com/AltBeacon/android-beacon-library/issues/47

虽然获得特定于设备的公式将帮助您获得更好的距离估计,但您从三边测量输出中看到的大部分错误可能来自信号噪声、衰减障碍物和多路径。请理解,即使使用特定于设备的公式,信标测距也是不准确的,并且离设备越远,精度就越差。为减轻这些影响,space 您的信标尽可能靠近移动设备,并尽可能保持与移动设备的清晰视线。