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