Page 112 - Modern Robotics Building Versatile Macines
P. 112
92 Modern Robotics
Robot Insects
By 1988, Brooks and his research group were working on a variety
of robots. One, called Herbert, could find and collect empty soda
cans, perhaps a useful function for any university setting. Unlike
Allen, Herbert had all its computers on board, demonstrating great-
er autonomy. Further, its ability to control its arm and pick up the
cans pointed toward a variety of practical manipulative tasks.
Up to this time, nearly all robots rolled on wheels—none could
walk like an animal. Fellow MIT researcher Marc Raibert had
demonstrated some walking or hopping robots, but Brooks looked
for a different approach to creating a more robust sort of legged
locomotion. While watching videos of insects walking over rough
terrain, Brooks noticed that they seemed to stumble when missing
their footing, but then recovered quickly.
Working with Grinnell More and a new researcher, Colin Angle,
Brooks began to build an insect-like robot called Genghis. In Flesh
and Machines, Brooks said that
to this day Genghis has been my most satisfying robot. It was an
artificial creature. It looked like a six-legged insect. A big six-legged
insect. . . . As soon as its beady array of six [infrared] sensors caught
sight of something, it was off. As long as it could track its prey it
kept going, ruthlessly scrambling over anything in its path, solely
directed toward its goal. . . . It had a wasplike personality, mindless
determination.
Unlike Allen’s three layers of behavior, Genghis had 51 separate,
simultaneously running computer programs. These programs, called
“augmented finite state machines,” each kept track of a particular
state or condition, such as the position of one of the six legs. It is the
interaction of these small programs that creates the robot’s ability
to scramble around while keeping its balance. Finally, three special
programs looked for signals from the infrared sensors, locked onto
any source found, and walked in its direction.
Each program was constantly sending or receiving signals (data
values) from one or more other programs. For example, the program