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?
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
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.
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.
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?
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.)
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.
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.
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.
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
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
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.
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.
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 :-)
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ß
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!