`Reconfigurable Multi-Sensor Based Systems
`
`David Bernard Stewart
`
`Submitted in partial fulfillment
`of the requirements for the degree of
`Doctor of Philosophy
`in Electrical Engineering
`
`Department of Electrical and Computer Engineering
`Carnegie Mellon University
`Pittsburgh, Pennsylvania 15213-3890
`
`April 1, 1994
`
`
`
`Copyright © 1994 Carnegie Mellon University
`
`ABB Inc.
`
`EXHIBIT 1004
`
`Page 1 of 196
`
`
`
`
`iiii
`ii
`
`Page 2 of 196
`
`Page 2 of 196Page 2 of 196
`
`
`
`Table of Contents
`
`List of Illustrations......................................................................................vii
`
`List of Abbreviations and Acronyms .........................................................ix
`
`Abstract.........................................................................................................xi
`
`Acknowledgments ..................................................................................... xiii
`
`Chapter 1
`Introduction ...................................................................................................1
`
`1.1 Overview...............................................................................................................1
`
`1.2 Motivation.............................................................................................................1
`
`1.3 Goals and Contributions .......................................................................................4
`
`1.4 Organization of Thesis..........................................................................................5
`
`Chapter 2
`A Review of Related Research .....................................................................7
`
`2.1 Introduction...........................................................................................................7
`
`2.2 Software Reuse for Real-Time Applications ........................................................7
`
`2.2.1 Software Synthesis.......................................................................................7
`
`2.2.2 Interface Adaptation Methods......................................................................9
`
`2.2.3 Object-based and Object-oriented design ..................................................10
`
`2.3 Port automaton theory.........................................................................................11
`
`2.4 Reconfigurable Real-Time Systems ...................................................................12
`
`2.5 Software Architectures for Robotics...................................................................13
`
`2.6 Real-Time Systems Theory.................................................................................14
`
`2.7 Real-time operating systems ...............................................................................16
`
`2.8 Summary .............................................................................................................17
`
`iii
`
`Page 3 of 196
`
`
`
`Chapter 3
`Port-Based Objects......................................................................................19
`
`3.1 Introduction.........................................................................................................19
`
`3.2 Terminology........................................................................................................19
`
`3.3 Port-Based Objects..............................................................................................24
`
`3.3.1 Configuration Verification.........................................................................27
`
`3.4 Control Module Integration ................................................................................28
`
`3.5 Generic Framework of a Port-Based Object.......................................................30
`
`3.6 C-language Interface Specification for Port-Based Objects ...............................35
`
`3.7 Automatic Generation of the C-Language Framework ......................................42
`
`3.8 Reconfigurable Module Specification: The .rmod file .......................................43
`
`3.8.1 Combining Objects ....................................................................................46
`
`3.9 Software Libraries...............................................................................................47
`
`3.10 Dynamic Reconfigurability.................................................................................48
`
`3.11 Summary .............................................................................................................52
`
`Chapter 4
`Software Assembly ......................................................................................53
`
`4.1 Introduction.........................................................................................................53
`
`4.2 Structure of SBS master task ..............................................................................53
`
`4.3 The Subsystem Definition (.sbs) File..................................................................54
`
`4.4 Interface Commands ...........................................................................................55
`
`4.4.1 Command-line interface.............................................................................55
`
`4.4.2 External Subsystem Interface ....................................................................59
`
`4.4.3 Graphical User Interface............................................................................60
`
`4.4.4 Autonomous Program ................................................................................61
`
`4.5 SBS Subsystem Internals ....................................................................................63
`
`4.5.1 SBS Master Task Initialization ..................................................................64
`
`4.5.2 Spawn: creating a new task........................................................................67
`
`4.5.3 Sending Signals to Tasks ...........................................................................68
`
`4.6 Summary .............................................................................................................69
`
`iv
`
`Page 4 of 196
`
`
`
`Chapter 5
`Multiprocessor Real-Time Communication .............................................71
`
`5.1 Introduction.........................................................................................................71
`
`5.2 Review Of A Typical Backplane Configuration.................................................72
`
`5.3 Express Mail .......................................................................................................75
`
`5.3.1 Mailbox Structure ......................................................................................77
`
`5.3.2 Interfacing with the Host Workstation.......................................................82
`
`5.4 Basic IPC ............................................................................................................84
`
`5.4.1 Dynamically Allocatable Global Shared Memory.....................................86
`
`5.4.2 Remote Semaphores...................................................................................87
`
`5.4.3 Prioritized Message Passing ......................................................................88
`
`5.5 Global State Variable Table Mechanism ............................................................92
`
`5.5.1 Implementation Overview .........................................................................94
`
`5.5.2 State Variable Configuration File ..............................................................96
`
`5.6 Inter-subsystem Communication ........................................................................98
`
`5.6.1 Chimera Implementation of TBUF..........................................................101
`
`5.7 Summary ...........................................................................................................102
`
`Chapter 6
`Real-time Scheduling for Reconfigurable Systems ................................103
`
`6.1 Introduction.......................................................................................................103
`
`6.2 Local Real-Time Scheduling ............................................................................104
`
`6.2.1 Rate Monotonic Algorithm ......................................................................104
`
`6.2.2 Earliest-Deadline-First Scheduling Algorithm ........................................105
`
`6.2.3 Maximum-Urgency-First Algorithm (MUF) ...........................................106
`
`6.2.4 Considering Data Flow in Scheduling Priority Assignment....................110
`
`6.3 Timing Failure Detection and Handling ...........................................................113
`
`6.4 Soft Real-Time Tasks .......................................................................................116
`
`6.4.1 Implementation ........................................................................................118
`
`6.5 Aperiodic Servers..............................................................................................119
`
`6.5.1 Aperiodic Servers for the RM Algorithm ................................................120
`
`6.5.2 MUF Aperiodic Servers...........................................................................121
`
`6.5.3 Comparison of Aperiodic Servers............................................................127
`
`v
`
`Page 5 of 196
`
`
`
`6.6 Multiprocessor Synchronization and Communication......................................128
`
`6.6.1 Performance .............................................................................................133
`
`6.7 Automatic Real-Time Task Profiling................................................................136
`
`6.7.1 Implementation ........................................................................................137
`
`6.7.2 Manual Task Timing................................................................................141
`
`6.8 Summary ...........................................................................................................142
`
`Chapter 7
`Generic Hardware/Software Interfaces ..................................................143
`
`7.1 Introduction.......................................................................................................143
`
`7.2 Reconfigurable I/O Device Drivers ..................................................................144
`
`7.2.1 IOD Programmer’s Interface ...................................................................146
`
`7.3 Sensor/Actuator Independent Interface.............................................................152
`
`7.4 Special Purpose Processors...............................................................................155
`
`7.4.1 SPP Objects..............................................................................................156
`
`7.4.2 Chimera SPP Real-Time Executive .........................................................158
`
`7.5 Summary ...........................................................................................................160
`
`Chapter 8
`Fault Detection and Handling ..................................................................161
`
`8.1 Introduction.......................................................................................................161
`
`8.2 Global Error Handling ......................................................................................162
`
`8.2.1 Implementation ........................................................................................163
`
`8.3 Summary ...........................................................................................................164
`
`Chapter 9
`Summary, Contributions, and Future Research ....................................165
`
`Appendix ....................................................................................................169
`
`Bibliography ..............................................................................................173
`
`vi
`
`Page 6 of 196
`
`
`
`List of Illustrations
`
`Figure 3.1: Reusable software control modules within a reconfigurable system ..............20
`
`Figure 3.2: Software framework for reconfigurable systems ............................................22
`
`Figure 3.3: Typical target hardware for a reconfigurable sensor-based control system....25
`
`Figure 3.4: Simple model of a port-based object, also called a control module................26
`
`Figure 3.5: Fanning an output into multiple inputs ...........................................................26
`
`Figure 3.6: Joining multiple outputs into a single input ....................................................26
`
`Figure 3.7: Example of PID joint control. .........................................................................27
`
`Figure 3.8: Structure of state variable table mechanism for control module integration 29
`
`Figure 3.9: Example of module integration: Cartesian teleoperation................................31
`
`Figure 3.10: Generic framework of a port-based object....................................................33
`
`Figure 3.11: Sample control module to be implemented...................................................42
`
`Figure 3.12: Example of reconfigurable module specification (.rmod) files.....................44
`
`Figure 3.13: Example of combining modules: a computed torque controller ...................47
`
`Figure 3.14: Sample control module library......................................................................49
`
`Figure 3.15: Example of visual servoing using inverse dynamics control module ...........50
`
`Figure 3.16: Example of visual servoing using damped least squares control module ...50
`
`Figure 4.1: The client-server model used for implementing the SBS mechanism ............54
`
`Figure 4.2: Structure of Chimera real-time IPC mechanisms............................................64
`
`Figure 5.1: Memory map of express mail buffers for a system with 3 RTPUs. ................77
`
`Figure 5.2: Initial structure of a message queue object. ....................................................89
`
`Figure 5.3: Flowchart of the sender and receiver for triple-buffered communication ...100
`
`vii
`
`Page 7 of 196
`
`
`
`Figure 6.1: Example comparing RM, EDF, and MUF algorithms ..................................109
`
`Figure 6.2: Encoded n-bit Urgency Value .......................................................................110
`
`Figure 6.3: Example of a simple two-task configuration.................................................111
`
`Figure 6.4: The effect of not considering data-flow in real-time scheduling. .................112
`
`Figure 6.5: Average error due to data-flow as a function of the tasks’ periods...............113
`
`Figure 6.6: Sample execution profile of a soft real-time task..........................................116
`
`Figure 6.7: Server size as a function of periodic task utilization
`
`for various aperiodic servers................................................................................128
`
`Figure 6.8: Worst-case schedulable bound as a function of periodic task utilization when
`
`using various aperiodic servers............................................................................129
`
`Figure 6.9: Worst-case schedulable bound as a function of the
`
` server size for various aperiodic servers.............................................................130
`
`Figure 6.10: Configuration for joint teleoperation of a PUMA manipulator...................134
`
`Figure 7.1: Sample PID control loop, demonstrating the use of constants for
`
`configuring a controller to a specific manipulator...............................................153
`
`viii
`
`Page 8 of 196
`
`
`
`List of Abbreviations and Acronyms
`
`ADC
`
`BLK
`
`CF
`
`CFIG
`
`Analog-to-Digital Converter
`
`Block (when used as a prefix)
`
`Cross Reference (“see also”)
`
`Chimera Configuration File
`Reading Utility
`
`CMU
`
`Carnegie Mellon University
`
`CPU
`
`CRIT
`
`DAC
`
`Central Processing Unit (i.e. a
`microprocessor)
`
`Criticality
`
`Digital-to-Analog Converter
`
`DDARM Direct Drive Arm [27], [78]
`
`DH
`
`DOF
`
`EDF
`
`Denavit-Hartenberg Robot
`Parameters
`
`Degrees of Freedom
`
`Earliest-Deadline-First
`
`ENET
`
`Chimera Ethernet Interface
`
`FIFO
`
`First-In First-Out
`
`FPA
`
`Floating Point Accelerator
`
`FREQ
`
`Frequency
`
`HPF
`
`HZ
`
`Highest Priority First
`
`Hertz (cycles per second)
`
`INCONST Input Port Constant
`
`INVAR
`
`Input Port Variable
`
`I/O
`
`Input/Output
`
`IOD
`
`IPC
`
`LAN
`
`Input/Output Device
`
`Interprocessor Communication
`
`Local-Area Network
`
`LIFO
`
`Last-In First-Out
`
`MAX
`
`MDS
`
`Maximum
`
`MUF Deferrable Server
`
`MEM
`
`Memory or Memory Board
`
`MEZ
`
`MIN
`
`Measured
`
`Minimum
`
`MSEC Milliseconds
`
`MSG
`
`MSS
`
`Message
`
`MUF Sporadic Server
`
`MUF
`
`Maximum-Urgency-First
`
`NDOF
`
`Number of Degrees of
`Freedom
`
`OODB
`
`Object Oriented Database
`
`OOPL
`
`Object Oriented Programming
`Language
`
`OS
`
`Operating System
`
`OUT-
`CONST
`
`Output Port Constant
`
`OUTVAR Output Port Variable
`
`PIO
`
`Q
`
`Parallel Input/Output
`
`Joint Position
`
`ix
`Page 9 of 196
`
`
`
`Q^ or QD “Q-dot”, Joint Velocity
`
`R&A
`
`Robotics and Automation
`
`RCB
`
`RDS
`
`REF
`
`RIPE
`
`Robot Control Board
`
`RM Deferrable Server
`
`Reference
`
`Robot Indepent Programming
`Environment [42]
`
`RM
`
`Rate-Monotonic
`
`RMMS
`
`RMOD
`
`Reconfigurable Modular
`Manipulator System [54]
`
`Reconfigurable Software
`Module
`
`RMW
`
`Read-Modify-Write intrusction
`
`RPC
`
`Remote Procedure Call
`
`RSS
`
`RT
`
`RM Sporadic Server
`
`Real-time
`
`RTOS
`
`Real-Time Operating System
`
`RTPU
`
`Real-Time Processing Unit
`(i.e. a Single Board Computer)
`
`SAI
`
`SBS
`
`SEM
`
`SHM
`
`SIG
`
`SIO
`
`SPP
`
`Sensor-Actuator Interface
`
`Chimera Subsystem interface
`mechanism
`
`Semaphore
`
`Shared Memory
`
`Signal
`
`Serial Input/Output
`
`Special Purpose Processor
`
`STASK
`
`Subsystem Task
`
`SVAR
`
`State Variable
`
`TAS
`
`Test-and-set.
`
`TBUF
`
`Chimera Triple-buffer
`Communication Mechanism
`
`USEC
`
`Microseconds (also µsec)
`
`X
`
`Cartesian Position (SVAR
`prefix)
`
`X^ or XD “X-dot” Cartesian Velocity
`(SVAR prefix)
`
`XM
`
`Express Mail
`
`x
`
`Page 10 of 196
`
`
`
`Abstract
`
`Development time and cost of software for real-time multi-sensor based systems can be sig-
`
`nificantly reduced by reusing software from previous applications. With today’s systems,
`
`however, even if some software is reused, a large amount of new code is still required to
`
`create the “glue” which integrates modules created by programmers at different sites.
`
`In this dissertation, the design and analysis of reconfigurable real-time software which sup-
`
`ports a software assembly paradigm is presented. The primary contributions of the work are
`
`a framework based on modelling software modules as dynamically reconfigurable port-
`
`based objects; and the identification, design, and implementation of operating system ser-
`
`vices required to support the new paradigm.
`
`A port-based object combines the design of software using objects with the use of the port-
`
`automata theory for formally modelling concurrent processes. Each object executes asyn-
`
`chronously, and has a predefined set of methods. Communication with other objects occurs
`
`only through its ports, which are implemented as state variables within a distributed shared
`
`memory hardware environment. The operating system services that have been designed
`
`and implemented to support the integration of reconfigurable port-based objects without
`
`the need for writing or generating new glue code include a global state variable communi-
`
`cation mechanism, multiprocessor subsystem control, automatic task profiling, reconfig-
`
`urable device drivers, global error handling, and external subsystem interfaces.
`
`In order to support the real-time scheduling of these dynamically reconfigurable task sets,
`
`a mixed-priority algorithm has been developed which combines the advantages of the rate
`
`xi
`
`Page 11 of 196
`
`
`
`monotonic and earliest-deadline-first algorithms, and provides improved support of aperi-
`
`odic servers and guarantees for soft real-time tasks.
`
`Our reconfigurable software has been demonstrated in a joint Sandia National Laboratory
`
`and Carnegie Mellon University virtual laboratory demo, and is already being used by sev-
`
`eral institutions including NASA’s Jet Propulsion Laboratory, Wright Patterson Air Force
`
`Base, and NIST (National Institute of Standards and Technology).
`
`xii
`
`Page 12 of 196
`
`
`
`Acknowledgments
`
`In the last several years that I have studied at Carnegie Mellon, I have accumulated a large
`
`list of people whom I would like to thank for their help, support, and friendship.
`
`First, I would like to thank my advisor, Pradeep Khosla, for standing behind me the entire
`
`way, even though many of my ideas represented a radical change from traditional research
`
`in robotics. Not only did Pradeep provide guidance for me through my Masters and Ph.D.
`
`work, but he has also been a great publicist, giving me valuable exposure to the “real
`
`world.” I would also like to thank my undergraduate advisor at Concordia University, Rajni
`
`Patel, for encouraging me to apply to Carnegie Mellon, and hooking me up with Pradeep.
`
`Looking back through the years, I feel that coming to Carnegie Mellon is the best decision
`
`I could have made. I would also like to thank my committee members Takeo Kanade, Zary
`
`Segall, Jon Peha, and Samad Hayati for all of their useful comments and recommendations,
`
`as well as Mary Shaw, Ragunathan Rajkumar, Jay Strosnider, and Dan Katcher for their
`
`constructive criticism on draft copies of my technical reports and papers.
`
`I am extremely grateful to Debbie Scappatura for all of the time and work she contributed
`
`to making my life as a graduate student much easier, even though she was under no obliga-
`
`tion to do any of it. She and the other Porter Hall secretary and very good friend, Beth Cum-
`
`mins have also been great in bringing life to Porter Hall through their unique view of all of
`
`us engineers. I sincerely wish the best to both Debbie and Beth in finding an “I told you
`
`so.” I would like to thank Takeo’s secretaries Pauletta Pan and Carolyn Kraft for their help
`
`through the years. I am also grateful to Lynn Phillibin and Elaine Lawrence from the grad-
`
`uate office who continually provided guidance, especially in my first year at Carnegie Mel-
`
`lon when I was a lost puppy wandering aimlessly through the halls of Hammerschlag.
`
`xiii
`
`Page 13 of 196
`
`
`
`Three months after I started at Carnegie Mellon, I remember telling my Dad that I felt that
`
`I did not belong here, as everybody around seemed so much more knowledgeable and ex-
`
`perienced than me. That quickly changed in the spring of 1989 when I met and began to
`
`work with Don Schmitz and Rich Volpe. Don had developed Chimera, and with him we
`
`worked on the initial designs of Chimera II. Although Don left Carnegie Mellon shortly af-
`
`ter, the many hours of meetings every day got me up to par with the design and implemen-
`
`tation of real-time operating systems. Rich was not only a colleague but a great friend. As
`
`a colleague we spent many late hours in the lab, discussing the needs and requirements of
`
`a software environment for robotics. The origins of the reconfigurable software methodol-
`
`ogy presented in this dissertation came from those meetings with him. As a friend, we hung
`
`out regularly and explored many places in Pittsburgh and surrounding areas. Even now that
`
`we live on opposite ends of the continent we still get together yearly to catch up and remi-
`
`nisce about old times and old girlfriends.
`
`I would like to thank my friend and office-mate Matthew Gertz who was the first person,
`
`and may be the only person, to ever read through this dissertation word-for-word cover-to-
`
`cover. We spent several years working together, and I have to thank him for developing On-
`
`ika which provides a colorful way for me to show off my work! He was also the source of
`
`many interesting stories over the years which broke the monotony of spending countless
`
`hours in the office, even though his puns are sometimes worse than my jokes. I would like
`
`to thank my other office-mates through the years: Wayne Carriker, Dean Hering, Marcel
`
`Bergerman, Fred Au, and Arun Krishnan. They provided a very friendly and often amusing
`
`atmosphere in Porter Hall B51. Many thanks to Matt Vea as well, who was my original of-
`
`fice-mate in the dungeons of Porter Hall before the big move, and who taught me all of the
`
`ins and outs of life at Carnegie Mellon.
`
`I would like to thank all the other members of the Advanced Manipulators Laboratory, in-
`
`cluding Nikolaous Papanikolopoulos, Chris Paredis, Brad Nelson, Richard Voyles, Dan
`
`Morrow, Anne Murray, Raju Matikalli, Eric Hoffman, Ben Brown, Todd Newton, and
`
`Mark Delouis, who constantly provided feedback to me about Chimera and the reconfig-
`
`xiv
`
`Page 14 of 196
`
`
`
`urable software, provided hardware support, and put up with constant revisions and bugs
`
`that creeped up during the initial test versions of the software. I would like to thank Darin
`
`Ingimarson for coming to Carnegie Mellon and taking over the grunt work in maintaining
`
`and continuing to develop Chimera so that my work will live on beyond my stay as a grad-
`
`uate student. He is not only an excellent engineer, but a great friend. I would also like to
`
`thank his wife Carolyn for the delicious dinners that she made during holidays when I could
`
`not be with my family back home.
`
`While in Pittsburgh I have met many new people and made many friends. I would like to
`
`extend a heartfelt thank you to those friends for making these years my most memorable
`
`ones, especially to Becks Anderson, Bryce Cogswell, Amy Evans, Jill Hackenberg, Linda
`
`Helble, Maral Halajian, Machele Jaquai, Dipti Jani, Padma Lakshman, Jonathan Luntz,
`
`Parastu Mehta, Julie Reyer, Michael Schwartz, Dana Siciliano, and Joni Tornichio. I also
`
`want to thank one special friend, Laurie McNair, for all of our TB dinners and long talks.
`
`She was great for cheering me up when I was down, giving me a women’s point of view,
`
`and being a great listener whenever I needed to confide in someone.
`
`Pinball is my greatest diversion from the everyday dealings of work at Carnegie Mellon. I
`
`used the sport to meet new people, relieve any stress built up at school, as a fun pasttime,
`
`and to satisfy my competitive urges. I would like to acknowledge my pinball buddies, who
`
`are all great friends and were always ready to play whenever I needed to get away from the
`
`office, including Robert Chesnavich, Ellen Frankel, Nancee Kumpfmiller, Jennifer Merri-
`
`man, Bill Kurtz, Steve Zumoff, Leslie Donovan, Jacki Hays, Kim McGuire, Melissa Scha-
`
`fer, and Paul Sonier. I would also like to thank them for their support which propelled me
`
`to a second place finish at the 1994 World Pinball Championships.
`
`I would like to thank the many organizations who have provided financial support for my
`
`research, including the Electrical and Computer Engineering Department and The Robotics
`
`Institute at Carnegie Mellon University, The Natural Sciences and Engineering Research
`
`Council (NSERC) of Canada, The Jet Propulsion Laboratory, NASA, ARPA, and Sandia
`
`National Laboratories.
`
`xv
`
`Page 15 of 196
`
`
`
`Over five years ago I left my entire family to come to Pittsburgh. I would like to thank both
`
`the Propoggio family and the Pelaia family for making me part of their families.
`
`Finally, and most importantly, I must thank my immediate family for their continued sup-
`
`port and encouragement, which gave me the motivation and confidence necessary to com-
`
`plete my studies. In deepest appreciation, I dedicate my work and this dissertation to my
`
`Mom, Theresa, my Dad, John, and my brothers Andrew, Peter and John.
`
`xvi
`
`Page 16 of 196
`
`
`
`Chapter 1
`
`Introduction
`
`1.1 Overview
`
`This dissertation addresses the software engineering of real-time systems as applied to
`
`multi-sensor based systems which are implemented in a multiprocessor environment. We
`
`present a comprehensive domain-specific software framework for the design and analysis
`
`of reconfigurable real-time systems, which can be used as the basis for software assembly.
`
`The framework includes software models for control modules, sensors, actuators, I/O de-
`
`vices, and special purpose processors. It includes analytical models for real-time schedul-
`
`ing of hard and soft real-time tasks, aperiodic servers, and communication mechanisms.
`
`System services have been incorporated into a real-time operating system in order to ease
`
`the development of multiprocessor applications, automatically profile user tasks, generate
`
`and handle various user and error signals, and communicate with external subsystems and
`
`hypermedia user interfaces.
`
`The remainder of this chapter is organized as follows: we first present the motivation for
`
`our research in Section 1.2. The goals and contributions of this work are summarized in
`
`Section 1.3. Finally, in Section 1.4, the organization of the rest of this dissertation is out-
`
`lined.
`
`1.2 Motivation
`
`Transfer and reuse of real-time application software is difficult and often seemingly impos-
`
`sible due to the incompatibility between hardware and systems software at different sites.
`
`This has meant that new technology developed at one site must be reinvented at other sites,
`
`if in fact it can be incorporated at all. Technology transfer, therefore, has been a very ex-
`
`pensive endeavor, and the reuse of software from previous applications has been virtually
`
`non-existent.
`
`1.1 Overview
`
`1
`
`Page 17 of 196
`
`
`
`For example, a user developing a real-time application may be in need of a specific soft-
`
`ware algorithm developed elsewhere. Currently, users may go to the library or search
`
`through the network for keywords, then find a book or journal article describing the math-
`
`ematical theory or computer science algorithm, and perhaps also providing a description of
`
`their implementation. After they have printed a copy of the paper, they read the article
`
`closely, then spend significant time writing, testing, and debugging code to implement the
`
`algorithm. Once that is done, they write more code to integrate the new algorithm into their
`
`existing system, and perform further testing and debugging. This process can easily take
`
`days or weeks of the person’s time for each algorithm needed for their application, and thus
`
`take many months to complete the programming of an entire application.
`
`The ultimate application programming environment, however, would allow for complete
`
`software reuse and the ability to quickly transfer technology from remote sites. There
`
`would exist a global distributed software library based on the information super-highway,
`
`similar to the hypertext information system currently available through Mosaic. The user
`
`who needs the algorithm searches the library to find the appropriate book or article as they
`
`do today. However, when they find a suitable article, they not only get the theory from the
`
`article, but they can also follow a link to a reusable software module created by the authors
`
`with the algorithm already programmed and fully tested and debugged. With an action as
`
`simple as a mouse-click, that software algorithm is copied into the user’s personal library,
`
`and is ready to be used in their application. This process takes a few minutes at most. The
`
`user can then assemble their software application by putting together these software build-
`
`ing-blocks through use of a graphical user interface. Within hours, a complete application
`
`could have been assembled, as compared to the months that it would take using conven-
`
`tional methods.
`
`These capabilities directly lead to the development of virtual laboratories, wherein applica-
`
`tions for a sensor-based system located at a particular location can be created by assembling
`
`software modules designed at other sites, and executed in combination upon a hardware
`
`setup at yet another site. Ultimately, such systems will lead to the development of rapidly
`
`deployable systems and virtual factories, wherein sensor-based applications can be per-
`
`2
`
`Chapter 1. Introduction
`Page 18 of 196
`
`
`
`formed remotely, using network-accessible time-shared facilities, from sites which other-
`
`wise would lack the necessary resources to accomplish the task. [17]
`
`The transition from current programming practices to supporting the desirable environment
`
`outlined above for developing multi sensor-based systems can only occur if the following
`
`two issues are resolved:
`
`• Development of reconfigurable software modules, and
`
`• Automatic integration of these modules.
`
`A reconfigurable software module is defined as being both modular and reusable, and im-
`
`plemented such that it is independent of the target application and independent of the target
`
`hardware setup [68]. Software that is stored in a global library and made available for im-
`
`mediate use by others must have these characteristics. Solving this issue involves develop-
`
`ing models and in