Absender: Fred Ammann
Datum: So, 04.05.2008 22:25:38
Hallo mein ctBot linked nun nicht mehr richtig: .... ... .../bot-logic/behaviour_turn_test.o ./bot-logic/bot-logik.o -lm ./ct-Bot.o: In function `main': ../ct-Bot.c:314: undefined reference to `map_update_stack' ../ct-Bot.c:314: undefined reference to `map_update_stack' make: *** [ct-Bot.elf] Error 1 make: Target `all' not remade because of errors. Build complete for project ct-Bot Habt ihr eine Idee welchen Switch ich zurück setzten muss? Vielen Dank Fredi ----- Original Message ---- From: Timo Sandmann <Mail@xxxxxxxxxxxxxxx> To: Entwicklung rund Mailingliste c't-Bot <ct-bot-entwickler@xxxxxxxxxxxxxxxxx> Sent: Sunday, April 20, 2008 11:04:50 PM Subject: [ct-bot] Map-Umbau 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 _______________________________________________ ct-bot-entwickler Mailingliste ct-bot-entwickler@xxxxxxxxxxxxxxxxx http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ