c't Projekte - c't-Bot und c't-Sim - Mailinglisten
Absender: Timo Sandmann
Datum: Mi, 07.01.2009 13:52:50
In-reply-to:
<000901c97096$80e81af0$0200a8c0@mexpnew>
References:
<000901c97096$80e81af0$0200a8c0@mexpnew>
Hi Frank, Am 07.01.2009 um 08:06 schrieb Frank Menzel:
Hallo Timo, zu 2.) den Linienfolger habe ich eingebaut, weil darin ein paar Kennungen, sprich Variable, gesetzt werden nach Erkennen desUmkehrfeldes und bei diesem Linienfolger der Bot nicht nur auf der Kantefährt sondern auch wenn beide Sensoren sich auf der Linie befinden.
das könnte man aber ja auch über das Cancel-Verhalten machen oder wie bei drive_area() mit einem extra Verhalten, das die Überwachung übernimmt. Was ich so etwas unglücklich finde ist, dass man den Code zur Linienverfolgung doppelt pflegen muss. Wenn der Linienfolger verbessert wird, profitiert line_shortest_way() noch nicht davon und man muss erst mühsam die Änderungen oder Bugfixes übertragen. Darum wäre es mittel- und langfristig schöner, wenn das Verhalten auf bot_follow_line() zurückgreifen würde.
Zu 1.) nach shortest_wa_forward sollte er gewisse Strecke vorfahren, dann die Linie finden und via Linienfolger weitermachen... Auch der Original-Linienfolger dreht sich manchmal endlos, wenn er die Linie einfach nicht wieder findet...
Aber ich glaube er dreht noch auf dem grünen Feld, bevor er überhaupt etwas vor gefahren ist.
X- oder Y-Kooridnaten sind völlig belanglos, Hauptsache Linie und Kreuzungen finden und richtiges Setzen der Kennung auf Vor-Rückwärts siehe 1. bzw. Doku.
Ja das habe ich dann auch gemerkt, als die die Doku komplett gelesen hatte... ;-) So verstehe ich allerdings noch weniger, warum er dann den falschen Weg auswählt an der nächsten Kreuzung.
Gruß,Timo