Am Stuttgarter Standort der AUSY Technologies Germany AG fand kürzlich der erste interne Hackathon der Expertengruppe IoT statt. Das Ziel war es, innerhalb von zwei Tagen eine Android-App zu entwickeln, die es ermöglicht, den eigenen Standort in einem Gebäude zu ermitteln.
Die Herausforderung dabei: Für den Einsatz im Freien wäre die Entwicklung einer solchen App dank GPS eine leichte Aufgabe. In geschlossenen Räumen steht jedoch in aller Regel kein zuverlässiges GPS-Signal zur Verfügung, zumal die Genauigkeit von GPS für viele Szenarien nicht ausreichend ist.
Es lassen sich daher beispielsweise Technologien wie Bluetooth Low Energy (BLE) oder WiFi einsetzen, was eine höhere Komplexität bei der Konzeption und Programmierung der App nach sich zieht. Dieser Herausforderung stellten sich die neun Teilnehmer im Rahmen des Hackathons. Wie ist das Team von AUSY Technologies an diese Aufgabe herangetreten und welche Ideen hat es entwickelt? Im folgenden Beitrag erfahren Sie mehr darüber.
Zunächst galt es zu klären, welche Art der Übertragung für diesen Use Case am sinnvollsten ist. Als Übertragungstechnologie im IoT-Umfeld sind sogenannte Bluetooth Low Energy (BLE) Beacons weit verbreitet. Dabei handelt es sich um kleine, vergleichsweise kostengünstige und stromsparende Geräte, die periodisch ein Bluetooth-Signal aussenden. Die gesendeten Datenpakete können von Geräten in der Umgebung empfangen werden, ohne dass hierbei eine explizite Kopplung erforderlich ist.
Nachteilig ist, dass bei dieser Methode der Positionsbestimmung eine recht hohe Anzahl an Beacons im Gebäude verteilt werden muss. Auch der Batteriestatus der Beacons ist laufend zu beobachten, um die Batterien gegebenenfalls auszutauschen. Denn trotz ihres niedrigen Verbrauchs kommen die Beacons nicht völlig ohne Stromquelle aus. Daher entschied sich unser Team dafür, zusätzlich eine alternative Lösung auf der Basis eines WiFi-Netzwerks zu berücksichtigen. Nicht zuletzt vor dem Hintergrund, dass viele öffentliche Gebäude ohnehin schon mit WiFi-Access-Points ausgerüstet sind – wenn auch nicht immer in ausreichender Anzahl.
Zur Standortermittlung gibt es etliche Ansätze. Unser Team hat hiervon zwei implementiert:
Wir haben sogenannte BLE Proximity Beacons [1] eingesetzt, die neben einer eindeutigen Kennung einen Signalstärkewert kalibriert auf 1 Meter Entfernung senden. Anhand des „Log Distance Path Loss“-Models, welches beschreibt, wie sich ein ausgesendetes Signal im Raum abschwächt, kann man von der empfangenen Signalstärke auf die Entfernung mathematisch eindeutig rückschließen [2]. Entspricht die Signalstärke des empfangenen Signals genau dem Kalibrierungswert, ist man theoretisch 1 Meter von der Signalquelle entfernt.
Wenig überraschend muss man in der Praxis mit diversen Störfaktoren umgehen. Zum einen werden die Beacons gemäß Spezifikation [3] mit einem iPhone 5s kalibriert. In anderen Smartphones kann die empfangene Signalstärke aufgrund anderer Antennen und Bauformen abweichen. Zudem hat das Entwicklerteam beobachtet, dass selbst baugleiche BLE-Beacons mit identischem Kalibrierungswert unterschiedlich stark senden. Ist die Signalstärke unzuverlässig, lässt sich jedoch nicht ohne Weiteres auf eine korrekte Entfernung und letztlich Position mittels Multilateration rückschließen.
Hinzu kommt, dass auch die Signalstärke einzelner Beacons stark schwankt und dass die Empfangsintervalle nicht einheitlich sind. Zu beachten ist zudem, dass die Bluetooth-Signale sehr leicht gestört werden können; etwa durch Wände oder den eigenen Körper. In die Formel zur Umrechnung der Signalstärke in eine Entfernung geht zudem eine Konstante ein, welche die Ausbreitungsfähigkeit des Signals in der jeweiligen Umgebung beschreibt. Zwar wird meist ein bestimmter Wert in der Literatur empfohlen, doch letztlich müsste dieser stets in Abhängigkeit der Umgebung selbst vorab ermittelt werden.
Aktuell begegnen wir den Schwankungen mit einem recht simplen Ansatz: wir messen für 5 Sekunden und arbeiten dann mit dem Mittelwert weiter. Median oder andere Perzentile haben nicht zu besseren Ergebnissen geführt, ebenso wenig wie eine Verlängerung der Scanzeit – spätere Werte sind nicht unbedingt genauer. Insbesondere, wenn man sich während der Messung im Raum bewegt, wäre es sicherlich sinnvoll, mit ausgefeilten Ansätzen wie etwa Kalman-Filtern zum Herausrechnen von Schwankungen zu arbeiten.
Bei WiFi schwanken die Signale ebenso wie bei Bluetooth stark. Erschwerend kommt bei Android hinzu, dass das Betriebssystem die Scan-Intervalle sehr stark einschränkt. So sind Scans lediglich vier Mal innerhalb von zwei Minuten nach WiFi-Signalen in der Umgebung möglich. Für eine einmalige Standortbestimmung mag dies noch ausreichend sein, doch spätestens für erweiterte Use-Cases wie Indoor-Navigation muss WiFi sicherlich mit weiteren Techniken kombiniert werden.
Da sich bei handelsüblichen WiFi-Access-Points nicht direkt von der Signalstärke auf die Entfernung schließen lässt, hat das Team aktuell keine Lateration implementiert, sondern die Position anhand der beiden Access Points mit dem stärksten empfangenen Signal berechnet. Dessen reale Position wird anteilig gewichtet. Doch auch dies führt bereits zu ordentlichen Ergebnissen.
Sowohl mit Lateration als auch mit Fingerprinting konnten wir in unserem 7,5 x 5,0 Meter großen Testraum gute Ergebnisse mit einer Genauigkeit von etwa ein bis drei Metern erreichen. Konkret waren in allen vier Ecken des Raumes jeweils ein BLE-Beacon und ein WiFi-Access-Point platziert. Meist wird bei der Positionsbestimmung zumindest die korrekte Ecke erkannt. Nichtsdestotrotz gibt es immer wieder Messungen, die vollständig daneben liegen. In größeren Räumen wären derartige Ausreißer womöglich weniger problematisch, sofern ausreichend viele Beacons oder Access Points installiert sind. Mit BLE-basierten Ansätzen ließ sich im Vergleich zu WiFi eine höhere Genauigkeit erzielen, da sich die Signalstärken der Beacons bei niedrigen Entfernungen im Vergleich zu WiFi-Access-Points stärker unterscheiden.
Insgesamt erweist sich Fingerprinting als der zuverlässigere Ansatz. Ein entscheidender Vorteil gegenüber Lateration — der in unserem Setup noch nicht einmal stark zu Geltung kam — ist, dass Fingerprinting implizit Hindernisse und Wände berücksichtigt. Auch muss die Position der Access Points oder Beacons nicht bekannt sein. Bei Lateration und der damit verbundenen Umrechnung von Signalstärke zu Entfernung lässt sich prinzipbedingt nicht feststellen, ob ein schwaches Signal bedeutet, dass der Sender sehr weit entfernt ist, oder ob das Signal lediglich durch ein Hindernis stark abgeschwächt wurde. Daher ist es nicht überraschend, dass fertige Lösungen wie das Apple Indoor Maps Program [4] oder HERE Indoor Positioning [5] auf Fingerprinting-basierte Ansätze setzen.
Die App ist als Proof-of-Concept zu verstehen und dient als Grundlage und Anregung für Weiterentwicklungen durch die Experten von AUSY Technologies. Im Hinblick auf die Branchenherausforderungen unserer Kunden haben wir die folgenden Use Cases im Blick:
Ebenfalls lassen sich mit der App auch „statische“ Anwendungsszenarien realisieren. Bei diesen steht nicht die Position des individuellen App-Nutzers im Fokus, sondern ein bestimmter fixer Punkt im Gebäude und die Bewegungen der App-Nutzer in Relation zu ihm. Beispiele hierfür sind die standortbezogene Einblendung von Werbung und Angeboten in Apps beim Durchlaufen in Einkaufsläden oder das Markieren von Orten in einer Karte. Mit dem letzteren Ansatz könnten Mitarbeiter in großen Gebäuden oder auf Baustellen zum Beispiel Defekte markieren, sodass diese vom Service-Team leichter gefunden werden.
Sie interessieren sich für eine der genannten Lösungen oder generell für das Thema IoT? Dann nehmen Sie gerne Kontakt mit uns auf!
Quellen:
[1] https://www.emmicroelectronic.com/sites/default/files/produc...
[2] https://www.pearsonhighered.com/assets/samplechapter/0/1/3/0..., Formel 3.7
[3] https://www.blueupbeacons.com/docs/dev/Proximity%20Beacon%20...