
Designing Autonomous Mobile Robots
John Holland
Contents
Foreword xiii
What’s on the CD-ROM? .xv
SECTION 1 – Background Software and Concepts . 1
Chapter 1: Measure Twice, Cut Once 3
Determinism . 3
Rule-based systems, state-driven systems, and other potential tar pits . 4
Defining an open architecture . 10
Chapter 2: A Brief History of Software Concepts 11
Assembly language . 12
Early conventional languages . 13
Compilers vs. interpreters 15
The GUI revolution . 17
The great rift 18
Object-oriented programming . 18
Robots and robot subsystems as objects . 20
Network languages . 21
Chapter 3: The Basics of Real-time Software (For Mere Mortals) . 23
Threads . 23
Interrupts and stacks 24
Context . 26viii
Contents
Kernels and tasks 28
Task switching 31
Interrupt events 31
Time slicing 32
Reentrance . 32
Interrupt masking and interrupt priority . 33
Inter-task communications 34
Visual Basic and real-time controls 35
VB events . 35
DoEvents 35
Freddy as a VB form . 38
Modal controls . 40
Some other tips on using VB for real-time applications . 40
Setting up a structure . 40
Creating a library 41
Chapter 4: Thinking More Clearly Through Fuzzy Logic . 45
Trapezoidal fuzzy logic 49
Fuzzy democracy . 50
Adaptive fuzzy logic 51
Weighting trapezoids in response to other parameters 51
Multipass and fratricidal fuzzy logic . 53
Summary . 54
Chapter 5: Closed Loop Controls, Rabbits and Hounds . 55
Basic PID controls 58
Predictive controls . 63
Combined reactive and predictive controls . 64
Various PID enhancements 65
Robot drive controls . 69
Tuning controls 73
Rabbits chasing rabbits . 75
Conclusions 75ix
Contents
Chapter 6: Communications and Control 77
Popular networks 77
Rigid protocols and other really bad ideas . 81
Flexible protocols . 85
Communications architectures 88
Wrappers, layers, and shells . 89
Drivers, OCXs and DLLs . 93
Improving communications efficiency . 95
Timing issues and error handling . 99
Other issues 103
SECTION 2 – Basic Navigation . 105
Chapter 7: Basic Navigation Philosophies 107
The academic school of thought 107
The industrial school of thought . 109
Area coverage robots 109
Virtual path following vs. goal seeking 111
A practical starting point and “a priori” knowledge 115
Chapter 8: Live Reckoning . 117
Understanding why good dead reckoning is crucial 120
Picking coordinate systems 121
Tick calculations . 122
Live reckoning interaction with other processes . 126
Chapter 9: The Best Laid Plans of Mice and Machines . 127
Path planning and execution . 128
Are we there yet? 130
Running on . 132
Bread crumbs and irregular path following 132
The Z axis, maps, and wormholes 134
Summary . 135x
Contents
Chapter 10: Navigation as a Filtering Process . 137
Filtering for the truth . 137
The importance of uncertainty 138
Modeling uncertainty . 140
Reducing uncertainty . 143
Learning to be accurately uncertain 144
Uses of uncertainty . 144
Chapter 11: Hard Navigation vs. Fuzzy Navigation 145
Sensor data and maps . 145
Navigation features 147
Hard navigation 149
The concept of fuzzy navigation 151
Other profiles . 164
The referenced state . 165
Reducing uncertainty . 166
Chapter 12: Sensors, Navigation Agents and Arbitration . 169
Sensor types 169
Guidelines for selecting and deploying navigation and
collision avoidance sensors 178
Navigation agents . 186
Agent properties and methods . 186
Arbitration and competition among agents 187
Who to believe . 188
Changing one’s mind 189
Summary . 189
Chapter 13: Instilling Pain, Fear and Confidence . 191
Pain and annoyance . 191
Virtual pain . 191
Avoiding pain and humiliation 194
The purpose of virtual confidence . 198xi
Calculating virtual confidence . 200
Summary . 207
Chapter 14: Becoming Unstuck in Time 209
Getting past sequential thinking . 209
Thinking of a mobile robot as multiple robot time-places 214
Managing the time dimension . 217
Chapter 15: Programming Robots to Be Useful 219
Preprogramming vs. teaching paths . 219
Embedding data into maps . 222
Map interpreters . 223
Events and targets 224
Text-based programming 226
Graphical generation of text programs 231
Conclusions 237
Chapter 16: Command, Control, and Monitoring 239
Unmanaged and self-managed systems 240
Ping-pong job management . 242
Dispatched job management 243
Exceptions 248
Exception decision making 251
Expert assistance . 253
Status monitoring . 254
Taking control 255
Some GUI rules 257
Robustness and context preservation 261
Conclusions 261
Chapter 17: The Law of Conservation of Defects
and the Art of Debugging . 263
The law of conservation of defects 263
The art of debugging 267
Contentsxii
Types of bugs . 272
Summary . 274
Chapter 18: “What the Hell Happened?” 275
Logging . 278
Data mining using relational techniques . 282
Incident reporting 290
Summary . 294
Chapter 19: The Industry, Its Past and Its Future 295
The history of robotics . 296
The mobile robotics industry . 300
Industry segmentation for autonomous mobile robots 302
The government sector 309
Why aren’t the robots here yet? . 318
The future . 321
Appendix: Referenced Laws and Formulas . 325
Law of Sines and Law of Cosines . 325
Simple 2D Vector Addition . 326
Linear Regression . 327
About the Author . 329
Index
كلمة سر فك الضغط : books-world.net
The Unzip Password : books-world.net
تحميل
يجب عليك التسجيل في الموقع لكي تتمكن من التحميل
تسجيل | تسجيل الدخول