Position Controller
The most bare bones dead reckoning robots can get by
with no sensors at all. This, however, usually entails a long
period of trial and error because a sensor-less robot has no
way of correcting itself and no way to maintain consistency
in the face of less than perfectly consistent track conditions.
The position controller, however, even when used as a
simple encoder, can address many of those problems.
Because the encoder can accurately calculate distance, and
because that calculation can be done independent of the
wheel speed, the robot’s trek through the
maze will not be unspeakably
compromised when the bot begins to
slow down because of low batteries or if
it hits a rough patch.
After measuring the distances in our
maze and inputting them into our dead
reckoning program (thank goodness for
copy and paste), we were ready to test
out the bot in our minefield of hot button
issues. The program didn’t work perfectly
the first time, and the Scribbler overshot
its first turn and ran into a book on
contracts. It was back to the code for us!
The trial and error of a dead
reckoning program also presents a
fantastic opportunity for young roboticists
to learn the value of debugging. By
announcing on a debugging screen how
far it has gone, what maneuvers it has
completed, or what speed it is travelling,
users can deduce what has gone wrong
and learn the invaluable technique of
isolating the problem variable and fine-tuning it to solve a problem. For us, the
problem was the distance, and after a
couple of changes it was no longer
overshooting the turn.
Even though our distances were
getting better, another problem appeared.
The Scribbler began to drift to the left. We
checked to see if something had gone awry
with our encoder mount, but it wasn’t
interfering with the movement of the wheel.
We deduced that the motors needed to
be recalibrated. And while this might sound
like a bit of an intimidating problem for
novice tinkerers, the Scribbler documentation
provides a fine explanation and step-by-step
instructions for correcting the problem. A
bit more trial and error found the correct
calibration, and we quickly finished up the
fine-tuning of the dead reckoning
commands after that. In the end, our
dead reckoning Scribbler was able to
complete our maze in about 20 seconds.
Even with a successful program, dead
reckoning still has advantages and
disadvantages. We’d like to give a tip of the hat to dead
reckoning’s ease and efficiency to program, but we give a
wag of the finger to its inability to adapt to unexpected
obstacles. If a wayward cat found its way onto the course,
the run did not end well for either party.
DEAD RECKONING CAN HAVE A BIT OF TROUBLE WITH UNEXPECTED OBSTACLES.
CHARTING THE DEAD RECKONING PATH.
SERVO 07.2010 75