|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Benjamin Benz
Datum: Mo, 06.11.2006 13:18:24
Hallo,
längere Zeit war es ruhig um das c't-Bot-CVS, jetzt gibt es mal wieder
ein größeres Update. Neben einigen kleineren Bugfixes und integrierten
Patches betrifft es folgende größere Änderungen:
I. Verhaltensframework
Wir haben die monolithische und mittlerweile riesige bot-logik.c
zerteilt. Es gibt nun ein neues Verzeichnis "bot-logic" Darin hat jedes
Verhalten sein eigenes .c-File. Auch im Include-Verzeichnis gibt es das
korrespondierende Unterverzeichnis. Da nun jedes Verhalten in einer
eigenen Datei liegt, kann man ganz einfach nicht benutzte Verhalten
deaktivieren und so den Footprint des Codes im Flash verkleinern. Die
neue Datei available_behaviours.h enthält die dazu nötigen Schalter. Wer
ein eigenes Verhalten schreiben will, sollte:
1. Es in eine eigene .c-Datei packen, die dem Namensschema
behaviour_xxx.c folgt
2. Eine dazu passende .h-Datei erstellen
3. in available_behaviours.h die Header-Datei, einen #define-Schalter
und eventuelle abhängigkeiten eintragen
4. in bot-logik.c die Init-Routine erweitern.
Das Verwenden der anderen Verhalten ist ganz einfach und funktioniert
wie bisher. Man muss nur die Datei bot-logik.h einbinden, alle anderen
.h-Files kommen dann automatisch mit dazu. Am Framework hat sich nichts
geändert, so dass alle Verhalten weiter funktionieren wie gehabt und
auch das Verhaltenstutorial aus c't 10/06
(http://www.heise.de/ct/06/10/236/) gilt weiterhin.
Insgesamt denken wir, dass durch den Umbau das Framework deutlich
übersichtlicher wird und sich schlankerer Code erzeugen lässt.
II. Kartographie
Wir haben eine Referenzimplementation des in c't 19/06
(http://www.heise.de/ct/06/19/198/) vorgestellten Kartographiealgoritmus
mit in den Code eingefügt. Auf dem realen Bot begrenzt der Speicher die
Auflösung sehr stark, aber im Simulator lassen sich hübsche Karten
erzeugen. hat man MAP_AVAILABLE aktiviert und lässt den Bot eine Weile
herumfahren, so liefert ein Druck auf die Taste "3" der Fernbedienung
eine PGM-Datei (map.pgm) mit einem Bild der Karte. Der Bot legt die
Datei im aktuellen Arbeitsverzeichnis ab. (d.h. startet man den Bot aus
dem Sim heraus, ist dies das Heimatverzeichnis des Sim). Der reale Bot
kennt noch keine Möglichkeit die Karte wieder auszugeben.
Details zur Karte finden sich im Kommentar in map.c.
Wer mit der Auflösung der Karte, oder der Gewichtung der einzelnen
Messwerte experimentieren will, findet eine Reihe von Konstanten in der
Datei map.c. Insbesondere dürften folgende Werte interessant sein:
#define MAP_STEP_FREE 2 /*!< Um diesen Wert wird ein Feld
inkrementiert, wenn es als frei erkannt wird */
#define MAP_STEP_OCCUPIED 10 /*!< Um diesen Wert wird ein Feld
dekrementiert, wenn es als belegt erkannt wird */
#define MAP_RADIUS 10 /*!< Umkreis einen Messpunkt, der als Besetzt
aktualisiert wird (Streukreis) [mm]*/
III. Timer und delays
Timo Sandmann hat sich der Timer und Delayfunktionen angenommen und sie
überarbeitet.
MfG Benjamin Benz
Wie üblich auch nochmal ein Auszug aus dem Changelog:
2006-11-06 Benjamin Benz [bbe@xxxxxxxx]: map.c kommentiert und etwas
geschliffen
2006-11-03 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: Zwei warnings beseitigt
und zwei unnoetige volatiles in bot-logik.c entfernt
2006-11-03 Benjamin Benz [bbe@xxxxxxxx]: Verhalten aus bot-logik.c auf
Einzelfunktionen aufgeteilt und in available_behaviours Schalter zur
Auswahl eingefuehrt
2006-11-01 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: Timer auf tickCounts
[176 us] umgestellt (bevorzugt TIMER_GET_TICKCOUNT_16 oder 32 verwenden;
MS_TO_TICKS() rechnet dazu ms in Ticks um)
2006-11-01 Benjamin Benz [bbe@xxxxxxxx]: Karten funktionieren jetzt
schon mal auf dem PC
2006-10-29 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: Bug in command.c
behoben (Code compilierte nicht ohne LOG_AVAILABLE)
2006-10-26 Benjamin Benz (bbe@xxxxxxxx) Karten (nur PC) eingefuehrt,
Kommunikation angepasst
--
Benjamin Benz
Heise Zeitschriften Verlag
Redaktion c't
eMail: bbe@xxxxxxxx
WWW : http://www.heise.de
|
|
|