Forward Error Correction and overruns at speed
It has been a long time since there was a technical question on here but...
I have been re-writing my motor driver code and noticed an odd thing. If
I set the mouse to a low acceleration (say 500mm/s/s) and set it off for
a fixed distance, I get just what I would expect. The motion profiler
tells me I have travelled the exact requested distance. It does this
partly because that is, of course, how the wheel diameter id measured.
Set the mouse off for 0.5m and adjust the counts per cell until you get
the proper distance travelled. So far so good.
Now increase the acceleration. The mouse stops a little short. Not much
but it is consistent. The motion profiler tells me the distance is
exactly right but the mouse is about 3mm short over 4 cells (720mm).
Increase the acceleration still more and the shortfall increases. At
2.5m/s/s the shortfall approaches 10mm in 720mm. This is very repeatable
and, as I decrease the acceleration again, the distance goes right once
I struggled with this for some time before speaking to Derek Hall. He
says he observes the exact same behaviour, did not find a good reason
and decided to live with it and rely on forward error correction when
So, my question is... Is this a common observation, or have we both
either overlooked something or made independent but similar mistakes
somewhere. The most obvious answer seems to be wheel slip but the
acceleration and deceleration are the same and, if there were slip, why
would I not get back any acceleration slip as decelerating overshoot?