Accuracy and Mobile Robotics
Since the Technology Upgrade of the LPCR, moving from I/O board and PS/2 mouse to unified Arduino project, I am reminded of some old problems. One such problem is accuracy. You don't have any.
The LPCR defines the dimensions of the wheels, axle, and the number of encoder ticks per revolution of the wheel. You know what? Its, at best, a ball park estimate. Each wheel is 5 cm wide. The circumference of each wheel is 63.5 cm. It is 8640 encoder pulses per revolution. So each encoder tick is 0.007349537 cm. With these numbers, all we need is a pen, and we are a plotter, right?
While it seems I have all the precision I need, the robot can not, and will not, perform a number of maneuvers and return to the same spot, no matter how precise my measurements are. The reasons are obvious if you think about it: each wheel is 5 cm wide, when a rotational operation is calculated, what is the radius? The “center” line of the wheels may be 42.2 cm, but the minimal radius is about 37 cm and the maximal radius is about 47 cm. That's roughly 20% error right there.
Now, add in dirt, irregularities in the wheels (what, you think lawn mower wheels are precise?), irregularities in the surface (My basement floor has bumps and cracks), and wheel slip (wheel moves a bit but robot does not) and you'll see that precision in the control of the robot does not translate into precision on robot location.