c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

AW: [ct-bot] neues catch_pillar-Verhalten mit goto_pos

Absender: Frank Menzel
Datum: Mo, 05.05.2008 21:18:05
In-reply-to: <ECA972F2-723E-449C-8129-057D8AE4A63A@xxxxxxxxxxxxxxx>


Hallo Timo,
also wenn die Dose weiter weg steht, klappt bei mir auch das jetzige
Verhalten nicht. Und im Vorbeidrehen soll ja auch das Objekt erkannt
werden, wodurch er in einen anderen Zweig kommt und die Drehung
abbricht. Erst dann sollte bei Stillstand des Bots das Messverhalten die
konkreten Werte liefern, also wenn sich nix mehr dreht... Erkennt der
linke das Objekt, wird anschliessend bis zum rechten gedreht und das
Messverhalten gestartet. Und der Durchschnitt beider genauen Messdaten
sollte der ultimative Anfahrpunkt sein. 
Aber Überdenken ist immer gut...
Gruß, Frank Menzel


-----Ursprüngliche Nachricht-----
Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
[mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo
Sandmann
Gesendet: Montag, 5. Mai 2008 17:37
An: Entwicklung rund um den c't-bot
Betreff: Re: [ct-bot] neues catch_pillar-Verhalten mit goto_pos

Hallo,

also bei mir klappt das Verhalten nur dann, wenn die Dose sehr dicht  
neben dem Bot steht. Steht sie weiter weg, wird sie vom Bot zwar auch  
erkannt, wenn die Räder stillstehen, erkennt der Distanzsensor die  
Dose aber schon nicht mehr. Folglich schlägt dann das Abstandmessen  
mit measure_distance_behavour() fehl.
Für mich sieht das so aus, als  ob man das Objekt nur im  
"Vorbeidrehen" erkennen kann. Hier ist aber die Abstandsmessung sehr  
ungenau, weil bei der Distanzsensorauswertung immer der Durchschnitt  
der letzten vier Messwerte gebildet wird.

Irgendwie ist die Durchschnittsbildung bei der Distanzsensorauswertung  
nicht so optimal, wenn sich der Bot dreht und plötzlich ein Objekt  
auftaucht, fließen die letzten drei Messwerte (z.B. "unendlich") immer  
noch mit in die Messung ein, obwohl es ja eigentlich einen Sprung  
geben sollte. Zumindest beim Drehen des Bots.
Vielleicht sollten wir das Verfahren mal überdenken?

Gruß Timo


Am 16.04.2008 um 13:04 schrieb Frank Menzel:
> Hallo,
> anbei mal eine Catch_Pillar-Version, welche im Endeffekt das
> goto_pos-Verhalten zum Einfangen verwendet.
> Hierfür gibt es ein paar neue Routinen, welche z.B. die Koordinate des
> gesehenen Objektes ermitteln je nach Sensorentfernung und eine kleine
> Erweiterung für bot_turn, um dieses abzubrechen.
> Folgende Logik wird verwendet.
> -Bot_turn wird wird in 4 Schritten a 90 Grad aufgerufen (bei sofort  
> 360
> Grad dreht er zu schnell und Objekt wird nicht erkannt)
> -Bot_turn wird abgebrochen falls Objekt gesehen wird (Abbruchfunktion)
> -Measure-Verhalten bestimmt genauen Abstand
> -Koordinate xy wird berechnet je nach Abstand
> -hat linker Sensor zuerst Objekt erkannt, wird etwas weiter gedreht  
> bis
> rechts ebenfalls Objekt erkennt
> -Mittelwert beider Koordinaten wird mit goto_pos angefahren
>
> Das wars? Bei mir klappt die Sache recht gut.
> Das alte catch Pillar ist codemaessig noch drin und wird per define
> aktiviert. Ebenfalls wird das alte zugeschaltet bei nicht aktiviertem
> goto_pos-Verhalten (geht auch nur bei aktivierter Motorsteuerung) mit
> entsprechender Warning.
>
> Gruß, Frank Menzel
>
> < 
> catch_pill_with_gotopos 
> .txt>_______________________________________________
> ct-bot-entwickler Mailingliste
> ct-bot-entwickler@xxxxxxxxxxxxxxxxx
> http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler


_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler