|
 |
 |
 |
|
|
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: Timo Sandmann
Datum: So, 18.02.2007 02:38:32
In-reply-to:
<000001c74c8e$ecf16ae0$fe78a8c0@mexpnew>
References:
<000001c74c8e$ecf16ae0$fe78a8c0@mexpnew>
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
|
|
|