Archiv verlassen und diese Seite im Standarddesign anzeigen : zwischen Koordinaten Winkel ausrechnen
toter_fisch
21.05.2013, 21:12
Hallo, ich versuche gerade eine Navigation zu entwickeln, um mit einem Roboter von Punkt A zu Punkt B zu fahren. Dazu nutze ich GPS und einen elektronischen Kompass.
Nun habe ich z.B. folgende Koordinaten in DEC-Schreibweise:
Punkt A: 49.400728N, 8.685135E
Punkt B: 49.400293N, 8.685009E
Wie kann ich jetzt hier möglichst einfach den Winkel zwischen Punkt A und Punkt B ausrechnen ( z.B. 170°S) um dem Roboter zu sagen in welche Richtung er fahren soll?
Bisher versuche ich mit dem Tangens zu rechnen, klappt allerdings nicht so recht :/
Wäre gut wenn ihr mit helfen könntet :)
gruß toter_fisch
Jimmybot
21.05.2013, 21:47
Für ein Dreieck und somit auch ein Winkel brauchst du drei Punkte, bzw. drei Strecken.
Ich würde das so lösen:
A ist der aktuelle Standort vom Roboter
B ist der Zielstandort
C ist ein fiktiver Punkt
Daraus kann man bestimmen, dass die Strecken sich wie folgt bilden:
Strecke AB (Von Punkt A nach Punkt B)
Strecke AC (von Punkt A nach Punkt C)
Dabei sollte der Punkt C auf der Fahrstrecke gerade aus liegen, also im Winke 0°.
Damit lässt sich die Strecke zwischen B und C ermitteln dank BC²=AC²+AB²
So und jetzt Chinamathematik:
http://upload.wikimedia.org/math/c/7/3/c7395f88ac265200e9f1583e4740a66a.png
Gehen wir davon aus das a die Strecke BC ist, b die Strecke AC und c die Strecke AB ist bekommst du den Winkel http://upload.wikimedia.org/math/b/c/c/bccfc7022dfb945174d9bcebad2297bb.png. Dieser Winkel ist der Winkel zwischen deiner aktuellen Fahrrichtung (Strecke AC) und der Strecke AB.
http://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Dreieck-umkreis.svg/250px-Dreieck-umkreis.svg.png
Lasse mich gerne Korrigieren, wenn ich mich vertahen habe... hatte im Mathe LK nur ne 5 gehabt.
Aber bei Wiki steht es:
http://de.wikipedia.org/wiki/Dreieck
DanielSan
22.05.2013, 15:12
Ich würde es mit dem arctan2(y,x) machen mit:
x = 8.685135 - 8.685009 und
y = 49.400728 - 49.400293.
Das hat den Vorteil, das dir das Ergebnis genau sagt in welche Richtung du musst. Du musst also nicht mehr drauf achten in welchem Quadranten du dich befindest etc. ausserdem ist das ziemlich simpel.
Wo wird das denn berechnet? Auf einem Atmel?
Christian H
22.05.2013, 16:21
Hallo,
geht schon in die richtige Richtung, aber noch nicht ganz. Da wir nicht am Äquator sind ist x2-x1 noch mit cos(Breitengrad) zu multipilzieren.
Ich würd´s so machen:
alpha= arctan2 ( (x2-x1)*cos(y*pi/180),(y2-y1) )
Habe gerade eben noch bemerkt dass arctan2 wohl die Unbestimmtheit vom arctan um 180 Grad berücksichtigt. Wieder was dazugelernt.
Grüße
Christian
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.