我正在使用iBeacons撰写关于室内导航的学士论文。为此,我使用trilateration来找到我的位置。我一直在使用android beacon库,现在称为AltBeacon库来检测信标并计算距离。我注意到,我得到的距离并不准确,经过一些搜索后,我发现DavidYoung的帖子说,因为大多数设备都有不同的蓝牙天线,所以在计算距离时我必须考虑到这一点。登记/>
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距离数据
米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设备:
版本:4.4.2
build_number:LPV79
型号:Nexus 5
制造商:LGE
灯塔信息:
RadBeacon标签
每秒广告数:10
发射功率:最大
IPhone 5s平均RSSI @ 1m:-51
为这些值计算的距离公式系数:
拦截:0.1820634
乘数:0.8229884
功率:6.6525179
术语截距表示线性回归,但是当我将这些值放入线性回归计算器时,它给出的结果远不及这些值。
我希望你能帮助我,我的问题很清楚:)
答案 0 :(得分:3)
在进行最佳拟合回归时,您可以使用多种公式。对于距离计算,我们使用功率曲线,自由R统计包支持拟合。您可以在此处详细了解如何执行此操作:
https://github.com/AltBeacon/android-beacon-library/issues/47
虽然获取特定于设备的公式可以帮助您获得更好的距离估计,但是从三边测量输出中看到的大部分误差可能来自信号噪声,衰减障碍物和多路径。了解即使使用特定于设备的公式,信标范围也是不精确的,并且您离设备越远,精度越差。为了减轻这些影响,尽可能使您的信标尽可能地与移动设备保持清晰的视线。