Christians Webseite        << zurueck        vor >>

GNSS

GNSS ist die Abkürzung für Global Navigation Satellite System. Es ist der Oberbegriff für alles was mit Positionsbestimmung über Satelliten zu tun hat. GPS war das erste und lange Zeit einzige verfügbare System. Umgangssprachlich wird deshalb oft nur von GPS gesprochen.

Moderne GNSS Empfänger sind in der Lage mehrere System gleichzeitig zu empfangen und auszuwerten. Aktuell (2022) sind 4 unterschiedliche GNSS-Systeme aktiv:

Name Land, Anmerkung
GPS USA, Verteidigungsministerium
GLONASS Russische Föderation, Verteidigungsministerium
Galileo EU, zivil
Beidou Volksrepublik China, Volksbefreiungsarmee

Es existieren noch 2 weitere Systeme, die aber nur in geographisch eng begrenzten Bereichen benutzbar sind:
Name Anmerkung
QZSS Quasi Zenit Satelliten System, Japan und Asien/Pazifik
IRNSS Indian Regional Navigation Satellite System, Indien

GNSS-Module

gnss gnss

GNSS-Empfänger werden meist als fertiges Modul angeboten. Das Bild zeigt ein typisches Beispiel von der Firma Beitian. Es hat die Abmessungen 18x18x6mm. Die Keramikplatte auf der Oberseite ist die Antenne. Module mit abgesetzter Antenne sind ebenfalls gängig.

Die Empfangssignale von den Satelliten sind extrem schwach. Die Antenne muss deshalb freie Sicht "nach oben" haben.

Praktisch alle modernen Smartphones haben GNSS direkt in ihre Chipsätze integriert. Dort gibt es keine separaten Module und auch die Antenne sieht ganz anders aus.

Satelliten

Jedes der GNSS-Systeme verwendet ca 30 Satelliten die, gleichmässig verteilt, in einer Höhe von ein paar Tausend Kilometern um die Erde kreisen. Durch die niedrigen Umlaufbahnen bewegen sich die Satelliten sehr schnell und sind nicht statisch am Himmel platziert. Dadurch ergeben sich permanent wechselnde Konstellationen der sichtbaren Satelliten und somit ständig wechselnde Empfangssituationen.

Das folgende Bild zeigt beispielhaft die Bewegungen der aktuell sichtbaren Satelliten im Abstand weniger Minuten.

gnss

Der Mittelpunkt des Bildes ist der Ort des Empfängers. Die rot unterlegten Satelliten sind auf Grund lokaler Abschattungen der Antenne nicht empfangbar.

Die Sendeleistungen der Satelliten sind relativ niedrig und der Empfangspegel beim Empfänger liegt sehr deutlich unterhalb des umgebenden Rauschpegels. Aber durch pfiffige Korrelationsverfahren wird eine mathematische Signalverstärkung von ca. 20dB erreicht, und dadurch ein Empfang und das Dekodieren überhaupt erst ermöglicht.

NMEA 0183

Die Abkürzung steht für National Marine Electronics Association. Diese Organisation hat den Standard 0183 definiert der von allen GNSS-Empfängern als Standard zum Ausgeben der Daten verwendet wird. Es sind leicht auswertbare, lessbare ASCII-Sequenz die aus sog. Sätzen (Sentences) bestehen, z.B.:

 
$GPGGA,130305.0,4717.115,N,00833.912,E,1,08,0.94,00499,M,047,M,,*58
$GPRMC,130304.0,A,4717.115,N,00833.912,E,000.04,205.5,200601,01.3,W*7C

Neben den Positionsangaben ist in den Sätzen alles enthalten was der Empfänger an Daten empfangen oder berechnet hat, z.B. Höhe, Geschwindigkeit, Kurs, Datum und Uhrzeit, Liste der Satelliten, etc. Viele Daten sind mehrfach in verschiedenen Sätzen vorhanden. Für die meisten Anwendungen ist die Auswertung der Sätze RMC und GGA ausreichend.

Eine Liste aller NMEA-Nachrichten/Sätze kann man z.B. in der Dokumentation von u-blox finden.

Die NMEA-Daten werden physikalisch (typischerweise) über eine serielle Schnittstelle ausgegeben (3V-Level UART, 4800, N, 8, 1).

TTFF (Time To First Fix)

Dieser Parameter beschreibt wie lange ein GNSS-Empfänger benötigt um seine aktuelle Position zu bestimmen. Dabei wird noch zwischen "Kaltstart" und "Warmstart" unterschieden.

  • Kaltstart: bis zu 10 Minuten
  • Warmstart: 1 .. 5 Sekunden

Diese extremen Unterschiede sind in der Verabeitung der Satellitensignale begründet. Bei einem Kaltstart hat der Empfänger keinerlei Informationen welche Satelliten in seiner Reichweite sind und muss zuerst eine breitbandige "Sendersuche" durchführen. Sobald er aufsynchronisiert ist werden diese Daten gespeichert und beim nächsten Aufstarten angewendet.

Genauigkeiten

Durch die ständig wechselnden Empfangssituationen ergeben sich stark schwankende Genauigkeiten bei der Ortsbestimmung. Einen grossen Anteil hat dabei der Weg der Signale durch die Atmosphäre. Es werden deshalb immer nur Mittelwerte und Wahrscheinlichkeiten angegeben, z.B das 95% der Ergebnisse innerhalb eines 5m Radius liegen.

gnss

Bei idealem Empfang sind Genauigkeiten von unter 2m möglich. In stark bebautem Gebiet ohne freie Sicht treten typischweise Mehrfachreflexionen der Empfangssignale auf, wodurch die Ungenauigkeiten drastisch ansteigen.

Um die Positionsbestimmung robuster zu machen werden gerne auch die Daten von Beschleunigungssensoren hinzugenommen (Smartphone). Eine Tunneldurchfahrt ist ein typischer Fall wo diese Daten kurzzeitig helfen können.

Koordinaten Notationen

Geographische Koordinaten werden durch die Angabe eines Zahlenpares mit Breitengrad (Latitude) und Längengrad (Longitude) beschrieben. Die Reihenfolge (Lat/Lon oder Lon/Lat) ist dabei nicht fest vorgegeben und auch der Rest des Formats kann erheblich variieren.

Beispiel: 41°24'12.2"

  • 41 Grad, Zahlenbereich: -180 .. +180 bzw -90 .. +90
  • 24 Minuten, Zahlenbereich: 0 .. 59
  • 12 Sekunden, Zahlenbereich: 0 .. 59
  • 0.2 Bruchanteil Sekunden, Zahlenbereich: 0.0 .. 0.999..


Der ganzzahlige Vorkommateil (41) wird einheitlich als normale Winkelangabe geschrieben. Der Zahlenbereich ist -180°..+180° für Längengrade (Longitude) bzw. -90°..+90° für Breitengrade (Latitude).

Beim Nachkommaanteil wird es kompliziert und verwirrend. Es sind verschiedene Darstellungen gängig:

  • WinkelMinuten + WinkelSekunden mit Bruchanteil: 24'12.2"
  • WinkelMinuten + Sekundenanteil in dezimaler Notation: 24 + 0.2033
  • Dezimale Darstellung: 0.40338


Ohne weitere Formatinformationen sind Koordinatenangaben nicht eindeutig. Oft wird deshalb jeweils ein Buchstabe zugeordnet ([E,W] oder [N,S]). Wenn die Reihenfolge (Lon/Lat oder Lat/Lon) bekannt ist dann kann auch jeweils ein Vorzeichen verwendet werden:

  • kein Vorzeichen oder plus (+) im Fall N bzw E
  • minus (-) im Fall S bzw W


Die gängigsten Formate in der Übersicht. Alle mit dem selben Positionsbeispiel:
41°24'12.2"N; 2°10'26.5"E (La Sagrada Familia in Barcelona).

Name Info Latitude Longitude Format Anmerkung
GMS Grad, Minuten, Sekunden 41°24'12.2" 2°10'26.5" d°mm'ss.s" historische Notation
GMM Grad, Minuten mit Dezimalbruchteil 41 24.2033 2 10.4417 d mm.mmmm nautische Notation
DG Grad mit Dezimalbruchtanteil 41.40338 2.17403 d.ddddd dezimale Notation
NMEA Grad, Minuten mit Dezimalbruchteil 4124.2033 00210.4417 (d)dmm.mmmm NMEA Notation
(d=degree, m=minute, s=second)


Das NMEA Protokoll der GPS-Module hat eine Besonderheit: es verwendet Grad und Dezimalminuten (GMM), wie auch die nautische Notation, aber mit fest vorgegebener Länge und einer speziellen Syntax :

Name Latitude Longitude Format
NMEA 4124.2033,N 00210.4417,E (d)dmm.mmmm,(E,W,N,S)

Für Breitengrade (Latitude): ddmm.mmmm + "N" oder "S"
Für Längengrade (Longitude): dddmm.mmmm + "E" oder "W"
Bei Bedarf führende und nachfolgende Nullen auffüllen um die Länge einzuhalten.

Beispiele für Koordinatenumrechnungen

NMEA in GMS:
Beispiel: 4124.2033,N
= Trunc(4124.2033/100) + Trunc(Frac(4124.2033/100)*100) + Trunc(4124.2033)*60)
= 41° + 24' + 12.2"


GMS in EMEA:
Beispiel: 41°24'12.2" N
= 41*100 + 24 + 12.2/60
= 4100 + 24 + 0.2033
= 4124.2033,N


NMEA in DG:
Beispiel: 4124.2033,N
Allgemeines Format: (d)dd + (mm.mmmm/60), multipliziert mit -1 wenn W oder S
= Trunc(4124.2033/100) + Frac(4124.2033/100)*100/60;
= 41 + 24.2033/60
= 41 + 0.40338
= 41.40338 N


DG in EMEA:
Beispiel: 41.40338 N
= Trunc(41.40338)*100 + Frac(41.40338)*60
= 4100 + 0.4338*60
= 4100 + 24.2033
= 4124.2033,N


GMS in DG:
Beispiel: 41°24'12.2" N
Dezimalgrad = Grad + Minuten/60 + Sekunden/3600
= 41 + 24/60 + 12.2/3600
= 41 + 0.4 + 0.00338
= 41.40338 N

Für weitere Infos und Hilfen zum Umrechnen ist ein Koordinaten-Umrechner sehr hilfreich.

Koordinaten und Kartendienste

Die üblichen Online-Kartendienste akzeptieren auch direkte Koordinateneingaben. Google-Maps, z.B., kann automatisch GMM, DG und GMS erkennen, aber nicht das NMEA-Format. Als default wird die erste Angabe als Breitengrad (Latitude) und die zweite als Längengrad (Longitude) interpretiert.

Die folgenden Links führen alle zur argentinischen Stadt Ushuaia (Angaben in Dezimalgrad):

Lat: -54.807914416615475
Lon: -68.30407776097708

Google-Maps:
https://www.google.com/maps?q=-54.807914416615475,-68.30407776097708

OpenStreetMaps:
https://www.openstreetmap.org/#map=14/-54.8079/-68.3041

Bing-Maps:
https://bing.com/maps/default.aspx?cp=-54.8079~-68.3041&lvl=12&style=r

KML-Format

Das von Google häufig verwendete KML-Format verwendet Longitude, Latitude und Altitude, in genau dieser Reihenfolge. Die Reihenfolge ist damit umgekehrt zu dem was z.B. Google Maps erwartet. Die Angaben werden in Dezimalgrad Notation angegeben.

  • Longitude, Ost=positiv, West=negativ
  • Latitude, Nord=positiv, Süd=negativ
  • Altitude, Höhe über Normallevel, optionale Angabe

Geo Mikroformat

Dieses Format wurde für die Koordiantenabgabe in HTML-Dokumenten erdacht. Der Wert für Latitude wird zuerst genannt, falls nichts anderes vereinbart wird.

  • Latitude, Nord=positiv, Süd=negativ
  • Longitude, Ost=positiv, West=negativ
 
<div class="geo"Ushuaia:> 
<span class="latitude">-54.807914 </span> 
<span class="longitude">68.304077</span>
</div>
 

Windows und GNSS

GNSS-Empfänger wurden ursprünglich per RS232 mit einem PC verbunden, später dann per USB und einen virtuellen COM-Port. Über diesen COM-Port wurden die NMEA-Daten übertragen und von den Programmen übernommen.

Ungefähr mit dem Übergang auf Windows 7 hat Microsoft den "Location Service" als neuen Dienst eingeführt. Dieser Dienst kann Positionsdaten aus verschiedenen Quellen verarbeiten und als Geo-Position bereitstellen. Als Quelle kann z.B. auch die geschätzte Positionen auf Basis des IP-Anschlusses dienen. Normalerweise ist es aber das integrierte GNSS-Modul, mit speziellen Treibern

Viele aktuelle Windows-Apps folgen exklusiv dem Location-Service Ansatz. Ältere Programme, oder Analysetools, verwenden üblicherweise die COM-Port Methode oder bieten eine Auswahl an.

Die Anbindung eines externen GNSS-Moduls per COM-Port in diesen Dienst ist dabei nicht mehr vorgesehen. Um ein "klassisches" USB-GNSS-Modul verwenden zu können wird ein passender Location-Service-Treiber benötigt. Typischerweise wird der vom Hersteller mitgeliefert, verbindet sich direkt mit dem USB-Treiber und klinkt sich in den Location Service ein. Bei reinen RS232-Modulen hat man aber ein Problem weil solche Treiber nicht mitgeliefert werden.

Einen universellen "Location-Driver" findet man z.B. bei PilaBlue (nur für Win-64Bit). (scheinbar nicht mehr aktiv..)
Eine weitere Lösung findet sich hier https://www.gpssensordrivers.com/.

Links

Skript Teil 8 - GNSS, Ein Skript der Universität Bochum, Vermessungskunde, Prof. Dr. Mischke

Gps_compendiumgps-x-02007.pdf, das GPS-Kompendium von U-Blox.

U-centerv22.05.zip, GNSS evaluation software von u-Blox für Windows.

GS-Enduro, private Webseite mit Erläuterungen zur Navigation

Koordinaten-Umrechner