c't

c't-Projekte - Mailinglisten


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

Re: [ct-bot] Aenderungen im Pfadplanungsverhalten->area-Verhalten

Absender: Timo Sandmann
Datum: Mo, 01.06.2009 15:44:19
In-reply-to: <000601c9e154$c42129e0$0200a8c0@mexpnew>
References: <000601c9e154$c42129e0$0200a8c0@mexpnew>


Hi Frank,

Am 30.05.2009 um 20:30 schrieb Frank Menzel:
Hi Timo,
sind nicht immer dieselben Strecken, die er in gleicher Reihenfolge
genauso abfährt wie im Lauf zuvor. Aber ist das nicht normal? Ich dachte schon. Erklärt habe ich's mir dadurch, dass er manchmal nah an eine Wand
fährt und der Punkt daneben eben manchmal noch als anfahrbar gilt und
manchmal nicht, je nachdem wie er die Hindernisse gesehen und in die Map eingetragen hat. Und bei bot_turn richtet er sich zum Ausrichten auf den
Zielpunkt ja wohl gewollt auch nie ganz genau mit diesem Winkel aus
(habe ich jedenfalls noch so aus einer Mail von Dir aus vergangener Zeit
in Erinnerung). Und ist ein Punkt der anzufahrenden Strecke nicht
anfahrbar aber der andere, dann fährt er eben zuerst die Strecke von der
anderen Seite an.

da hast du aus Sicht des Verhaltens völlig Recht und genau so wird es auch auf dem echten Bot ablaufen. Aus Sicht des Simulators ist es aber ein wenig anders. Der Sim bekommt in jedem Zeitschritt die Eingangsdaten vom Bot (z.B. wie schnell die beiden Motoren drehen) und berechnet daraus alle Sensordaten, die er an den Bot schickt. Diese Sensordaten sind nicht 100%ig exakt, aber die Berechnung ist immer dieselbe, also ist auch der (systembedingte) Fehler immer gleich. Jeder Bot mit derselben Vergangenheit bekommt also auch dieselben Sensordaten vom Sim, egal wann dieser Durchlauf stattfindet. Wenn das Verhalten auf dem Bot jetzt keine zufälligen Teile enthält, wird es aus den Sensordaten auch immer dieselben Fahrbefehle ermitteln. Und daher müsste auch drive_area() im Sim immer dieselben Bahnen abfahren. Da das aber offensichtlich nicht der Fall ist, scheint mir hier im Sim oder Bot-Framework ein Bug zu sein, der eine Abhängigkeit von irgendwelchen externen Umständen erzeugt.

Gruß,
Timo