|
 |
 |
 |
|
|
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: Benjamin Benz
Datum: Mi, 21.11.2007 10:35:01
In-reply-to:
<000001c82bb7$f072bd00$0200a8c0@mexpnew>
References:
<000001c82bb7$f072bd00$0200a8c0@mexpnew>
Frank Menzel schrieb:
> Hallo,
> ich habe gerade mal wieder mit der map rumgespielt und festgestellt,
> dass zwar die aktuelle Botposition immer aktualisiert wird jedoch nicht
> für ein Hindernis voraus.
>
> In behaviour_scan ist mir dabei dies aufgefallen und kann mir nicht so
> recht erklären, was das soll. Denn map_update wird nicht aufgerufen...
>
> if ((scan_on_the_fly_source & SENSOR_DISTANCE) != 0)
> map_update(x_pos, y_pos, heading, sensDistL,
> sensDistR);
>
> Zu Beginn der behaviour_Scan ist das zu finden:
> uint8 scan_on_the_fly_source = SENSOR_LOCATION /*| SENSOR_DISTANCE*/;
>
> Da stimmt doch was nicht oder ?
> Gruß, Frank Menzel
> (PS: Ich habe im Sim probiert mit dem neuesten devel-Bot.)
Hi,
Du hast genau die richtigen Stellen gefunden :-)
Du must (wenn Du die Distanzsensoren für die Map auswerten willst
folgenden Eintrag machen:
uint8 scan_on_the_fly_source = SENSOR_LOCATION | SENSOR_DISTANCE;
Grund:
Beim erstellen der Karte können wir drei verschiedene Sorten von
Information (siehe auch Map-Artikel in c't) auswerten:
a) den Standpunkt bzw. Standfläche des Bots ==> Position an der die
Karte definitiv frei ist
b) Ort eines Hindernisses errechnet aus den Daten der Distanzsensoren
c) Strecke die zwischen Bot und Hinderniss frei ist errechnet aus den
Daten der Distanzsensoren
Nun bedeutet aber insbesondere c), dass man eine ganze Reihe von Feldern
aktualisieren muss. Da der Bot wenig RAM hat muss er dazu viele Blöcke
von der MMC-Karte lesen, aktualisieren und wieder schreiben. Das kostet
Zeit. Wir haben es daher an- und abschaltbar gemacht.
Dazu kommt, dass wir das Eintragen der Standfläche schon recht weit
optimiert haben, das Verfolgen der Strahlen ist hingegen noch nicht
optimal implementiert.
MfG Benjamin Benz
--
Benjamin Benz
Heise Zeitschriften Verlag
Redaktion c't
eMail: bbe@xxxxxxxx
WWW : http://www.heise.de
Heise Zeitschriften Verlag GmbH & Co. KG
Registergericht: Amtsgericht Hannover HRA 26709
Persönlich haftende Gesellschafterin:
Heise Zeitschriften Verlag Geschäftsführung GmbH
Registergericht: Amtsgericht Hannover, HRB 60405
Geschäftsführer: Ansgar Heise, Steven P. Steinkraus, Dr. Alfons Schräder
|
|
|