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: 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