Forum: Mikrocontroller und Digitale Elektronik GPS-Koordinaten Winkel berechnen?


von Theo (Gast)


Lesenswert?

GutenTag,

ich lese einen MT3333 GNSS-Empfänger via µC aus.

Nun möchte ich den Winkel zwischen der aktuellen Position und einer 
zuvor vorgegebenen oder im Speicher liegenden Position vergleichen.

Die Entfernungen betragen rund 100 Meter - eher weniger.
Ist es für diese geringen Entfernungen legitim die Längen- und 
Breitengrade als X- und Y Koordinaten zu missbrauchen und mithilfe 
dieser den Winkel berechnen?
Also zB. atan([50.1-50.098] / [ 8.1-8.098] )
?

Bei dem Beispiel, fällt mir gerade auf, wären es 45° was aber in google 
maps deutlich mehr ausschaut.. Nur wie macht man es richtig?

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Ich denke um einen Winkel zu bestimmen braucht man 3 Punkte. Welches ist 
der dritte? Oder willst Du "nur" Längen/Breitengrad (also Winkel zu 
Äquator oder 0°). Das liefert ein GPS-Receiver schon.

Vielleicht hilft: https://de.wikipedia.org/wiki/Großkreis

: Bearbeitet durch User
von Ralf D. (doeblitz)


Lesenswert?

Nimm eine Projektion, die auf eine ebene Fläche abbildet und nicht auf 
eine Kugel, also z.B. UTM (ist bei GPS üblich).

Du hast dann als Koordinaten Werte, die den Abstand vom Nullpunkt 
angeben, damit bekommst du dann als Differenzen der Koordinaten zwei 
Längen und kannst damit den Winkel ausrechnen.

von Thorsten (Gast)


Lesenswert?

Bei kurzen Distanzen und wenn der Winkel nicht 100%-ig exakt sein muss, 
kann man einfach die Längengrade zur Korrektur mit dem Cosinus des 
Breitengrades multiplizieren.

von Ich (Gast)


Lesenswert?

Ich schmeiß da einfach mal einen Link in den Raum: 
https://planetcalc.com/713/

von Theo (Gast)


Lesenswert?

Das habe ich jetzt nicht richtig verstanden... Ja die Winkel müssen 
nicht exakt sein, halt "Peilen". Und die Entfernungen sind gering, also 
sind deine Bedingungen erfüllt.

Würde ich das folgendermaßen machen? :

atan ( delta(Breite) / ((delta Länge)*(cos(Breite_Meas)))

dann kommte ich bei dem beispiel oben

atan (0,02/(0,02*cos(50,098))) = 57,32°

was besser zum Bild in GMaps passt...

Wieso genau funktioniert das?

von Elias K. (elik)


Lesenswert?

Der Abstand der Breitengrade ist überall auf der Erde rund 111km. Die 
Längengrade dagegen haben nur am Äquator die 111 km Abstand. Der wird zu 
den Polen hin geringer und an den Polen selbst schließlich 0. Diese 
Abstandsabnahme kann man mit einem Cosinus aus dem Breitengrad 
beschreiben.

(Eine Fläche von 1°x1° ist nur am Äquator ein Quadrat, sonst eher ein 
Trapez.)

von RP6conrad (Gast)


Lesenswert?

Hier In Belgien ist eine Langengrade 111.11 km, die Breitegrade aber 
68.4 km. Damit berechne ich die Winkel so :
Richting = atan2 
((Waypoint.breedte-Actuele.breedte)*111.11,(Waypoint.lengte-Actuele.leng 
te)*68.4))*180/3.1415
Wird genutzt für ein GPS-rover, funcioniert gut.

von Roth (Gast)


Lesenswert?

Ich weiß nicht, ob diese Formeln wirklich helfen, und welche helfen 
könnten. Wir leben auf einer Kugel. Jedenfalls behaupte ich das (und ich 
hoffe, dass das die Mehrheit so sieht^^).

Der Autoatlas ist aber leider flach, die Entfernungen (Luftlinie) 
stimmen daher nicht richtig. Was i.d. Praxis keine Rolle spielt, weil 
niemand Luftlinie fährt, oder sich für die Luftlinie interessiert.

Beim Programmieren kommen einem dann (manchmal) diverse "Bösartigkeiten 
der Physik" unter. Denn die Formeln, die man programmiert, sollen ja 
auch stimmen, und nicht nur ungefähr. Ist doch so, oder?

Man prüft und rechnet und fragt sich vielleicht: "was ist denn jetzt 
los" ? Ok, bei 100 Metern brauchen wir darüber nicht zu reden. 100 Meter 
sind immer flach und kein Teil einer Kugeloberfläche.

Ich rede nun aber gewollt als Theoretiker. Die Diskrepanz zwischen 
Kugeloberfläche und dem, was die Flacherdler angeblich darin sehen, wird 
umso größer, je größer die Maßeinheit wird. Das macht man sich am 
deutlichsten, wenn man ein Seil von 10 Meter Länge um einen Mittelpunkt 
spannt und daraus einen Kreis auf einen Parkplatz malt.

Ist das ein Kreis? Natürlich, sagt der Praktiker (und der Flacherdler ;) 
) Nein, sagt der Physiker. Der Kreidekreis umrandet den Ausschnitt aus 
einer Kugeloberfläche. Noch nicht mal die Seitenränder sind gerade: Sie 
sind an die Wölbung der Kugel angepasst und können daher nicht gerade 
sein.

Nun ein gedanklicher Worstcase: Das Seil soll keine 10 Meter lang sein, 
sondern 20.000 (zwanzigtausend) Kilometer. Welche Form dieser "Kreis" 
dann hätte, kann sich jeder selbst überlegen, und welche Formeln 
anzuwenden sind, um von einem Punkt der (Kugel)Erde rechnerisch auf 
einen anderen zu schließen.

Wie gesagt, nur theoretisch. Bei 100 Metern spielt das keine Rolle, da 
recht Trigonometrie allemal. Aber wenn man sich die Arbeit macht, z.B. 
eine Bibliothek zu erstellen, sollte man das eine oder andere vielleicht 
schon bedenken. Ich mach das jedenfalls so und es hat sich immer 
bewährt.

von Roth (Gast)


Lesenswert?

Wenn das gedachte Seil nur 10.000 km lang ist und man stünde am Nordpol, 
wären die Ränder unseres Kreises der Nordpol. Der Kreis wäre also gar 
kein Kreis. Folglich greift hier die Trigonometrie nicht wirklich.

Noch krasser wird es mit dem 20.000 km langen Seil. Das wird der Kreis 
zur Kugel. Wer gerade kein 20.000 km langes Seil hat, kann es auch mit 
einem Fußball ausprobieren. Ein Zirkel, der die Länge des halben 
Fußballumfangs hat, zeichnet ... NICHTS. Denn da ist nichts mehr, der 
Außenrand des Kreises hat die Länge Null.

So, genug gefachsimpelt.

von Wolfgang (Gast)


Lesenswert?

Elias K. schrieb:
> (Eine Fläche von 1°x1° ist nur am Äquator ein Quadrat, sonst eher ein
> Trapez.)

So schlimm ist es meist nicht. Bei so kleinen Entfernungen, wie sie der 
TO betrachtet, geht ein Feld mit Kantenlängen von einigen hundert Metern 
außer in direkter Polnähe locker als Rechteck durch. So schlimm, dass 
das ein merkbares Trapez wird, ist das mit der Abweitung i.A. nicht.
https://de.wikipedia.org/wiki/Abweitung

von Roth (Gast)


Lesenswert?

Roth schrieb:
> Wenn das gedachte Seil nur 10.000 km lang ist und man stünde am Nordpol,
> wären die Ränder unseres Kreises der *Nordpol*

Äquator natürlich

von Michel M. (elec-deniel)


Lesenswert?

Schlagwörter:
Koppelnavigation,
Odometrie navigation
Mittlere Breite   nur Genau bis ca 100sm

mehr Infos unter Rainer Stumpe Navigation

Zur Entfernungsberechnung mal
"kompf trekka distance"
suchen, damit kann man mal ein paar Versuche zur Entfernung durchführen.

von Wolfgang (Gast)


Lesenswert?

Michel M. schrieb:
> Mittlere Breite   nur Genau bis ca 100sm

Die Genauigkeit liegt im Auge des Betrachters.
Was für den Seefahrer auf Entfernungen von 100nm genau ist, wird dir der 
Vermesser um die Ohren hauen.

von Michel M. (elec-deniel)


Lesenswert?

Wolfgang schrieb:
> Michel M. schrieb:
>> Mittlere Breite   nur Genau bis ca 100sm
>
> Die Genauigkeit liegt im Auge des Betrachters.
> Was für den Seefahrer auf Entfernungen von 100nm genau ist, wird dir der
> Vermesser um die Ohren hauen.


Danke für die berechtigte Anmerkung

Korrigiere:
Anzuwendendes Verfahren muss nach geforderten und notwendigen 
Genauigkeiten ausgesucht werden :-)

von Wolfgang S. (Firma: Pensionär-Altes-Eisen) (stackpointer)


Lesenswert?

Im Bereich 100m nicht am Nordpol oder Südpol kannst du direkt die 
koodinaten verwenden, mußt aber den Längenunterschied mit dem Cosinus 
des Breitengrades multiplizieren.

Auf Entfernungen unter 100km ist der loxodrome Kurs mehr als ausreichend 
genau dem Großkreiskurs entsprechend. Deine GPS-Positionsfehler 
"versauen" das Ergebnis mehr.

Gruß

von Jacko (Gast)


Lesenswert?

Selbst im Bereich von 1000 km ist es, solange man sich
zwischen den Polarkreisen bewegt, für die Navigation
völlig ausreichend, mit der geometrischen Näherung zu
rechnen. Eine kleine Verbesserung gibt es noch, wenn man
den cos() des Mittelwerts von momentaner Breite und
Ziel-Breite nimmt.

Allerdings führt die einfache atan(), oder arctan()
Funktion schnell zu Fehlern, da sie nicht über +/-90°
hinausgeht. Besser ist arctan2(), oder atan2().

Dazu muss man aber noch die Zählweise berücksichtigen:
Die Schulgeometrie zählt die Winkel von (auf der Karte)
Ost = 0° gegen den Uhrzeigersinn.
Kursangaben in der Navigation zählen aber von Nord = 0°
über Ost = 90° im Uhrzeigersinn!

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.