PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Orientierung Roboter Nordrichtung



runner02
21.05.2010, 18:27
Hallo,

Frage mich schon länger, wie ich einen Roboter dzu bringen kann, sich nach Norden zu drehen....


Also ich nehme ein Modul mit Halleffekt, das sagt dann, in welche Richtung das Modul (und damit auch die 'Schnauze' des Roboters, wenn sie richtig montiert ist) zeigt. Das Signal werte ich aus, und wenn es nicht in die Richtung zeigt, dann muss er sich drehen... (wenn er nach Norden sieht und ich will nach Westen, dann bekommt er den Befehl 'links')

Gehe ich soweit richtig?



Und wie lässt sich das mit einem GPS-Modul machen?

ich habe 2 Koordinaten zb. N 113211.445 W 5441.045 und Zielkoordinaten N xyz W zxy ...

Wie weiß ich dann in welche Richtung er muss? Angenommen ich rechne das ganze in kartesische Koordinaten um, ... und hier stockt mein Ansatz...

oberallgeier
21.05.2010, 18:57
... einen Roboter dzu bringen ... sich nach Norden zu drehen ...
... Also ich nehme ein Modul mit Halleffekt ... Und wie lässt sich das mit einem GPS-Modul machen ...Du solltest wohl kein Modul mit Halleffekt nehmen. Wenn der Roboter sich nur nach Norden drehen soll, wird ein Kompassmodul reichen. Ein GP S-Modul brauchst Du doch eher, wenn Du vom Ort IST nach SOLL fahren willst.


... ich habe 2 Koordinaten zb. N 113211.445 W 5441.045 und Zielkoordinaten N xyz W zxy ... Angenommen ich rechne das ganze in kartesische Koordinaten um, ... und hier stockt mein Ansatz...Da stockt Dein Ansatz - anderen stockt der Atem und Kartesius (oder René Descartes) rotiert im Grab. Weil kartesische Koordinaten für die Ebene gedacht sind, aber die Erde eine Kugel ist oder besser gesagt ein Geoid (ok ok, fürs Wohnzimmer und für übliche Oberflächennavigation reicht die Annahme, dass die Bewegung in einer Ebene stattfindet). Mathematisch sauber (und bei längeren Strecken wie Seefahrten und Flügen notwendig) ist es, wenn Du Dir eine Orthodrome von IST (N,W) nach SOLL (N,W) ausrechnest. Fürs einfache Navigieren wirst Du die gefundene Orthodrome durch eine Loxodrome (oder mehrere Teilstücke, alles Loxodromen) annähern. Für kürzere Strecken (von etlichen Kilometern) wirst Du mit einer Loxodrome gut und genau genug auskommen.

Und jetzt frag mich bitte nicht, wie Du das mit einem klitzekleinen Stückchen Code auf einem Mikrocontroller rechnen kannst. Das wüsste ich nicht, weil ich das eine mache, aber das andere noch nie probiert hatte.

JoeBlack
21.05.2010, 19:11
wie wärs mit nem elektronischen Kompass?

Jaecko
21.05.2010, 20:38
Würd auch das CMPS03 vorschlagen.
Hab ich bei mir auf nem RP6 und funktioniert perfekt.
(Musste das Ding halt nur auf nen 20cm hohen Mast überhalb der Platine anbringen, da sonst die Motoren stören und sich der Hobel nur im Kreis dreht.)

BastelWastel
22.05.2010, 13:05
Hi runner,
um deine Ausrichtung nach Norden zu bestimmen gibts elektronische Kompass Module.

Zur Navigation via GPS kannst du in der Regel gemeine Trigonometrie benutzen.
Das sollte dir praktisch völlig reichen um nen Bot ein paar hundert Meter zu navigieren.
Wenn du's sphärisch genau haben willst hat oberallgeier völlig Recht, auf wikipedia wirst du da auch passende Formeln finden.
Lies dir mal die Artikel zu Orthodrome/Loxodrome und Großkreis durch.

Cheers, BastelWastel

nflatjor555
22.05.2010, 18:37
Hallo runner,

in der Theorie kann man schon Ausrichtung (Heading) bestimmen wenn man mehrere rauemlich getrennte GPS-receiver hat.
Es gibt sog. Satellitenkompasse die dies etwas geschickter machen, siehe z.B. http://www.furuno.co.jp/en/product/marine/document/sc110.pdf
Zwei identische GPS-receiver (vorzugsweise dGPS) auf einem groesseren Bot koennte machbar sein aber es ist NICHT
sicher gegeben dass die Positionsfehler auf beiden Receivern gleich sind -> nicht zuverlaessig um Ausrichtung zu berechnen.

Man koennte auch einfach in einer Richtung losfahren und die Fahrtrichtung aus der Differenz zwischen zwei GPS-Positionen
(z.B. "jetzt" und "vor 5 Sekunden") berechnen (manche GPS-module machen das automatisch und liefern die Fahrtrichtung und
-geschwindigkeit in einem $GPVTG oder $GPRMC -Telegram). Das ist denke ich fast nur am Meer oder in der Luft durchfuehrbar
(oder flache, weitlaeufige eingetrocknete Seen in den USA ;-)). Da braucht man auch ausreichend hohe Geschwindigkeit
(d.h. Abstand zwischen Positionsmessungen) um eine genaue Berechnung hinzubekommen.

Mit einem normalen Kompass, wie der CMPS03, loest du die Sache aber viel einfacher.
Habe ich auch so in einer Studienarbeit gemacht.

damfino
22.05.2010, 20:03
Im GPS Protokoll ist der Kompasskurs dabei, das funktioniert beim eher langsam fahrenden Roboter aber gar nicht. Für die Navigationssysteme im PKW reicht es dagegen locker aus.
Ich habs über GPS Kurs probiert, und bin beim Kompass gelandet. Auch ein nur 2-Achs Kompass bringt einen ausreichend genauen Kurs.

Zur Umrechnung von den GPS Koordinanten in ein kartesisches System kommt es auf den Bereich an in dem du navigieren willst. Ich verwende eine einfache Umrechnung auf meine Grundstückskoordinaten. Das Problem war nur die Bestimmung des Umrechnungsfaktors, dh GPS Wert in Grad-Minuten-Sekunden zu Grundstücksecke in Meter. Die Berechnung selber ist eine Subtraktion + eine Multiplikation und ich hab den Abstand zur SW Ecke in Meter. Die GPS Ungenauigkeit schlägt dabei den Umrechnungsfehler der Koordinatensysteme bei weitem so dass dieser für den Bereich vernachlässigbar ist.

LG!

runner02
24.05.2010, 10:29
Hey

Erstmals danke für eure zahlreichen Antworten!!

Die Wirkungsweise des elektrischen Kompass habe ich noch nicht ganz herausfinden können...
Gibt der eine Spannung aus, die man in Bogenmaß umrechnen kann, oder gibt der eine Variable aus, die dann ausgewertet werden muss?


Ach ja, und in die Orthodrome habe ich mich etwas eingelesen, verstehe ich zwar ansatzweise, aber geht das nicht auch ohne die etwas ungenauer (mein erstes Programm in dieser Richtung sollte sehr einfach, mit großer Ungenauigkeit sein, dass ich mal reinkomme)?

Lässt sich das mit einem Mikrochip auswerten? oder braucht man dazu nen RP6 (hätte ich auch, aber momentan versuche ich mich an ATtiny/ATmega)?

BastelWastel
25.05.2010, 12:36
Die Wirkungsweise des elektrischen Kompass habe ich noch nicht ganz herausfinden können...
Gibt der eine Spannung aus, die man in Bogenmaß umrechnen kann, oder gibt der eine Variable aus, die dann ausgewertet werden muss?


Besagten CMPS03 habe ich selbst noch nicht verwendet, aber so wie ich das auf die schnelle gesehen habe gibt er den Messwert entweder als PWM oder ueber I2C Bus aus.



Ach ja, und in die Orthodrome habe ich mich etwas eingelesen, verstehe ich zwar ansatzweise, aber geht das nicht auch ohne die etwas ungenauer (mein erstes Programm in dieser Richtung sollte sehr einfach, mit großer Ungenauigkeit sein, dass ich mal reinkomme)?


Ungenauer gehts immer ;)
Dann nimmst du statt sphaerischer die normale Trigonometrie (http://de.wikipedia.org/wiki/Trigonometrie).
Wenn du nicht gerade den Kurs fuer ne Strecke von mehreren Km berechnen willst reicht das voellig.

runner02
25.05.2010, 20:53
Und wenn ch die normale Trigonometrie nehme, wie setze ich fort? Soll ich mir einen Vektor ausrechnen?

Wie kann ich die Hardware in die richtige Richtung steuern? Kann ich mir ausrechnen, wie viel er sich drehen muss, um in die richtige Richtung zu kommen?

damfino
26.05.2010, 09:55
Die Frage ist was genau du machen willst:
nur nach Norden drehen, das geht am einfachsten über einen Kompass, aus dem Kompasswert hat man auch die Abweichung zu Norden bestimmt.

Wenns um Koordinantensysteme geht wirds komplizierter, da muss man sich mit Vektorrechnung anfreunden. Man braucht immer die Koordinaten (egal ob Kartesisch, Sphärisch, etc) und die aktuelle Richtung. Daraus kann man sich dann einen beliebigen Zielkurs berechnen.
Es gibt viele Seiten im Internet die die Berechnungen zeigen wie man aus einem Vektor von A nach B den Winkel und die Länge berechnet.

LG

runner02
27.05.2010, 13:58
Sagen wir mal ich gebe nem Modellflieger einen Not-Autopiloten... Also er ist in der Luft und soll dann auf einen Punkt zusteuern.

Gas geben muss er nicht, nur lenken, da die Bewegungsenergie beim Abstieg 'umsonst' ist...

Mit einem GPS-Modul kann er wohl kaum bestimmen, in welche Richtung die Spitze schaut...

Und wenn er auf den vorgegebenen Punkt zufliegen soll, muss er halt die Richtung ändern, aber wie??

BastelWastel
27.05.2010, 19:49
Wohin die Spitze schaut sagt dir dein elektronischer Kompass.
Wohin sie schauen sollte um von A(lon/lat), den GPS Koordinaten des Fliegers/Bots,
nach B(lon/lat), Koordinaten des Ziels, zu kommen...mußt du dir berechnen.
Die Differenz aus den beiden Winkeln sagt dir um wieviel ° du Bot/flugzeug/etc.. drehen mußt..

runner02
28.05.2010, 16:38
Ah, perfekt danke, jetzt leuchtets mir ein...

Also brauche ich beide Komponenten...
(Kompass+GPS)



Die Differenz aus den beiden Winkeln sagt dir um wieviel ° du Bot/flugzeug/etc.. drehen musst..

Winkel? Koordinaten meinst du, oder?