I have been interested in Lego’s Mindstorms robotics systems: RCX, NXT, and NXT 2.0, but I have been wary of investing the $200-300 in the base system without knowing if I could build a robot that would be interesting to me. Brick sorters, Rubix cube solvers, printers, etc. are interesting, but I would like to create a more intelligent version of Tomy’s Omnibot line or Heathkit’s HERO. I imagine having a robot that can navigate a space, learn it, and interact in meaningful ways with that environment. Perhaps I am thinking of the Roomba without the vacuum and brushes and with more pizzazz.
Robotics is a series of interconnected systems that operate together to fulfill programmed functions and behaviors. To build a robot, you have to design the robot’s body and mechanical functions. How will it move? What kind of drive system (for those that move) will it employ? Next, you have to consider how will the robot learn from its environment? What kind of sensors will it use? How many sensors are needed to effectively navigate a space? What sensors will provide the robot special functions? Finally, you have to program the robot to control its body in response to sensor stimuli and execute other operations with arbitrary timings or responsive subroutines. What do you want the robot to do in a given circumstance? Is there a way to give the robot a series of choices in a given circumstance? How can it be made to decide what to do with a series of choices? Etc. In short, building robots that do more than very specialized functions can be an overwhelmingly complex endeavor.
With any elaborate problem, I like to break things down into its constituent parts and learn by doing. As such, my first project is to build a remotely controlled robot platform so that I can learn design principles with Lego Technic bricks. More importantly, I need to learn how to use gears and motors to do work efficiently and reliably.
In my first robot iteration, I decided to build a carrier robot that is inspired by the Tomy Omnibot line. Fred is a simple robot that carries a tray and has the ability to move around through a two motor powered dual differential drive system [based on the Hacienda Robotics Program’s compact design found here].
The system will be powered by Lego’s Power Functions. I ordered two small motors, a battery pack, remote control, IR receiver, and lights from Lego. In the photo’s of Fred, you can see that I constructed his body so that the battery pack easily slides into a carrier so that it need not be locked down and it can easily be removed to replace its 6 AA batteries.
Eventually, Fred’s head will swing back and forth using a piston drive that takes rotational power from the forward drive gears. I have built a prototype of this system pictured below.
As you probably noticed in the pictures above, I don’t have the differential gears in Fred’s drive platform. Unfortunately, my local mail carrier delivered them to the wrong house or they were stolen. USPS Delivery Confirmation shows that the package was delivered somewhere on Friday, June 18 while Yufang and I were at home, but we never saw the package. Until I know for certain that I won’t receive those gears, I have put further development on hold until after the SFRA conference and a trip to visit my folks in July. Fred is sitting on a bookshelf surrounded by the Power Functions gear.
Eventually, I will take what I learn from building Fred and scale up to a larger robot that will use the NXT 2.0 Intelligent Brick to control itself. I will obtain experience with sensors and programming with the Mindstorms set [more info on this here]. I would like a robot to do more than carry things around the house, such as playing with Miao Miao, so I imagine his exterior design will change as I move forward with the project.
See more pictures of the nearly-completed Fred in the gallery below. Your thoughts, suggestions, and helpful links are welcome in the comments.