Newbie - Problem making square with Boe-Bot
I'm a newbie trying to understand the workings of all this and one small thing has me stumped: I can't understand why my boe bot's left turns are overshooting where they should go. I'll explain the best I can:
If I make the bot go L+R+R it will go left past 90 (about 120ish degrees) degrees, then back to where it started (so roughly two 120 degree movements - that i follow), but the next right turn will be at a perfect 90 degrees. . . How is this possible? If the right turn from static is the same pulses as the right to recover from the left turn. Then shouldn't the first right turn bring it back short of the point it started at before the left turn?
The problems started when I tried to make a square. It's all over the place. I have tested the bot and it drives a near perfect straight line. I just can't figure out why the left turns are wider than the right. Yet when I go L-R-then right again, the second right is at 90 degrees when the previous turns were at say 120 degrees.
Sorry if i sound like a total idiot but I'm new to all this and it has me stumped.
If I make the bot go L+R+R it will go left past 90 (about 120ish degrees) degrees, then back to where it started (so roughly two 120 degree movements - that i follow), but the next right turn will be at a perfect 90 degrees. . . How is this possible? If the right turn from static is the same pulses as the right to recover from the left turn. Then shouldn't the first right turn bring it back short of the point it started at before the left turn?
The problems started when I tried to make a square. It's all over the place. I have tested the bot and it drives a near perfect straight line. I just can't figure out why the left turns are wider than the right. Yet when I go L-R-then right again, the second right is at 90 degrees when the previous turns were at say 120 degrees.
Sorry if i sound like a total idiot but I'm new to all this and it has me stumped.
Comments
In general, servo motors are not ideal. There's variation from servo to servo in terms of their speed for a given control pulse width. There also may be something about your program that is the cause of this behavior. Without some kind of position feedback, it's just not reliable enough to rely on servo motors for "dead reckoning", even over relatively short distances. That's why there are compasses and wheel position encoders for the BoeBot ... to provide position feedback for direction and distance travelled. Even with the wheel encoders, there can be slippage of the wheel on the floor.
http://www.parallax.com/Store/Microcontrollers/BASICStampModules/tabid/134/txtSearch/encoder/List/1/ProductID/80/Default.aspx?SortField=ProductName,ProductName
Carl