|
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: Mi, 19.12.2007 15:36:15
In-reply-to:
<812F86EC9E1A96489D5E83C2AB7D6886018086E9@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
References:
<6679D1F9-3EE6-4EF2-A26B-A4EDB36758F9@xxxxxxxxxxxxxxx><812F86EC9E1A96489D5E83C2AB7D688601808685@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <8C253C0A-ED18-4326-ABF4-244949E2E23C@xxxxxxxxxxxxxxx> <812F86EC9E1A96489D5E83C2AB7D6886018086E9@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Hallo,
Am 19.12.2007 um 13:57 schrieb Menzel, Frank IT-OO4:
Hallo Timo,
also so richtig gefällt mir das mit der standardmässigen Umleitung
nicht. So habe ich nun das Problem, dass manche Notfallverhalten
bot_drive_distance im Rückwärtsgang verwenden, wenn der bot auf ein
Loch fährt. Da wurde dann der bot einfach rückwärts gefahren. Durch
die Umleitung fährt der bot nun jedoch nicht direkt rückwärts,
sondern dreht sich ja sozusagen auf dem Loch in die
Rückwärtsrichtung, was ihn aber reinfallen lässt.
hä? Wenn speed für drive_distance() negativ ist, sollte der Bot auch
mit goto_pos() rückwärts fahren, darum habe ich den Rückwärtsgang ja
eingebaut. Das hat bei mir auch funktioniert. Wenn es das nicht immer
tut, dann ist da vermutlich noch irgendwo ein Bug drin.
Kann nicht standardmäßig bot_drive_distance eingeschaltet bleiben
oder kann man via Verhalten diese Einstellung vornehmen ?
Der Sinn der Sache ist eigentlich, dass die "alten" Verhalten, nicht
mehr benutzt werden, weil die "Neuen" besser sind. Außerdem möchte man
nicht dieselbe Funktion doppelt haben, nicht zuletzt, weil der Flash-
Speicher recht klein ist. Die "Umleitung" ist dazu da, damit nicht von
heute auf morgen alles nicht mehr funktioniert, was das alte Verhalten
benutzt hat. Dafür muss sie natürlich problemlos funktionieren, falls
sie das nicht tut, lässt sie sich aber derzeit einfach per #define
wieder ausschalten und man hat den alten Stand zurück.
Ich werde da noch mal drüber nachdenken, ob es sich nicht geschickter
lösen lässt.
Bei der Umleitung dürfte auch goto_pos nur mit NOOVERRIDE zum
Verhalten umschalten, ohne macht er Mist...
Das Problem besteht aber genauso, wenn drive_distance() gerade aktiv
ist und ein Notfallverhalten dazwischen kommt, das auch
drive_distance() will.
Bei den Notfallverhalten müssen wir sowieso noch mal gut überlegen,
wie sich das eleganter lösen lässt. Selbst wenn sie das zuvor aktive
Verhalten nicht stören, macht dieses trotzdem so weiter, als wäre nix
gewesen und erzeugt i.d.R. wieder die Situation, die zum Notfall
geführt hat...
Gruß Timo
|
|