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.