Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: Mathematik und Physik ::  Umrechnung GPS <-> kartesische Koordinaten     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Bubbles123
Unregistrierter




Beitrag Bubbles123 Unregistrierter 12:52:26 01.08.2012   Titel:   Umrechnung GPS <-> kartesische Koordinaten            Zitieren

Hi,

Ich habe eine größere Simulation in C++/Matlab gegeben, die Roboter und ihre Interaktion simuliert. Nun wird die Simulation stückweise auf ein reales System übertragen, wobei in der Simulation die Position der Roboter mittels (lokalen) kartesischen Koordinaten (x/y/z) erfolgt.
Im realen System erfolgt die Positionsbestimmung mit GPS, sodass (Längengrad/Breitengrad/Höhe) gegeben ist. Zwecks Anbindung der Simulation an das reale System, müssen diese Koordinaten ineinander umgerechnet werden.
Meiner Meinung müsste die Umrechnung ein einfacher Dreisatz sein, wobei die Krümmung von Längen/Breitengrad miteinbezogen werden müsste. Weiß jemand spontan, wie man das am besten / einfachsten hinbekommt?

Ich habe schon einige Umrechnung für kartesische Koordinaten <-> GPS Koordinaten gefunden, aber die beziehen sich immer auf ein globales Koordinatensystem im Erdmittelpunkt und beziehen die Erdkrümmung etc. auch mit ein. Mein Koordinatensystem hat jedoch irgendwo ein Referenzpunkt auf der Oberfläche und kann wegen der (im Vergleich zur Erdgröße) geringen Größe vollständig krümmungsfrei (d.h. ein "echtes" kartesisches Koordinatensystem) angenommen werden.

Die aktuelle Umrechnung für (x/y) -> (lat/long) sieht so aus:
Code:
//Pseudocode
latitude = ReferencePosLat + positionX / 111132.9556;
longitude =ReferencePosLong + positionY / ( 111132.9556 * cosd(latitude) );

Leider ist derjenige, der diese Umrechnung "verzapft" hat, nicht mehr zu erreichen und ich bin mir nach 2 h debugging relativ sicher, dass diese Umrechnung falsch ist. Zudem kann ich auch kaum nachvollziehen, wie man auf diese Umrechnung kommt - meine Versuche brachten immer komplett anderen Konstanten / Zusammenhänge hervor.

Also jemand spontan eine Idee, wie ich ansetzen könnte?

Viele Grüße

Bubbles
SeppJ
Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 18404
Beitrag SeppJ Moderator 13:20:07 01.08.2012   Titel:   Re: Umrechnung GPS <-> kartesische Koordinaten            Zitieren

Bubbles123 schrieb:
Zudem kann ich auch kaum nachvollziehen, wie man auf diese Umrechnung kommt - meine Versuche brachten immer komplett anderen Konstanten / Zusammenhänge hervor.
latitude wird direkt nur mit einem Vorfaktor umgerechnet, da eine Einheit geographischer Breite immer das gleiche in Einheiten des Systems zählt. Der Abstand zwischen zwei Breitengraden ist nämlich immer der gleiche.

Den Längengrad kann man nicht so direkt umrechnen, da die Länge eines Breitenkreises (auf dem der Längengrad angegeben wird) abhängig ist von der geographischen Breite. Nahe am Nordpol ist der Abstand zwischen 0° und 10° ein paar Meter, am Äquator sind es tausende Kilometer. Die Länge eines Breitenkreises geht mit dem Cosinus der Breite, daher dieser Vorfaktor vor der Umrechnungskonstante.

Die Umrechnungskonstante selbst ist beliebig und gibt dir durch ihre Wahl die Einheiten deines Systems vor. In der gezeigten Umrechnung ist die Erde eine perfekte Kugel mit einem Umfang von 111132.9556 Längeneinheiten deines Systems. Korrigiere: Eine Breitengradeinheit entspricht 111132.9556 Systemeinheiten. Hieraus folgere ich, dass die Breitengerade wohl in klassischen Grad angegeben werden, während in dem System mit Metern gerechnet wird, denn dann passt das exakt zusammen mit dem Erdumfang (sofern man die Erde als perfekte Kugel ansieht), denn Erdradius * 2 * Pi / 360° sind ziemlich genau 111 km/Grad.


Noch ein Tipp: Benutz nicht das Wort GPS-Koordinaten, wenn du von geographischen Positionsangaben sprichst. Wenn man sich nur die Überschrift ansieht, dann denkt man, du hättest ein GPS-Signal und möchtest aus diesem deine Position bestimmen. Das ist ein anspruchvolles mathematisch, technisch, physikalisches Problem, von dem die meisten Leute keine Ahnung haben und den Thread gar nicht erst lesen. Dabei hast du bloß eine einfache Umrechnung von sphärischen Koordinaten in karthesische, sogar nochmals vereinfacht, da die Krümmung ignoriert wird. Das könnte dir jeder Student einer Naturwissenschaft im ersten oder zweiten Semester im Schlaf vorrechnen, wenn er den Thread nur lesen würde.

_________________
Du brauchst Hilfe?, Buchempfehlungen für C++,
Wie man in Fragen den richtigen Code postet,
The Definitive C++ Book Guide and List


Zuletzt bearbeitet von SeppJ am 13:29:29 01.08.2012, insgesamt 3-mal bearbeitet
Bitte ein Bit
Mitglied

Benutzerprofil
Anmeldungsdatum: 24.10.2007
Beiträge: 1120
Beitrag Bitte ein Bit Mitglied 08:47:22 02.08.2012   Titel:              Zitieren

http://de.wikipedia.org/wiki/Referenzellipsoid
c++.de :: Mathematik und Physik ::  Umrechnung GPS <-> kartesische Koordinaten   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.