Absender: Timo Sandmann
Datum: Di, 31.03.2009 21:39:42
In-reply-to:
<000801c9b227$680868a0$0200a8c0@mexpnew>
References:
<000801c9b227$680868a0$0200a8c0@mexpnew>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Frank, Am 31.03.2009 um 19:37 schrieb Frank Menzel:
Hi Timo,da fehlt dann wieder leider die Debugausgabe um abzulesen, nach wie vielVersuchen und mit welchem Radius er letztendlich den Weg gefunden hat.Er versucht zuerst mit Radius 30, um bei nicht gefundenem Pfad diesen zuverringern, um dann einen möglichen Weg zu finden.
ich habe die Debug-Ausgabe mal ergänzt: http://www.heise.de/ct/projekte/machmit/ctbot/attachment/ticket/185/Pfadplanung-Bug.txt
Geplant hat er richtig, nur die Hindernisse eben nicht richtig mit 1 belegt und daher einen Weg durch die Wand gefunden.
Ja genau und das verstehe ich nicht, weil die entsprechenden Hindernisse in der Karte wirklich sehr deutlich (also sehr wahrscheinlich -> richtig schwarz in der Karte) sind. Dass man irgendwo einen Schwellwert festlegen muss ist klar und wenn das Verhalten dann an einer Stelle, wo die Hinderniswahrscheinlich sehr nah am Schwellwert ist, falsch plant, könnte ich das verstehen, aber hier eben nicht. In dieser Karte muss das Hindernis auf jeden Fall erkannt und berücksichtigt werden, deutlicher kann es ja eigentlich gar nicht mehr in der Karte stehen.
Möglicherweisemüsste man auch das Setzen eines Hindernissumkreises etwas ausweiten imOnlinescan, so dass die Hindernisse breiter werden.
Ich denke, die sind jetzt eher schon zu groß als zu klein. Im konkreten Beispiel ist das Hindernis ja als durchgehende Linie eingetragen, das muss auf jeden Fall erkannt werden, egal wie groß der Radius beim Eintragen ist.
Andererseits könnteman auch beim Planen map_way_free einsetzen von Pfadpunkt zu Pfadpunkt, um so einen zu geringen Abstand zu einer Wand auszuschliessen und einenanderen möglichen Pfadpunkt zu nehmen.
Aber warum, der Planer soll doch in seiner Karte nur Wege finden, die map_way_free() eh als frei melden würde. Wenn die Pfadplanungskarte korrekt ist und überall dort, wo map_way_free() ein Hindernis meldet, eine 1 eingetragen ist, braucht man map_way_free() ja (für diesen Zweck) nicht mehr.
Doch dann würde der Mapzugriff stark frequentiert sein, wobei dies im Sim andererseits fast egal sein sollte zumal dies auf dem echten ja wohl doch nicht so funktioniert oder?
Für die Planungsphase ist das ziemlich egal denke ich, wenn das Planungsverhalten zwei Sekunden braucht, bis es mit planen fertig ist und der Bot losfahren kann, stört das ja nicht wirklich.
Wie konnte man eigentlich diesen .map-Parcour reinladen?
Mit dem Parameter -m DATEINAME, also z.B. Debug-XXX/ct-Bot -m ../ct- Sim-devel/maps/testparcours4-clean.map
Die übergebene Datei wird dann auch für den Export verwendet, falls man die Map vom Bot aus exportiert.
Gruß, Timo -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAknScX0ACgkQDH/BX4067fKSaQCgpx0H51IxyCRo061FigmgiKZh 6GYAoLfbWu+lgEwCBPWf+De09uzsMfot =bR1d -----END PGP SIGNATURE-----