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