|
 |
 |
 |
|
|
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: Mi, 16.04.2008 20:12:50
In-reply-to:
<000001c89fb1$b06c1440$0200a8c0@mexpnew>
References:
<000001c89fb1$b06c1440$0200a8c0@mexpnew>
Hallo Frank,
Am 16.04.2008 um 13:04 schrieb Frank Menzel:
Hallo,
anbei mal eine Catch_Pillar-Version, welche im Endeffekt das
goto_pos-Verhalten zum Einfangen verwendet.
das hört sich schon mal gut an.
Hierfür gibt es ein paar neue Routinen, welche z.B. die Koordinate des
gesehenen Objektes ermitteln je nach Sensorentfernung und eine kleine
Erweiterung für bot_turn, um dieses abzubrechen.
Folgende Logik wird verwendet.
-Bot_turn wird wird in 4 Schritten a 90 Grad aufgerufen (bei sofort
360
Grad dreht er zu schnell und Objekt wird nicht erkannt)
Vielleicht sollten wir noch eine Botenfunktion bot_turn_speed(degrees,
speed) hinzufügen, die bot_turn() aufruft, dass dann mit der
übergebenen Geschwindigkeit dreht?
-Bot_turn wird abgebrochen falls Objekt gesehen wird (Abbruchfunktion)
Warum nicht bot_turn() abbrechen mit dem Cancel-Verhalten? Dann
braucht man dieselbe Funktionalität nicht redundant in mehrere
Verhalten einbauen.
-Measure-Verhalten bestimmt genauen Abstand
-Koordinate xy wird berechnet je nach Abstand
Für die Koordinatenberechnung benutzt du ja u.a. die neue Funktion
calc_points_in_distance(), die recht ähnlich zur Funktion
map_get_posx_dist() aus map.c ist. Die Funktion wird aber ziemlich
groß und lohnt sich daher IMHO nicht.
Ich würde den Patch aus zwei Gründen gern ein wenig zurückstellen:
Erstens ist der Map-Code gerade im Umbau, evtl. ergibt sich dadurch
eine allgemeine Funktion, die dann von beiden Codeteilen genutzt
werden kann und zweitens sollen die Positionsdaten von float auf int16
umgestellt werden.
-hat linker Sensor zuerst Objekt erkannt, wird etwas weiter gedreht
bis
rechts ebenfalls Objekt erkennt
-Mittelwert beider Koordinaten wird mit goto_pos angefahren
Das wars… Bei mir klappt die Sache recht gut.
Super. Wie gesagt, das soll nicht in Vergessenheit geraten, sondern
nur etwas warten, um doppelte Arbeit zu vermeiden.
Gruß Timo
|
|
|