PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Habe Arduino Uno,GPS Modul,RC Auto.Möchte haben:Auto,dass GPS Waypoints abfährt



de8msharduino
17.09.2011, 15:42
Hallo,

ich bein neu in Robotik, aber nicht neu in Arduino. Ich habe in Instructables gesehen, wie man ein RC Auto an den Arduino packt und es dann darüber zu steuern. Allerdings wurde hier nach Zufall, oder nach "Fahre 1 Sekunde vor, dann 0,5 Sekunden nach Rechts" usw. gefahren. Ist auch nett, aber nichts für mich.

Ich habe ein GPS Projekt mit dem Ardu gemacht. Es gibt eine Lib dafür, welches die Distanz zu einem WP/Koordinate anzeigt. Nun möchte ich das Gespann Ardu+GPS+Auto so bauen, dass ich dem Ardu GPS Waypoints gebe und das Auto A>B>C.... abfährt. Leider hat die Lib kein CourseTo oder DirectionIn drinnen. Denn: meine Idee ist es das Auto von Starpunkt nach A mit Hilfe von [Wenn "Richtung < Waypoint Richtung" dann Links && DistanceTo>0] und [Wenn "Richtung > Waypoint Richtung" dann Rechts && DistanceTo>0] zu steuern. Frage an Euch Experten: macht man das so? Oder gibt es bessere/einfachere Ansätze?

Ich danke Euch für die Unterstützung.

danimath
18.09.2011, 19:27
Kurze Antwort: "Man" macht das, wie "man" will;) - aber das wird Dir nicht viel helfen. Für ein Problem gibt's meistens mehrere Lösungen, und welche die bessere/einfachere ist, hängt von der aktuellen Definition von "besser/einfacher" ab.

Zwei Dinge sind mir in

[Wenn "Richtung < Waypoint Richtung" dann Links && DistanceTo>0]
aufgefallen:

1. was meinst Du mit "&& DistanceTo>0"?
2. Der erste Teil geht schief: z.B.: Richtung = 5°, Richtung Waypoint=10°; dann würde Dein Algorithmus nach links drehen, obwohl rechts viel kürzer wäre (wenn ich das richtig verstanden habe). Du müsstest hier also jeweils den Winkel im Uhrzeigersinn und den entgegen des Uhrzeigersinns ausrechnen und dann das Minimum nehmen.

BTW: Ist Dein Garten groß genug? ;) Auf freier Pläne hat ein GPS eine Genauigkeit von ca. 3 m. Sobald Bäume oder Häuser in der Nähe sind, sinkt die Genauigkeit rapide. Im Zimmer kannste das eh knicken.

viele Grüße
Andreas

avus17
18.09.2011, 20:03
Also ich glaube auch, das das mit der Genauigkeit
ein problem werden könnte, den ich kenn das vom Geocachen.
Selbst mit nem guten Gerät, bekommt man meistens nur eine Genauigket von 4-6 Metern.

danimath
18.09.2011, 20:12
<offtopic>
Bin heute auch wieder an 'ner D3-Dose gescheitert :-(
</offtopic>

Martinius11
18.09.2011, 23:14
Also ich glaube auch, das das mit der Genauigkeit
ein problem werden könnte, den ich kenn das vom Geocachen.
Selbst mit nem guten Gerät, bekommt man meistens nur eine Genauigket von 4-6 Metern.

Sehr Falsch ein GPS hat eine Auflösung von ein paar cm nur die Positions bestimmung ist nur so ungenau
====> liest er vorher die Daten des GPS ein Fährt das Auto die recht genau ab.

danimath
19.09.2011, 08:40
Sehr Falsch ein GPS hat eine Auflösung von ein paar cm nur die Positions bestimmung ist nur so ungenau
====> liest er vorher die Daten des GPS ein Fährt das Auto die recht genau ab.

Wir reden hier aber nicht von der Auflösung! Entscheidend ist, was am Ende herauskommt - und das sind ohne Zusatzgeräte wie dGPS eben ein paar Meter.

viele Grüße
Andreas

de8msharduino
20.09.2011, 10:32
Kurze Antwort: "Man" macht das, wie "man" will;) - aber das wird Dir nicht viel helfen. Für ein Problem gibt's meistens mehrere Lösungen, und welche die bessere/einfachere ist, hängt von der aktuellen Definition von "besser/einfacher" ab.

Zwei Dinge sind mir in

aufgefallen:

1. was meinst Du mit "&& DistanceTo>0"?
2. Der erste Teil geht schief: z.B.: Richtung = 5°, Richtung Waypoint=10°; dann würde Dein Algorithmus nach links drehen, obwohl rechts viel kürzer wäre (wenn ich das richtig verstanden habe). Du müsstest hier also jeweils den Winkel im Uhrzeigersinn und den entgegen des Uhrzeigersinns ausrechnen und dann das Minimum nehmen.

BTW: Ist Dein Garten groß genug? ;) Auf freier Pläne hat ein GPS eine Genauigkeit von ca. 3 m. Sobald Bäume oder Häuser in der Nähe sind, sinkt die Genauigkeit rapide. Im Zimmer kannste das eh knicken.

viele Grüße
Andreas

Zu 1. Er soll solange den Waypoint suchen bis er eine gewissen Nähe dazu hat. >0 ist jetzt nur Bespiel. Denn für 0 m Entfernung wären wohl 11 Satteliten notwendig ;)

Zu 2. Ok, das habe ich nicht bedacht und müsste gecoded werden.

de8msharduino
20.09.2011, 10:35
Nochmal kurz weg von den Dateils wie Genauigkeit und größe der Fläche (ich habe einen Schulhof, wo ich es testen kann). Wie wäre eine simple Methode um Waypoints abzufahren? Ich habe meine Idee oben vorgestellt. Ist das ein gehbarer Weg? Oder sagt Ihr als Experten, dass es bessere Ansätze für soetwas gibt? danimath sagt es ja schon ansatzweise ""Man" macht das, wie "man" will" :) Ich habe aber soetwas noch nie gemacht... Daher fehlt mir die Erfahrung.

danimath
20.09.2011, 11:25
Naja - genau sowas habe ich auch noch nicht gemacht, deshalb nur ein paar grobe Hinweise.

Du musste denken, wie ein Auto, das nur ein GPS zur Verfügung hat, also: (in Gedanken reicht) stopf die Ohren zu, senke Deinen Blick auf GPS und lauf los.

Ich würde so etwas wie folgendes probieren:

solange nicht in Nähe des nächsten Waypoints:
- fahre
- lenke dabei in Richtung des Waypoints
wenn in der Nähe des Waypoints (*)
- lade nächsten waypoint (wenn vorhanden, sonst dreimal hupen und Ende)
- einmal hupen
- fang von vorn an

(*) auf Entfernung 0 würde ich nicht testen - das sieht bestimmt lustig aus, wenn das Auto um den Waypoint herum eiert ;-)

Noch ein BTW: hast Du eine freie Fläche, oder musst Du mit Hindernissen rechnen? Dann bräuchtest Du noch zusätzliche Sensoren.

viele Grüße
Andreas

Tumba
07.10.2011, 22:53
Das ist mein erster Eintrag hier. Ich baue mit Arduino autonome Flieger, z.B. sowas: http://forum.mikrokopter.de/topic-26873.html oder sowas: http://forum.mikrokopter.de/topic-14900.html.

Da gehe ich so vor: Ich habe eine aktuelle Position (GPS). Dann gibt es das Ziel, da will ich hin (GPS - Koordinate). Das ergibt ein Ziel-Vektor. Dann nehme ich aus dem GPS den aktuellen Flug-Vektor (Kurs). Die Winkeldifferenz der beiden Vektoren gebe ich mit einer Konstante auf das Querruder oder auf die Giersteuerung. Bei Fliegern sollte man zu diesem P-Anteil noch D und I dazunehmen. Bei Fahrzeugen braucht man das nicht unbedingt. Und den Kurs fliege/fahre ich solange, bis ich dicht genug am Ziel bin. Und dann nehme ich einfach das nächste Ziel.