Mobile Robots: Inspiration to Implementation
Joseph L. Jones and Anita M. Flynn
A K Peters, Ltd., 1993, 349 pp., $39.95
ISBN 1-56881-011-3
Mobile robots, long the high-tech toy of researchers, tinkerers, science fiction buffs, and like dreamers, may finally be coming into their own. Of course, stationary robots proved up years ago, at least in automated factories where they play a key role in manufacturing everything from cars to computers. (Interestingly, Steve Jobs' robot-centric manufacturing facility recently went on the auction block, a victim of Next's refocus on software.) But except for critters like R2D2 in Star Wars, mobile robots haven't moved forward the way their stationary cousins have.
The paucity of real-world mobile-robot applications can be traced in part to the difficulties of integrating multiple complex technologies: computational hardware, sensors, machine vision, mechanics, real-time control, motors, power, programming, recognition, multitasking, learning, and navigation, to mention a few. Just getting two or three of these working together harmoniously is difficult; uniting all of them in an affordable, efficient, and reliable package can be daunting indeed.
But recent reports like the following out of Maryland suggest mobile robots are moving from the theoretical to the practical. In this case, the police sent a three-foot tall, 480-pound remote-controlled mobile robot into an apartment to disarm and capture a murder suspect. Upon opening a bedroom closet door and finding a pile of clothes, the robot began plucking at the pile until the hidden suspect was uncovered. After a brief tussle, the robot used a high-pressure water gun to knock a shotgun out of the suspect's hands, enabling police officers to burst in and arrest the suspect. Practical? You bet. By avoiding a bloody confrontation, someone's life was surely spared. (Of course, not every mobile robot performs so heroically. When a mobile robot was recently sent in to disarm a bomb in San Francisco, it moved forward a few feet, then began spinning in circles instead of grabbing the bomb. Then again, maybe the robot knew what it was doing all along. That's California for you.)
Over the past few years, much of the work at the MIT Artificial Intelligence Lab's Mobile Robot Group has focused on how to more smoothly integrate disparate hardware and software more smoothly to better cope with "computational bottlenecks, noisy sensors, and the complexity of reality." In particular, the Lab has been investigating "new models of intelligence that would be robust and work in real time." Mobile Robots: Inspiration to Implementation by Joseph L. Jones and Anita M. Flynn is an outgrowth of that research. Flynn (who's associated with the Lab) and Jones (of IS Robotics, makers of research robots and sensor systems) have written a book that's a trove of information--even if you're not particularly interested in robots. On one level, Mobile Robots provides you with virtually all the information you need to build your own mobile robot, including everything from parts lists and suppliers to control software and schematics. But Mobile Robots is more than a project cookbook. On another level, it's the application of a new approach to artificial intelligence referred to as "nouvelle AI." And on still yet another level, the book is a comprehensive treatise on embedded-systems design.
At the heart of the book is a robot called "Rug Warrior" that's designed around the Motorola 68HC11 microcontroller. (Flynn and Jones also briefly present TuteBot, a simple non-microprocessor-based mobile robot built from switches, relays, motors, and discrete electronic components.) Rug Warrior is significant in that its design is based on a subsumption architecture, a concept proposed by Rodney Brooks (also of MIT's Mobile Robot Lab) which organizes intelligence systems by layering arbitration mechanisms (that is, the priority process) between task-achieving behaviors. In other words, "in a subsumption architecture, the designer of the intelligence system lays out the behaviors in such a way that higher-level behaviors subsume lower-level behaviors when the higher-level behaviors are triggered."
For example, Rug Warrior can exhibit a "follow-light" behavior that would have higher priority than a "random-wandering" behavior. When Rug Warrior detects a high-intensity light source, it moves towards it. If the light source were turned off, the follow-light behavior would deactivate, cease subsuming the wandering behavior, and random wandering would resume. (Light sensors are one of several sensors the Rug Warrior can have; others include sensors for tilt, sound, force, motion, and the like. The authors provide drivers for most of these.)
The beauty of subsumption, say Flynn and Jones, is that it lets you tie together in a coherent and efficient whole all elements of robot control via behavior fusion--and do so using modest computational resources. Alternatively, the traditional approach to programming robots--the modeling/planning paradigm--employs sensor fusion which is much more computationally intensive because it uses a series of sequence steps to transform sensory data into a series of actions. Certainly, the modest processing power of most low-cost microcontrollers lends itself to subsumption, rather than modeling/planning. Figure 1 illustrates an example of one way subsumption might be implemented for Rug Warrior. Subsumption has its roots in the nouvelle AI movement which investigates distributed approaches to organizing intelligence systems. (For more information on nouvelle AI, Jones and Flynn point to Designing Autonomous Agents: Theory and Practice from Biology to Engineering and Back by Pattie Maes, MIT Press, 1991.)
The authors implement subsumption in both pseudocode and a version of C called "IC," (short for "Interactive C"). In doing so, they introduce and implement behaviors as finite-state machines. IC, written by Randy Sargent and Fred Martin of the MIT Media Lab, is an implementation of C for the 68HC11A0 available free-of-charge via anonymous FTP on the Internet (cherupakha.media.mit.edu, or 18.85.0.47) IC, which runs on the PC, Macintosh, and UNIX, lets you initiate and terminate processes and execute C statements immediately. The source code presented in Mobile Robots is written C and 68HC11 assembler. (Jones and Flynn note that most of their actual lab work is done in Lisp; however they switched to C in the book because of familiarity amongst programmers.) As you can see in Figure 2, IC syntax is C-like. Note that the code snippet in Figure 2 implements, in part, the subsumption network in Figure 1.
When it comes down to it, Rug Warrior is really nothing more than an embedded system that can move about and, from this perspective, Mobile Robots is one of the most complete presentations of embedded-system development you'll come across. From microcontroller innards to logic components and hardware/software interfaces, the book provides a design approach that's practical, comprehensive, and, because of the subject matter, entertaining. If you're new to embedded-systems development, or a veteran wanting hands-on information about designing MC68HC11-based systems, Mobile Robots provides one-stop shopping.
The only downside to the book is the $39.95 price tag, which may keep Mobile Robots out of the hands of many potential readers. Instead of expensive color photographs and glossy hardcover, the publisher might have been better advised to produce a more affordable book. After all, it's the content that makes Mobile Robots unique and valuable, not the presentation.
It's been over ten years since I last put together a robot, a Rube Goldberg-like stationary arm controlled by a now-extinct Radio Shack TRS-80 Model I. After reading Mobile Robots, I've decided its about time to get moving on another robotics project.
Copyright © 1993, Dr. Dobb's Journal Figure 1: Implementing a behavior model using a subsumption architecture.
Figure 2: IC source code that implements a behavior model called cruise.