|
 |
 |
 |
|
|
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, 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
|
|
|