Robo-Rats Locomotion: Differential Drive

The differential drive is a two-wheeled drive system with independent actuators for each wheel.  The name refers to the fact that the motion vector of the robot is sum of the independent wheel motions, something that is also true of the mechanical differential (however, this drive system does not use a mechanical differential).  The drive wheels are usually placed on each side of the robot and toward the front:

In the above diagram, the large gray crosshatched rectangles are the drive wheels.  The small gray crosshatched rectangle is a non-driven wheel which forms a tripod-like support structure for the body of the robot.  Often, the non-driven wheel is a caster wheel, a small swiveled wheel used on office furniture:

Unfortunately, castor wheels can cause problems if the robot reverses its direction.  Then the caster wheel must turn 180 degrees and, in the process, the offset swivel can impart an undesired motion vector to the robot.  This may result in a translational heading error.  However, if the robot always changes direction by moving forward and turning, a caster wheel may be okay.  Another alternative to a caster wheel is a captive ball which does not use a swivel mechanism.  In the case of small robots such as the ones used in the Robo-Rats competition, a rolling device is not strictly necessary if the floor is smooth--some robots have used fixed rounded Lego parts in place of captive balls.  The only negative is the increased friction component as the Lego piece must slide along instead of rolling.

Straight-line motion is accomplished by turning the drive wheels at the same rate in the same direction, although that's not as easy as it sounds (see below).  In-place (zero turning radius) rotation is done by turning the drive wheels at the same rate in the opposite direction.  Arbitrary motion paths can be implemented by dynamically modifying the angular velocity and/or direction of the drive wheels.  In practice, however, complexity is reduced by implementing motion paths as alternating sequences of straight-line translations and in-place rotations.  Odometry is easier to do using this method.

Many commercially available robots use the differential drive method, such as the Pioneer series from ActiveMedia:


Two - One for each drive wheel.


Simplicity - The differential drive system is very simple, often the drive wheel is directly connected to the motor (usually a gearmotor--a motor with internal gear reduction--because most motors do not have enough torque to drive a wheel directly).


Control - It can be difficult to make a differential drive robot move in a straight line.  Since the drive wheels are independent, if they are not turning at exactly the same rate the robot will veer to one side.  Making the drive motors turn at the same rate is a challenge due to slight differences in the motors, friction differences in the drivetrains, and friction differences in the wheel-ground interface.  To ensure that the robot is traveling in a straight line, it may be necessary to adjust the motor RPM very often (many times per second).  This may require interrupt-based software and assembly language programming.  It is also very important to have accurate information on wheel position.  This usually comes from the odometry sensors.

Back to the Robo-Rats Locomotion page

Back to the main Robo-Rats page

Last modified: 04/04/01 22:30