Our robot



After building a few robots the most successful design we have come up with is the following. It is driven by what is know as a differential drive system. This means that each of the main wheels is powered by its own motor. The main advantages of this system are to do with steering. By making the motors turn in opposite directions the robot will spin round on its own axis which makes it much more manuverable than a system that can only turn as it moves forwards. Differential drive also makes it very easy to know how much you are turning because it just depends on the relative speeds of the motors. One of the main problems of a system that uses a separate steering wheel is it is quite hard to accurately tell where the wheel is pointing.

As well as the differential drive there is also a system on the robot to measure the difference in speed between the two drive wheels. This uses a series of toothed wheels to combine the speeds of both wheels into a differential. Note this is unrelated to the term differential drive mentioned earlier. When both wheels are being turned at the same rate the outside of the differential will remain still. However, should there be a difference in the speeds of the wheels the outside of the differential will begin to turn. This will drive an axel through a rotation sensor and therefore provide a means by which the robot can measure its rate of turn. For more detail on the mechanism you can visit the page where from where the idea came.

You might wonder why such a system is needed given that I said earlier that the rate of turn of the robot was easy to establish from the speeds of the two motors. Well this is true and in a perfect world you could use the speed of the motors and a timer to work out exactly where you were. The trouble is in real life things are a lot more complicated. Firstly even when the robot should be going in a straight line we can't be sure that it actually is. The slight differences in the motors, variations in the surface on which it is running an other environmental conditions mean that even when we tell the motors to turn at the same speed we can't be sure that they are. A second problem is that we don't have an acurate way to time the robot. Assuming that the motors started and stopped instantaneously it would be possible to time how long the motors had been turning and then work out how far the robot had travelled and how much it had rotated but again, this assumes too many things that are fine in theroy but flawed in practice. We need a way to tell what the robot is actually doing rather than what we think it should be doing. Having feedback mechanism gives us a much better chance of finding out where the robot is than if we just relied solely on a simplistic model of how the robot moves.