## c't-Projekte - Mailinglisten

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

### [ct-bot] CVS-Update

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

- Voriger (Datum): [ct-bot] CVS-Update, Benjamin Benz
- Nächster (Datum): [ct-bot] Merkwuerdiges verhalten mit Speedcontrol, Achim Pankalla
- Voriger (Thread): [ct-bot] CVS-Update, Benjamin Benz
- Nächster (Thread): [ct-bot] CVS-Update, Benjamin Benz
- Indizes:
  - Datum
  - Thread