geolocator (Software defined GPS)

Hallo zusammen,

Mein Name ist Jan-Tarek Butt. Ich studiere in meinem 4. Semester Informatik an der Hochschule Emden/Leer in Niedersachsen. Einige von euch kennen mich wahrscheinlich schon als langjähriges aktives Mitglied der Freifunk Community und vom letzten Google Summer of Code 2016. Dieses Jahr bin ich wieder einer der Studenten die für Freifunk am Google Summer of Code 2017 teilnehmen dürfen. Im folgenden Beitrag möchte ich eine kleine Einführung in mein diesjährigen Projekt beim Google Summer of Code geben. Wie letztes Jahr habe ich auch dieses Projekt in 3 Teilprojekte zerlegt: web backend, gps-share und LEDE Package

web backend

Das erste ist ein restful API backend[0], welches eine Abwärtskompatibilität zum alten openwifi web backend[1] beinhalten soll. Das neue Backend soll wahrscheinlich in Go geschrieben werden, was sich die nächsten Tage über klären wird. Zudem soll das neue Backend den Mozilla Location Service als Fallback benutzen, falls eine Positionsbestimmung aus dem eigenen Datenbestand nicht möglich ist. Erhaltene WLAN-Informationen können ebenfalls an Mozilla Location Service[2] weitergeleitet werden. Einige von euch fragen sich bestimmt was dieser Mozilla Location Service ist. Im Grunde ist es einfach ein Dienst mit einer großen Datenbank im Hintergrund voll mit wardriving Informationen von Handys. Diese Handys scannen nach umliegenden WiFi-Netzwerken und senden diese mit ihrer eigenen GPS-Position an den Mozilla Location Service. Diese Daten werden dann in die Datenbank integriert. Wenn man nun seine Position wissen will, ohne dass man ein GPS-Gerät besitzt, z.B. am Laptop, muss man nur seine umliegenden WiFi-Netze an den Mozilla Location Service senden und man erhält seine Position basierend auf den WiFi-Informationen.

gps-share

Die erste Idee war es, ein Software defined GPS als udev device zu erstellen, welches über tty ein Protokoll im NEMA-Format ausgeben sollte und die dafür benötigten Informationen über WLAN bezieht. Während den Diskussionen mit Leuten von der Mozilla Location Service Mailingliste hatte sich herausgestellt, dass bereits sowas ähnliches namens geoclue existiert, welches Geo-Koordinaten über dbus bereit stellt. Diese GPS-Informationen bezieht geoclue unter anderem über Mozilla Location Service. Geoclue arbeitet mit Netzwerk-NEMA und Mozilla Location Service. Über das Netzwerk-NEMA kann geoclue GPS-Informationen von z.B. Handy oder GPS-Modems erhalten, welche über das lokale Netzwerk die Daten bereitstellen können. Um zu verhindern, dass redundante Software entwickelt wird, habe ich mit Zeeshan (dem Maintainer von geoclue) gesprochen. Wir haben uns dafür entschieden, dass ich bei dem Support für den Umgang mit GPS-Hardware in gps-share helfe [3]. GPS-share ist eine Software welche das GPS NEMA-Format von GPS-Hardware über Netzwerk-NEMA für geoclue bereitstellen soll. GPS-share selbst ist in Rust geschrieben.

geolocator

Das 3. Unterprojekt ist ein neues LEDE package namens geolocator. Es soll die Geoposition anhand umliegender WLAN-Netze beziehen. Die WLAN-Informationen sollen an das neue oben erwähnte web backend gesendet werden. [4].

Schöne Grüße

Jan-Tarek Butt

Schreibe einen Kommentar