| The RCXbug Autonomous Robotic Platform |
|
| Written by Accutron on 2000-02-05 |
|
This article documents the RCXbug, a simple robotics project built for an undergraduate science class many years ago.
The purpose of the RCXbug project (fig. 1) is to develop a compact,
durable and autonomous LEGO
robot, which represents a synthesis of biological forms and actions,
in a computer-controlled electromechanical package. The RCXbug's
base programming is geared towards bio-emulation, and the chassis
is designed to reflect many common aspects of arthropod morphology.

Figure 1: RCXbug, revision ARP3/R6.
The RCXbug project is intended
to follow in the footsteps of the vast amount of LEGO robotics
studies at M.I.T. over the past decade. Both the engineering and
epistemology departments at M.I.T. have conducted massive amounts
of research in the area of LEGO-based robotics, from scientific,
educational and competitive standpoints. LEGO robotics offer a
versatile base from which to educate both children and adults
in the areas of programming and mechanical engineering, in an
integrated, entertaining package.
Until recently however, the RCXbug
project would not have been feasible for anyone but the electronics-profieient,
as the controller boards used in the M.I.T. robots are geared
towards a more advanced audience, and must be assembled by hand.
This all changed however, with the 1998 introduction of the LEGO
Mindstorms Robotics Invention System (RIS), which includes a commercial
incarnation of M.I.T.'s programmable brick research. It is the
RIS which has made the RCXbug project possible.
The development of a functional
robotic platform poses many problems. It must be durable and operationally
efficient. It also must be simple and easy to maintain. The LEGO-based
construction allows all of these considerations to be met. The
RCXbug is modular, easy to repair, and the individual Technic
elements are virtually indestructible. Furthermore, the RCXbug
was designed and refined through the employment of over 20 years
of LEGO building experience, uses approved building techniques,
and more than meets even the most stringent of professional LEGO
modeling criteria.
Although the design is original,
the basic philosophy of the RCXbug is modeled in spirit after
the LEGObug, a two-sensor two-motor robot designed by M.I.T.'s
Fred G. Martin (fig. 2). Like the LEGObug, the RCXbug incorporates
two frontal touch sensors, and two drive motors.

Figure 2: The classic LEGObug (from "Build the LEGObug",
�1996 Fred G. Martin.
The RCXbug however, goes a bit
further, adding a frontal light sensor, as well as some of the
more advanced LEGO Technic elements. Nonetheless, the RCXbug does
meet most of Martin's LEGObug requirements. Although it is not
as simple as the LEGObug, it is a reliable, functional vehicle,
designed for carrying out experiments and projects. It serves
as an example of good LEGO design and uses commonly available
LEGO elements.
The core of the RCXbug's construction
philosophy is that it adheres to LEGO purism: all elements are
genuine, unmodified LEGO. Although most of the essential elements
required to construct a functional analog of the RCXbug are included
in the Mindstorms RIS, the full model is significantly more complex.
A serious attempt at building a complete RCXbug requires a wide
selection of common Technic elements, as well as some of the more
obscure ones.
The fundamental project requirement
of durability is fulfilled by constructing the frame of the RCXbug
using interlocking Technic pieces, rather than using the classic
LEGO brick-stacking method. LEGO Technic elements are engineered
to be used in designs which experience mechanical stresses, as
opposed to standard LEGO elements, which are designed around the
construction of static models.
Rather than relying on conventional
LEGO System elements such as plates, bricks and decorative components,
Technic models are framed with beams, drilled at regular intervals,
in which axles and friction pins can be inserted. This design
means that the load-bearing interconnects are perpendicular to
operational stresses, allowing mechanical functions and providing
a much sturdier design.
Technic designs are animated via
an axle and gear system. This allows the construction of robust
mechanical and motorized devices, including drive trains and articulated
systems. It is this architecture which allows the assembly of
a versatile robot chassis. Although the universally plastic LEGO
gears have on occasion been known to break under unusual stresses,
they are generally reliable, and will not slip in a gear train
if properly implimented.
Initial construction started with
a heavily modified version of the driving base from the RIS Roverbot,
and evolved from there. The Roverbot driving base was selected
because it is a compact, durable asynchronous system, with a wide
range of possible configuration options. Since behavior and aesthetics
were more of a concern than achieving mechanical profundity, the
simple Roverbot drivetrain was more than sufficient.
Unlike many other LEGO robots,
the RCXbug is a "finished" design, in that it is more
than merely functional. Its appearance was modeled around a philosophy
of extreme durability (as compared to other LEGO designs), and
high aesthetic quality, rather than being simply thrown together
in the quickest operational configuration. As a result, the RCXbug
is heavier than necessary to function properly, and has a much
higher parts count. The added weight decreases operational efficiency,
but increases durability and therefore the range of potential
operating environments.
When it came time to decide the
physical form that the RCXbug would take, the basic model of an
arthropod was selected, because both the morphology and behaviors
of such a creature could be feasably approximated with the LEGO
hardware. As the concept was refined, the RCXbug took on the shape
of a terrestrial isopod. Terrestrial isopods, more commonly known
as pillbugs, sowbugs or woodlice, are cosmopolitan backyard animals,
easily bred and studied in captivity, and have a simple morphology
which is easy to mimic in LEGO elements.
Although it would be impossible
to emulate all physiological minutiae of an isopod, a close approximation
can be easily obtained. The RCXbug emulates an array of biological
qualties with varying degrees of analogy, some of which are specific
to its arthropod model. Of course, some allowances had to be made
due to the RCXbug's LEGO architecture. Most notably, the isopod's
uniramous articulated locomotor appendages have been replaced
by track drive, and the binocular vision featured on all isopod
genera has been replaced with a singular, centrally mounted "eye".
There are of course a plethora of other morphological differences
between the RCXbug and an isopod, but the RCXbug's design functions
more as a metaphor, rather than an exact emulation.
The RCXbug emulates the following
biological characteristics:
Cellular Organization: Macrostructure
composed of numerous, independent functional units.
Lateral Symmetry: A characteristic of nearly every species of
motile macrofauna.
Metamerism: The construction of the body from an extended series
of repeated segments.
Three-Part Division: Body is divided into three sections, the
cephalon, abdomen and thorax.
Neural, Sensory and Motor System: A centralized neural mass, which
interconnects sensory and motor structures, and coordinates activity.
Frontal Sensory Bias: The biological
commonality where the greatest concentration of sensory organs
are located in the cephalon.
Bilateral Locomotive Structures: Locomotor appendages are lateral,
independent and stereokinetic.
Aposematic Coloration: External
coloration is optimized for visual warning (yellow and black).
Bio-luminescence: A characteristic
of various fauna, it is simply the ability to produce chemical
illumination, usually for the purpose of communication.
Motility: A ubiquitous characteristic
of most fauna.
Photophobia: Common in woodlice;
the tendency to avoid light.
|
The RCX Programmable Brick
|
The RCXbug is based on the RCX,
a microcontroller brick manufactured by LEGO (fig. 3). The RCX
is a commercial outgrowth of the programmable brick projects at
M.I.T. Media Lab's Epistemology and Learning Group. There have
been several versions of the M.I.T. programmable brick, most notably
the Model 120, which is very similar to the RCX in both size and
functionality.

Figure 3: The LEGO Mindstorms RCX (from "LEGO Mindstorms",
�1998 The LEGO Company
The heart of the RCX is the Hitachi
H8/3292 microcontroller (fig. 4), a powerful, multitasking 8-bit
CPU. The RCX is equipped with three sensor inputs and three motor
outputs. The power supply for the entire robot is wholly contained
within the RCX, lending towards its versatility and ease of use.
The RCX allows builders to construct and program fully functional
robotics projects in a fraction of the time required to construct
comparable platforms with alternate microcontrollers. Along with
the RCX, the RIS includes two touch sensors, a light sensor and
two motors, not to mention over 700 miscellaneous LEGO parts.

Figure 4: Hitachi H8 block diagram (from "Hitachi Single-Chip...",
�1999 Hitachi Semiconductor)
The RCX can be programmed via
several different methods. Included with the RIS is a CD-ROM,
containing a child-friendly and extremely limited programming
interface. These limitations can be overcome by using LEGO's more
powerful ROBOLAB software or by using one of the many alternate
programming environments created by the Mindstorms user community.
Various individuals have developed software which allows the RCX
to be programmed in, among others, C++, Perl, Forth and Visual
Basic. One needs to only select the environment they are most
comfortable with.
The drive system, based on bilateral
independent tracks (fig. 5), enables the robot to have zero turning
radius. Although an alternating tripod locomotion was considered
(fig. 6), track drive was selected because it is a simple, efficient
drive system, provides a large surface area for superior traction,
and functions properly with an asynchronous drivetrain. Additionally,
it accomplishes its purpose in a fairly low-profile configuration,
keeping the robot's vertical footprint fairly small. The track
drive also provides the RCXbug with adequate performance in rough
terrain, although the low ground clearance in the center of the
frame can cause hangups on smaller obstacles. It does however
handle larger obstacles quite easily, and its low profile virtually
eliminates rollovers.

Figure 5: RCXbug ARP3/R1, drive train.

Figure 6: The Solarbug AHW2/R1, an alternate platform with solar
power and alternating tripod locomotion.
Each track is powered independently
by its own dedicated 9 volt motor (fig. 7). The drive train is
fairly simple and extremely solid, providing either a 3:1, 1.67:1,
1:1, .6:1 or .33:1 gear reduction (fig. 8), which gives the RCXbug
the option of speed or torque. The default gear reduction of 3:1,
while somewhat slow at 12 cm per second, allows the RCXbug to
ascend inclines greater than 45 degrees, and push surprisingly
heavy objects over smooth surfaces.

Figure 7: LEGO 9 volt motor (from "Technica", �1997-2000
Jim Hughes; used with permission).

Figure 8: Possible gear configurations (from "Technica",
�1997-2000 Jim Hughes; adapted with permission)
The RCXbug also includes a fiber-optic
display (fig. 9), driven by a standard LEGO micromotor (fig. 10).
This allows the emulation of bioluminescence in various circumstances,
and provides the RCXbug with a measure of presence in dark rooms.
Because of the way the RCXbug was developed, in that all developmental
variations were executed on the same core platform, the addition
of a motor-driven fiber-optic unit was somewhat difficult to impliment.

Figure 9: LEGO fiber-optic unit (from "Technica", �1997-2000
Jim Hughes; used with permission).

Figure 10: LEGO micromotor (from "Technica", �1997-2000
Jim Hughes; used with permission)
The sensor configuration is wholly
concentrated in the front of the robot (fig. 11), providing maximum
environmental acquisition in the most critical area, but regrettably
leaving the robot senseless in all other directions. Due to the
limitations of the RCX, it is not possible to attach more than
three independent sensors at any one time, without making hardware
modifications or implimenting third-party products. Any such options
would of course violate the LEGO purism of the RCXbug project.
However, if LEGO offered an RCX expander module or multiplexer
in the future, the design could be modified to include rear or
lateral sensors.

Figure 11: RCXbug ARP3/R1, frontal sensors.
Although the RCXbug has a fairly
simple sensor array, an elegant programming structure gives it
a much brighter view of its world than might be expected. By using
two touch sensors (fig. 12), the front bumper can discern between
left, right and center contact. This allows the RCXbug to react
dynamically, depending on where it bumps into an object.

Figure 12: LEGO touch sensor (from "Technica", �1997-2000
Jim Hughes; used with permission).
The centrally mounted front light
sensor (fig. 13) is capable of discerning a gradient of light
intensity, enabling the RCXbug to seek out or shy away from light.
Although not yet implimented, the light sensor, when used in conjunction
with the RCX's infrared transmitter/receiver, may allow the RCXbug
to utilize proximity detection features in the future.

Figure 13: LEGO light sensor (from "Technica", �1997-2000
Jim Hughes; used with permission).
All of the sensor wiring is bundled
through a LEGO analog of a notochord or spinal structure, which
extends from the frontal sensor array to the RCX (fig. 14). This
setup exists not only to insure that the sensor wiring is unobtrusive,
but also to strengthen the biological theme around which the RCXbug
is based.

Figure 14: RCXbug ARP3/R1, nerve bundle.
Additionally, the RCXbug's core
programming is capable of interpreting and acting upon data collected
from a temperature sensor (fig. 15), an alternative to the light
sensor. This allows the RCXbug to achieve a wider range of operational
goals, without any code modification.

Figure 15: LEGO temperature sensor (from "Technica",
�1997-2000 Jim Hughes; used with permission).
The first two weeks of the RCXbug
project was spent developing the prototype ARP1 platform (fig.
16). In the ARP1 prototype phase, the basic hardware design was
developed, punctuated by numerous minor design revisions.

Figure 16: RCXbug ARP1/R11.
ARP2 (fig. 17), the second phase
of the RCXbug's hardware development, uses the same basic frame
and design as ARP1, but incorporates some more advanced construction
techniques. The transition to the initial ARP2 design involved
minor frame enhancements, but the majority of the revisions occured
in secondary structures, namely the bumpers and track guards.The
frame is extended by 16 mm, the front bumper is extended forward
by 8 mm, and the rear bumper is extended rearward by 20 mm and
upward by 8 mm. The rear bumper of the ARP2 is anchored directly to the frame
with semi-articulated ball joint cross axles. Additionally, the
RCX is moved rearward by 16 mm, creating an improved alignment
between the center of gravity and center of rotation.

Figure 17: RCXbug ARP2/R3.
The primary advantage of ARP2
over ARP1 is much higher durability, especially in the rear bumpers.
ARP1 suffers from a design flaw, where high speed impacts would
dismount the rear bumper. This defect is due to the employment
of non-standard building techniques in the rear bumper mounts.
ARP2's bumper is anchored directly to the frame centerline, and
is also anchored on both sides with ball joints. The core of
the rear bumper is also equipped with an automatically resetting
breakaway joint, allowing the bumper to absorb significant impacts.
Additionally, the track guards
on the ARP2 are massively improved over those of the ARP1. ARP1 has a
very small clearance between the track guards and the top of the
tracks, making the robot suceptible to stalling when small objects
became lodged beneath the track guards. This problem was completely
eliminated in ARP2. Furthermore, the adjustment to ARP2's center
of gravity made it more stable and efficient than the ARP1.
ARP3 (refer to fig. 1), the final hardware
development phase, is basically the ARP2 platform, with several
cosmetic changes and durability improvements, including spring-loaded
shock absorber stabilizers in the rear bumper.
In light of the RCXbug's versatile
LEGO hardware, the biggest design challenge is programming it
to adequately deal with an imperfect environment. Computers are
sterile, digital thinkers, not particularly equipped to interface
directly with the real world. While it is quite easy to design
programming which performs basic, repetitive tasks such as line-following
or simple reactive behaviors, it is quite another story when developing
a "thinking" robot.
Instead of using LEGO's extremely
limited Windows-based RCX Code programming interface, the RCXbug
is programmed on an Macintosh, using LEGO Dacta ROBOLAB 2.0. RCX
Code was immediately deemed unsuitable for programming the RCXbug,
because it only allows sequential processing. ROBOLAB on the other
hand, allows multiple tasks to be processed simultaneously, providing
infinitely more flexibility. If RCX Code was the only way to program
the RCX, this project simply could not be fully realized.
Currently, the RCXbug's ARP Protocol
7 (fig. 18) has a core reactive system, which allows for the interpretation
of left, right and center touch, and ambient light levels. Additionally,
the RCXbug is capable of assessing obstacle densities, based on
frequency of contact. In an area of high obstacle density, the
RCXbug modifies its behavior to navigate a region of dense obstacles
more efficiently. After returning to an area of low obstacle density,
the RCXbug's behavior returns to normal. Also new to Protocol
7 is the ability to detect the presence of other ARP units. This
function is primarily a placeholder for the more extensive interaction
routines which will be available in the next version.

Figure 18: ARP Protocol 7 diagram; click to enlarge.
The current development version,
ARP Protocol 8, incorporates gender identity and gender-specific
behavior and interactions. Protocol 8 still has several unresolved
problems however, which may be linked to the RCX's memory constraints.
| ©2000-2010
The Vintage Technology Association. All rights reserved. | Login |