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
Notice that this points out some other issues - such as the fact that a start or stop induces forces that may not only make the wheel slip, but can compress or decompress it slightly as well, changing that effective radius. Often for accurate motion, hard tires (not compressible ones) are the best best, for exactly this reason.
I doubt temperature makes much of a difference, either, since the kids are all presumably working with the same ambient temperature. But, as Brian points out, slippage will indeed be a factor, which depends on the acceleration of the motors at start/stop and the surface the robot is driving on. I suspect that you would find that, for equal accelerations, heavier robots are more accurate than light ones since the static friction between the tires and the surface will be higher.
We should try to have more of these types of posts and discussions.
For the science-minded, it certainly seems material. However, for the non-science minded among us, it is "close enough." After all, as we are constantly reminded, this is a $250 toy, not a precision instrument. So, you get 1,042 degrees instead of 1,024. My course of action is to adjust the tools to take this variable into account, so that if we have to change robots, the difference will have no effect.
This is not a real "science-y" approach, I admit, but it works. And when the FLL judges are scoring the table, I'm more concerned with what works, than trying to explain to my squirrelly little robochickens (i.e., team) why the wheels don't always work the samw.
Nice post, though. I had never considered the tire variables. Thank you for explaining this in a way that even I can understand it.
The only comment that I would take issue with is the statement that this discrepency is even more pronounced when you are trying to rotate your robot on the spot. It is unlikely that you are turning one wheel more than 500 mm to rotate the robot.
I think the bigger effect results from the tread pattern of an NXT tire. Notice how the treads alternate right and left of center. Depending on what part of your tire is in contact with the floor when you rotate your robot, the pivot point of the robot might be the center of the tire or it might be right or left of center. Depending on which it is, your turning radius might be smaller or larger than it was the last time, requiring the other wheel to move fewer or more degrees to move the robot to the same place. (Same circumference of a circle logic).
Tire manaufacturers use the term "rolling radius" when discussing the relationship between wheel rotation and travel distance. The rolling radius is the tread length divided by 2 pi. They hold no allusions that their products are circular. They veiw a tire as a tread which is supported by the sidewalls. The shape of the tread is unimportant, the length is all that counts.
When a tire makes one full rotation the entire tread has come in contact with the ground. Unless the tire is slipping the wheel must have moved forward the same distance.
I learned this strange fact while installing an aircraft tire test machine. I was running a B-52 tire throught a simulated landing. During the landing event the distance between the wheel axle and the ground dropped to less than 25% of the measured radius of the tire, yet the ratio of wheel rotation speed to ground speed was unchanged.
I now think of tires as being more like belts than circles.
Dean, I understand what you are saying about rolling radius, but I was wondering, given the shape of the NXT tyres, in that they are balloon shaped and not flat contact witht he ground like the old RCX tyres, would it be possible the compression of the rubber (in the direction of travel) would allow the effective radius to be shortened.
Brian, Robert and others, Am I just seeing wheel slippage? We run on a very low power and can't observer any slippage between the tyre and the ground. Could there be slippage between the tyre and the hub?
Anonymous, I agree with the fact that it is just a just a toy, but when working with students, I like to have an answer when asked "why is mine different to theirs?"
It's unfortunate but the education system these days seems to condition kids to believe there is only one correct answer. They are constantly preoccupied with getting the 'right' answer, and if the group before them needed 1024 to get it 'right', then why when they put in 1024 is it not right?
experiment on it's way :)
Dang. And I call myself a physicist :|
Damien, I'm not sure exactly what you're seeing - slippage, flattening of the tire resulting in a different point of contact (which could indeed explain why it would effect turning perhaps more than straight line travel), etc. Sounds like some detailed experimentation is in order. I also understand your rant - but there is a good lesson here as well. There is almost always, *always*, something that you can't account for... yet if you want your robot to work, you need to try. You need to constantly watch for the unexpected, and when you see it, dig into it, investigate it... don't just sweep it under the rug and ignore it as an "irrelevant detail" (something that happens far too often in many intro science classes).
Teachers, if you have a question or an experiment or puzzle you need some help with, post a question on our forum or email me details and I'll see about getting some of our contribs to help out.
And Dean - Thanx for that explanation. I'm with Brian on this. Now that you explain it that it, it does make sense.
I think I have my topic for todays class. I'll see what my kids think :)
Slippage is a killer in odometry, and is the reason that when accurate odometry information is needed it is not taken from the driven wheels. Idler wheels attached directly to encoders are used instead. The idler wheels are usually metal disks with a thin layer of rubber. This design is used because it is very difficult to manufacture balloon tires to the desired degree of accuracy.
I remember an FLL team from a few years ago that used the light sensor to calibrate their rotation sensor. They drove the robot between two lines on the table and calculated the rolling radius of the tire. This value was then used to convert travel distances into rotation sensor counts. The team could change wheels, run their calibration program, and then run all their existing programs without having to use the programming software.
I thought that was pretty cool.