c't

c't-Projekte - Mailinglisten


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

AW: [ct-bot] bot_drive_area() [war: MAP-Verhalten nur fuer Sim ? ->Patch fuerVerhalten]

Absender: Frank Menzel
Datum: Di, 02.09.2008 20:11:53
In-reply-to: <7EBC8165-0F0D-4B4D-85F6-FFEE4532E6CA@xxxxxxxxxxxxxxx>


Hallo Timo,
habe gerade mal neu ausgecheckt, wie schon die letzten Tage auch immer
wieder, nur dass heute mein Verhalten gar nicht mehr zum laufen zu
bewegen ist. Es wird das Verhalten aufgerufen und direkt vor
goto_obstacle zu Beginn habe ich eine Debugausgabe, welche auch
ausgegeben wird, nur der bot rührt sich nicht vom Fleck. Er kommt auch
in obstacle selbst rein, zu sehen an den Debugausgaben nach Einschalten
des dortigen Defines, nur passiert einfach nichts. Habe jetzt schon 1
Stunde gesucht und leider nichts gefunden...

Gruß, Frank 

-----Ursprüngliche Nachricht-----
Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
[mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo
Sandmann
Gesendet: Dienstag, 2. September 2008 16:28
An: Entwicklung rund um den c't-bot
Betreff: Re: [ct-bot] bot_drive_area() [war: MAP-Verhalten nur fuer Sim
? ->Patch fuerVerhalten]

Hallo,

ich habe noch mal ein paar kleine Verbesserungen für bot_drive_area()  
auf dem echten Bot eingebaut.
Dabei sind mir ein paar Dinge aufgefallen:

- Kann es sein, dass in bot_drive_area() irgendwo Fahrverhalten wie  
bot_turn() & Co. mit bot_cancel_behaviour() abgewürgt werden und dass  
dann das nächste Fahrverhalten gestartet wird, ohne den Nachlauf der  
Räder abzuwarten? Das mag bot_turn() z.B. nicht.

- Manchmal beendet sich das Verhalten, aber wenn ich es dann (ohne den  
Bot zu bewegen) mit Taste 8 wieder starte, läuft es weiter. Warum hat  
es sich dann beendet?

- Auf kurzen Bahnen (< 60 cm) funktioniert das Ganze auch auf dem  
echten Bot gut, auf Längeren wird das Ende der Bahn irgendwie zu früh  
erkannt, ich weiß aber nicht, ob da vielleicht auch eine Fehlmessung  
der Distanzsensoren vorliegt (werde ich noch mal überprüfen).

- Die Observer-Verhalten schlagen jetzt nur noch dann zu, wenn die Map  
frei ist, allerdings dauern die Map-Auswertungen manchmal relativ  
lange (> 20 ms; Debug-Schalter gibt jetzt die Zeit aus). Hier wäre es  
wohl besser, das nicht in einem Stück zu machen, weil insbesondere die  
Fahrverhalten hierbei ungenauer werden. Da überlege ich mir mal was.

- Das bot_cancel_behaviour() muss man selbst abbrechen, wenn es nicht  
zugeschlagen hat, das eventuell abzubrechende Verhalten aber (normal)  
beendet wurde, sonst läuft der Test über die Abbruchfunktion ewig  
weiter und beendet dieses Verhalten, falls es inzwischen bereits  
neugestartet wurde.
Ich habe das Beenden erstmal bei jedem Aufruf von  
bot_drive_area_behaviour() eingebaut (das Verhalten wird ja erst dann  
wieder aktiv, wenn das Unterverhalten beendet wurde), besser wäre  
aber, das (nur) genau dann zu machen, wenn der nächste Zustand dran  
ist, dessen Vorgänger cancel aktiviert hatte (ich habe nicht so ganz  
durchschaut, wann das immer der Fall ist).

Insgesamt ist das Fahren nach Map auf dem echten Bot aber schon sehr  
cool :-)

Gruß Timo


_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler