I was working on a maze solver last night and came up with an equation that will let me choose the radius of the circle I want the bot to turn on for a differentially steered robot. I'm sure someone else has thought of this, but I haven't seen it on the web so I thought I'd post it...

X=1-(1/((r/b)+.5)) Where: r=radius of the turn at the center of the vehicle b=distance between the wheels X=ratio of speed of inside wheel to outside wheel

Therefore the radius of the turn at the wheels will be r+(b/2) and r-(b/2)

As long as X stays constant, the bot should stay on the same circle, albeit traveling at different speeds. To do a full speed turn, set the outside wheel at 100% and the inside wheel at X%. As an example for a maze with 11" wide corridors(r=11/2=5.5"), and a vehicle with b=4.225", X will be .445. So the outside wheel travels at 100% and the inside wheel travels at 44.5%.

I haven't tested this yet on a working bot, so acceleration effects may make it worthless if the motors aren't powerful enough to change speed rapidly.

For more odometry info check out G.W. Lucas' great paper "A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators" and the Rossum project at

Jeff Kroll