c't Projekte - c't-Bot und c't-Sim - Mailinglisten

c't-Bot und c't-Sim


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

Re: [ct-bot] Erweiterung Pfadplanung

Absender: Timo Sandmann
Datum: Di, 07.04.2009 01:29:41
In-reply-to: <000a01c9b6c7$669d9400$0200a8c0@mexpnew>
References: <000a01c9b6c7$669d9400$0200a8c0@mexpnew>


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo,

folgende Änderungen sind jetzt im SVN:

- - map_get_average() rechnet korrekt (wird von er Pfadplanung aber nicht mehr benutzt). - - Debug-Schalter DEBUG_MAP_GET_AVERAGE und DEBUG_MAP_GET_AVERAGE_VERBOSE in map.c. - - Die Auflösung der Karte des Pfadplanungsverhaltens ist nun so gewählt, dass ein Feld einer ganzzahligen Anzahl an Pixel der Map entspricht (16 statt 15,625) => keine unschönen Rundungsfehler, die zu Überlappungen führen. - - Das Pfadplanungsverhalten wertet die Map mit map_get_ratio() aus => Auswertung einer quadratischen Region, weil die Felder der Planungskarte ja auch quadratisch sind (und nicht rund). - - Die Fahrtpunkte werden in die Mitte der groben Felder der Planungskarte geschoben. Ein Feld ist 12,8 * 12,8 cm^2 groß und entspricht somit ungefähr der Grundfläche des Bots, ist das Feld als frei gekennzeichnet (= es gibt kein bekanntes Hindernis innerhalb des Feldes), kann der Bot das Feld also als Weg nutzen. Da die X-/Y- Position des Bots mit seinem Mittelpunkt gemessen wird, arbeitet das Pfadplanungsverhalten auf seiner Karte nun analog dazu. - - Mit dem Schalter DEBUG_PATHPLANING_VERBOSE in bot-logic/ behaviour_pathplaning.c lassen sich die Felder der Planungskarte in der Map-Anzeige des Sim (MAP_2_SIM_AVAILABLE) anzeigen: rot für Hindernis, grün für frei. - - Auf Grund der groben Auflösung der Planungskarte steht der Bot nach Abschluss der Pfadplanung nicht exakt am Zielpunkt (sondern in der Mitte des Zielfeldes), daher wird im Anschluss mit bot_goto_pos() der exakte Zielpunkt angefahren.

Getestet habe ich das Ganze bisher nur im Sim mit testparcours4.xml, dort funktioniert es aber sehr gut.

Grüße,
Timo

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iEYEARECAAYFAknakGUACgkQDH/BX4067fKI/QCfSX12IiE1Txq3U8efotoI8agu
vm0AoKRAPw/KAlbEzlO+vU6ZB7896MT9
=ygSg
-----END PGP SIGNATURE-----