heise online · c't · iX · Technology Review · Telepolis · mobil · Security · Netze · Open Source · Resale · Foto · Autos · c't-TV · Jobs · Kiosk
Zum Inhalt
c't

c't Projekte - c't-Bot und c't-Sim - Mailinglisten

c't-Bot und c't-Sim


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

Re: [ct-bot] Map-Umbau

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