Diff-Drive Model





Here is a fairly simple design for a small, differentially driven robot (which just means that each wheel is independently driven, so it can do things like turn in place). The nice part about this design is that the RCX can be mounted in two orientations (see above picture), so that two of these 'bots can easily send IR messags back and forth. The only parts of the robot that are NOT in the Robotics Invention Kit from LEGO (any version) are the two rotation sensors, used in step 7 (which is performed twice). I got mine from Acroname, for about $15 each.

The images (photographs aside) were generated using MLCad and LDraw (MLCad is a graphical interface for LDraw). You can download the whole file here, but I have more comments listed here than in the file. The parts list is also available, here. It is sometimes hard to tell, but the new parts added in each step are always highlighted to some degree.



Image Parts Notes
  • 1 1x1 plate
  • 1 1x4 plate
  • 1 1x10 plate
 
  • 1 1x2 plate
  • 1 1x2 plate with rail
  • 1 1x8 plate
  • 1 2x2 plate
 
  • 1 1x2 technic brick
  • 1 1x6 technic brick
  • 1 1x8 technic brick
 
  • 1 length 5 axle
  • 1 bush
  • 1 half-bush
  • 1 24-tooth gear

The end of the axle should lie flush against the gear.

  • 1 1x2 plate
  • 1 1x2 plate with rail
  • 1 1x10 plate
 
  • 1 motor
  • 1 8-tooth gear

The 8-tooth gear sits directly on the motor shaft. The motor should fit into the two railed plates, but it might not hold firmly (depends on how old your set is; in my experience, only the newer versions do so). If it doesn't, you have to juggle things a little.

  • 1 rotation sensor
  • 1 length 4 axle
  • 1 8-tooth gear

The axle fits through the rotation sensor and the gear, and one hole in the adjacent brick. The next few steps act to hold the sensor in place.

  • 1 1x4 plate
 

n/a

Turn model over.

  • 1 2x6 plate
 

everything listed above

Repeat all steps prior to this one. The two sections will fit together nicely, as shown in the image.

n/a

Turn both sections over.

  • 2 1x10 plates

This locks the two sections together.

  • 1 2x4 plate
  • 2 1x10 plates
 
  • 1 2x2 brick
 
  • 1 1x2 brick
 
  • 1 1x2 technic brick

This picture is a little hard to make out. This is working to put a third place of contact with the floor (the other two contacts being the wheels). With this step and the last, you're effectively adding a 2x2 brick with a hole in the front.

  • 1 2x2 friction caster

The friction caster (called a "boat" in MLCad) is the flat round 2x2 piece with a smooth, rounded underside.

  • 1 2x2 brick

Turn the model over, and continue building up on the part you were working on in the last steps.

  • 1 2x2 brick
 
  • 2 1x2 plates
  • 1 2x2 plate

The second 1x2 plate goes on the opposite side, behind the motors.

  • 2 1x2 plates
  • 2 1x10 plates
  • 1 2x2 plate
 
  • 2 1x2 bricks
  • 1 1x2 technic brick

The two 1x2 bricks help to secure the large plate that you will add in step 26.

  • 2 technic friction pins

The friction pins are the black ones; the grey ones allow pieces to rotate. While not terribly important, try to use the black ones here.

  • 1 1x8 technic brick
  • 2 short Mindstorms wires

What you're doing here is making it impossible for the caster to fall off. The proportions of Legos are exactly right for this brick to snap onto the two pins you inserted in the last step.

Also in this step, you should add the motor wires. See below for how to attach them.

  • 1 6x10 plate
 
  • 2 large wheels + tires
  • 2 half-bushes
 
  • 1 RCX

The RCX should sit all the way on the end of the large plate. Which direction it faces depends on how you decided to wire it. Make sure to snap it down tightly; it doesn't always snap in all the way.

n/a

Attach the wires to the RCX (see below), and then you're done!




Wiring Options

Since I wanted to have two robots that could easily communicate, and since IR transmission really needs line-of-sight, I designed this robot such that the RCX could point either to the left or the right. However, I also wanted to be able to use the same driving code on both, so the motors and encoders had to plug into the same ports on the RCX and with the same polarity in both cases. Unfortunately, the short wires are just a little too short to accomplish this entirely easily, and I didn't want to have to use the long wires, because they just get in the way. So here are the two solutions. (Sorry for the bad quality of the photos; I took them with my $5 webcam.)

Left-facing (design A)



Right-facing (design B)




Home


LEGO, LEGO Mindstorms, Robotics Invention System, and RCX are registered trademarks of the LEGO Group, Inc.

This project is funded by Carnegie Mellon's Undergraduate Research Initiative. These results represent the views of the author and not those of Carnegie Mellon University.


All material contained within this site is
© 2003 Rachel Gockley
except where otherwise noted.