PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie fahre ich parallel an einer Wand entlang?



maetsches
06.03.2007, 14:14
Hallo,

ich mache zur Zeit ein Projekt an der Uni und habe alles fertig, außer die Funktion, mit der meine Roboter (Miabot Pro von Merlin Systems) parallel an einer Wand entlang fahren können. Ich habe schon die Suchfunktion benutzt, doch leider nichts gefunden.

Kann mir bitte jemand zeigen wie man so etwas realisiert?

Ach ja, die Roboter sind mit Ultraschallsensoren ausgestattet.

Jon
06.03.2007, 14:18
Hast du den mit den 8 oder 4 Ultaschallsensoren?

jon

maetsches
06.03.2007, 14:26
Den mit 4, dh. ich hab nur den Abstand zur Wand.

Die Funktion wird erst aufgerufen, wenn der Roboter schon ein Hindernis erkannt hat und sich ausgerichtet hat.


Wäre toll wenn mir einer einen Tipp geben kann.

Jon
06.03.2007, 14:56
Wenn zwei Sensoren die wand registrieren, dann musst du nur so fahren, dass beide Sensoren den selben Abstand messen.
Es müsste aber auch so gehen, dass ein Sensor am Anfang, die Wand "entdeckt" und du die Entfernung des Sensors speicherst und dann beibehältst.
Wären die beiden Möglichkeiten, die mir einfallen und auch recht leicht zu realisieren wären.

jon

maetsches
06.03.2007, 15:01
das mit "denselben Abstand beibehalten" ist finde ich nicht so einfach wie sich das anhört. Wie regle ich meinen Abstand unter Ansteuerung der beiden Radgeschwindigkeiten?

Jon
06.03.2007, 15:07
Wenn du merkst, dass der Abstand kleiner wird, der Bot also zur Wand hinfährt, musst du in die andere Richtung, also von der Wand wegfahren.
Wird der Abstand zu groß, also wenn der Bot von der Wand wegfährt, musst du zur Wand hinfahren.

jon

maetsches
06.03.2007, 15:17
jetzt mal ernsthaft, soweit war ich natürlich auch schon.

Aber wie korrigiere ich die Radgeschwindigkeiten, also wie weit soll ich lenken oder wie stark soll ich ein Rad abbremsen oder beschleunigen...

Wenn man einfach nur zu Wand hin oder von der Wand weg fährt, korrigiert man ja nicht wirklich seine Fahrt und fährt dauernd zickzack.
Das ist auch nicht schwer, man definiert einfach 2 Kurvenradien, die der Roboter bei zu kleinem bzw. zu großen Abstand einschlägt.
Ist das wirklich die Lösung?

Hat jemand schon einmal eine andere Abstandsregelung hierfür entworfen?

Jon
06.03.2007, 15:35
jetzt mal ernsthaft, soweit war ich natürlich auch schon.
Achso. Das konnte ich aus dem, was du geschrieben hast, nicht erkennen.


Aber wie korrigiere ich die Radgeschwindigkeiten, also wie weit soll ich lenken oder wie stark soll ich ein Rad abbremsen oder beschleunigen...
Du kannst vielleicht versuchen bei der ersten Drehung zur Wand hin die Radgeschwindigkeit und die Drehzeit speichern und wenn du merkst, dass du schon nach sehr kurzer Zeit dich von der Wand abwenden musst den wert runtersetzten. Wäre dann etwas experimentelles, was du auch in die andere Drehrichtung machen müsstest. Wenn die Wand dann ca. 2m lang ist, dann könntest du auf den letzten Meter bestimmt ziemlich "wackelfrei" fahren.


Wenn man einfach nur zu Wand hin oder von der Wand weg fährt, korrigiert man ja nicht wirklich seine Fahrt und fährt dauernd zickzack.
Das ist auch nicht schwer, man definiert einfach 2 Kurvenradien, die der Roboter bei zu kleinem bzw. zu großen Abstand einschlägt.
Ist das wirklich die Lösung?
Die Lösung bestimmt nicht.


Hat jemand schon einmal eine andere Abstandsregelung hierfür entworfen?
Ich habe es nur mit zwei Sensoren, die zur Wand hingerichtet sind. Da ist es kein Problem. Aber mit so einer Anordnung der Sensoren dürfte es schwer werden. Vor allem dann, wenn die Wand nicht gerade ist, sondern irgendwo eine Kurve hat. da ist das "Wackeln" vorteilhaft.

jon

maetsches
07.03.2007, 10:40
Habs als PD-Regler realisert, wie hier beschrieben:

https://www.roboternetz.de/wissen/index.php/Regelungstechnik

Antiarbusto
10.04.2007, 19:02
und wenn man die geschwindigkeit misst, mit der die wand sich entfernt oder annähert ? dann sollte man, vorrausgesetzt die geschwindigkeit des bots ist bekannt, mit nen bisschen geometrie oder ner wertetabelle auch zum ziel kommen

du subtrahierst vom ersten messwert nach x zurückgelegten metern den zweiten messwert und hast dann zwei geraden in einem dreieck ... den passenden winkel auszurechnen, solltest du hinbekommen ...

Manf
10.04.2007, 19:21
Es kommt ein wenig auf die tatsächliche Konfiguration an, aber bei den meisten Konstellationen von Wand und Welligkeit ist es ganz gut wenn z.B ein optischer Entfernungssensor nicht den Abstand zur Wand direkt, sondern etwas (30°) nach vorne gerichtet mißt.

Steht das Fahrzeug dann von einer geraden Wand weg gerichtet, dann ist die Strecke bis zur Wand größer und kann es schon gleich den Winkel zusammen mit dem Abstand korrigieren.

Bei Ultraschall wird die Messung des Winkels und des Abstands zu einer glatten Wand nur mit zwei Sensoren gehen und man wird sich eine Fehlergröße aus Abstand und Winkel zusammensetzen können.
Manfred

plusminus
12.04.2007, 21:47
du könntest die Motorgeschwindigkeiten direkt mit den gemessenen Abständen durch ein Percepton/Neuronales Netz koppeln...

Das produziert die dann die "weichen" kurven...

ich hab hier ein Buch aus der UB rumfliegen, da wird das beschrieben ich schau mal ob ichs finde ^^

[EDIT]
da hammas...

Ulrich Nehmzow | Mobile Robotics: A Practical Introduction

ISBN 1-85233-173-9

da wird die ganze Geschichte zwar an einem ASURO-ähnlichen Gefährt mit 2 Fühlern und 2 Motoren und Obstacle-Avoidance erläutert, aber es geht ja ums Prinzip.

Is übrigens in Englisch...