PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beschleunigung aus einer Kurve herraus



Simsmann
13.01.2006, 10:46
Ich bin grade dabei und wollte mich mal ein bisschen im Asuro versuchen. Ich wollte es realiesieren, dass mein Asuro eine Kurve erkennt, nach der Durchfahrt der Kurve dann seine Geschwindigkeit erhöht bis zu einem von mir festgelegten Wert. Leider habe ich aber nicht so die Ahnung wie man das realiesieren kann; da ich meinen Asuro noch nicht so lange besitze. Kann mir einer Helfen der sowas vielleicht schon gemacht hat, oder sonst weis wie mann sowas anstellen kann. eine Lienenfolge habe ich schon realiesieren können. Nur das mit der Beschleunigung klappt noch nicht so. es soll wohl 2 oder 3 Möglichkeiten geben wie man sowas machen kann. Wäre cool wenn mir einer ein paar Tips geben könnte.

m.a.r.v.i.n
13.01.2006, 11:31
Hallo Simsmann,

Kurven kann der Asuro ja nur mit den Linienfolger erkennen.
Der folgende Thread geht wohl in die Richtung.
Asuro: Linienfolger mit PD-Regler (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=11818)
Zum Verständnis sind allerdings einige Mathekenntnisse vonnöten.

Gruß Peter

Simsmann
13.01.2006, 11:49
habe ich auch schon gedacht, eine lienenfolge habe ich ja auch schon, weist du durch zufall, wie mann den quellcode erweitern muss damit der asuro weis wann er beschleunigen muss und wann er es nicht darf

m.a.r.v.i.n
13.01.2006, 12:01
Hallo Simsmann,

denke das geht so nicht, zumindest nicht ohne Umbau des Asuro. Der Asuro müßte ja 'sehen' können, das eine Kurve kommt bzw. zu Ende ist, um vor der Kurve zu bremsen, bzw. nach der Kurve wieder zu beschleunigen.

Man bräuchte dann wohl zusätzliche Liniensensoren, vor und hinter dem Linienverfolger, um Kurven und Geraden 'sehen' zu können.

Gruß Peter

Simsmann
13.01.2006, 12:09
Ja das war auch eine sache wo ich drüber gestolpert bin, dann habe ich mir aber gedacht (es geht hier ja erst mal nur um das herausbeschleunigen aus einer kurve das einbiegen wollte ich irgentwann mal realiesieren.) Ich habe mir das deswegenso vorgestellt: mann hat ja die Weiß schwarz wechselden kreise auf dem getriebe nun ist es doch so wenn ich z.b. eine linkskurve anfahre dann dreht sich das rechte Rad doch schneller wie das linke oder. kann mann das nicht anhand der geschwindigkeit ermitteln wann dann eine kurve zu ende ist oder bin ich da gerade auf dem holzweg.

m.a.r.v.i.n
13.01.2006, 13:02
Hallo Simsmann,

ok, verstehe das könnte natürlich funktionieren. Da war ich wohl auf dem Holzweg.
In der erweiterten ASURO Bibliothek (http://www.sourceforge.net/projects/asuro) gibt es Funktionen zur Abfrage der Radencoder.

Mit EncoderInit() zum Beispiel startet man die Radencoder Auswertung (läuft im Hintergrund interrupt-gesteuert)

Die Werte der Encoder kann man mit encoder[left] und encoder[right]
auslesen und daraus die Differenz bilden. Diese aktuelle Differenz mit der letzten gemessenen Differenz vergleichen. Wird die Differenz größer fährt man in einer Kurve und sollte abbremsen. Wird sie kleiner fährt man aus der Kurve und kann wieder beschleunigen.

Die Encoder Werte kann man mit der Funktion Encoder_Set(l,r) zurücksetzen. Sollte man tun, nachdem man die Differenz gebildet hat (für die nächste Messung).

Damit hat man alles um ein Programm zu schreiben das in der Kurve bremst und auf der Geraden beschleunigt.
Es sollte nicht allzu schwer sein, das Linienfolger Programm entsprechend anzupassen.

Das schafft du doch sicher alleine? :wink:

Gruß Peter

waste
13.01.2006, 13:56
Hallo Simsmann,

in meinem Beispielprogramm Asuro: Linienfolger mit PD-Regler (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=109451&highlight=#109451) wird bei Kurvenfahrten das innere Rad gebremst und das äussere Rad beschleunigt. Wenn man das so abändert, dass nur das innere Rad gebremst wird, ohne das äussere zu beschleunigen, dann fährt der Asuro in den Kurven langsamer und zwar je enger die Kurve um so langsamer. Auf der Geraden fährt er schnell.

Wenn das noch nicht ausreicht, dann kann man noch abhängig von der Regelabweichung die Grundgeschwindigkeit einstellen. Also je höher die Regelabweichung (enge Kurven) desto geringer die Grundgeschwindigkeit einstellen.

Gruß Waste