One of the hottest "toys" this holiday season is the wirelessly enabled robot. Such embedded wonders come in all sizes and shapes, varying in both complexity and function. Take, for example, the recently released R2-D2 Interactive Astromech Droid. This 15-in. version of its Star Wars namesake was developed through the combined efforts of Creature Labs and Hasbro Corp. (www.creaturelabs.com/toys_r2-d2.html). It comes equipped with speech-recognition, infrared-scanning, and sonar-navigation technologies.
Perhaps less recognizable in shape, but far more challenging to the budding engineer, is LEGO's Mindstorm series. These robots are based on the Robotics Inventions System 2.0, which contains the RCX embedded LEGO microcomputer. It can be programmed from a PC using an infrared transmitter.
What do all of these fairly sophisticated robots have in common? Quite simply, the answer is embedded technology. Each toy contains a scaled-down version of the same resource-constrained, microprocessor-based technology found in today's laptop computers, PDAs, and automotive telematics systems. In fact, one innovative beginner's robot actually uses a typical Palm handheld PDA as the basis for its fully autonomous mobile action (www-2.cs.cmu.edu/~reshko/PILOT).
Cost serves as the main differential between the toy robots and the commercial mainstream processor applications, like PDAs and laptops. Volume production is the key factor. Paula Jones, Director of Corporate Communications for Tensilica, Inc. (www.tensilica.com), notes that if engineers design ASICs for robotic applications, they must ensure a high production volume to keep the chip cost down. "So more and more engineers are trying to design one ASIC that can work in several different applications. This means that the ASIC must employ some type of programmability."
But for many, the cost of even an inexpensive ASIC can be prohibitive. Instead of one ASIC performing many tasks, several inexpensive microprocessors or microcontroller units (MCU) are used. The MCU systems handle navigation, machine vision, and wireless connections. As a result of this trend, most toy, university, and hobbyist robots are based on old favorites like Intel's 8051, Motorola's 68HC11, Texas Instruments' TM370, or the Microchip PIC.
Microcontrollers also are used to control related robotic subsystems. An example is Ubicom's SX28 processor for machine vision. CMUcam's low-cost, low-powered (about 1 W) simple image sensor for mobile robots is often used as an input to a Ubicom SX28 75-MHz microcontroller for video data processing (www-2.cs.cmu.edu/~cmucam/). The SX28 is a RISC processor. It has a Flash-programmable EPROM and SRAM. Flash EPROM is faster and provides more erase/write cycles than regular EEPROM.
Until recently, most embedded robotic systems were based on inexpensive 8-b microcontroller technology with 32- or 64-KB of total memory. Programming was done in assembly code, C, or perhaps even Basic. There were few standard interfaces, but no networking and no use of any standard libraries.
One example of this type of technology is Basic Stamp II. This self-contained computer was based on Microchip's PIC 1657 and manufactured by Parallax, Inc. (www.parallaxinc.com). In one small package, the "Stamp" contains a microcontroller, memory, clock, and voltage regulator. Basic Stamp II is programmed from a PC using a Basic-like language called Parallax Basic (PBasic). The SumoBot, a competition-ready robot based on the Basic Stamp II, can locate and knock its opponents—other SumoBots—right out of the ring.
An updated version of the Basic Stamp, called Javelin Stamp, is based on Ubicom's SX48AC microcontroller. It supports Sun Microsystems's Java. Indeed, Java has become the language of choice for many of today's embedded systems. Real-time Java technology robots, sometimes called JDroids (see figure), are now built using LEGO's RCX and Systronix's JStamp (www.systronix.com).
JStamp has received wide support among university robotic programs and serious hobbyists. It is inexpensive and yet fully featured. JStamp has a 32-b core, 512 KB of SRAM, and up to 2 MB of flash. It can execute about 3,000,000 Java byte codes per second, while running for 48 hrs. off of a common 9-V supply. It costs roughly $100 in modest quantities. JStamp is truly Java based. It supports standard communication libraries, multithreading, math, encryption, and more.
Before the end of this year, JCX—a collection of I/O modules, a backplane, and a JSTAMP CPU—will include RF data modems. These modems support the JXTA protocols (www.jxta.org). For small robots, they also provide a peer-to-peer ad-hoc network. A PC or other TCP/IP-capable system, such as Jstik, will act as a TCP/IP-to-JCX gateway, according to Bruce Boyce, President and Technical Director for Systronix. All of these inexpensive embedded systems will help accelerate the availability of toy robots, as well as research into more advanced systems.