Kurswinkel berechnen mit ebener Trigonometrie

Fragen und Hinweise zu Software, die mit dem Thema GPS zu tun hat. Egal ob PC oder Handheld.

Moderator: Roland

Antworten
XPosition
Beiträge: 214
Registriert: 25.08.2008 - 00:09

Re: Kurswinkel berechnen mit ebener Trigonometrie

Beitrag von XPosition » 12.02.2010 - 12:09

Also ich habe zwar jetzt nicht analysiert was du da gemacht hast,
aber ich würde die Formel benutzen:

c = mod(atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1)), 2*pi);

Also erstmal lon1,lon2,lat1,lat2 mit "PI/180." multiplizieren.
und nach der Berechnung c mit "180./PI" multiplizieren.

Außerdem wäre es besser für eine Fußgängernavigation,
du hättest noch einen digitalen Kompass auf deinem board.
GPS alleine ist zu schlecht bei Stillstand oder langsamen Bewegungen.

Benutzeravatar
Roland
Beiträge: 2055
Registriert: 18.02.2004 - 22:33
Wohnort: Wusterhausen(Dosse)

Re: Kurswinkel berechnen mit ebener Trigonometrie

Beitrag von Roland » 12.02.2010 - 17:37

Hallo postit,

Du bist doch hoffentlich kein Schüler oder Anfänger ?
Beisse mich nicht mehr auf die Lippen, bin schon auf dem Zahnfleisch ...

Mit den NMEA-Gradangaben kommst Du klar ?

Die Tücken von "Richtungswinkel und Entfernung" (so bei den Vermessern) sind mir wohlbekannt.
Zur Klärung:
Bei Dir zeigt Y nach Norden und Du zählst linksrum ?

Ich bewundere Draufgänger mit einfachen Lösungen.
(Noch mehr freue ich mich, wenn sie scheitern ... *Scheeerz*)
Aber wenn ich bedenke, dass 1' Nord-Süd 1850 m sind, 1' Ost-West aber 1190 m ?
Warum nicht XPositions Vorschlag ? Heutigen Chips dürfte es egal sein, ob sie ein paar trigonometrische Funktionen rechnen oder ein paar Punktoperationen.

Das mit den geringen Bewegungen wollte ich mit einem Schwellenwert abfangen (2 m ?), aber wenn der Betreffende nur schleicht ...

Grüße Roland

Benutzeravatar
Roland
Beiträge: 2055
Registriert: 18.02.2004 - 22:33
Wohnort: Wusterhausen(Dosse)

Re: Kurswinkel berechnen mit ebener Trigonometrie

Beitrag von Roland » 12.02.2010 - 18:53

Hallo,

ob's hilft, weiß ich nicht, die Zählung des Kurswinkels läuft m.W. im Uhrzeigersinn,
somit sind die Abfragen schwierig, deswegen auch nicht als Code verwenden:

Serial.print("Kurswinkel = ");

SONDERFÄLLE

if(((x1-x2) == 0) && ((y1-y2) > 0))
{
Serial.println("0");
}
else if(((x1-x2) == 0) && ((y1-y2) < 0))
{
Serial.println("180");
}
else if(((x1-x2) > 0) && ((y1-y2) == 0))
{
Serial.println("270");
}
else if(((x1-x2) < 0) && ((y1-y2) == 0))
{
Serial.println("90");
}
else if (x1-x2) == 0)&& ((y1-y2) == 0))
{
Serial.println ("Nicht einschlafen !")
}

NORMALFÄLLE - Es gibt 4 !

kw = atan((y1-y2)/(x1-x2)))

Abfragen, je nachdem wie man die Quadranten zählt

if ... kw = Pi -kw
else if ...kw = 2*Pi - kw
else if ...kw = Pi + kw

Serial.println (kw*180/Pi)


Grüße Roland

macnetz
Beiträge: 553
Registriert: 13.08.2004 - 08:41
Wohnort: Memmingen
Kontaktdaten:

Re: Kurswinkel berechnen mit ebener Trigonometrie

Beitrag von macnetz » 13.02.2010 - 13:39

postit hat geschrieben:Ich DENKE, dass ich mit den NMEA-Daten klarkomme. Bekomme Angaben in diesem Format DD.DDDDD°
hallo,

normalerweise sind AFAIK die Kordinaten bei NMEA in der Schreibweise ddmm.mmm

Grüsse - Anton

Benutzeravatar
Roland
Beiträge: 2055
Registriert: 18.02.2004 - 22:33
Wohnort: Wusterhausen(Dosse)

Re: Kurswinkel berechnen mit ebener Trigonometrie

Beitrag von Roland » 13.02.2010 - 14:33

Hallo postit,

ok, Du hast mir meine Bemerkungen nicht übel genommen. Freitags bin ich ein Ekel.
Diese haben ihren Ursprung in einem anderen Beitrag, wo ein Abiturient Sachen macht, von denen unsere Lehrlinge träumen. Hm, naja, wirklich ? :D

Gut, Y ist Norden und Zählung im Uhrzeigersinn.
Damit könnte ich die Abfragen nochmal trimmen.
Aaaaber:
Wenn Positionsunterschiede von jeweils einer Minute nach der vereinfachten Methode einen 45° Winkel ergeben,
wären es eigentlich atan(1190/1850)= 32.75° ?!
Entspricht dem Ergebnis nach Formeln der sphärischen Trigonometrie. Das sollte zu denken geben.


Grüße Roland

Azim.Ele
Beiträge: 11
Registriert: 01.12.2009 - 22:57

Re: Kurswinkel berechnen mit ebener Trigonometrie

Beitrag von Azim.Ele » 19.02.2010 - 15:06

Hallo postit

Du könntest in dein Projekt auch sehr einfach die Entfernungsanzeige integrieren.
Für Kurswinkel und Entfernung zwischen 2 geografischen oder geodätischen Koordinatenpunkten habe ich interssehalber mal eine Excel-Lösung erstellt.
Habe sie nicht erprobt, aber mit je 1 Richtungspunkt in allen 4 Quadranten mittels eines Kartenviewers überprüft.
Hier die Variante für die geogr. Koordinaten (vereinfachte Darstellung ohne die excel-typische Umrechnung zu und von Bogenmaß *Pi/180 bzw. *180/Pi):

Zwischenwert = sin B1 * sin B2 + cos B1 * cos B2 * cos(L1 - L2)

Richtung = ABS(ARCCOS(SIN(B2) / SIN(ARCCOS(Zwischenwert)) / COS(B1) - TAN(B1) / TAN(ARCCOS(Zwischen))) - U)

U = WENN((L1-L2)<0;0;360)

Entfernung = R * arccos (Zwischenwert)

R ist der Erd-Radius (z.B. 6371007m)

Gruß
Azim.Ele

Antworten