Am 08.11.2006 20:11 Uhr schrieb "Achim Pankalla":
hallo,
mir ist ein merkwuerdiges verhalten beim realen ct-bot mit Regler
(SPEED_CONTROL_AVAILABLE) aufgefallen. ich denke, das das bei jeden bot
auftreten muesste und waere dankbar, wenns mal jemand ausprobiert.
es ist bei mir ganz einfach zu reproduzieren. man fährt einfach mit der
taste 2 der fb ein stueck vor und laesst ihn dann auf der stelle mit zb.
4 oder 9 drehen. beim ersten drehen, wird der bot dann um ein rad
herumfahren und nicht mit beiden raedern auf der stelle drehen. ersten
beim zweiten mal drehen macht er dies.
anders rum. dreht man erst den bot und faehrt dann vorwaerts, so faehrt
der bot einen leichten bogen und beim zweiten mal gerade aus.
ich habe etwas im code gewurstelt und denke es liegt an den variablen,
die sich die letzten encoder impulse merken. ich habe ein patch
beigefuegt, mit dem dies "fehl"-verhalten korregiert ist. es stellt für
mich persoenlich keine optimale loesung da, zeigt aber wirkung. rein
subjektiv ist das fahrverhalten nun genauer und mein getestetes
solve_maze verhalten arbeitet nun zuverlaessiger.
allen weiterhin viel spass
achim pankalla
Hallo,
ja das ist richtig, der Fall wird im derzeitigen Code nicht abgedeckt.
Die Motorregelung erfährt zurzeit eine komplette Überarbeitung, bei der
neuen Version wird der Fall gar nicht mehr entstehen können.
Für die aktuelle Version korrigiert der Patch den Fehler, wenn ich das
richtig sehe, ist er aber gegen eine alte CVS-Version erstellt.
Ich glaube, es müsste auch schon ausreichen, wenn man einfach im
if(encoderTargetRateL == 0)-Zweig die Encoderstände speichert und eventuell
speed_control() am Ende von motor_set() zusätzlich aufruft.
Viele Grüße,
Timo Sandmann
_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler