2016-05-27 19 views
0

Ich war auf dem Weg Verlust Formel wechseln können, aber ich hatte es manuell durchGibt es eine Möglichkeit, die Path-Loss-Formel in Android Beacon Library einfach zu aktivieren und wie kann ich die Parameter für die Formel berechnen?

beacon.setDistanceCalculator(new PathLossCalculator(param1, param2)) 

aber diese Methode erfordert mich zu tun, um die Konstanten manuell und nicht automatisch die, die für das jeweilige Gerät einzugeben. Gibt es eine Möglichkeit, die Formel zu ermöglichen, wie wir mit der folgenden BeaconManager Methode tun können

setRssiFilterImplClass(ArmaRssiFilter.class) 

Außerdem kann ich irgendwelche Kabel bekommen, wie die 2-Parameter zu finden, wie mit der Kurve angepasst Formel? Was ist die Theorie hinter dieser Formel/Woher kommt sie?

Vielen Dank.

Antwort

0

Die Pfadverlustformel ist derzeit experimentell. Es wurde nicht nachgewiesen, dass Entfernungen in Android-Modellen und Beacon-Typen genauer geschätzt werden können. Wenn es bewiesen ist, wird es mit dem Master-Zweig der Bibliothek zusammengeführt, so dass es leicht zu aktivieren ist, wie Sie es vorschlagen. Wenn Sie daran interessiert sind, freiwillig zu helfen, tun Sie es bitte!

Der Algorithmus verwendet zwei Konstanten, um den RSSI zu standardisieren, der von Ihrem Telefon erkannt wurde: receiverRssiSlope und receiverRssiOffset. Ihr Ziel ist es, die RSSI-Messungen des Android-Geräts so anzupassen, dass sie die Antwort eines iPhone-Referenzempfängers am besten emulieren. Ich habe bei der Prüfung zwei Dinge bemerkt:

  • Alle Android-Geräte verschiedene Empfänger Gewinne haben, erfordert ein RSSI die Eingänge auf der gleichen Formel zu machen versetzt zu arbeiten.

  • Der RSSI-Wert auf vielen Android-Geräten nimmt proportional nicht ab/zu, wenn Sie die gleiche Entfernung wie auf einem iPhone-Referenzgerät zurücklegen. Der Zweck von receiverRssiSlope ist es, sich darauf einzustellen.

Die Idee ist es, ein RSSI vs. Abstand Tisch zu bekommen, die so weit wie möglich wie eine iPhone Referenz RSSI vs. Entfernungstabelle vor, es als eine Eingabe in den Abstand Gleichung sieht. Sie führen also eine lineare Schätzung durch, um den RSSI-Wert des Android-Modells in einen standardisierten RSSI-Wert für das iPhone zu konvertieren.

Um die Konstanten für ein Galaxy S3 zu berechnen, sammelst du RSSI-Messungen in bekannten Entfernungen für dieses Gerät sowie ein iPhone 6. Dann mache eine lineare Schätzung für das Galaxy S3 RSSI (unabhängige Variable), um es in ein iPhone zu konvertieren Referenz RSSI (abhängige Variable). Der Regression, erhalten Sie so etwas wie:

Intercept -11,076209048362 Slope 0,80421216848674

Und dann verwenden Sie diese das Android-Gerät RSSI auf eine standardisierte Referenz RSSI zu konvertieren, bevor es in den Pfadverlust Abstand Formel anschließen.

+0

Danke für die Klarstellung, ich werde einige Tests mit diesem Algorithmus machen und werde Sie wissen lassen, ob ich etwas interessantes bekomme. Hast du Ideen für andere Distanzalgorithmen, die ich ausprobieren könnte? Außerdem würde ich nicht ein iPhone 5 anstelle von iPhone 6 verwenden müssen, da der txPower vlaue von einem iPhone 5 ist? (um konsistent zu sein). – user3001845

+0

Sie sollten im Allgemeinen mit dem neuesten Modell iPhone als Referenz kalibrieren. Wenn Sie kalibrierte Beacons haben, die mit einem früheren iPhone-Modell kalibriert wurden, sollten Sie das verwenden, ja. – davidgyoung