Why is my robot not perfect?
I run workshops with students all the time, and one of the first activities I do, is make them get their robot to drive forward 500mm. For the younger kids it's mainly trial and error, for the older kids I get them to calculate circumference and mathematically work it out.
But I was finding that the theory wasn't quite matching up to real life. I have in the past explained that every robot is subtly different. (this also helps to stop kids running to another computer and stealing other students values)
So I sat down and worked through the math to have a look at why my students were getting what I considered fairly different numbers for the same 500mm.
(warning, basic maths ahead)
If we take the diameter of the NXT wheels as 56mm (as written on the side) we get a circumference of:
c = pi * d
c = 3.14 * 56
c = 175.84
To go 500mm, we divide 500 by the circumference
x = 500 / 175.84
x = 2.8435 rotations
x = 1024 degrees
But I was finding that some kids needed more than this. Let look and see what happens when our wheel diameter shrinks by 1mm due to either a hot days softening the rubber or a heavy robot, both conditions which will cause the rubber tyre to sag, and hence a smaller diameter. Both conditions are entirely plausable and could infact result in more than 1mm deflection.
c = pi * d
c = 3.14 * 55
c = 172.7
x = 500 / 172.7
x = 2.8952 rotations
x = 1042 degrees
So there you go, 1mm difference in the wheels results in 18 degree difference across 500mm.
The discrepancy is even more pronounced when you are trying to rotate your robot on the spot.
Just something to keep in mind :)
I may be wrong with this. Check out the comments and put in your 2 cents worth