|
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: Frank Menzel
Datum: So, 31.08.2008 21:03:26
In-reply-to:
<3A16F342-377B-4904-A4C6-7FCF6A8B28FB@xxxxxxxxxxxxxxx>
Hallo Timo,
also die Benutzung der Routine selbst habe ich schon verstanden und dass
sie bei map_wa_free Sinn bringt. Aber wie Du beschreibst
" alle 20 cm mit map_get_ratio() nachfragt"
gibt es ja dieses Ereignis "Bin jetzt 20cm" seit vorhin gefahren gar
nicht und müsste selbst berechnet werden in dem Verhalten.
Und dieses gibt es ja auch nicht:
" und von letzter Abfrage bis 20 cm weiter"
Denn der Routine kann man ja nur die Koordinaten selbst, neben der
Breite und den Werten, übergeben. Wie wäre es mit dem Parameter "x cm
voraus gucken in Richtung des 2. Punktes" ? Also nicht direkt immer den
gesamten Korridor bis zum 2. Punkt sondern eben nur die 20cm voraus.
Dir ist sicherlich der Timer von 700ms ein Dorn im Auge, deswegen wohl
der Vorschlag. Ja man könnte sicherlich aller gefahrenen 20cm nur nach
nebenan nachsehen aber wie oben erwähnt habe ich nicht dieses Ereignis
"bin jetzt 20cm" gefahren. Gut man könnte das Verhalten für 20cm Fahren
aufrufen, dann nebenan die Bahnen checken und wieder 20cm fahren,
dadurch wird aber wieder alles sequentiell. Ich fand eben die parallelen
Observer so schön...
Mir ist da noch gerade beim Übersetzen eine Warnung in der map.c ins
Auge gefallen:
../map.c: In function `map_read':
../map.c:1292: warning: long unsigned int format, size_t arg (arg 2)
../map.c:1292: warning: long unsigned int format, unsigned int arg (arg
3)
An der Stelle:
printf("Konnte nur %lu Bytes lesen, Karte ist aber %lu Bytes gross!\n",
cnt, (size_t) ((MAP_SIZE * MAP_RESOLUTION) *
(MAP_SIZE* MAP_RESOLUTION)));
Gruß, Frank
-----Ursprüngliche Nachricht-----
Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
[mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo
Sandmann
Gesendet: Sonntag, 31. August 2008 20:12
An: Entwicklung rund um den c't-bot
Betreff: Re: AW: [ct-bot] MAP-Verhalten nur fuer Sim ? -> Patch
fuerVerhalten
Hallo Frank,
Am 31.08.2008 um 19:44 schrieb Frank Menzel:
> Hallo Timo,
> habe hin- und herüberlegt, bin aber auf keine Lösung gekommen, wie Du
> das meinst bzw. wie sich damit die Obserververhalten vereinfachen
> sollten.
> " neue Map-Funktion map_get_ratio() am
> Interessantesten, weil sie das Observer-Verhalten deutlich
> vereinfachen müsste"
du sagst map_get_ratio() welcher Bereich dich interessiert und welche
Map-Werte die Felder darin haben sollten. Wenn also das Observer-
Verhalten alle 20 cm mit map_get_ratio() nachfragt, ob in dem Bereich
neben dem Bot und von letzter Abfrage bis 20 cm weiter voraus alle
Felder zwischen 10 und 127 liegen und map_get_ratio() antwortet, dass
das für 80% der Felder zutrifft, dann kannst du wohl davon ausgehen,
dass die Bahn nebendran schon befahren wurde. Geht natürlich auch
andersherum, um zu erfahren, wie viel Hindernisse dort bekannt sind,
oder wie viel noch gar nicht erkundet ist (Mapwert = 0) usw.
map_way_free() jetzt implementiert ist, das benutzt map_get_ratio()
nämlich genau so.
Gruß Timo
_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler
|
|