heise online · c't · iX · Technology Review · Telepolis · mobil · Security · Netze · Open Source · Resale · Foto · Autos · c't-TV · Jobs · Kiosk
Zum Inhalt
c't

c't Projekte - c't-Bot und c't-Sim - Mailinglisten

c't-Bot und c't-Sim


[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, 06.05.2008 10:23:32
In-reply-to: <000201c8aee4$bd7e32c0$0200a8c0@mexpnew>
References: <000201c8aee4$bd7e32c0$0200a8c0@mexpnew>


Hallo,

Am 05.05.2008 um 21:17 schrieb Frank Menzel:
Hallo Timo,
also wenn die Dose weiter weg steht, klappt bei mir auch das jetzige
Verhalten nicht.

ja das stimmt.

Und im Vorbeidrehen soll ja auch das Objekt erkannt
werden, wodurch er in einen anderen Zweig kommt und die Drehung
abbricht. Erst dann sollte bei Stillstand des Bots das Messverhalten die
konkreten Werte liefern, also wenn sich nix mehr dreht...

Das ist schon klar, aber dann steht die Dose nicht mehr im Sichtfeld des Sensors, weil der Bot nach dem Stopp ja noch etwas weiterdreht (es gibt keine Bremse). Somit misst das Messverhalten immer an der Dose vorbei. Dreht man dann andersrum, bis die Dose wieder "gesehen" wird, hat man dasselbe Problem auf der anderen Seite der Dose... => Verhalten kommt nie dazu die Entfernung zu bestimmen.

Erkennt der
linke das Objekt, wird anschliessend bis zum rechten gedreht und das
Messverhalten gestartet. Und der Durchschnitt beider genauen Messdaten
sollte der ultimative Anfahrpunkt sein.

Ja nur bei mir scheitert es meist daran, dass der Bot nicht so anhält, dass die Dose noch von einem der Distanzsensoren erkannt wird und da hilft dann auch das beste Messen nichts mehr. Je weiter weg die Dose steht, desto kleiner ist der Bereich, in dem der Bot anhalten müsste, um sie noch zu sehen.

Theoretisch gibt es aber noch eine Möglichkeit: Man lässt den Bot drehen und merkt sich heading, sobald die Dose auftaucht. Dreht dann aber weiter an der Dose vorbei bis sie vom rechten Sensor erkannt wird. Sobald sie von diesem nicht mehr erkannt wird, merkt man sich wieder heading und bricht bot_turn() ab. Aus der Differenz der Winkel und dem Abstand der Distanzsensoren (der ist ja bekannt) kann man die Entfernung zur Dose berechnen und diesen Punkt anfahren. Dann wertet man praktisch nur aus, ob der Distanzsensor ein Hindernis sieht, welche Entfernung er genau misst, spielt keine Rolle. Ob das genau genug ist, weiß ich aber nicht, ist nur so eine Idee.


Die Durchschnittsberechnung bei den Distanzsensoren müsste aber eigentlich auch beim Erstellen der Map eher ungewollte Daten liefern, zumindest beim Drehen.

Gruß Timo