|
 |
 |
 |
|
|
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: Di, 27.05.2008 12:12:32
In-reply-to:
<000001c8bf6b$d5ef8830$0200a8c0@mexpnew>
References:
<000001c8bf6b$d5ef8830$0200a8c0@mexpnew>
Hallo,
Am 26.05.2008 um 22:05 schrieb Frank Menzel:
Hallo Timo,
habe jetzt noch mal catch_pillar getestet und dabei DISTSENS_AVERAGE
eingeschaltet. Die Version 3 hatte hierbei recht gut funktioniert, ist
jedoch leider in einem Grossteil der Fälle direkt vor dem Objekt
stehen
geblieben. Wäre er etwas weiter gegangen, so hätte er das Objekt
gecatcht.
wahrscheinlich stimmt die berechnete Entfernung nicht so ganz, weil
durch DISTSENS_AVERAGE das Objekt erst später registriert wird. Die
Distanzsensoren messen ja eh nur recht selten und wenn man dann noch
drei alte Werte mit einrechnet, wird das halt sehr ungenau (für die
Erkennung von Objekten beim Drehen).
Stimmen die Werte der Distanzsensoren ohne DISTSENS_AVERAGE denn bei
dir?
Vielleicht hilft es auch, das Kalibrierverhalten noch mal durchlaufen
zu lassen.
Hier ist mir aufgefallen, dass auch Wände als einzufangende Objekte
gelten, wenn er sich zu dieser hingedreht hatte. Und erkennt er, dass
das Objekt nicht plausibel ist, dreht er sich nicht weiter, um die
Volldrehung zu beenden.
Ja das habe ich da bisher auch noch gar nicht eingebaut, weil ich
erstmal das Objekt unter Idealbedingungen vernünftig erkennen wollte.
Die Wanderkennung lässt sich aber ja leicht aus Version zwei übernehmen.
Genau dies ist aber so in der Version 2
angedacht, was hier wiederum der Vorteil ist. Diese fängt jedoch das
Objekt kaum ein (da habe ich in meiner ursprünglich eingereichten
Patchversion noch andere Erinnerungen, jedoch jetzt nicht als
Vergleich
verfügbar). Hier ist der Effekt, dass er bei Erkennen des Objektes mit
dem linken Sensor (blau leuchtet) kurz anhält und dann weiterdreht.
Auch wenn rechts blau leuchtet, so dreht er einfach weiter ohne es mit
rechts zu erkennen.
Bei mir hat er da immer zu spät angehalten (wenn das Objekt weiter als
15 cm entfernt ist) und es dann natürlich nicht mehr gesehen, als er
die Entfernung messen wollte. Ich glaube dann dreht er weiter, bis
links erneut etwas gesehen wird (erste Messung war halt ungültig), das
passiert aber natürlich nie mehr.
Was man noch probieren könnte wäre, in der Abbruchfunktion für
bot_turn() sofort mit voller Kraft in die Gegenrichtung drehen, um
möglichst schnell zu bremsen. Ob das aber wirklich klappt, dass der
Bot noch vor dem Objekt zum Stehen kommt, weiß ich nicht.
Gruß Timo
|
|
|