-
        

Ergebnis 1 bis 7 von 7

Thema: Wie aus einer Ecke kommen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522

    Wie aus einer Ecke kommen

    Anzeige

    Hallo Leute,

    also ich habe folgendes Problem: Ein ca. 32cm breiter Roboter soll in einem Raum herumfahren, ohne an irgendetwas anzustoßen. Dazu hat er an den Seiten zwei IR-Distanzsensoren montiert, die nach vorne "sehen". An sich eigentlich ein einfache Sache, doch der Teufel steckt im Detail: wenn der Roboter in eine Ecke fährt, kann unter Umständen passieren, dass er sich dort ständig hin- und herdreht, denn wenn beide Sensoren einen geringen Abstand anzeigen, dreht der Roboter in die Richtung wo er scheinbar am meisten Platz hat. Aufgrund der Umgebung wird jedoch bei der Rotation der Abstand an der Seite kleiner, wo er eigentlich hätte größer werden sollen und umgekehrt. Hier noch ein passendes Bild:


    Wie kommt man jetzt aus dieser Lage heraus? Eine Möglichkeit, wäre z.B. ihn immer in eine bestimmte Richtung rotieren zu lassen, egal welcher Sensor den geringeren Abstand anzeigt, dies hätte aber zur Folge, dass der Roboter dazu "neigen" würde, in diese Richtung zu fahren. Habt ihr Vorschläge für eine Verhaltensweise, die beide Richtungen gleichermaßen nutzt?

    MfG Mark

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Erst mal sollte der Bot erkennen, dass er festsitzt. Also zb nen Timeout einbauen. Wenn einige Zeit lang nur gedreht und nicht (bzw nur sehr kurz) gefahren wurde, wird eine gesonderte Aktion gestartet (also das Drehen auf eine Richtung beschränkt, oder kurz rückwärts gefahren und abgedreht).

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Klingon77
    Registriert seit
    26.09.2006
    Ort
    Hunsrück
    Alter
    56
    Beiträge
    2.543
    hi,

    Wie wäre es, wenn er vor jedem Drehen ein Stück rückwärts fährt?
    So wird der Abstand immer größer.

    Man könnte ihn auch so programmieren, daß er während der Drehung einen engeren Abstand toleriert.
    Beim Aufruf des Unterprogramm´s "Drehen wegen Hindernis" wird die Variable für den Mindestabstand runter gesetzt und beim Verlassen des Unterprogramm´s wieder auf die alten Werte zurückgesetzt.

    Bin aber kein Programmierer.
    Ist nur aus dem "hohlen Bauch" heraus.

    liebe Grüße lieber Nachbar (Hunsrück),

    Klingon77
    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    35
    Beiträge
    760
    hallo,
    ich habe das so gelöst, dass der roboter in die rihtung dreht, wo der größte abstand ist. allerdings wir dies nicht jedes mal neu überprüft, sondern es wird so lange gedreht, bis der roboter nach vorne wieder freie fahrt hat. bei nächsten hindernis wird dann die drehrichtung wieder neu in abhängigkeit vom abstand bestimmt. aber während einer drehung wird die drehrichtung nicht geändert.
    mfg jeffrey

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Hallo alle,

    Zitat Zitat von Klingon77
    ... Wie wäre es, wenn er vor jedem Drehen ein Stück rückwärts fährt? ...
    Zitat Zitat von jeffrey
    ... aber während einer drehung wird die drehrichtung nicht geändert ...
    Bei meinem Dottie habe ich ein ähnliches Problem. Dort messe ich die Entfernungen mit drei nach vorne gefächerten (0°, +45° und - 45°) IR-Sensoren. Besonderheit sind zusätzlich zum genannten Auffächern die schräg von oben nach unten strahlenden Sensoren. Ich mache bei Absturz- oder Crashgefahr eine 60°-Kurve rückwärts: Ein Rad steht, das andere dreht. Es bleibt natürlich die Gefahr, dass man - wenn man das Manöver am Tischrand fährt - über den Tischrand hinaus schwenkt.

    Im vorliegenden Fall sehe ich es so, dass man hin und wieder beim Rückwärtsschwenken den Abstand misst und mit - vermutlich geänderten Toleranzen - trotzdem einen Crash verhindert. Hier besteht allerdings die Gefahr der seitlichen Berührung - da wäre ein wenigstens ungefähr arbeitender Sensor für den seitlichen Abstand schon ne große Hilfe. Das ist auch der Grund dafür, dass ich die Sensoren etwas schräg-seitlich-strahlend montiert habe.
    Ciao sagt der JoeamBerg

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    35
    Beiträge
    760
    Zitat Zitat von Klingon77
    hi,

    Wie wäre es, wenn er vor jedem Drehen ein Stück rückwärts fährt?
    ich find das bnicht so sinnvoll. um aus einer ecke herauszu kommen ist das gut. aber das problem ist dann, dass er dass dann ev auch vor einem normalen hindernis, oder an einer wand macht. dann sieht das fahrverhalten sehr unschön aus, weil er dann immer anhält und rückwärts dreht. eine normale kurve um ein hindernis sieht dabei aber wesentlich eleganter aus. rückwärtsfahren würde ich erst, wenn der krurvenradius nicht mehr reicht um um das hindernis herum zu kommen.

    mfg jeffrey

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    522
    Hab die Methode von Jeffrey gerade ausprobiert, funktioniert super. danke!

    MfG Mark

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •