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 |
![]() |
|
|
![]() |
|
|
![]() |
|
|
![]() |
|
The end of the axle should lie flush against the 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. |
![]() |
|
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. |
![]() |
|
|
![]() |
n/a |
Turn model over. |
![]() |
|
|
![]() |
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. |
![]() |
|
This locks the two sections together. |
![]() |
|
|
![]() |
|
|
![]() |
|
|
![]() |
|
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. |
![]() |
|
The friction caster (called a "boat" in MLCad) is the flat round 2x2 piece with a smooth, rounded underside. |
![]() |
|
Turn the model over, and continue building up on the part you were working on in the last steps. |
![]() |
|
|
![]() |
|
The second 1x2 plate goes on the opposite side, behind the motors. |
![]() |
|
|
![]() |
|
The two 1x2 bricks help to secure the large plate that you will add in step 26. |
![]() |
|
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. |
![]() |
|
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. |
![]() |
|
|
![]() |
|
|
![]() |
|
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! |
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)
![]() |
![]() |
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.