`lmplemenfan'on
`
`
`
`
`JOSEPH L. JONES
`ANITA M. FLYNN
`
`Silver Star Exhibit 1018
`
`Silver Star Exhibit 1018
`
`
`
`E=2—__=_==_____====__==_E:CZ-omm.uoo*
`
`Silver Star Exhi
`
`it 1018 - 2
`
`Silver Star Exhibit 1018 - 2
`
`
`
`Mobile Robots
`
`Silver Star Exhibit 1018 - 3
`
`
`
`Mobile Robots
`Inspiration to Implementation
`
`Joseph L. Jones
`IS Robotics
`
`Anita M. Flynn
`Artificial Intelligence Laboratory
`Massachusetts Institute of Technology
`
`A K Peters
`Wellesley, Massachusetts
`
`Silver Star Exhibit 1018 - 4
`
`
`
`From Joseph L. "Joe Lee" Jones:
`
`To my mother, who read me science books when I was a kid
`
`From Anita M. Flynn:
`
`To my family and the Mobot Lab, for the big dreams
`(And all the little tiny ones, too!)
`
`Editorial, Sales, and Customer Service Office
`
`A K Peters, Ltd.
`289 Linden Street
`Wellesley, MA 02181
`
`Copyright © 1993 A K Peters, Ltd.
`
`All rights reserved. No part of the material protected by this copyright
`notice may be reproduced or utilized in any form, electronic or mechani(cid:173)
`cal, including photocopying, recording, or by any information storage and
`retrieval system, without written permission from the copyright owner.
`
`Library of Congress Cataloging-in-Publication Data
`Jones, Joseph L., 1953-
`Mobile robots : inspirations to implementation / Joseph L. Jones,
`Anita M. Flynn.
`p. em.
`Includes bibliographical references and index.
`ISBN 1-56881-011-3
`1. Mobile robots. I. Flynn, Anita M. II. Title.
`TJ211.415.J65 1993
`629.8'92-d20
`
`93-1406
`CIP
`
`Many of the designations used by manufacturers and sellers to distinguish
`their products are claimed as trademarks. Where those designations appear
`in this book and A K Peters was aware of the trademark claim, the designa(cid:173)
`tions have been printed in caps or initial caps. Where designations have not
`been provided, every effort has been made to ensure accurate presentations
`of product names.
`
`Principal photographer: Bruce Frisch
`
`Printed in the United States of America
`97 96 95 94 93
`10 9 8 7 6 5 4 3 2
`
`Silver Star Exhibit 1018 - 5
`
`
`
`Contents
`
`Preface
`
`Acknowledgments
`
`1 Introduction
`1.1 References 0
`
`0 • • •
`
`2 TuteBot
`201 A Tutorial Robot 0
`201.1 TuteBot Behaviors
`202 Building TuteBot 0 0 0 0 0
`20201 Electronic Components
`20202 Electronic Construction
`20203 Operation
`202.4 Exercise
`203 References 0 0 0 0
`
`3 Computational Hardware
`301 Rug Warrior's Design Strategy
`Interactive C 0 0 0
`301.1
`302 Microprocessors 0 0 0 0 0 0
`303 The Canonical Computer
`30301 The Processor
`30302 The Bus 0
`30303 Memory 0 0
`303.4 Ports 0 0 0 0
`3.4 Rug Warrior Logic
`30401 Power 0 0 0
`30402 The Clock 0
`3.403 Reset 0 0 0
`304.4 Mode Selection
`30405 Low-voltage Inhibit
`
`xiii
`
`xviii
`
`1
`9
`
`11
`11
`13
`16
`21
`25
`29
`35
`36
`
`37
`38
`39
`41
`42
`43
`45
`45
`47
`49
`49
`49
`50
`50
`50
`
`Silver Star Exhibit 1018 - 6
`
`
`
`Contents
`
`Contents
`
`3A6 The Serial Line
`3.4.7 External Memory .
`3.4.8 Battery Backup .
`3.5 Hardware-Software Interface .
`3.5.1 Representing Numbers
`3.5.2 An Example
`3.5.3 CPU Registers
`3.5.4
`Instructions and Operands
`3.5.5 Arithmetic
`3.5.6 Control and Status Registers
`3.5.7
`Jumps and Branches
`3.5.8 Subroutines
`3.5.9 The Stack
`3.5.10 Passing Arguments .
`3.6 Real-Time Control
`3.6.1 Polling.
`3.6.2
`Interrupts
`a.6.3
`Capture
`3.6.4 Traps
`3.6.5
`Buffers
`3.7 Loading a Program .
`3.7.1 The Assembly Program
`3.7.2 A Bootstrap Loader
`3.8 Alternatives
`3.9 References
`
`4
`
`and Prototyping
`4.1 Practical Problems
`4.1.1 Attention to Detail .
`4.1.2 Wire-\Vrap
`4.1.3 Scotchfiex
`4.1.4 Speed wire
`4.2 Connectors
`4.3 Printed Circuit Boards .
`4.4 Debugging.
`
`5 Sensors
`5.1 Achieving Perception .
`5.1.1 Transducing versus Understanding
`5.1.2 Levels of Abstraction .
`Interfacing Sensors
`5.2.1 Software Drivers
`
`5.2
`
`viii
`
`50
`51
`52
`52
`52
`53
`56
`57
`60
`60
`61
`62
`64
`64
`66
`66
`68
`70
`72
`72
`73
`73
`75
`76
`77
`
`79
`79
`80
`80
`81
`83
`85
`89
`91
`
`93
`93
`93
`94
`94
`96
`
`5.2.2 Sensitivity and Range
`5.3 Light Sensors
`Ei.3.1 Photoresistors .
`5.3.2 Near-Infrared Proximity Detectors
`5.3.3 Pyroelectric Sensors
`5.3.4 Cameras.
`5.4 Force Sensors
`5.4.1 Microswitches .
`5.4.2 Bend Sensors
`5.4.3 Force-Sensing Resistors
`5.5 Sound Sensors .
`5.5.1 Microphones
`5.5.2 Piezoelectric Film Sensors
`5.5.3 Sonar
`5.6 Position and Orientation .
`5.6.1 Shaft Encoders
`5.6.2
`5.6.3 Tilt Sensors
`5.6.1
`5.7 Proprioceptive Sensors
`5.7.1 Battery-Level Sensing
`5.7.2 Stall Current Sensing
`5.7.3 Temperature
`5.8 Exercise
`5.9 References
`
`6 Mechanics
`6.1 Locomotion
`6.1.1 Wheel Arrangements .
`6.1.2 Robot Kinematics
`6.1.3 Robot Shape
`6.2 Adapting Mobile Platforms
`6.2.1
`Identifying the Drive Type
`6.2.2 Electrical Modifications
`6.3 Legged Locomotion
`6.4 Construction Systems
`6.5 Custom Construction .
`6.5.1 Wheel Mounting
`6.5.2 Sheet Metal
`6.5.3
`6.6 Exercise
`6.7 References
`
`99
`101
`102
`106
`111
`114
`114
`114
`117
`117
`117
`117
`119
`119
`121
`122
`131
`132
`133
`134
`1:14
`135
`136
`136
`137
`
`139
`139
`141
`145
`147
`148
`148
`150
`151
`152
`153
`153
`155
`157
`159
`L59
`
`IX
`
`Silver Star Exhibit 1018 - 7
`
`
`
`Content~
`
`Contents
`
`7 Motors
`7.1 Variety Abounds
`7.2 How a DC Motor Works
`7.3 Sizing a DC Motor ...
`7.3.1 Torque, Speed, Power, and Energy
`7.3.2 A Motor Model . . . .
`7.3.3 Speed-Torque Curves.
`7.4
`Gears
`7.5 Motor Data Sheets ...
`7.6 Motors for Rug Warrior
`7.6.1 A Vehicle Model
`7.6.2 Selecting a Motor.
`7.6.3 Converting Servo Motors
`7.6.4 Unmodified Servo Motors
`Interfacing Motors
`. . . . . .
`7.7.1 H-Bridges
`. . . . . .
`7.7.2 Switching Inductive Loads .
`7.7.3 Power Electronics
`7.7.4 Motor-Driver-Power ICs
`Software for Driving Motors ...
`7.8.1 Pulse-Width Modulation.
`7.8.2 Feedback-Control Loops
`References .
`
`7.7
`
`7.8
`
`7.9
`
`8 Power
`8.1 Batteries . . . . . . . .
`8.1.1 Chemistry ...
`8.1.2 Energy Density
`8.1.3 Voltage
`8.1.4 Capacity
`8.1. 5
`Internal Resistance
`8.2 Recharging
`8.3 Power Regulation .
`8.3.1 Avoiding Regulation
`8.3.2 Linear Regulators
`8.3.3 DC-DC Converters
`Isolation . .
`8.4
`8.5 References . . . . . . . .
`
`X
`
`161
`161
`166
`170
`170
`171
`174
`177
`179
`183
`183
`185
`185
`189
`191
`191
`193
`195
`208
`210
`212
`218
`224
`
`227
`227
`228
`231
`231
`232
`233
`233
`234
`234
`235
`236
`238
`241
`
`9 Robot Programming
`9.1 The Traditional Approach
`9.1.1 Computation
`9.1.2 Modeling . . . . .
`9.1.3 Time . . . . . . . .
`9.2 The Subsumption Approach
`9.2.1 Behavior Networks .
`9.3 Rug Warrior's Program ..
`9.4
`Implementing Subsumption
`9.4.1 Processes and Schedulers
`9.4.2 Finite-State Machines
`9.4.3 A Subsumption Formalism
`9.5 Subsumption in IC .
`9.6 What Did We Do?
`9. 7 References
`
`10 Unsolved Problems
`10.1 Navigation.
`10.2 Recognition
`10. 3 Learning
`10.4 Gnat Robots
`10.5 Cooperation .
`10.6 Thoughts
`10.7 Exercise ..
`10.8 References
`
`A Schematics
`
`B Rug Warrior Program
`
`C Yellow Pages
`C.l Suppliers
`C.2 Products .
`
`D Trade Magazines
`
`E Data Books
`
`F Color and ASCII Codes
`
`Bibliography
`
`Index
`
`243
`243
`246
`246
`247
`247
`248
`251
`253
`253
`254
`255
`259
`266
`268
`
`271
`272
`272
`272
`273
`273
`274
`274
`275
`
`277
`
`287
`
`299
`300
`318
`
`321
`
`325
`
`335
`
`337
`
`343
`
`XI
`
`Silver Star Exhibit 1018 - 8
`
`
`
`Preface
`
`The design and construction of mobile robots is as much an art as a science.
`The intent of Mobile Robots: Inspiration to Implementation is to explain the
`skills involved in a manner amenable to as broad an audience as possible.
`Our aim is to teach you, the reader, how to build a robot. With the recent
`wide availability of home computers and the tremendous reductions in costs
`for microelectronics, building mobile robots with an assortment of sensors
`and actuators is within the reach of nearly everyone.
`This book is designed to appeal to readers on a variety of levels. First,
`for novices and those eager to jump in and get their hands dirty, there
`are basic lessons on the tools of the trade and the craft of building things
`and long appendices of suppliers and distributors of interesting robot parts.
`Chapter 2 plunges right in and leads the reader through a tutorial design
`example of possibly the world's simplest robot, but nevertheless a complete
`system. This is TuteBot (for Tutorial Robot), an obstacle-avoiding robot
`comprised solely of two motors, two wheels, two bump switches, and a few
`discrete electronic components. The TuteBot exercise should conjure up a
`plethora of questions and incite the imagination for many ways to make the
`robot better and act more intelligently.
`With TuteBot as a warmup, we then introduce a more sophisticated
`robot based on software control, Rug Warrior. The remaining chapters
`after TuteBot are designed to convey basic knowledge about the building(cid:173)
`block technologies that make up a robot: sensors, actuators, a power sup(cid:173)
`ply, and an intelligence system. The progression of Chapters 3 through 8
`instructs you on how to put together the hardware subsystems of Rug War(cid:173)
`rior: microprocessor-controlled sensors and actuators, the mechanics of a
`locomotion system, and a capable battery supply. Rug Warrior has enough
`sensors and actuators to enable a richer class of behaviors than TuteBot
`(such as chasing people, avoiding obstacles, moving towards noises, hiding
`in the dark, and playing music).
`Our purpose is not to publish a cookbook but rather to put together an
`expose on enough basic skills so that a generation of enthusiasts will not
`
`Silver Star Exhibit 1018 - 9
`
`
`
`Preface
`
`Preface
`
`only widen their imaginations but also have the requisite tools to implement
`those dreams. This is, to us, the real excitement of robotics.
`Chapter 9 of the book is directed at just that issue: How can we put
`all the pieces together to build truly intelligent
`As we add more
`sensors, more actuators, and more software, how do we manage complexity?
`How do we coerce interesting behaviors to emerge? And in the end, how
`can such machines solve useful problems for us? We conclude our book in
`Chapter 10, with some discussion of new directions in artificial intelligence
`and arising technologies that may take these ideas to the next step.
`Although this book is intended to be an exposition on building mo(cid:173)
`bile robots rather than a literature review of the field, we have included
`some annotated references at the end of each chapter, pointing to sources
`of further reading or background of concepts mentioned. There is a full
`bibliography at the end of the book.
`Mobile Robots has grown out of research at the MIT Artificial Intelli(cid:173)
`gence (AI) Laboratory under Rodney Brooks and his mobile robot group.
`The half dozen years that the "mobot" lab has been in existence have seen
`the birth of a wide variety of artificial creatures: some avoid obstacles, some
`collect things, a few wander and build maps, several walk awi climb over
`rough terrain and a tiny one hides in dark corners. ·while the research has
`focused on the issue of how to organize the "insect-level" intelligence of
`these mobile robots, we have found that we have also had to do extensive
`engineering throughout several generations of newly available technology.
`In
`we staged a Robot Talent Show, transferring much of this
`technology to the AI Lab as a whole. Students were given kits of parts
`and computers and were encouraged to pick their own problems and solve
`them. Vacuum cleaners, laser tag-playing robots, autonomous blimps, and
`cross-country skiers were a few of the resulting mechanical participants in
`the talent show. Photographs from that night are included at the end of
`this section. We
`together a robot builder's manual before the event,
`outlining the basics of building autonomous creatures, and handed it out
`to all the students. The idea for this book sprang directly from that first
`manual.
`Our expectations and experiences in building mobile robots over the
`years have not always matched, but the lessons learned have been invalu(cid:173)
`able and we hope to share these with yon. Our method is to give general
`background in each chapter on how different robot subsvstems work and
`then to ground the discourse in specific examples with Ja robot we have
`designed solely for this book as a teaching aid. In this way, specific circuits
`and bits of code are sprinkled throughout, and readers who follow along
`can implement their own robots and see them evolve step
`step. The
`complete system is laid out in one place in the appendices at the end of
`
`xiv
`
`the book. Appendix A gives the schematic for Rug Warrior's brain along
`with all the interface electronics to drive its sensors and actuators and
`pendix B lists a program that defines Rug Warrior's behaviors. T~e ent~re
`robot has been reduced to eight chips and six connectors, a very mmmmhst
`example of a mobile robot.
`.
`.
`Getting started in robotics involves not only learning how to bmld th~ngs
`but knowing where to get materials. The remaining appendices contam a
`compendium of parts, suppliers, and information that we have found help(cid:173)
`fuL Appendix C lists a yellow pages of over 150 suppliers and distributo~s
`for robot parts, such as motors, sensors, prototyping equipment, electromc
`components, and power supplies. Hopefully, this collection will help you
`overcome the inertia of getting started, whether it be in a basement work(cid:173)
`shop or in a university laboratory.
`Technology changes rapidly, and while a book such as this can provide a
`general foundation, it cannot be dynamic enough to provide up-to-date i~
`formation on new product announcements. Staying abreast of technology 1s
`crucial in making design decisions. We have discovered that systems we en(cid:173)
`gineered in house one day would often become commercially available the
`next, or that components we relied on for years would suddenly become
`discontinued, so in Appendix
`we have listed a number of
`trade journals, and electronic bulletin boards that we have found invalu(cid:173)
`able for staying current. (In fact, just as this book is going to press, _the
`microprocessor that we chose for Rug Warrior has gone out of productwn.
`Fortunately, however, the Motorola MC68HC811AO microprocessor men(cid:173)
`tioned throughout is upward compatible with the Motorola MC68HC11Al,
`so simply substitute that part into Rug Warrior.)
`Semiconductor manufacturers' data books are another source of current
`technology; we have annotated our collection in Appendix E. Appendix F
`adds a few more tables that are handy to have in one place, such as the
`resistor color code and the ASCII code for alphanumeric symbols.
`As technology marches on, a book that emphasizes specific hardware
`will quickly become outdated. But the art and the means and the basic
`concepts survive, and these we hope to share with you.
`
`Cambridge, MA
`April, 1993
`
`Anita M. Flynn
`Joseph L. Jones
`
`XV
`
`Silver Star Exhibit 1018 - 10
`
`
`
`The photographs in this section are from the MIT AI Lab's Robot Talent
`Show, which was held in January, 1989. This book is an outgrowth of the
`Robot Bwldmg Manual written for that event.
`
`Here, Lee Tavrow displays his inchworm robot to an appreciative crowd at the
`Robot Olympics.
`
`Mikt> Caine and
`
`Christian built an autonomous blimp.
`
`Lukas Rueker urged on his robot vacuum cleaner.
`
`xvi
`
`Dave Barrett made a few last minute adjustments to his craft in the robot
`boat race.
`
`xvii
`
`Silver Star Exhibit 1018 - 11
`
`
`
`Acknowledgments
`
`Many people have read early drafts of this book and offered helpful com(cid:173)
`ments. We would like to thank Colin Angle, Rodney Brooks, Roger Chen,
`Jill Crisman, CDR H.R. Everett, Dorothy Flynn, Kathleen Flynn, Richard
`Flynn, Douglas Gage, Mattew Good, Ken Good, Tina Kapur, Ken Liv(cid:173)
`ingston, Fred Martin, James McLurkin, Michael Noakes, Lynne Parker,
`Alison Reid, John Richardson, Rick Shafer, Wendy Taylor, William Wells,
`Masaki Yamamoto, and Holly Yanco.
`We appreciate the interest of Bruce Seiger and Don McAleer and their
`students at Wellesley High School, who beta-tested the material in this
`book. We would also like to acknowledge and thank Randy Sargent and
`Fred Martin of the MIT Media Laboratory, who were instrumental in mak(cid:173)
`ing this book possible, both through their efforts in creating new robot
`software development tools and in contributing to the actual manuscript.
`We were fortunate to have the help and encouragement of our publishers,
`Alice and Klaus Peters, who pushed this book to aim for as wide an audi(cid:173)
`ence as possible. We are grateful for the patience, love, and support of Sue
`and Kate during the many days that Daddy was off playing with robots.
`Finally, thanks to all those Robot Olympians whose enthusiasm and
`participation in the Robot Olympics inspired and instigated this book.
`
`Introduction
`
`The rise in popularity of the single-chip microcomputer and the drastic re(cid:173)
`ductions in size and cost of integrated circuits in recent years have opened
`up huge new arenas for creating intelligent systems. Building a robot, how(cid:173)
`ever, requires more expertise than simple programming. A robotici~t m~1st
`be a generalist. The robot designer must own a compendium of bas1c skills
`from fields such as mechanical engineering, electrical engineering, computer
`science and artificial intelligence (AI). Unfortunately, few people have the
`opport~nity to study so broadly. In this book, we attempt to outline a
`few basic ideas from each of those areas and, more importantly, to suggest
`strategies for putting the pieces together. Hopefully, with a little creativity,
`you will be able to later use this toolbox of techniques to design far more
`intriguing machines than those outlined in this book.
`Robotics is about building systems. Locomotion actuators, manipula(cid:173)
`tors, control systems, sensor suites, efficient power supplies, well-engine~red
`software~all of these subsystems have to be designed to fit together mto
`an appropriate package suitable for carrying out the robot's task. Where
`do we start?
`We think of a robot as an intelligent connection of perception to action.
`The implementation of that goal might take on a variety of "costume~,"
`from mechanical logic to microprocessor control to networks of neuronhke
`gates. Our approach is to create abstraction barriers in terms of think(cid:173)
`ing about the intelligent capabilities our robot might possess and then to
`gradually break them down by explaining the specific hardware details th~t
`we might employ to create those competences. The them~ through~ut IS
`to build systems early and build systems often~to start w1th very s1mple
`systems that connect perception to action and to gradually move to more
`sophisticated machines.
`
`Silver Star Exhibit 1018 - 12
`
`
`
`Chapter 1 Introduction
`
`Introduction
`
`playing chess? Is it the reflexive action that occurs as you try to keep the
`gnats out of your eyes while walking down the street on a hot, muggy sum(cid:173)
`mer night? Or is it the common-sense reasoning used in deciding what to
`make for breakfast? We will stick with the notion that mtelligence is the
`foundation for how people act most of the time. It will be interesting to keep
`some of these questions in mind as we investigate the sorts of mechanisms
`we can use to endow our example robots with low-level behaviors.
`Other features of intelligence have to do with the role the environment
`plays in our view of cleverness. How connected are sensing and actuation
`to intelligence? How much of what we acknowledge as complex behavior is
`merelv a reflection of simple behaviors off of a complex environment? For
`insta~ce, if we observe the behavior of ants scurrying around their anthills,
`we might begin to wonder whether their complex paths result from careful
`planning and
`contemplation, or perhaps merely from simple rules of
`behavior acted out in an enviroment full of uneven terrain, obstacles to
`climb over and other ants.
`TuteBot and Rug \Varrior will not answer many of these questions per(cid:173)
`taining to the structure of intelligence, but we hope that they can be the
`platforms for an
`easily attainable AI input/output device-a
`collection of sensors and actuators that provide a little bit of input, a lit(cid:173)
`tle bit of output, and a little bit of computation to readers interested in
`experimenting with some of these issues.
`Many of the modern theories in artificial intelligence grew from work
`in a number of other fields. Cybernetics, in the 1940s and 1950s, was a
`field of research that tried to understand intelligence through the study of
`the control of machines.
`developed in parallel with classical
`control theory. Its model of computation was analog, and it tried also to
`understand intelligence in animals by modeling them as machines. Our
`example of TuteBot is very much in the same spirit as the early work in
`cybernetics.
`For instance, Figure 1.2 illustrates the extent of TuteBot's talents. The
`long dashed lines at the bottom of the figure exemplify one initial behavior,
`where TuteBot moves forward in a straight line until it hits an obstacle.
`It then backs up, turning left for some period, and then proceeds forward
`again in a straightline motion.
`A number of mechanisms could be imagined necessary to achieve this
`behavior. We could suggest contemplative recognition of chair legs and
`walls and TuteBot making explicit decisions concerning when to back up
`and how far to turn, but TuteBot has no such model of the world. Instead,
`TuteBot has a simple analog electrical circuit for a control system, which
`directs TuteBot's two wheels to move it forward until a bump sensor on
`the front detects a collision. The signal from the bump sensor directs both
`
`3
`
`Figure 1.1: TuteBot is a very simple robot, yet it can exhibit two distinct
`behaviors. Here it is trundling down a hallway, following walls. TuteBot's brain
`is an analog computer, which is programmed only by adjusting potentiometers.
`
`Vve start with a tutorial in the next chapter that describes how to build
`a robot, TuteBot, that is able to wander around a room and avoid obstacles.
`This example robot, pictured in Figure Ll, is implemented without recourse
`to a microprocessor. TuteBot is merely an agglomeration of switches, relays,
`motors, and discrete electronic components, all of which can be assembled
`rather easily. You will be able to adjust TuteBot's reflexes by tweaking two
`potentiometers.
`From this very simple example of a robot, we introduce the micropro(cid:173)
`cessor and the advantages of using software to manage the complexity of
`large numbers of sensors and actuators. The viewpoint from this moment
`on is to build systems with the intent of getting to software as soon as possi(cid:173)
`and costs down for our readers, we describe
`ble. To keep parts count,
`minimalist ways to interface sensors, motors, and power supplies in an(cid:173)
`other example robot, Rug Warrior. The microprocessor becomes the heart
`of Rug Warrior, and the following chapters describe the workings of me(cid:173)
`chanical and electrical components and the interface circuitry that enables
`them to be driven from a microprocessor. Software-primitive operations
`are threaded throughout the book as each new perception or locomotion
`system is introduced.
`Although this book describes the details involved in actually building
`robots, we hope also to raise some deeper points about models of intelli(cid:173)
`Is it the contemplative thought involved in
`gence. \Vhat is
`
`2
`
`Silver Star Exhibit 1018 - 13
`
`
`
`Chapter 1 Introduction
`
`Introduction
`
`.... ____ .........
`
`---
`--*
`
`I
`
`I
`I
`I
`I
`I
`
`I
`I
`!....._
`
`'
`
`I
`I
`
`' ' ' ' ' ' '
`
`' ' '
`
`' ' \----
`
`I
`I
`I
`I
`I
`I
`
`'
`
`/
`
`I
`
`I
`
`I
`
`I
`I
`I
`I
`I
`I
`I
`
`' \
`" 1
`
`'
`
`I
`
`I
`\
`
`I
`I
`I
`
`I
`
`'
`
`I
`'-z
`
`1.2: Two TuteBots each displaying a different behavior. Dashed lines
`indicate the paths they have traveled. In one behavior (long dashed
`TuteBot
`moves along a straight path until it encounters an obstacle. It then backs up, turns
`left to change its heading, and proceeds forward again, performing straightline
`navigation.
`In the second behavior (short dashed lines), the robot's forward
`motion forms an arc to the left. When it bumps into an obstacle, the robot backs
`up and turns right; then it arcs to the left once again as it moves forward. vVith
`this strategy, TuteBot demonstrates a wall-following behavior.
`
`4
`
`motors to reverse direction, and ThteBot then backs up. What makes it
`turn is an element of state, or timing, in the system that is implemented
`circuit, one for each wheel. If the RC circuit
`with a resistor-capacitor
`on each wheel is set differently, one wheel will back up for a longer period
`of time than the other wheel, causing ThteBot to turn. When 'I'uteBot
`resumes forward motion, it no longer has the same heading and so avoids
`ramming the obstacle it first bumped into.
`A second behavior can be added to TuteBot using a similar strategy.
`during the forward motion, one wheel is allowed to turn faster than the
`other (for instance, by adding a resistor in series with one motor) TuteBot
`will move in an arc. The short dashed lines at the top of Figure 1.2 illus(cid:173)
`trate this behavior. As TuteBot moves forward, arcing to the left, it tends
`to bump into obstacles. When this happens, the initial obstacle-avoiding
`behavior just described is triggered and TuteBot backs up, turns toward
`the right, and
`forward in a new direction. However, the bias be(cid:173)
`tween the wheels causes the robot to veer off to the left again. The result
`of these two behaviors is that TuteBot tends to follow along the
`of
`clutter. We call this behavior wall following.
`In the 1960s after cybernetics, and with the rise of the digital computer,
`the field of artificial intelligence was born, and with it came computational
`models of intelligence. The contributions of AI to the understanding of
`intelligence were the notions of representation, search, and modularity. In(cid:173)
`formation could be explicitly represented in data structures inside a com(cid:173)
`puter, which could then be searched for the desired answer. Representa(cid:173)
`tions could be more easily formulated, as the model of computation was
`no longer time-varying analog signals, but bits and numbers. This capabil-
`enabled modularity and led to increasingly sophisticated information(cid:173)
`processing systems. Chess-playing programs, expert systems, natural lan(cid:173)
`guage interpreters, and problem solvers were some of the demonstrations
`developed in this era of traditional AI.
`Unfortunately, some of the ideas involved with representation led to
`problems when intelligence systems were designed for machines that in(cid:173)
`teracted with the dynamically changing real world. Traditional AI had
`formulated the problem of robot intelligence as sensing, building a world(cid:173)
`model representation from the fusing of sensor data and then planning
`actions based upon that model. Computational bottlenecks, noisy sensors,
`and the complexity of reality led some researchers to look for new models
`of intelligence that would be robust and would work in real time.
`These new ideas have collectively come to be known as Nouvelle AI
`or behavior-based robotics. Rodney Brooks at the MIT Mobile Robot Lab
`proposed the
`architectltre which is a way of organizing the
`intelligence system by means of layering task-achieving behaviors without
`
`5
`
`Silver Star Exhibit 1018 - 14
`
`
`
`Chapter 1 Introduction
`
`Introduction
`
`recourse to world models or sensor fusion. This book grew directly from
`that research, and Rug Warrior is our example robot that illustrates many
`of the ideas in a subsumption architecture.
`The word subsumption is used to describe the mechanism of arbitration
`between the layers of task-achieving behaviors. Arbitration is the process
`of deciding which behavior should take precedence when many conflicting
`behaviors are triggered. 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 instance, if the lowest-level behavior enables a wandering action
`and the highest-level behavior initiates following light, then normally, the
`robot will wander around, moving along randomly chosen headings. How(cid:173)
`ever, should someone point a flashlight at Rug Warrior, the highest-level
`behavior would trigger, suppressing wandering for the duration of time that
`the flashlight is directed at the robot. Instead of random headings, Rug
`Warrior's wheels would be commanded to turn toward the point of highest
`light intensity and move forward in that direction. If the flashlight were
`turned of!·, the follow-light behavior would no longer be activated and wonkl
`cease subsuming the wandering behavior. Random wandering would then
`resume.
`In order to experiment with a richer set of behaviors than mere wan(cid:173)
`dering and following of lights, we have designed Rug ·warrior to have as
`many different kinds of sensors as possible, within the constraints of trying
`to keep it as simple, and inexpensive as we could. We have built several
`versions of Rug Warrior, each very different from the other. Two are shown
`in Figure 1.3. We think of Rug ·warriors as a class of robots rather than
`an instance. Basically, we will refer to a Rug Warrior as any robot that
`incorporates our electronics (illustrated in Appendix
`but where vehicle
`mechanics and software behaviors may vary widely.
`The Rug Warrior on the left in Figure 1.3 has two drive wheels, which
`enable the robot to spin around its center point, and a passive caster for
`three-point stability. The plexiglas ring around the robot is a
`skirt,
`which is mounted on three switches; this feature tells the robot it has
`bumped into an obstacle. The motors used in this robot came from a surplus
`dealer, and the chassis was made from plexiglas that was
`drilled, and
`punched in a machine shop.
`The Rug \Varrior on the right in the figure, running over this book, is
`a tank-drive robot made from LEGO bricks, gears, axles, and treads. The
`two motors used in this version of Rug Warrior are model airplane servo
`motors, ordered through a hobbyist catalog for
`each (although some
`standard servos are now as low as $10).
`
`6
`
`Figure 1.3: Rug Warriors I and Il, wandering around their environment, bump(cid:173)
`ing into chairs and driving over books.
`
`While the robots look and act rather differently, their electronics are
`the same. The board we have designed (which you can prototype your(cid:173)
`self using Speedwire or Scotchflex prototyping technology, as .discuss~d in
`Chapter 4 or alternatively buy in printed circuit board versiOn as hsted
`in Appendix
`is 3" x 4" in size and contains a Motorola MC68J1_C11AO
`microprocessor, 32K bytes of memory, a serial port, two motor dnvers, a
`piezoelectric buzzer. and a number of sensors. Three .bump sensors de(cid:173)
`tect collisions two near-infrared proximity detectors notice obstacles up to
`one foot awa;, two photoresistors sense light level, a microp~one listens for
`noises, and a pyroelectric sensor detects moving sources of heat (such as
`humans, cats,
`oops, sometimes even fireplaces).
`.
`Figure 1.4 illustrates a day in the life of these Rug Warriors.
`Warrior 1, the wheeled version, moves across the room m a straight hne
`until it bumps into the television set. As it turns left to a new heading, the
`microphone detects a loud noise from the TV, which t~iggers a behavior to
`play "Bicycle Built for Two" on the piezobuzzer. As 1t wanders on, ne.ar(cid:173)
`infrared proximity detectors see an imminent collision and a :vall-followmg
`behavior becomes active. Wall following times out after a few moments,
`and straightline motion resumes. A low-lying (but very in~er~sting) book
`on mobile robots is in the path, but the near-infrared prox1m1ty detectors
`are pointed upward and miss it.
`vVarrior I then drives into the book,
`but the bump skirt detects the collision, causing the robot to back up and
`turn away to a new heading. It catches a peak of light i~tensity
`fr~m
`the doorway, and a follow-light behavior becomes activated. Rug Warnor
`I then leaves the room.
`
`7
`
`Silver Star Exhibit 1018 - 15
`
`
`
`Chapter 1 Introduction
`
`1 References
`
`I
`
`'..., -""'
`
`,,
`1 Wall-following
`~
`behavior is enabled
`by i11fnred sensors
`\
`
`' I
`
`*~
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`\
`\
`I
`i
`I
`I
`I
`I
`I
`I Switch from wall-following
`