PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausweich Algorithmus



Kampfwurst_Hugo
16.08.2012, 14:38
Hallo

Ich habe folgende Frage.

Ich baue gerade einen Rasenmähroboter. Doch leider habe ich momentan ein kleines Problem.
Konkret geht es um einen Ausweich Algorithmus.
An der Vorderseite meines Roboters habe ich einen Ultraschall Sensor auf einem Modelbau Servo angebracht. Der Servo bewegt sich die ganze Zeit von Links nach Rechts und wieder retour.

Nun hätte ich gerne das der Roboter falls ein Hinderniss auftaucht das Hinderniss umfährt und dann wieder zurück in die "alte " Spur zurückkehr.
Leider habe ich momentan keinen Plan wie ich das am besten angehen sollte. Natürlich soll der Roboter erkennen auf welcher Seite es besser ist an dem Hinderniss vorbei zu fahren.

Vieleicht hat das jemand von euch schon gemacht und kann mir da helfen.

Chris

damfino
16.08.2012, 18:33
Hallo,
würde es so machen: einmal bei Bewegung von links nach rechts erstes Hinderniss merken (Servoposition), danach bei rechts nach links erstes Hinderniss merken.
Auf der Seite an der die größte Servoposition erreicht wurde ist am meisten Platz und dorthin sollte ausgewichen werden.

Der schwierige Teil ist die Ausweichkurve zu planen und kontrollieren. Die Abweichungen der Odometrie bei Kurvenfahrt sind recht groß. Berechnungen für Odometrie findest auf meiner Homepage.

Ausserdem bleibt so ein großer Teil rund um das Hinderniss ungemäht, das macht wieder wenig Sinn. Ich setze die Geschwindigkeit runter damit er nicht so stark anstosst.

LG!

Technipion
21.08.2012, 19:54
Hey,
da GPS-Koordinaten in der Größenordnung nicht zum Einsatz fähig sind, könnte ich mir vorstellen, dass du das ganze mit einem digitalen Kompass lösen könntest. Wenn du ein Hindernis erkennst, dreht sich der Roboter um alpha Grad nach rechts und links und prüft jeweils, ob das Hindernis noch da ist. Dann nimmt er den/einen freien Weg und beschreitet einen x-eckigen Weg um das Ziel herum. Dafür sind allerdings noch Sensoren an den Seiten des Roboters nötig, die messen wann das Ziel verschwindet.
Mit der Variable "Himmelsrichtung" kannst du ihn nach dem Umgehen des Hindernisses genau so weiterfahren lassen wie vorher...
Das ganze funktioniert allerdings nicht bei metallischen/magnetischen Hindernissen und erfordert außerdem ein bisschen Geschick bei der Programmierung (je nachdem welchen uC du benutzt?).
Aber als Möglichkeit durchaus in Betracht zu ziehen.
Gruß Technipion

Kampfwurst_Hugo
21.08.2012, 20:32
verwende einen Atmega 2560 als Master

welches Kompass Modul kannst du empfehlen?
Mein Roboter besteht leider aus sehr viel Metal
https://www.dropbox.com/s/p72ebk4slh2nxvu/IMG_1459.JPG