throbber
JOSEPH L. JONES
`ANITA M. FLYNN
`
`Inspiration to
`Implementation
`
`Silver Star Exhibit 1018
`
`
`Silver Star Exhibit 1018
`
`

`

`1)ADOAUERAA*“UN-959-300*
`
`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
`I back to st

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket