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 Map

Absender: Frank Menzel
Datum: Mi, 02.05.2007 21:26:07
In-reply-to: <4638B96E.4020207@xxxxxxxx>


Hallo Herr Benz,
in meiner Entwicklungszeit der Verhalten hat es mich immer viel Zeit und
Nerven gekostet, damit den immer währenden CVS-Updates zu folgen und
alle Teile wieder zusammensuchen zu müssen. Da hatte ich auch in der
map.c/ h was drin, was wie unten geschrieben, auch dort reingehört. Aber
wenn alles an zentraler Stelle ist, dann einfach bloß Dateien kopieren
und noch 2 andere Stellen anpassen und schon tut's wieder. Aber die
Frage ist ja, wenn diese Routinen in der map drin sind aber nur von
meinem Verhalten genutzt werden, ob sie da wirklcih reingehören und
nicht wertvollen Speicherplatz schlucken. Da hätte ich auch noch die
Winkelberechnungs-Routine zum Drehen als Vorschlag, welche ich aus der
bot_gotoxy verwende und eigentlich auch allgemeingültig ist.
Clear_map ist eigentlich eine Spezialfunktion, welche meine gesetzten
Hinderniswahrscheinlichkeiten wieder löscht und die ganzen
Freiwahrscheinlichkeiten auf gleichen Level 0 bringt. Da könnte man sich
generell überlegen, per Define  die Freiaktualisierung abzuschalten und
nur die Bot-Standfläche zu aktualisieren. Das Problem habe ich ja durch
die Begrenzung der maximalen Freiwahrscheinlichkeit umgangen.
bot_set_border_in_map_behaviour ist das Verhalten zur Locherkennung und
eintragen in die Map mit kurzem Rückwärtsfahren via bot_drive_distance.
Wie in den Kommentaren im Code dazu auch geschrieben, könnte dieses auch
zum generellen allgemeingültigen Verhalten erklärt werden. Hatte ich
auch schon mal im on_the_fly drin... bot_check_hang_on_behaviour könnte
man fast genauso verallgemeinern. Get_dist wird bei mir nur zum
Berechnen des anziehenden Potenzials benutzt. Wenn's denn allgemein
sinnvoll ist... map_in_dest aber wohl eher nicht, zumindest fällt mir da
keine weitere sinnvolle Verwendung ein, ob sich ein Punkt innerhalb
eines bestimmten Umkreises befindet.
Ach so, get map_pos_dist laut Kommentar schon beschrieben:
/*! Routine ermittelt ab Hoehe xp yp in Blickrichtung dist mm voraus die
Mapkoordinaten XY; verwendet
 *  zur Map-Lochmarkierung in Hoehe Abgrundsensoren; kann aber
allgemeingueltig verwendet werden um 
 *  Mapkoordinaten zu erhalten in einem bestimmten Abstand voraus
 * @param xp yp Koord vom Mittelpunkt des bots verschoben
 * @param h Blickrichtung
 * @param X Y berechnete Mapkoordinate im Abstand dist ab Hoehe
Abstandssensoren
 * @param dist Abstand voraus in mm
 */
Gruß, Frank Menzel

-----Ursprüngliche Nachricht-----
Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
[mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von
Benjamin Benz
Gesendet: Mittwoch, 2. Mai 2007 18:17
An: Entwicklung rund um den c't-bot
Betreff: Re: [ct-bot] neues Pfadplanungs-Verhalten nach der Map

Hi,

noch ein paar Anmerkungen, die mir entgangen sind:

* Ich denke Funktionen wie value_in_circle() gehören nach map.c/map.h.
Die sind allgemein gültig
* was tut get_mappos_dist() und gehört die nicht auch eher in
map.c/map.h?
* Die Routinen update_map_sensor_hole() und update_map_hole() gehört
doch wohl auch eher zum Map-Verhalten und sollte auch dort permanent
verwendet werden ==> bot_scan_onthefly_behaviour()), oder?
* clear_map() gehört die nicht auch eher in map.c/map.h?
* was genau tut bot_set_border_in_map_behaviour() und soltle das nicht
eher in das bot_scan_onthefly_behaviour() mit rein?
* sollte man bot_check_hang_on_behaviour() nicht auch verallgemeinern?
* sollte man get_dist() nicht auch verallgemeinern?
* sollte man map_in_dest nicht auch verallgemeinern?

So, das hört sich erstmal nach viel gemecker an, aber es ist das
Gegenteil. Ich denke, dass da eine ganze Reihe von Funktionen drin ist,
die man unbedingt allen Code-teilen zugänglich machen sollte. Außerdem
würde das die Datei behaviour_map_go_destination.c deutlich
übersichtlicher machen und den Code Wartungsfreundlicher halten.

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

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