News | Electronics Museum | Articles | Video | About | Store | RSS | Contact

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.

Introduction

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.

Biomorphism

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.

Drive System

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)

Sensors

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).

Hardware Development

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.

Programming

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