## c't-Projekte - Mailinglisten

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

### [ct-bot] Map-Umbau

Absender: Timo Sandmann
Datum: So, 20.04.2008 23:04:51

    Hallo,

`der Umbau des Map-Codes (im devel-Zweig) ist jetzt größtenteils` `abgeschlossen. Daher hier ein paar Infos dazu (Doku fehlt noch ein` `wenig):`

`1.) Das Map-Update läuft jetzt auf MCU und PC in einem eigenen Thread` `und beeinträchtigt somit die Bot-Verhalten nicht mehr.`

`2.) Die Bot-Position (x_pos, y_pos) wird als int16 gespeichert, die` `Einheit ist weiterhin mm. Einige Verhalten und Hilfsfunktionen sollten` `hier noch angepasst werden, so dass sie nicht unnötige float-` `Berechnungen durchführen.`

`3.) Die ganze Map-Geschichte wurde stark aufgeräumt und bietet nun ein` `deutlich schlankeres (und hoffentlich einfacheres) Interface nach` `außen: Zurzeit beschränkt es sich auf: map_get_average(),` `map_get_point() und map_way_free(), siehe auch include/map.h. Bei` `map_way_free() fehlt allerdings noch eine Schutzfunktion gegen` `Zugriffskonflikte.`

`4.) Das Eintragen von Daten sollte man vollständig dem Map-Update-` `Thread überlassen, der sich einem Cache bedient. Dieser wird vom` `Verhalten scan_on_the_fly() gefüllt. Welche Sensordaten wann` `eingetragen werden, lässt sich in include/bot-logic/behaviour_scan.h` `einstellen. Neben den #defines für die Auflösung, gibt es dort` `Funktionen, mit denen sich die Update-Modi ohne Bit-Rechnerei` `komfortabel einstellen lassen (auch zur Laufzeit). Nähere Infos und` `Erklärungen finden sich in der o.a. Datei. (Natürlich ist es trotzdem` `denkbar und möglich, dass weitere Verhalten schreibend auf die Map` `zugreifen - hier muss man dann aber ein paar Regel beachten, um nicht` `in Race Conditions oder Zugriffskonflikte zu laufen)`

`5.) Auf Grund der tiefgehenden Änderungen von Map-Code und Zugriffs-` `Strategie war es leider nötig, mit der alten API zu brechen. Das` `schlägt sich vor allem in den öffentlichen Zugriffsfunktionen nieder,` `siehe 3.). Es dürften daher einige Anpassungen in Verhalten nötig` `sein, die die Map benutzen wie map_go_destination(). Sorry für die` `fehlende Kompatibilität, das Ergebnis des Umbaus bietet aber die` `Möglichkeit, auch auf dem echten ct-Bot automatisch eine` `Umgebungskarte mit guter Genauigkeit erstellen zu lassen. Ich hoffe,` `das entschädigt für die vor allem aus Performance-Gründen nötigen` `Änderungen.`

`6.) Die Funktion zum Einlesen einer Map von MMC hat noch einen Bug,` `hier ist bei größeren Karten in der Ausgabe teilweise ein Block` `verschoben (die Daten stimmen aber sonst).`

`Da sich im Code sehr viel geändert hat, wäre es sehr schön, möglichst` `viel Feedback zu bekommen, vor allem von der Map-Erstellung auf echten` `Bots. Wer also einen Bot mit MMC-Erweiterung, Lust und Zeit zum` `Ausprobiere hat, darf seine Erfahrungen, Probleme und vielleicht` `Wünsche gern hier bekanntgeben! ;-)`

    Ich hoffe, ich habe nichts vergessen.

    Viele Grüße,
    Timo

- Voriger (Datum): AW: [ct-bot] map aktiviert in neuestem CVS..., Frank Menzel
- Nächster (Datum): [ct-bot] Mapfrage, Frank Menzel
- Voriger (Thread): AW: [ct-bot] map aktiviert in neuestem CVS..., Frank Menzel
- Nächster (Thread): Re: [ct-bot] Map-Umbau, Fred Ammann
- Indizes:
  - Datum
  - Thread