Node.js und GPS

Node.js ist momentan das dynamischte Projekt im Programmiereruniversum. Da es jedoch von Grund auf neu entwickelt wurde gibt es selbstverständlich noch nicht so viele Bibiotheken wie etwa bei Python oder Perl. Allerdings gibt es seit kurzem eine GPS-Bibliothek. Sie liefert die Koordinaten wenn es Zugriff auf einen gpsd hat. Dadurch kann es sich sowohl um die Daten eines echten GPS-Receivers handeln oder aber um Daten die von anderen Diensteanbietern im Netz.

Zusammen mit dem interessanten Projekt Hardware Control Suite für node.js (das sich jedoch noch in einem sehr frühen Stadium befindet *hüstel*) hat man übrigens alles, was man braucht um einen Roboter zu steuern ;)

Die spinnen doch! (die bei der Bahn)

OpenPlanB ist sicher eines der spannendsten Projekte im Bereich Open Data. Die Fahrplandaten der Deutschen Bahn wurden extrahiert und als lesbares Format öffentlich gemacht. Umso überraschter muss man von der Reaktion der Bahn darauf sein. Diese hat den Initiator heute in einem offenen Brief der Straftat bezichtigt und behauptet er würde der Open-Data-Bewegung einen Bärendienst erweisen.

Es ist immer wieder erstaunlich, dass es als Verbrechen gilt Daten aus ihren Gefängnissen zu befreien. Dabei dürfte inzwischen auch dem letzten Bürokraten klar sein, dass es ein Recht des Bürgers ist auf Daten zuzugreifen, die mit seinen Mitteln gesammelt wurden.

Differential GPS

Es gibt viele gute Quellen, die Differential GPS erklären. Eine DGPS-Station empfängt die Signale von verschiedenen GPS-Satelliten und errechnet für jeden einzelnen das Delta, das zum Beispiel durch die Ionosphäre bewirkt wird. Dieses Signal wird dann die mobilen Stationen in der Nähe gesendet. (Das bedeutet übrigens auch, dass Signalverzerrungen die durch die direkte lokale Umgebung entstehen – Gebäude – nicht mit DGPS rausgerechnet werden können.)

Der Übertragungsweg ist im Prinzip egal. Wichtig ist, dass die mobile Station über einen GPS-Receiver verfügt, der seinerseits Zugriff auf die Rohdaten der Satelliten-Signale bietet. Das ist leider nur bei den wenigsten gegeben. Die mobile Station benötigt natürlich nur die Daten von den Satelliten, die es selbst grade sieht.

Der einfachste Weg, um die Daten an die mobilen Stationen zu bekommen, ist NTRIP (Networked Transport of RTCM via Internet Protocol). Es basiert auf http und kann relativ leicht als REST-Service mit XML/JSON umgesetzt werden. Falls auf der mobilen Station kein IP zur Verfügung steht kann man aber auch auf Funktechnik wie den NTX2 zurückgreifen.

Interessant ist, dass ein DGPS in bestimmten Situationen keine geeichte Basisstation benötigt. Entweder kann man die Daten – beispielsweise bei der Erfassung für OpenStreetMap oder der Vermessung eines Grundstücks – nachträglich korrigieren. Oder, man hat eine Situation – beispielsweise für einen lokalen Drohnenflug – in der es genügt, exakte Angaben lediglich in Bezug auf die Basisstation.

Einsatzzwecke für OpenDGPS

Mit einem funktionieren und dichten OpenDGPS-Netz könnten mobile Stationen (sogenannte Rover) ihre eigene Position in Echtzeit bis auf wenige Zentimeter genau bestimmen. Aber wofür könnte man dies konkret einsetzen?

OpenStreetMap

Der wohl wichtigste Einsatzzweck dürfte natürlich die Erfassung von OpenStreetMap-Daten sein. Dieses unglaubliche Projekt zeigt die Power der Community. Während die meisten dieser Daten schon lange in mehr oder weniger guter Qualität in Amtsstuben vor sich hin schimmeln und nur gegen harte Währungen und nur unter unzumutbaren Lizenzen verwendet werden können hat die Crowd innerhalb weniger Jahre die Infrastrukur und die Daten für den freien Gebrauch geschaffen.

Mit Hilfe von OpenDGPS könnte die Datenqualität bereits bei der Erfassung erheblich verbessert werden. Fusswege, Eingänge oder Hydranten würden zukünftig fast blind zu finden sein. Wahrscheinlich könnte OpenStreetMap damit wesentlich bessere Daten haben als alle kommerziellen Dienste.

Autonome Copter und Rover

Eine begeisterte Community hat sich der Programmierung autonomer Copter oder Rover verschrieben. So findet beispielsweise am 5. Oktober in Berlin ein Workshop zum programmieren der AR Drone 2.0 unter node.js statt.

Bisher sind autonome Copter nur eingeschränkt einsetzbar weil die exakte Positionierung mit hohen Kosten für kommerzielle DGPS-Dienste verbunden sind. Auf der Basis von OpenDGPS könnten sich solche Geräte wesentlich besser orten. Insbesondere die Höhenangaben würden hilfreich sein. Interessant dabei ist, dass der Einsatz auch dann möglich ist, wenn in der Region kein verlässliches DGPS-Signal existiert. Mit Hilfe einer festen Station könnte der Copter oder Rover die relative Position ermitteln. Mit nachträglichem Prozessing der Daten liesse sich die genaue Flugbahn später ermitteln.

Übrigens würden autonome Drohnen mit exakter Positionierung sogar einen Fotoservice für OpenStreetMap ermöglichen.

Self-Monitoring

Eines der Buzzwords in Businessplänen der StartUp-Szene ist der Begriff des Self-Monitoring. Gemeint ist der Wunsch vieler Leute, Daten über das eigene Leben zu erheben. Egal ob das Gewicht, die gelaufenen Kilometer oder die aktuellen Nagellackkreationen, there is an app for that!

Grade für Sportler im Outdoor-Bereich ist die Speicherung der exakten Strecken interessant. Bergsteiger, die später in Google-Earth die Tour nachspielen können oder Segelflieger, die Kameraaufzeichnungen mit zentimetergenauen Angaben versehen können dürften sich über einen offenen DGPS-Dienst freuen.

Es dürfte noch viele weitere Möglichkeiten geben, OpenDGPS sinnvoll oder weniger sinnvoll einzusetzen. Egal ob Geocaching oder die Unterstützung von Hilfseinsätzen in Notfällen, letztlich entscheidet die Community was man daraus machen kann.

OpenDGPS startet heute offiziell. Jippiii!

Nach einem Berg von Recherchen, ertrunken in hunderten Links über GPS-Empfänger, RTKLib, NTRIP und Spezifikationen haben wir uns gestern entschieden, mit OpenDGPS zu starten. In den nächsten Wochen werden wir auf diesem Blog unsere Fortschritte und Rückschläge, unsere Vorstellungen und die Wirklichkeit, unsere Visionen und Albträume dokumentieren. Kurz: Wir sind vollkommen begeistert!

Aside

OpenDGPS ist eine freie Initiative von GNSS-Enthusiasten. Ziel ist der Aufbau eines Netzes von festen Stationen, die Differential-Signale zur Verfügung stellen und damit jedem Empfänger eine Ortung bis zu einer Genauigkeit im zweistelligen Zentimeterbereich ermöglichen. Mehr ->

2cm-GPS-Genauigkeit für alle!

Die Genauigkeit eines heute Verfügbaren GPS-Empfängers liegt – je nach Quelle und Empfänger – bei 3 bis 50 Metern. Im Prinzip wäre GPS geeignet wesentlich genauer zu arbeiten. Allerdings wird die Genauigkeit durch natürliche und künstliche Einflüsse beeinflusst. Da diese Einflüsse aber auf alle Empfänger wirken kann man diese Abweichungen eigentlich rausrechnen. Dazu wird die Abweichung von einem Gerät berechnet, bei dem die exakte Position bekannt ist. (Eigentlich wird nicht die Abweichung der Postition berechnet, sondern die Abweichungen der Signallaufzeit zu den einzelnen Satelliten). Ein solches Differenzsignal nennt sich sperrig RTCM (Radio Technical Commission for Maritime Services) und kann von teureren Empfängern benutzt werden.

Ein normaler GPS-Empfänger ist ein recht nervöser Zeitgenosse. Ohne Korrektursignal springt die Position selbst dann, wenn man sich nicht bewegt.

Mit einem korrigierten Signal erreicht man – je nach Quelle – eine Genauigkeit von bis zu 2cm. Grade in unwegsamem Gelände (Häuserschluchten!) erhöht sich die Genauigkeit deutlich weil der Empfänger nur sehr wenige Satelliten sieht und Abweichungen (z.B. absichtliche Zeitverzögerungen) der einzelnen Signale sich besonders deutlich auswirken.

Für dieses Korrektursignal gibt es seit einigen Jahren sogar das Internetprotokoll Ntrip (Networked Transport of RTCM via Internet Protocol). Die Daten werden dabei im Wesentlichen in einen HTTP-Stream verpackt auf Anfrage ausgesendet. In Deutschland gibt es dutzende Server, die die Korrekturdaten für verschiedene Positionen senden. Allerdings sind offensichtlich alle geschützt und/oder kostenpflichtig. Mit dem schönen Namen SAPOS (Satellitenpositionierungsdienst der deutschen Landesvermessung) bieten die Länder verschiedene Dienste (siehe AdV) mit unterschiedlicher Genauigkeit an, die über unterschiedliche Medien übertragen werden. In Berlin sendet der RBB zum Beipsiel auf 88,8 ein Signal mit dem eine Genauigkeit von unter 2m berechnet werden können. Genauere Daten sind allerdings bei allen Bundesländern nur kostenpflichtig zu erhalten. Mit 10 Cent pro Minute dürfte es sich um den teuersten behördlichen Dienst überhaupt handeln.

Jetzt ist es aber nicht so, dass der Betrieb einer Referenzstation und die Bereitstellung der Korrekturdaten Raketenwissenschaft ist. Zwar wird dabei mit relativistischen Effekten gerechnet aber die Formeln sind bekannt und zum Teil als OSS (RTKLIB)  verfügbar. Inzwischen gibt es immer mehr Empfänger die sich dazu bringen lassen, die Rohdaten rauszurücken und bieten damit alles, was man als Referenzstation benötigt. Ein Set aus einem Navilock 551EUSB für ca. 30 € betrieben an einem Beagleboard für 150 € unter Ångström Linux, vernünftig kalibriert und mit dem Netz verbunden würde einen hervorragenden Ntrip-Server liefern.

Ein solcher Korrekturserver könnte jedes online verbundene Smartphone mit einer Genauigkeit im Zentimeterbereich ausstatten. Zusammen mit den inzwischen verfügbaren Gyroskopsensoren in aktuellen Androidgeräten und iPhones würden AR-Programme plötzlich wirklich Spass machen.

Es bleibt also die Frage, wer in Zukunft umsonst solche Referenzmessungen anbietet. Hallo Google? Hallo Nokia? Aber eigentlich ist es ja ein hervorragendes Crowdsourcing-Projekt.

Hier lang gehts zu weiteren Informationen:

[Disclaimer] Der Artikel erschien ursprünglich auf qrios.de. Dabei handelt es sich um den Blog von qrios, der sich hauptsächlich mit dem Thema Privacy und Netzpolitik beschäftigt.[/Disclaimer]