The ideal wheeled drive for a Robo-Rats robot mechanically guarantees
straight-line motion. The is important because it simplifies odometry
sensing and eliminates time-critical processing on the Handyboard. The synchro
drive does give a mechanical guarantee of straight-line motion (assuming the
wheels are properly aligned) but it would be difficult to build using Lego
parts. The dual differential drive, given its name because it utilizes two
mechanical differentials, also guarantees straight-line motion and it is
relatively simple to construct in Lego. Unlike the use of the differential
in a car-type drive, where it distributes input force to
two output shafts, the dual differential drive, or DDD, uses its differentials
to combine the forces from two input shafts and uses the resulting sum to drive a
wheel (each drive wheel has its own differential):

In the above figure, the left and right differentials have their output
shafts, C & C' attached to the drive wheels. The B and
B' shafts are linked by a 3-gear train--if force is applied to any of the
yellow, green, or cyan gears, the B & B' shafts will rotate in the same
direction. The A & A' shafts are linked by a 2-gear train--if force is
applied to the red or magenta gears, the A and A' shafts will rotate in opposite
directions. Now consider what happens if the B & B' shafts are
prevented from rotating and force is applied to the A & A' shafts from a
motor whose output gear is interfaced with one of the translation gears. A
& A' will rotate in opposite directions and, since the B & B' shafts are
fixed, the C shaft will rotate with the force of the A shaft and the C' shaft
will rotate with the force of the A' shaft. Furthermore, since A & A'
are rotating in opposite directions, C & C' will rotate in the same
direction (because the differentials are facing in opposite directions).
The result will be a translation of the robot and, because the entire system is
mechanically linked, the wheels must rotate at the same rate producing
straight-line motion. Conversely, if the A & A' shafts are prevented
from rotating and force is applied to the B & B' shafts, the C & C'
shafts will rotate in opposite directions resulting in a zero radius turn about
a point midway between the wheels, since the wheels are still constrained to
turn at the same rate.

From the preceding discussion it follows that if a motor is connected to the
translation geartrain and another motor is connected to the rotation gear train,
by actuating the motors in a mutually exclusive manner the robot can be made to
perform straight-line translation or in-place rotation. This assumes that
the motors are non-backdrivable, meaning that when a motor is off it
cannot be turned by an outside force acting on its output shaft. If the
motors are backdrivable, then some of the force can move through the
differential, backdriving the idle motor and possibly causing unequal force to
be applied to the drive wheels. Motors without internal gear reduction are
always backdrivable, motors with internal gear reduction (gearmotors) may or not
be backdrivable depending on the type of geartrain. For example, the Lego
Micromotor is non-backdrivable but the Lego Gearmotor is backdrivable (in
practice, the Lego Gearmotor has enough internal gearing to make it effectively
non-backdrivable when used in the dual differential drive setup, assuming that
both halves of the dual differential drive are geared equally).

Below if a photograph of the dual differential drive made from Lego parts:

The red items are Lego Micromotors with their output gears
linked to the translation and rotation geartrains (the Micromotors are used
for demonstration purposes, they are too weak to drive a full-scale
Robo-Rat). Note that the rotation
geartrain (at the top of the photo) uses three gears as in the diagram above,
but the translation geartrain uses four gears instead of two as shown
above. This is because of the limitation of the sizes of gears available
in Lego--the result is the same as long as the number of gears is even: the
shafts will rotate in opposite directions. Also, note that there are no
shafts corresponding the the C & C' shafts shown above. The Lego
differential uses the differential housing itself as the output device--it it
linked to the wheel axles by crown gears (see the differential
page for more details). There are other variations of this
design--different placements of the differentials and/or using a different
shafts for input/output--but the principle is the same (I think this version
most clearly illustrates how the DDD works).

Here are some movies of the DDD in action (place the mouse over
the image to start the movie):

Motors:

2 - One to drive the wheels in the same direction resulting in
straight-line translation, one to drive the wheels in the opposite
direction. Note that it is possible to actuate both motors at the same
time to generate arbitrary motion paths.

Pros:

Control - Separate actuation of translation and rotation make control
much easier. Straight-line motion is guaranteed mechanically--there is no
need for interrupt-based control as in the case of the differential
drive method.

Simplicity - Easily implemented in Lego, relatively compact design.

Cons:

Efficiency - The many gears in this system make it somewhat less
efficient that a differential drive system, as
there are frictional losses in the gear shafts. A heavy robot may require
care in choosing the gear ratios in the system, since frictional losses rob the
system of power. However, the benefits of this system outweigh the
negatives.