興味深いケース:iPhoneをiBeaconデバイスに移動すると、iPhoneをデバイスから移動するときよりも精度の値がずっと速く変化しました。 この処理をより速くするにはどうすればよいですか?精度計算の時間を増やすには?
0
A
答えて
1
ご存知のように、CoreLocationは過去の信号測定値の平均を計算して、accuracy
(距離推定値)を算出します。平均化のために使用されたアルゴリズムは未発表ですが、私の測定値は約20秒後に安定する遅れを示しています。私は、近づくか遠ざけるかの違いに気づいていません。
あなたはこの平均化間隔を制御できません。あなたがすることができる唯一のことは、あなたが望むどんな期間であれ自分で平均RSSIです。その後、カスタム計算を使用して、平均RSSIを距離に変換することができます。
これを行うには、ビーコン広告の測定されたパワーキャリブレーション定数にアクセスできないので、すべてが同じ送信機パワーを持つビーコンを持つ必要があります。 (Appleはこの値を読み取ることはできません)。代わりに、この定数はお客様の距離計算にハードコードする必要があります。
あなたはここにこれを実行するサンプルコードを参照することができます:あなたのコードはCoreBluetooth [[RNLBeaconScanner sharedBeaconScanner] calibratedRSSIFor:自己]を使用しています
+(double) distanceForRSSI:(double)rssi forPower:(int)txPower {
// use coefficient values from spreadsheet for iPhone 4S
double coefficient1 = 2.922026; // multiplier
double coefficient2 = 6.672908; // power
double coefficient3 = -1.767203; // intercept
if (rssi == 0) {
return -1.0; // if we cannot determine accuracy, return -1.0
}
double ratio = rssi*1.0/txPower;
double distance;
if (ratio < 1.0) {
distance = pow(ratio,10);
}
else {
distance = (coefficient1)*pow(ratio,coefficient2) + coefficient3;
}
if (distance < 0.1) {
NSLog(@"Low distance");
}
return distance;
}
https://github.com/AltBeacon/ios-beacon-tools/blob/master/ios-beacon-tools/RNLBeacon%2BDistance.m
関連する問題
- 1. 計算の精度C++ Cplex
- 2. Interbase SQLの精度計算
- 3. Googleは無限ライン/長さや緯度LNG計算を増やすにマッピング
- 4. ファストテキストクラシファイアの精度を計算する
- 5. 精度、リコール、f1スコアから精度を計算する - scikit-learn
- 6. 時間 - 乗算と除算の浮動小数点精度
- 7. 時間複雑度を計算する
- 8. 重心と精度を計算する
- 9. 4倍精度計算によるRcpp
- 10. 同じ計算(R)の繰り返しごとに計算時間が増加
- 11. 計算精度を最大限に引き出すためのDECIMAL(精度、スケール)
- 12. Excelでの高度な時間計算
- 13. 科学計算用GPUの精度
- 14. 行列計算の精度R対Stata
- 15. OpenMP、コア数、乱数計算の精度
- 16. numpyでの高精度計算
- 17. R:KNNの予測精度はどうやって計算されますか?
- 18. scikit-learn:サポートベクターマシン。精度や精度は?
- 19. スレッドでミリ秒精度で時間を計測する方法
- 20. kerasのtop5精度を計算するには?
- 21. NERシステムの精度を計算するには?
- 22. 時間を加算して合計時間を計算する
- 23. ReverseProxyの待機時間を増やす
- 24. ブラウザの表示時間を増やす
- 25. ブートストラップモーダルの起動時間を増やす
- 26. 秒の差がゼロのエポックタイムの計算時間が5:30時間増える
- 27. Dで高精度計算を実行するには?
- 28. 計算時間
- 29. 時間計算
- 30. 時間計算
を。私が間違っていないと、CBはバックグラウンドで動作しないので、このコードはフォアグラウンドでしか使用できません。 –
はい、サンプルコードではCoreBluetoothを使用していますが、それは私があなたがしていることではありません。私は単純に、CoreLocationを使用したコード例からカスタム距離の計算を再利用することを提案しています。最後の5コールバックの 'didRangeBeacons:inRegion'コールバックからRSSIの平均を集める必要があります(あなたが望むように時間を微調整することができます)、この平均RSSIを表示されたメソッドに渡す必要があります。 – davidgyoung
Davidしかし、2つのビーコンのメジャーとマイナーが同じであれば、それは同じビーコンか別のビーコンですか?はい、独自の校正を行うことを考えましたが、ユニークなキーの問題です。 –