Warum SBAS Fluch und Segen zugleich ist

Nachdem die USA im Jahr 2000 die künstliche Verschlechterung der GPS Signale (Selective Availability) abgeschaltet haben ist eine der größten Fehlerquellen im GPS System die Ionosphäre. Wenn sich die Ionisierung durch den Sonnenwind verändert werden die Signale von den Satelliten unterschiedlich stark verzögert.
Eine Folge davon ist, dass der GPS Empfänger die Position nicht mehr so genau bestimmen kann.

Als Gegenmaßnahme wurde eine Reihe von Messstationen aufgebaut die die Störungen bestimmen und Korrekturdaten bereitstellen. Bekannt sind diese sogenannten SBAS unter der Bezeichnung WAAS und EGNOS.
Die Korrekturdaten haben nur eine räumlich begrenzte Gültigkeit, sind durch die Ausstrahlung über geostationäre Satelliten aber auch in anderen Gebieten empfangbar.

Eigentlich sollte der Empfänger den ebenfalls ausgestrahlten Gültigkeitsbereich auswerten. Leider klappt das wohl mit vielen Chips nicht.

Was dann passieren kann zeigt das folgende Bild.

Verschobene Position durch EGNOS außerhalb des versorgten Gebiets

Verschobene Position durch EGNOS außerhalb des versorgten Gebiets


Es wurden zeitgleich Tracks mit zwei Loggern aufgezeichnet. Einem Transystem iBlue 747 und einem 747A+. Ich hatte vergessen bei einem Empfänger das Korrektursignal abzuschalten. In Folge sind die GPS Punkte durch die fehlerhaft angewendete Korrektur um fast 100 Meter verschoben.

In der GPX Datei ist am Schlüsselwort dgps vermerkt dass ein SBAS zur Positionsbestimmung verwendet wurde.

Nachträglich korrigieren lässt sich das in der Praxis nicht, besser also den Datenlogger gleich von Anfang an korrekt einstellen.

iBlue 747 GPS Logger mit AndroidMTK auslesen

Wenn ich länger für OpenStreetMap mappe, z.B. im Urlaub, dann will ich unterwegs ab und zu meinen iBlue 747A+ Datenlogger auslesen. Nicht immer habe ich dann einen Laptop griffbereit. Aber ich habe ein Smartphone mit AndroidMTK dabei. Eine perfekte Kombination.
Weiterlesen

BT747 Einstellungen für i-Blue 747A+ GPS Datenlogger

Meine BT747 Einstellungen für den Transystem i-Blue 747A+ GPS Bluetooth Datenlogger möchte ich hier vorstellen.

In der Vergangenheit habe ich immer sehr erfolgreich meine GPS Tracks mit einem i-Blue 747 aufgezeichnet. Nachdem ich den Datenlogger bei meinem letzten Mapping-Trip in Thailand an ortsansässige OSM Neueinsteiger verschenkt hatte musste ich mir einen Ersatz suchen. Bei Ebay konnte ich das aktuelle Nachfolgemodell 747A+ ersteigern. Im Vergleich zum Vorgänger ist der modernere GPS Chip MT3329 enthalten, der nun 66 Kanäle verwendet, einen doppelt so großen Speicher hat und AGPS für einen schnelleren Fix unterstützt.

Die Gelegenheit hat sich angeboten dann gleich zu dokumentieren wie ich den Logger passend für OpenStreetMap konfiguriere. Die Anleitung bezieht sich hier auf den 747A+, das Programm funktioniert aber mit vielen Loggern die auf dem gleichen Design basieren. Unter anderem Geräte von Royaltek und Qstarz. Für andere Logger wird das Programm nicht funktionieren, die prinzipielle Vorgehensweise sollte aber die gleiche sein.

Die Software

Ich verwende auf dem PC die OpenSource Software BT747 die sämtliche Werkzeuge bietet um den Logger zu konfigurieren und auszulesen. Die Software kann entweder per Java Webstart gestartet werden oder lokal installiert werden. Sie läuft auf jedem System das Java kann, zusätzlich auf j2me und windows ce Geräten.

Nach dem Anstecken (Einschalten) an USB fordert einen Windows auf Treiber zu installieren. Die Treiber für alle Windows Versionen bis Windows 7 gibt es direkt beim Hersteller. Windows 8.1 installiert automatisch einen passenden Treiber.

Die Einstellungen

Bevor es los geht muss der Logger natürlich per USB verbunden und eingeschaltet (auf LOG) werden. Mit dem Connect Knopf links unten kann man die USB Verbindung herstellen.

In den Device settings stelle ich die Parameter ein wie häufig der Logger Daten aufzeichnet und welche Daten gespeichert werden.

BT747 Device Settings Dialog

Beim Zeitformat wähle ich die normale UTC Zeit und Zusätzlich Millisekunden da ich häufiger als ein mal pro Sekunde logge. Irgendwie muss das ja in den Daten unterscheidbar sein. Also UTC Time und Miliseconds anwählen.

Für OpenStreetMap benötige ich nur die Koordinate, also Latitude und Longitude. Geschwindigkeit und Richtung kann später JOSM alleine berechnen, das brauche ich nicht. Auch auf die Höhe verzichte ich. Dadurch passen mehr Daten in den Speicher und so sonderlich genau ist die Höhenangabe bei GPS auch nicht. Für Höhenangaben zu Bergen verlasse ich mich lieber auf die Infotafeln vor Ort.

Weil ich später nur die “guten” Daten in meinem Track haben will speichere ich den GPS Fix Type, HDOP und NSAT mit ab. Mit diesen Daten lässt sich erkennen wie gut die berechnete Position ist. Im Fix Type vermerkt der Logger ob er überhaupt eine Position über GPS ermitteln konnte. NSAT sind die Anzahl an Satelliten die der Empfänger gesehen hat. Je mehr Satelliten empfangen werden desto höher ist die Chance auf eine gute Positionsbestimmung. Ich nehme diese Angabe mit ins Log weil ich der reinen HDOP nicht ganz traue und Peilungen mit wenigen Satelliten auch ausschließe. Wenn man sich nur auf das HDOP verlässt kann man ohne diese Daten nochmal ca. 5% mehr Punkte speichern. Der HDOP Wert gibt an wie gut der berechnet Wert ist. Unter 1.0 sind die Punkte richtig gut, bis 2 kann ich sie noch akzeptieren. In JOSM lassen sich die HDOP Genauigkeitswerte auch als Kreise um die GPS-Punkte herum anzeigen.

Mit dem Reason RCR protokolliert der Logger mit warum etwas aufgezeichnet wurde. Da ich Tastendrücke auf den Marker erkennen will muss ich das mit aufzeichnen.

Mittels Set Format & Erase wird der Speicher entsprechend den neuen Einstellungen formatiert. Daten die vorher drauf waren werden dabei gelöscht und sollten vorher gespeichert werden. Aber bei den vielen Warnhinweisen der Software kann man das nicht übersehen.

Mit dem Schalter Use SBAS WAAS lassen sich Ionosphären Korrekturdaten verwenden um die Genauigkeit der Positionsbestimmung nochmal zu steigern. Diese sind unter den Kürzeln WAAS, EGNOS und MSAS bekannt. Die Korrekturdaten haben eine begrenze räumliche Gültigkeit und sind in Nordamerika, Europa und Japan gültig. Da mit den Korrekturdaten auch eine Information über den Gültigkeitsbereich gesendet wird sollte es kein Problem sein das immer eingeschaltet zu lassen. Es gibt allerdings Gerüchte dass manche Logger diese Prüfung nicht sauber implementieren. Wenn man also sicher außerhalb eines versorgten Gebietes ist kann man zur Sicherheit das auch ausschalten. Nicht vergessen mit dem Set Schalter die Einstellung zu speichern.

Bereits gesammelte Daten will ich auf keinen Fall überschreiben, daher stelle ich den Logger so ein dass er aufhört wenn der Speicher voll ist. Stop when full. Der Logger zeigt das mit einer rot leuchtenden LED an. Bei einem Rest von 20% fängt die an zu Blinken. Mit meinen Einstellungen reicht das für 18 Stunden Aufzeichnung. Danach muss ich mit Computer oder Smartphone die Daten auslesen.

Ich möchte zweimal pro Sekunde die Position aufzeichnen um auch in einer Kurve noch genügend Datenpunkte zu haben um ohne Luftbild den Straßenverlauf ahnen zu können. Für diese 2Hz Updates stelle ich auf Fix every 500 ms. Damit hat der Logger intern zwei mal pro Sekunde eine Position berechnet. Die weiteren Einstellungen legen fest wann diese ins Log geschrieben werden. Die Bedingungen sind alternativ. Mit Time every 1.0 seconds ist jede Sekunde ein Eintrag im Log, auch wenn der Logger nicht bewegt wird. Die Zahl kann auch etwas größer gewählt werden. Mit Distance every 1.0 m wird ein Punkt geloggt wenn sich die Position um mehr als einen Meter verändert hat. Das kann bei meinen Einstellungen also bis zu zwei mal pro Sekunde sein. Am Schluss speichere ich die Einstellungen mit Set.

Der Abstand zwischen zwei Punkten bei einer gegebenen Geschwindigkeit lässt sich einfach berechnen. Die Geschwindigkeit in Kilometern pro Stunde wird einfach durch 3,6 geteilt. Dann hat man Meter pro Sekunde. Das teilt man durch die Anzahl Punkte die pro Sekunde aufgezeichnet werden und schon hat man den Abstand zwischen zwei Punkten. Beispielsweise wird bei einer Geschwindigkeit von 72 km/h und 2Hz Loggingfrequenz alle 10 Meter ein Punkt geloggt.

Hilfsdaten

Damit das Gerät schneller eine erste Position hat, im englischen TTFF -Time To First Fix- genannt kann man die Bahndaten der Satelliten schon im Gerät ablegen. Das sind berechnete Daten die um so ungenauer werden je weiter in der Zukunft die Daten liegen. Der Logger unterstützt Bahndaten für bis zu sechs Tage in der Zukunft. Diese Assisted-GPS Daten bekommt das Programm aus dem Internet. Mit Upload APGS data to device werden die Daten geladen und auf den Logger gespeichert. Kurz bevor ich auf Tour gehe lasse ich die AGPS Daten aktualisieren.

BT747 AGPS Dialog

Die Filter Einstellungen

Eventuell kommt es bei der Erfassung der Daten draußen im Gelände zu Situationen in denen der Empfang nicht besonders gut ist und die GPS Tracks entsprechend schlecht sind. Ich denke dass solche schlechten GPS Punkte in OSM mehr schaden als nützen, deswegen möchte ich sie nicht hochladen. Um Dateien zu bekommen bei denen das erst gar nicht enthalten ist lassen sich in BT747 Filterbedingungen einstellen die festlegen welche Daten in die Ausgabedatei übernommen werden und welche nicht.

BT747 Filters Dialog

Unterschieden werden drei Arten von Filtern. Man Kann festlegen was als Trackpoint (also die normalen Brotkrumenpunkte) mitgenommen wird, was für die Waypoints (wenn ich den Marker drücke) gilt und welche Einstellungen auf alles angewendet werden.

Ich stelle Trackpoints auf SPS, DGPS, PPS, RTK, FRTK und die Log Reason auf Time, Button, User. Ist etwas mehr als tatsächlich gebraucht wird aber ich will erst mal alle Punkte haben. Die Ausnahme sind Punkte bei denen der Logger schon erkennt dass es keine gültige Position ist (das wären vor allem No fix und Estimate).

Für die Waypoints gilt es entsprechend.

Spannend wird es bei den gemeinsamen Filtern. Da ich die 2D Genauigkeit HDOP mit aufzeichnen lasse kann ich auch danach filtern. Bei HDOP Werten schlechter als 1.98 will ich die Punkte nicht im Trace haben. Schlechte Werte können auftreten wenn nur Satelliten sichtbar sind die in einer sehr ungünstigen Geometrie zueinander stehen. Da dann die Position mit hoher Wahrscheinlichkeit ungenau ist will ich das später auch nicht im Editor sehen. Dann weiß ich wenigstens woran ich bin. Die Einschränkung auf Positionen mit mindestens 4 Satelliten bei NSAT geht in die gleiche Richtung. Die “kleiner-gleich” Zeichen sind hier etwas missverständlich. Es landen Werte im Trace mit einem HDOP kleiner als dem angegebenen Wert und mit Satelliten größer dem angegebenen Wert. Selbst wenn die Werte diese Filter passieren kann es bei ungünstiger Empfangslage zum Beispiel Reflexionen an Gebäuden geben die die Position verfälschen. GPS Positionen sind als immer mit gesundem Misstrauen zu sehen.

Das Dateiformat

Im Reiter für das Ausgabeformat habe ich fast alle Felder markiert. Daten die es nicht gibt werden nicht in die Ausgabedatei geschrieben. Das reguliert sich von selbst.

BT747 Output Settings Dialog

Einige Punkte möchte ich gesondert erläutern. Die Zeitzone lasse ich auf UTC +0 laufen (TimeZone UTC +0). Da ich häufig zwischen verschiedenen Zeitzonen wechsle könnte es sonst zu leicht passieren dass die falsche Zeit verwendet wird. Von der Position her kenne ich die Zeitzone. So ist eine spätere Zuordnung kein Problem. Pro Track lasse ich eine einzelne Datei schreiben (One file per track). So kann ich verschiedene Strecken die ich an einem Tag geloggt habe einfach auseinanderhalten. Wenn eine Pause länger als 15 Minuten erkannt wird soll eine neue Datei begonnen werden (New Track after 15 min. pause). Ebenso wenn der Logger eingeschaltet wird (New track when GPS logger switched on).

Damit die Dateien nicht zu umfangreich werden verzichte ich darauf jeden einzelnen Punkt mit Namen zu versehen. Das wären Add Track Point Info und Add Track Point Name. Für die Waypoints lasse ich das eingeschaltet.

 Daten runterladen und konvertieren

Nach dem Mapping Ausflug kommt der große Moment. Der Logger wird angeschlossen und verbunden.

BT747 Log Operations Dialog

Den Pfad für die Ausgabedateien habe ich eingestellt (Output Folder), ebenso eine Datei festgelegt in die die Rohdaten gespeichert werden (Raw Log File). Die Methode Smart Download beschleunigt den Prozess indem nur die neuen Daten geladen werden. Mit klick auf Download geht es los.

Nach einigen Sekunden ist der Trace auf dem Computer. Ich konvertiere meine Traces nach GPX um sie in JOSM anzusehen und zu OpenStreetMap hochzuladen. Zusätzlich gebe ich sie als HTML aus. Da lassen sich die Traces lokal im Browser vor OSM Karten oder auch Satellitenbildern anzeigen. Super um einen schnellen Eindruck zu bekommen wo der Thread genau war. Dateien die keine sinnvollen Daten enthalten weil es zum Beispiel eine Situation war in der der Logger im Haus eingeschaltet war lassen sich so schnell erkennen und aussortieren.

Bei Bedarf kann der Speicher auf der Seite mit den Device Settings mit einem Klick auf den Erase button für den nächsten Ausflug geleert werden.