I'll never forget that day late in 1998 when I first saw the MindStorms box on a store shelf.
I would've bought one on the spot, but the clerk told me that they were just empty display boxes
and that they couldn't get enough of them to keep them in stock. It was four more months before I
crossed paths with a retail unit.
Although I knew this would be a really fun toy, I didn't know just exactly where that first MindStorms set would take me.
Since then, my LEGO collection has grown from those original 727 pieces to somewhere
in the neighborhood of 200,000 LEGO pieces spanning a wide range of themes.
In that same time, I have grown as well.
I was initially drawn to LEGO because it enabled me to build computer-controlled or autonomous robots, a childhood dream of mine.
But the more I built with it, and the more I interacted with other LEGO enthusiasts, the more I realized that you can build anything
you can imagine out of it, almost as fast as your imagination can take you there.
But I digress.
My first several LEGO projects were awkward, overly-complex devices and mechanisms that nonetheless
generally did what I asked them to. At the time I could tell that my building technique was rough,
but looking back at some of the monstrosities that I created during those early days,
I have dubbed this my "FrankenStorms" period. I am still learning how to build things using the fewest
possible number of pieces, as this almost always turns out to be the most reliable way to build anything.
When I first discovered the online LEGO community, I found a wealth
of information and ideas about the MindStorms product line. I also found a few great challenges posed by
various people that really kick-started my interest in LEGO robotics. One early challenge was to search a small room
for three empty soda cans, and return the cans to the robot's starting location. Something about this challenge struck me
as being right on the edge of what the simple RCX was capable of, but I didn't know which side of that line it was on.
I threw myself into the project, borrowing techniques such as
infrared radar and the
directional drive transmission to build a robot that could scan a room, locate a can,
and usually even pick up the can without knocking it over.
Although I got mired in the later stages of that project, the exhilaration of that early success fueled
my enthusiasm for this newfound art form. Before I found MindStorms, the concept of building such a device in a matter of only a few weeks
was laughable. To be able to design, build, test, and redesign such a system in such short cycles stimulated learning in my brain that
I hadn't done since college.
Here are some pictures of my can-finding robot. There are a few interesting mechanisms in here
that I think are worth taking note of: the turtle drive platform, the one-motor grip-n-lift robot arm,
and the infrared radar proximity detector.
The "turtle" platform has been the base upon which I have built virtually every one of my motion-capable robots.
The three wheels on each side are geared to turn together under the control of one motor per side.
The base can move forward or backwards, or turn either in place or as it moves.
The platform is equipped with a pair of rotation sensors to measure how far the wheels on each side have turned.
I have an RCX task written in NQC that operates a simple feedback loop to turn the wheels until any desired
rotation sensor value is achieved, which provides a convenient way for my RCX programs to specify rotation
and linear movement.
I usually have a touch or light sensor mounted somewhere on the front of the platform to occupy the third sensor input.
The third motor output is usually connected to a robot arm or the trigger of a spring-loaded dart shooter,
although this robot is plenty fun to drive around without an accessory attached.
I have even used a second RCX as a remote control to send steering and driving commands to a mobile RCX.
The can-finder robot needed a way to detect an empty soda can without knocking it over.
I found an interesting technique for doing proximity detection with the RCX using a light sensor.
The RCX sends infrared messages while monitoring the light level. The difference between the
highest and lowest light levels measured will get wider if there is an object reflecting the infrared
from the RCX back into the light sensor. The robot locates cans by taking radar readings at various headings
and iteratively moving toward the strongest reflection. Once the radar reading passes a certain strength,
the robot attempts to pick up the can.
Back to the Workshop
|
|
No deposit, no return.
|
|
My favorite "turtle" chassis for robotic development.
|
|
24T Gearing of the wheels.
|
|
The motor and rotation sensor mesh neatly with the 24T gears.
|
|
The rotation sensor is held firmly in place.
|
|
At its best, odometry is imprecise. Expect errors!
|
|
A sure-footed carpet crawler.
|
|
Light Sensor setup for IR Radar.
|
|
|