c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: AW: [ct-bot] neues catch_pillar-Verhalten mit goto_pos

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