c't

c't-Projekte - Mailinglisten


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

AW: [ct-bot] neues Pfadplanungs-Verhalten nach der erstellten/ onlineerstellten Karte

Absender: Frank Menzel
Datum: Mi, 21.02.2007 20:19:56
In-reply-to: <D21264FB-C9B9-44C0-BE4B-FCE3DDBB153E@xxxxxxxxxxxxxxx>


Hallo Allerseits,
ich muß mich revidieren, das Verhalten läuft doch auf dem echten bot !
Da hatte ich letztens wohl zu viel auskommentiert:-( Also das Verhalten
des bots geht dahin, dass er zu seinem definierten Zielpunkt (oder eben
Ausgangspunkt) fahren will. Nur konnte ich meine Tests nicht ausweiten,
ich muß erst eine geeignete Testumgebung dafür schaffen. Aufgefallen ist
mir nur auf die Schnelle, dass er für den echten zu schnell fahren will
und dass die links/ rechts Kommandos nicht schnell genug ausgeführt
werden, wodurch er zu viel Raum beansprucht. Ich habe sehr viel
auskommentieren müssen vom Code, damit er die 32K Grenze nicht sprengt
und ist nun knapp davor. Doch wie alles verkleinern ? Gibt's vielleicht
eine Code-Optimierungsstufe auf höherem Level als jetzt ? Oder wie
könnte man allgemein Code, wie unten angesprochen, auf eine
Speicherkarte auslagern-würde das überhaupt gehen ? In den Zusammenhang
die Frage: Im Zuge eines anderen Projektes bin ich auf einen
SMD-Schaltkreis Atmel Data Flash gestoßen. Wieso wurde bei unserem bot
eigentlich eine Speicherkarte verwendet (mit den Problemen der diversen
verschiedenen Speicherkarten), hätte es ein solcher IC nicht besser
getan ? 
Es ist übrigens nur eine echte verkette Liste, die logisch aber zwei
beherbergt. Und für MCU-Übersetzung muß die u.a. Zeile richtig heißen (s
anstatt x): node_nextdest==NULL.

Gruß, Frank Menzel

-----Ursprüngliche Nachricht-----
Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
[mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo
Sandmann
Gesendet: Sonntag, 18. Februar 2007 02:39
An: Entwicklung rund um den c't-bot
Betreff: Re: [ct-bot] neues Pfadplanungs-Verhalten nach der erstellten/
onlineerstellten Karte


Am 09.02.2007 um 22:11 schrieb Frank Menzel:

> Hallo allerseits,
> ich habe ein Verhalten erstellt, welches nur auf der erstellten Karte
> operiert. Dieses Verhalten läßt den bot zu einer bestimmten  
> Zielposition
> innerhalb der Map gehen unter Umgehung der vorhandenen Hindernisse.  
> Zum
> Startzeitpunkt des Verhaltens wird der Weg bis zum Ziel laut der  
> map und
> der bisher bekannten Hindernisse geplant und die so gefundenen
> Map-Punktkoordinaten, welche dynamisch im Speicher angelegt werden,  
> bis
> zum Erreichen des Ziels angefahren.
> ...

Hallo,

ich habe mir das gerade mal kurz angeschaut, wirklich sehr  
interessant das Verhalten! :-)
Warum es auf dem realen Bot (noch) nicht läuft, kann ich so genau  
auch nicht sagen, dafür muss man sich wohl zunächst etwas  
ausführlicher mit dem Code befassen. Was mir nur bisher so auffiel:  
In behaviour_map_go_destination.c in Zeile 288 muss wohl das "&&  
node_nextdext==NULL" auskommentiert werden?
Außerdem ist die ganze Geschichte mit zwei verketteten Listen sicher  
sehr speicherintensiv, auch das malloc() ist auf dem realen Bot nicht  
so ganz ohne, die einzeln angeforderten Speicherblöcke muss malloc  
intern alle irgendwie verwalten, das hat relativ viel Overhead. Ich  
könnte mir vorstellen, dass da einfach der Speicher zu knapp wird.  
Vielleicht könnte man aber geschickt bestimmte Teile auf eine MMC  
auslagern. Ich habe auch noch nicht so ganz durchschaut, ob und wenn  
ja, an welchen Stellen in der Liste gesucht wird, das könnte auf dem  
realen Bot dann ziemlich viel Zeit kosten, vielleicht macht es Sinn,  
die Daten in einer Baumstruktur abzulegen.
Es wäre schon toll, wenn man das Verhalten auch auf dem realen Bot  
zum Laufen bekäme.

Gruß Timo


_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler