Given that a robot is mobile, it seems reasonable for it to know where it is. In practice, this is not as simple as it sounds. There are basic methods of navigation, such as line following, wall following, and homing on a light source. These need the fewest sensors and are the simplest to program. They are are fine for most purposes.
Some operations require the robot to move around in 'free space', without reference to lines, walls or beacons. It might be thought that switching on the drive motors for precisely controlled periods would give good positional information. This does not work in practice. For one thing, the two drive motors do not run at exactly the same speed, even if they are of the same type. With both motors running forward, the robot moves forward but veers slightly to the left or right. When turning, it is not possible to control the turning angle precisely. Errors of this kind are cumulative and it is not long before the robot completely loses its bearings.
We can counteract the differences between motors in several ways. One way is to use a tachometer to count the revolutions and part-revolutions of each drive wheel. Another way is to use stepper motors instead of ordinary DC motors. However, even these may not entirely solve the problem. Depending on the nature of the surface and of the tyres, there is inevitably a small amount of slipping. This occurs most when starting, stopping or turning, and is cumulative. There is little to be done about this.
The best solution is for the robot repeatedly to take its bearings. The advantage is that errors are not cumulative. This disadvantages are that three light beacons are needed, which make setting up dfficult. Also, the maths is complicated.
Stepper motors 98 Tachometer 87
One novel solution is to use a magnetic compass. Inexpensive compasses with electronic output are available from some robotics suppliers.
Was this article helpful?