Forum: Mikrocontroller und Digitale Elektronik Distance GPS


von Michael (Gast)


Lesenswert?

Hallo an die GPS-Experten,


wie berechnet man die Strecke zwischen zwei GPS-Koordinaten?

Gegeben Lat1,Lon1,Lat2,Lon2

Michael

von Christoph Kessler (db1uq) (Gast)


Lesenswert?


von Stefan (Gast)


Lesenswert?

Aviation Formulary V1.42 by Ed Williams
http://williams.best.vwh.net/avform.htm

von Michael (Gast)


Lesenswert?

ich habe die vereinfachte Berechnung von B. Schulz gefunden.
Die Genauigkeit reicht auf jeden Fall aus.
Sehr gute Lösung.

von Michael J. (michael-junge)


Lesenswert?

Hallo

ich weis, es ist schon sehr lange her, aber wo hast Du die Lösung von 
"B.Schulz" gefunden? Habe alles abgesucht, und die Lösungen, welche mir 
Mr.Google gezeigt hat, sind dann doch etwas zu heftig.

Ich möchte ebenfalls nur den Abstand zwischen 2 GPS-Positionen 
bestimmen.

Vielen Dank und viele Grüße
Mike

von axelnonym (Gast)


Lesenswert?

Beitrag "GPS - MOUSE - MINI- NAVIGATOR (Assembler) ATmega8"

geht sehr gut, habe ich mal in "C" umgesetzt...

von hackklotz (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang die Formel, die ich vor Jahren mal benutzt habe. Bei den 
Koordinaten ist zu beachten, dass diese jeweils negativ eingesetzt 
werden müssen, wenn es sich um südliche oder westliche Koordinaten 
handelt.

von jjk (Gast)


Lesenswert?

Kommt auf die Genauigkeit bzw. den Anwendungszweck und den Abstand 
zwischen den Waypoints an.

Die Great Circle Methode ist genau aber aufwendig.
Die Schulzloesung ist simpel aber ungenau, sie funktioniert 
genaugenommen nur fuer einen Breitengrad halbwegs.

Im "kleinen Masstab", also bei geringen Abstaenden um/unter 100 Km, kann 
man auf Great Circle verzichten und mittels Tabelle direkt/linear 
rechnen.

Wenn man das Ergebnis auch zur Standortbestimmung, etwa auf einer 
100.000er oder 50.000er Karte verwenden will (Koppelnavigation) geht das 
sehr genau mit einer 1 Grad LAT/LON Tabelle. Die LAT-Werte kann man dann 
direkt verwenden, die aendern sich pro Grad nur im cm-Bereich. Die 
LON-Werte muss man noch auf die Minute interpolieren da sich LON 
zwischen 0 Grad LAT und 90 Grad LAT von 1853.32 m bis auf 0 m aendert.

Die Berechnung mit einer Tabelle ist trivial und kommt ohne 
Winkelfunktionen aus.
Man erreicht damit Berechnungsgenauigkeiten im Meterbereich fuer 
moderate Entfernungen.

Ich habe eine Tabellenloesung implementiert, Tabellengroesse incl. 
Interpolationsfaktoren betraegt dabei 546 Byte.
Bei eher kleinen Entfernungen spielt auch das jeweilige Kartendatum kaum 
mehr eine Rolle, man kann durchgaengig bei WGS84 bleiben.


juergen

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Die Aufgabe war lange vor GPS schon eine typische Mikrocomputeraufgabe 
der Funkamateure. Die Koordinaten wurden in einem Amateurfunk-eigenen 
System, dem sogenannten QTH-Kenner angegeben, und nach Funk-Kontesten 
damit die erreichten Entfernungen auf etwa 2 km genau berechnet.
http://de.wikipedia.org/wiki/QTH-Locator
http://www.mydarc.de/db6zh/qthzz/qthxx04.htm

von Michael J. (michael-junge)


Lesenswert?

Vielen Dank für die Info

Ich denke mit der Formel kann ich was anfangen. - Kennt jemand nen 
Taschenrechner mit dem ich das mal nachrechnen kann?! Mit dem 
Windows-Ding is bei cos Ende?!

Vielen Dank und viele Grüße
Mike

von hackklotz (Gast)


Lesenswert?

>is bei cos Ende?!

Wie meinst du das? Du brauchst Cosinus, Sinus und Arcuscosinus; ist doch 
alles vorhanden.

von Michael J. (michael-junge)


Lesenswert?

hmmm...

sin cos finde ich aber arc?

von hackklotz (Gast)


Lesenswert?

Das geht über INV -> COS :)

von Mario (Gast)


Lesenswert?

Für übergenaue guckst Du da:

http://de.wikipedia.org/wiki/Orthodrome

Rechnet auf dem WGS84 Referenz-Ellipsoid.

von Michael J. (michael-junge)


Lesenswert?

ah, ok danke.
jetzt hab ich aber noch ein Verständnis Problem:
Ich möchte gerne den Abstand zwischen 2 Punkten berechnen:
N49 59,952  E9 09,456 und N49 59,954  E9 09,544. Wie setz ich denn die 
Werte jetzt in die Formel ein? Egal welche Umrechnungen ich versuche, 
kommt Müll raus. Der Reale Abstand müsste so um die 100 Meter sein - 
davon bin ich jedoch weit entfernt :-(


Gruß Mike

von Michael J. (michael-junge)


Lesenswert?

N49 59,952 bedeutet doch 49° 59Bogenminuten und 952 Bogensekunden oder?!
denn dann würden die Bogenminuten + Bogensekunden mehr als 1° ergeben, 
was keinen Sinn macht...

von jjk (Gast)


Lesenswert?

>N49 59,952 bedeutet doch 49° 59Bogenminuten und 952 Bogensekunden oder?!

Es bedeutet das was da steht: 49 Grad Nord und 59,952 Minuten:
Dezimalminuten ;)

Umgerechnet sind das 59 Minuten und rund 57 Sekunden.

juergen

von hackklotz (Gast)


Lesenswert?

Hier sieht man, dass diese Formel im Nahbereich ungeeignet ist, was man 
am letzten Cosiunusterm sieht. Bei sehr nahen Koordinaten geht die 
Differenz gegen Null und somit der Cosinus gegen 1. Naja und die ganze 
Klammer geht dann auch gegen 1, somit erhält man als Entfernung 111m :)

von jjk (Gast)


Lesenswert?

Meine Rechnung sieht so aus:

Gegeben sind N49 59,952  E9 09,456 und N49 59,954  E9 09,544.

Delta LAT betraegt also 0.002 Min. und Delta LON betraegt 0.088 Min.

1 Min LAT @ 49 Grad + 59.9 Min = 1853.81 m
1 Min LON @ 49 Grad + 59.9 Min = 1194.92 m

Beides auf der Basis Erdumfang durch die Pole = 40007.863 km
und 1 naut. Meile = 1852 Meter.

Delta LAT ergibt dann 3.70 m und Delta LON ergibt 105.15 m

Bei dermassen geringen Abstaenden kann man das nach Pythagoras rechnen.
Das ist dann eine Luftlinienentfernung von 105.21 m.
Kommastellen sind natuerlich unsinnig wenn man nicht gerade ein 
Vermessungs-GPS-System benutzt.

Hinzu kommt:
Wenn beide Punkte mit einem Consumer GPS unter unterschiedlichen 
Bedingungen erfasst wurden dann kann das im worstcase sehr leicht 2x15 
Meter oder auch mehr an Abweichung ausmachen, dann liegt die Entfernung 
irgendwo zwischen 70 und 135 Metern...
Und bei der Orientierung auf einer 100.000er Karte entspricht 1mm 
bereits 100 Meter.
Fragt sich eben welche Genauigkeit man wirklich braucht und wozu.

juergen

von Michael J. (michael-junge)


Lesenswert?

Mahlzeit

ja, auf 111m bin ich dann auch gekommen - ist wohl aber wirklich sehr 
ungenau.
Wovon hängt denn die Genauigkeit der Datenerfassung ab, bzw. wie genau 
wäre eine Datenerfassung mit "Handelsüblichen" GPS Empfängern möglich?
Wenn ich davon ausgehe, dass der Abstand zwischen den Längen- und 
Breitengraden jeweils 111km beträgt, ist eine Bogensekunde demnach 
30,83m lang (Richtig?).
Die Daten welcher der GPS Empfänger ausgibt, sind allerdings Grad und 
Bogenminuten mit 4 Stellen nach dem Komma. Demnach ergäbe sich hier eine 
Genauigkeit von 18,5cm (111km/60Bogenminuten = 1,85Km pro Bogenminute / 
10000) - Was ich mir jetzt so nicht wirklich vorstellen kann?!

Für meine Anwendung wäre eine Genauigkeit von 5 Metern nicht schlecht. 
Die Strecken, betragen im Durchschnitt 1km, wobei maximal 5km möglich 
sein können.

Sind 5 Meter Genauigkeit (also +/-2,5m) überhaupt realistisch?

Viele Grüße
Mike

von jjk (Gast)


Lesenswert?

>Mahlzeit

Ebenfalls.

>ja, auf 111m bin ich dann auch gekommen - ist wohl aber wirklich sehr
>ungenau.

Das ist wie immer relativ ;)

>Wenn ich davon ausgehe, dass der Abstand zwischen den Längen- und
>Breitengraden jeweils 111km beträgt, ist eine Bogensekunde demnach
>30,83m lang (Richtig?).

Rechnerisch ja, aber leider falsch:

Die 111 Km sind eine grobe Vereinfachung, gerechnet mit 1850m pro Minute 
LAT (1850mx60=111Km).
Tatsaechlich betraegt der Abstand der Breitengrade pro Minute aber 
1842.90 m bei 0 Grad und 1861.57 m bei 90 Grad Nord bzw. Sued. Der 
Verlauf der Aenderung ist zudem nicht linear.
Fuer LON ist er noch weniger linear und liegt ausserdem im Bereich von 
1853.32 m bei 0 Grad bis  0 m bei 90 Grad, wie bereits frueher schon 
geschrieben.
Da hilft eben nur eine genaue Tabelle wenn man aufwendige 
Rechenverfahren meiden will.

>Die Daten welcher der GPS Empfänger ausgibt, sind allerdings Grad und
>Bogenminuten mit 4 Stellen nach dem Komma. Demnach ergäbe sich hier eine
>Genauigkeit von 18,5cm (111km/60Bogenminuten = 1,85Km pro Bogenminute /
>10000) - Was ich mir jetzt so nicht wirklich vorstellen kann?!

Verwechsle mal Aufloesung nicht mit Genauigkeit ;)
Die Aufloesung in der 4. Stelle liegt tatsaechlich im cm-Bereich.
Die Genauigkeit natuerlich nicht, s.u.
Man kann die letzte Stelle bestenfalls beobachten um zu sehen wie stark 
die Positionsberechnung im Stand schwankt, mehr nicht. Das zeigt meist 
nur die Qualitaet der Positionsfilterung bzw. die Stabilitaet des 
Empfaengers.

Mein Geraet schwankt nach 1 Minute um +/- 2 in der 4. Stelle.
Ich rechne trotzdem grundsaetzlich nur mit 3 Nachkommastellen, und das 
ist schon optimistisch.

>Wovon hängt denn die Genauigkeit der Datenerfassung ab, bzw. wie genau
>wäre eine Datenerfassung mit "Handelsüblichen" GPS Empfängern möglich?

>Für meine Anwendung wäre eine Genauigkeit von 5 Metern nicht schlecht.
>Die Strecken, betragen im Durchschnitt 1km, wobei maximal 5km möglich
>sein können.

>Sind 5 Meter Genauigkeit (also +/-2,5m) überhaupt realistisch?

Also das detailliert zu beantworten ist ein abendfuellendes Programm.

Kurzfassung NAVSTAR Basics:

Effects of the ionosphere  4 m
Satellite clocks  2.1 m
Receiver measurements  0.5 m
Ephemeris data  2.1
Effects of the troposphere  0.7
Multipath  1.4 m
Total RMS value (unfiltered)  5.3 m
Total RMS value (filtered)  5.1 m

Vertical error (1 sigma (68.3%) VDOP=2.5)  12.8m
Vertical error (2 sigma (95.5.3%) VDOP=2.5) 25.6m

Horizontal error (1 sigma (68.3%) HDOP=2.0)  10.2m
Horizontal error (2 sigma (95.5%) HDOP=2.0) 20.4m


Daran hat sich bis dato nichts geaendert, ganz egal was die Hersteller 
so von sich geben!
Vielleicht noch als Hinweis: Der modernste GPS Empfaenger des US 
Militaers, der ja zudem zusaetzlich zu L1 auch L2 verwendet, ist mal 
gerade mit <12m spezifiziert ;)

Die Herstellernagaben von Consumergeraeten sind IMO schlicht 
Glaskugel-Akrobatik.

Man kann allerdings auch nur mit L1 durchaus auf 2.5 m Genauigkeiten 
kommen: Mit Differential GPS. Das ist aber ein erheblicher Aufwand.
Wide Area Augmentation Systeme (WAAS in USA, EGNOS in Europa) koennten 
das im Prinzip auch leisten, allerdings ist EGNOS wohl immer noch im 
Teststadium und wird zudem nur von ganz wenigen Empfaengern genutzt.

Da bleibt also im Normalfall nur, auf stabile und halbwegs gute, 
vergleichbare Empfangsbedingungen zu achten um gleichbleibende 
Ergebnisse zu erhalten:

Also zu gleicher Tageszeit (wobei die Sat-Umlaufzeit 11 Stunden 58 
Minuten betraegt, sie also taeglich etwas frueher kommen) und bei etwa 
gleichen DOP-Bedingungen.
Idealerweise 3D Messung mit PDOP um 2 oder weniger.
(Eine Verdoppelung des DOP Wertes bedeutet auch eine Verdoppelung des 
Fehlers).

Bei jeder Messung etwas Zeit lassen bis sich die Daten stabilisiert 
haben, die Schwankungen der letzten Stelle der Anzeige also 
"ueberschaubar" bleiben.

Zur Nachtzeit ist die Situation stabiler da die Ionosphaereneffekte 
durch die fehlende Sonneneinstrahlung stabiler sind, also weniger stark 
schwanken.

Wenn man natuerlich sein GPS Geraet selbst baut hat man noch zusaetzlich 
die Moeglichkeit den sog. Satellite Mask Angle einzustellen. Damit kann 
man horizontnahe Satelliten ausblenden da deren Signale durch den 
laengeren Ionosphaerendurchgang am staerkesten beeinflusst werden, also 
erhebliche Laufzeitfehler haben. Immerhin ist der Ionospahaernefehler 
der groesste Einzelfehler, s.o.
Ich arbeite meist mit einem cut off Winkel von 10 Grad.
Consumergeraete haben i.d.R. 5 Grad oder weniger :(

Die Sat-Konstellation ist momentan eh sehr gut, 31 Sats sind aktiv, da 
sollte also immer eine 3D Messung mit DOP-Werten um bzw. unter 2 
moeglich sein.
Ich erreiche typischerweise PDOP um 1.5 bei 10 Grad cut off, selbst hier 
in meinem Alpental.

Ich wuerde auch, aus unterschiedlichen Gruenden, auf Geraete der 
neuesten Generation (SiRFIII oder MTK) verzichten. Etwas aeltere 
12-Kanal-Geraete sind auf Grund anderer Architektur meist 
verlaesslicher/stabiler, wenn auch weniger "empfangsstark".
Das spielt aber bei der momentanen Sat-Konstellation praktisch keine 
Rolle, s.o.


lg
juergen

von Michael J. (michael-junge)


Lesenswert?

Hallo Jürgen

Vielen Dank für die Ausführliche Erklärung! Das hat mir nun doch schon 
um einiges weiter geholfen.
Was ich noch nicht ganz verstehe, ist, wie ich die Satellite Mask Angle 
einstellen kann?! Ich würde doch hierfür von jedem Satelliten den Winkel 
zu meinem Empfänger benötigen, um zu entscheiden, ob dieser mit 
ausgewertet werden soll oder nicht? Die Auswertung an sich findet doch 
aber schon im Empfänger-Modul statt?!

Und noch eine Sache kann ich nicht nachvollziehen: Im NMEA Protokoll ist 
bei RMC Wert 7 die Geschwindigkeit in Konten abrufbar. Warum erhalte ich 
hier selbst im Stillstand eine Geschwindigkeit von 0-2 Knoten?

Vielen Dank nochmals und viele Grüße
Mike

von jjk (Gast)


Lesenswert?

Hallo Michael.

>Was ich noch nicht ganz verstehe, ist, wie ich die Satellite Mask Angle
>einstellen kann?! Ich würde doch hierfür von jedem Satelliten den Winkel
>zu meinem Empfänger benötigen, um zu entscheiden, ob dieser mit
>ausgewertet werden soll oder nicht? Die Auswertung an sich findet doch
>aber schon im Empfänger-Modul statt?!


Der Satellite Mask Angle oder manchmal auch Elevation Mask Angle bzw. 
Antenna Mask Angle genannt wird im Empfaenermodul so eingestellt:
Jeder Empfaenger kennt ja die momentane Sat-Position in Form von Azimuth 
und Elevation. Somit weiss er wie "hoch" jeder Sat momentan ueber dem 
Horizont steht. Damit kann man ihn also auch ausblenden.
Dabei wird dem Empfaengermodul nur mitgeteilt dass er alle Sats "unter" 
einem bestimmten Winkel ignorieren soll.

Voraussetzung fuer die Winkeleinstellung ist allerdings dass man direkt 
Zugriff auf die Empfaengersoftware hat:

Das geht natuerlich immer wenn man einen GPS Empfaenger selbst baut auf 
Basis eines Empfangsmodules, Motorola, Trimble, u-blox...

Bei Fertiggeraeten geht es so gut wie gar nicht, da hat der Hersteller 
einen fixen (meist niderigen Wert damit der User moeglichst viele Sats 
am Display hat) eingestellt, bei manchen GPS Maeusen ist es mit etwas 
Aufwand moeglich:
Bei einigen GPS Maeusen mit SiRF Chipsaetzen kann man z.B. die SiRF-Demo 
Software dazu benutzen und den Empfaenger entsprechend konfigurieren, 
sofern die Maus direkten Protokollzugriff auf die Empfaenger-Software 
erlaubt.

>Und noch eine Sache kann ich nicht nachvollziehen: Im NMEA Protokoll ist
>bei RMC Wert 7 die Geschwindigkeit in Konten abrufbar. Warum erhalte ich
>hier selbst im Stillstand eine Geschwindigkeit von 0-2 Knoten?

Das ist doch noch vergleichsweise wenig ;)

Diese Pseudo-Bewegungen bzw. Geschwindigkeiten sind eben typisch wenn 
man entweder sehr "empfindliche" Geraete benutzt (da ist es meist in der 
Empfaenger-Architektur begruendet) oder die Stabilitaet des 
Empfaengeroszillators bescheiden ist ... oder Beides.
Kombiniert mit der systembedingten Ungenauigkeit/Schwankung bei GPS 
ergibt das dann eben interessante Effekte.

Hinzu kommt die Auslegung der Empfaenger-Software:
Bis zu einem gewissen Grad kann man sowas natuerlich 
unterdruecken/ausfiltern... sofern es diese Filtermoeglichkeit gibt.

Viele Geraete haben aber haeufig keine Einstellungen fuer "static 
navigation" oder zu hohe Schwellwerte dafuer, oder keinen 
funktionierenden "pedestrian mode" oder keine einstellbaren Filter 
oder...

Du kannst von einem Consumergeraet (schau Dir mal den Preis einer GPS 
Maus im Vergleich zu einem nackten industriellen GPS Empfaengerboard an) 
kein hightech erwarten. Das sind ja schliesslich keine 
Vermessungsempfaenger.


Welchen GPS-Empfaenger verwendest Du denn?

lg
juergen

von Michael J. (michael-junge)


Lesenswert?

Hallo Jürgen

na, ich denke, dass ich das dann bei diesem Empfänger vergessen kann. 
Ich verwende derzeit nur eine einfache (geliehene) GPS Maus. Hersteller 
- keine Ahnung, auf der Rückseite steht Moael No: BR-304

Ich denke nicht, dass dieser Empfänger etwas "besonderes" ist. Ich 
möchte vorerst nur ausprobieren, ob ich das überhaupt auf die Reihe 
bekomme, wenn das dann klappt, möchte ich mir ein eigenes Modul zulegen.

Wo finde ich denn eine genaue Tabelle, um die Distanz etwas genauer zu 
bestimmen? Hat die eine Bestimmte Bezeichnung? Bei Google finde ich in 
diesem Zusammenhang leider nur Müll...

Gruß Mike

von jjk (Gast)


Lesenswert?

>...auf der Rückseite steht Moael No: BR-304

Das muesste eine etwas aeltere GlobalSat GPS Maus sein mit SiRFII/LP 
Chipsatz.

>Wo finde ich denn eine genaue Tabelle, um die Distanz etwas genauer zu
>bestimmen? Hat die eine Bestimmte Bezeichnung? Bei Google finde ich in
>diesem Zusammenhang leider nur Müll...

Z.B. hier mit 1 Grad Abstaenden:
http://home.online.no/%7Esigurdhu/Grid_1deg.htm
oder hier mit 10 Min Abstaenden:
http://home.online.no/%7Esigurdhu/Grid_10min.htm

lg
juergen

von DB6ZH Peter (Gast)


Lesenswert?

Auf meiner DARC homepage habe ich den ganzen "Formelkram" im Anhang zu 
einer QTH-Kenner Berechnung aufgeführt. Zur Genauigkeit sind etwa in der 
Mitte einige gezielte Angaben (mit Sprüchen :-) von Gauß)
http://www.mydarc.de/db6zh/qthzz/qthxx03.htm
Die Rechnerei passiert seit 1985 auf den ersten IBM-PCs und ein Update 
wegen GPS ist drin (betrifft die Referenzellipsoiden). Dazu habe ich 
auch separate Erklärungen angefangen, siehe (bereits im blog erwähnt)
http://www.mydarc.de/db6zh/qthzz/qthxx04.htm
Wenn man die Genauigkeit übertreibt, müßte man auch die Schuhgröße des 
GPS-receiver Besitzers kennen. Einige Receiver gaukeln cm-Genauigkeit 
vor, was wegen verbogener (inhomogene Atmosphäre)Funkwellen-Ausbreitung, 
Satellitenschaukeln und tektonischen Bewegungen (Vollmond <-> Neumond 
ca. 30 cm ) nicht drin ist.

Viel Spaß
DB6ZH Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.