State machine analysis of sensor data from dynamic processes6668203Abstract A state machine model analyzes sensor data from dynamic processes at a facility to identify the actual processes that were performed at the facility during a period of interest for the purpose of remote facility inspection. An inspector can further input the expected operations into the state machine model and compare the expected, or declared, processes to the actual processes to identify undeclared processes at the facility. The state machine analysis enables the generation of knowledge about the state of the facility at all levels, from location of physical objects to complex operational concepts. Therefore, the state machine method and apparatus may benefit any agency or business with sensored facilities that stores or manipulates expensive, dangerous, or controlled materials or information. Claims We claim: Description BACKGROUND OF THE INVENTION
TABLE 1
Drive Car to Work // The root process
Start Car // A process which can be declared
Put foot on brake // An activity
Put key in ignition // Another activity
Turn key to on // Another activity
Drive Car // Another declarable process
As required, put in reverse // May need to back out of the
driveway
Accelerate // Assume we have an automatic shift
As required, stop // Need to allow some observance of
traffic signals
Stop Car // Another declarable process
Shift to Park // An activity
Turn key to off // An activity
The processes outlined in Table 1 are the first two levels. The activities are shown in the third level, but are not limited to the third level. An activity may be made up of other activities, nested as deeply as necessary. The term "application object" refers to an object known in the user's domain. Fuel bundle, hot cell, breakbeam sensor, state-of-health of the breakbeam, integrity of the sensor data, safety performance measures, and security of critical materiel are examples of application objects. If an application object is modeled for KG, it will normally be assigned an initial state that can be modified by events. An application object can both receive and send events. There should generally be one state machine for each application object. In general, the state of an application object falls into one of five categories of increasing complexity: locations of physical objects (robot at door, bundle in tray, flasks on table, etc.); conditions of physical objects (flask welded, tray filled, etc.); conditions in the health of physical objects (breakbeam failed, network reliability failing, etc.); process states (move to silo complete, box assembly stalled, etc.); and concept states (security uncompromised, safety OK, system integrity suspect, etc.). Typically, the state machines of the lower categories feed events to the state machines of the higher categories, indicating advancement from one state to the next state at the higher level. The term "Analysis Engine" refers to the software core of the KG process. This is the software which reads in the events detected in the sensor data. It uses these events to drive the state machine models that describe the facility and its processes. The Analysis Engine determines when an "actual process" has started and when it ends. The term "concept" refers to an operational model for the facility. Each facility has predefined goals that, at some level, describe how successful operations at the facility have been. For example, an oil burning power plant inspector might want to monitor how efficiently it is using the oil. A weapons bunker inspector might track the integrity of its sensor system or some measure of likelihood of weapons diversion. An inspector of a facility forming nuclear material products might want to monitor safety of operations, or how closely procedures were executed. The term "declaration" refers to the assertion (in the process declarations file) that an expected process was performed, along with the conditions specified that apply to that process (number of times it must occur, absolute time boundaries, relative time boundaries). The term "destination" refers to the intersection of an event with a state in a state machine matrix. At any given time there may or may not be any object in the state associated with a destination. Typically, there are many destinations associated with a state; there is one destination for each event that can occur while an object is in the specified state. The destination file instructs the state machine which operations will be performed when an event happens and there is an object in the state defined by the destination. The "Destination Description Language" is a computer language that is used to build the facility models. It has many of the constructs found in a general utility computer language (IF. . . THEN . . . ELSE, for example). It also has special statements that understand how to handle process models, facility layouts, sensor system characteristics, and state machine logic, timers, etc. An "event" as used herein may be either an internal or external event. An external event is an indication that the state of the system being monitored has changed. Likewise, an event corresponds with a change of state in the objects or processes being modeled. In general, events will be significant in terms of advancing the processes within the state machine for the facility. External events are delivered to the facility state machine via the Event Generator. The facility state machine itself generates internal events. These internal events may be created by commands from the destination file (e.g., SEND event command) or as a result of changes in the state of the system (timer events, internal communication events, etc.). The "Event Generator" is the device that reads the raw sensor data and converts the raw sensor data into events. It marks the raw sensor data with important points that indicate transitions in the state of the monitored processes. These points are the events. Once the events have been determined, they are delivered to an Analysis Engine to drive the facility state machine models. The term "event rule" refers to the conditions that must occur before an event can be said to have occurred. The Event Generator examines sequences of data points and places marks on the data when certain conditions are fulfilled (e.g., local high, transition below a specified level, etc.). Similarly, when marks on the data with the right characteristics occur in the right order, an event is said to have occurred. The event rules define the sequence of marks that must occur to produce an event. The term "Facility State Machine" is the model of the facility that is constructed for KG. It is built like a state machine and it defines the processes that can occur at the facility. The Facility State Machine tracks the states and locations of all of the objects that are used during operation of the facility. It also models any rules and regulations that must be observed. It can also model concepts like safety, security, integrity, confidence levels, etc. The term "interval" is used herein in its conventional sense as a defined period of time. The Event Generator uses a defined interval of time when it is checking curve characteristics to see if the conditions needed to create a mark have been fulfilled. The facility site expert must define the length of all intervals as part of the facility model (within the event rules). The term "Knowledge Generation" refers to the ability to extract high level knowledge about dynamic processes that were performed at a facility from very low-level sensor data. The term "mark" refers to a curve characteristic determined by the nature of the curve (e.g., peak, valley, rise, fall, level, etc.). A mark meets a predetermined characteristic defined by the expert. The Event Generator combines marks in a defined fashion to determine whether or not an event has occurred. The term "point" refers to a data point and is one sensor report at one time. A point may have more than one value associated with it. The Event Generator may combine information from many sensor data points to determine whether or not a mark has occurred. The term "process" means a convenient aggregation of activities. It is used in four different ways: Dynamic processes. These are the processes that occur at a facility that is being monitored by the sensor system. Defined processes. These are the processes that are defined within the state machine model of the facility. These are the "allowed" processes. Actual processes. These are the processes that were detected by the KG Analysis Engine as having actually occurred during the period of interest. Declared processes. These are the processes that were expected during the period of interest that is being analyzed. The term "sensor" refers to any device that detects changes of state in either the dynamic processes or objects being monitored. The term "state" refers to the specific physical or abstract condition of an object being tracked by the user. When an object is created, its initial state must be specified. The state of an object may be changed when an event happens. The term "variable" refers to a named value declared and maintained by the instructions in the state machine. A variable might track the number of times that a door was opened, or the level of fluid in a tank, or the confidence that a process is being performed safely. The user may declare a variable at any time from within the destination file and set its initial value at declaration. The user may change the value of a variable based on the current situation or the value of other variables. The Analysis Engine maintains variables per instructions given in the Facility State Machine 2. Description of One Embodiment The KG system for automating the analysis of large quantities of raw sensor data comprises modeling the system processes and the associated sensor suites with finite state machines, comparing the actual processes against a set of expected processes, and identifying concurrences and discrepancies between the set of expected processes and those processes that actually happened at the facility being monitored. a) Initial Requirements for the KG Analysis There are four initial requirements to perform a KG analysis. The analysis must be able to: (1) Characterize the raw sensor data (in all forms of discrete, analog, or spectrum) so that process transition points ("events") can be identified within the sensor data. The KG system does this by allowing the user to specify a number of marks (absolute values, rise above a certain value, signal level for a defined period, many others) and to combine the marks to identify when an event has occurred. At this level, there is only simple information about the processes being monitored; points in the curve are identified, which identify transition points in the states of the monitored processes. This ability to detect "significant" transition points has the additional benefit of decreasing the sheer amount of raw sensor data that must be processed. (2) Handle a plurality of dynamic processes that are going on simultaneously, and to track and advance the states of potentially many objects affected by those processes. To accomplish this, the events identified in the previous step are compared according to their ordering, relative magnitudes, and timing between them. Actual activities are then assembled from templates that describe the allowed activities. Those event sequences that meet the requirements specified by the template activities are classified as actual activities--those that actually occurred. The actual activities are then grouped using structures defined within the state machines into larger, inspector visible and comprehensible actual processes. To do this, the applicable parts of the following facility characteristics are modeled within the state machine: attributes of the sensors themselves (the meaning of interrelated sensor states, timings, event sequencing, etc.). process goals and constraints (how much needs to be produced, by when, using what equipment, operators, resources, etc.), physical layout of the facility (including space and time constraints), and safeguards and operational rules that apply to the processes (safety, security, sensor system health, etc.). (3) Describe the allowed processes and operations of a facility in a machine interpretable language. A unique process-description language was developed which allows a facility expert to model the objects within the facility (application objects), the processes which are allowed (if desired, illegal operations can also be modeled), and concepts which are not normally tracked dynamically during process execution (for example, safe operation, security at all stages, likelihood of diversion, integrity of the sensor system itself, etc.). This language is referred to as the Destination Description Language. Each destination (intersection of an event with a state) in the state machine is modeled using this language. As events arrive at the state machine from the interpreted raw sensor data, the events transition objects from one state to another within the state machine. How an object transitions through its sequence of states, how processes are assembled from the sequences of object states, and how concepts (safety level, security, etc.) are computed are all defined for each destination by this process language. (4) Construct and operate a state machine that describes a significant (in terms of the number of allowed states) facility without forcing the inspector to describe each of the huge number of possible states. The Analysis Engine, which runs the Facility State Machine, handles the processing of all destinations (potentially hundreds of thousands) that are not explicitly declared by the inspector. The Destination Description Language allows the inspector to declare only the states in which he is interested. These declared states would typically be: all useful states for the application objects (things which the user cares about in terms of his processes); states which describe how the application objects interact (e.g., a breakbeam activation might indicate that the location of a passing object had changed); and outlying states and sequences (e.g., states and sequences that might indicate diversion of hazardous materials could be explicitly defined). b) The Knowledge Generation System A block diagram of the functions required to perform a KG analysis is shown in FIG. 1. For the KG system to analyze what processes actually occurred at a facility it is preferred: to have available the full set of raw sensor data RSD from the dynamic processes being monitored; to know how to convert the raw sensor data RSD into events E according to event rules ER in an Event Generator EG that drives an Analysis Engine AE; and that the Analysis Engine AE know how each event E advances the state of the objects in the Facility State Machine FSM that models the allowed, defined processes through the destination definitions DD. If desired, a Process Comparison Engine PCE can be given a declaration of what processes were expected to be performed at the facility (the declared processes DP). If such a process declarations file PD is available, the Process Comparison Engine PCE can compare the list of actual processes AP--those that the Analysis Engine AE determined actually occurred--against the declared processes DP. Both the normal and abnormal process behaviors are then output to the inspector through a User Interface UI. (1) Definition of the Event Rules Prior to performing a KG analysis, the event rules ER for the facility should preferably be defined. The facility characteristics FC of sensor attributes, process goals, facility layout, safeguards, and operational rules contribute their relevant information to the construction of the Process Model PM. The Process Model PM is used to construct event rules ER that describe how the Event Generator EG should interpret the raw sensor data RSD coming from the sensors and convert the raw sensor data RSD into events E. In a nuclear power plant, for example, if a gamma sensor rises from 0 mrem/hr to 250 mrem/hr, the Event Generator EG might include an event rule ER that said "when the gamma sensor rises about 200 mrem/hr that means the lid on the flask has been removed." The events E that are generated in the Event Generator EG are transmitted to the Analysis Engine AE. Discrete sensors tend to have fairly straightforward event rules. Raw sensor data indicating "break-beam activated" could translate into the event "cart moved past break-beam." Analog sensors (radiation, temperature, etc.) tend to be more difficult to translate. However, a fairly simple event rule set applied to the raw analog data has been shown to properly extract good event sets from visually noisy analog sensor data. Spectrum data can be handled similarly by considering the reports through time at each frequency, then treating these reports as an analog stream. (2) Construction of the Facility State Machine Next, the Facility State Machine FSM should preferably be constructed, comprising a matrix of object state machines. In the Facility State Machine FSM, allowed processes are modeled as a set of coupled object state machines by defining the allowed states for all objects in the processes and all events that cause transitions between those object states according to the destinations. Each allowed, or defined, process at the facility is modeled by the site expert as a destination file, using destination definitions DD taken from the Process Model PM. Each defined process can be broken into defined activities, which are the steps necessary to complete the defined process. In the nuclear power plant example, the defined process "move 60 bundles to the silo" might comprise defined activities such as: "bundles moved into a basket within a transfer flask", "flask dried", "basket lid welded on", and "basket moved to silo". Similarly, each defined activity is built up of finer sub-activities that are called "destinations." Destinations model what happens when an object in a given state receives an event that affects that object. Because a destination describes the response of the object state to a single event, all destinations are the lowest level. The level of detail modeled at the defined activity level should closely reflect that which could be verified by the sensors installed at the facility. In the nuclear power plant example, if the gamma sensor on the grapple in the cooling pond goes above a predefined trigger level, that event signals that a bundle has been grabbed. This is sensor level interpretation. The "grabbed" signal, combined with the corresponding "released" signal (from the same sensor), represents the activity of moving one bundle from the tray to the basket. The destination level of the model describes how the state of each object is transitioned by the events that affect those objects and is specified as a (state,event) pair. The first parameter in the pair is the current state of the object, and the second is the event that is to be processed. As an example, consider the state machine shown in Table 2 for a bundle having six (state,event) destinations. The destinations are (InTray,GrabEvent), (InTran,ReleaseEvent), (MovingToTurntable,GrabEvent), (MovingToTurntable,ReleaseEvent), (OnTurntable,GrabEvent), and (OnTurntable,ReleaseEvent).
TABLE 2
State.backslash.Event GrabEvent ReleaseEvent
InTray MovingToTurntable Error=BundleDropped
MovingToTurntable Error=DoubleGrab OnTurntable
OnTurntable MovingToFlask Etc.
In this example, the bundle is initially in an object state "InTray". The first destination, (InTray,GrabEvent), tells the Analysis Engine AE what to do to the bundle when it is in the state "InTray" and the event "GrabEvent" occurs. This destination, therefore, instructs what happens when a bundle is grabbed. Among other things, the destination should transition the state of the bundle from "InTray" to "MovingToTurntable" in the bundle state machine. Now that the bundle is in state "MovingToTurntable" it can be advanced by the destination which instructs what to do to the grabbed bundle when the event "ReleaseEvent" arrives. In the real world, an activity may affect not only the immediate object it acts upon, but also other objects in the system. In the nuclear power plant example, opening the lid on a flask of nuclear bundles not only moves the state of the flask from "closed" to "open", but it may also drive a nearby gamma sensor to a higher reading. For this reason, destinations are allowed to trigger other destinations by sending them internal "pseudo-events". With the use of these internal events, information is rippled up to higher level activities. For example, sometimes bundles can be dropped while moving from the tray to the turntable. To model such a possibility, the bundle state machine, shown in Table 2, would need to be expanded to include an event called "DroppedEvent". If the destination (MovingToTurntable,DroppedEvent) is executed, that destination might want to send an internal event called "BundleDroppedEvent" to a state machine tracking the concept "Track facility safety". "Track facility safety" receives the event and could bump a counter of incidents, decrease the value of a safety variable by 20%, or transition a concept object called "Facility safety" into a state called "Compromised." It is at the lowest step in this analysis, the destination interpretation of events, that timing between events can be checked, sequencing between and among events can be checked, states of related objects can be checked, and values of computed variables can be changed or checked. Many other checks can be made, and other steps (updating a historical log, printing the current state of an object, etc.) performed, as required, at this level. It is important to capture both the normal state/event combinations and the abnormal combinations in the Facility State Machine FSM. (3) Reconstruction of the Actual Processes After the event rules ER are defined and the Facility State Machine FSM is constructed, the raw sensor data RSD from the dynamic processes being monitored can be input to the Event Generator EG. The Event Generator EG converts the raw sensor data RSD into events E, according to the event rules ER, and transmits the events E to the Analysis Engine AE. The Analysis Engine AE uses the events E to advance the Facility State Machine FSM through a sequence of object state transitions to reconstruct the actual processes that occurred at the facility. The reconstruction involves the identification of the start and end of each activity. This is done as part of the processing within a destination. Each destination can declare itself to be the start, or end, of an activity or process. If a destination declares that it is the start of a process, a process object of the declared name is created. If a destination declares that it is the end of a process, the outstanding process object of that name is marked as complete. A process should have both a beginning and an end to be considered a complete process. The relationships grouping activities into actual processes are enforced by the processes that are defined for the facility. (4) Comparison of Actual Processes to the Declared Processes The last step in the KG analysis compares the list of expected processes declared by the facility inspector, the process declarations file PD, against the processes that were actually observed by the sensor suite, the actual processes AP. The input Expected Operations EO are converted into a list of declared processes DP that the site inspector expected to have happen during the period of interest. For example, a power plant inspector may declare an operation during which 240 bundles were moved from a cooling pond out to storage silos. The operation is broken down into declared processes DP; in this example there might be 4 declared processes (since 60 bundles are moved in one container) named "Move 60 bundles to the silo" and one declared process named "Cover and secure silo". The process declarations file PD, comprising the list of declared processes DP, is fed to the Process Comparison Engine PCE that compares the declared processes DP against the list of actual processes AP as determined by the Analysis Engine AE. During the comparison, the Process Comparison Engine PCE can identify extra events or activities and point out missing events or activities. Timing between processes is checked, allowing both timeout (an event must occur before the timer expires) as well as timein (the event must not occur before the timer expires) events. Violations of timeout and timein rules are reported to the inspector. The comparison is output to the inspector through the User Interface UI. c) Apparatus for the Knowledge Generation System The KG apparatus comprises a processor connected with an input/output system and storage. For example, the processor can comprise a contemporary workstation with local storage such as a disc and semiconductor memory, input/output such as a sensor signal input means, keyboard, and user interface display. For example, PC-compatible platforms running Windows NT or Windows 2000 with a x86 compatible processor (386, 486, Pentium, etc.) are acceptable. To analyze small data sets (a few thousand events) requires approximately 4 mega-bytes (MB) of memory. Larger data sets require a somewhat larger memory. KG can also be run on most laptops. Available disk space should generally be 20 MB or above for best performance, again, depending on the complexity of the facility and the size of the data set being analyzed. Software and supporting data files are generally loaded from compact disk, so a CD reader is desirable at least during installation. In one embodiment of the invention, the KG system apparatus is a Dell OptiPlexGX110 (a PC-compatible platform based on a Pentium III processor) with 128 MB of RAM, 20 GB disk, and an internal CD reader/writer. d) Application of Knowledge Generation The KG system has been used to analyze the raw sensor data from several operating facilities. A set of models was developed to analyze the processes at the facility FAC shown schematically in FIG. 2. The facility FAC is a robotics laboratory with sensors that are located on fixed objects (walls and pillars) as well as moving objects (the robots and the materials being monitored). It is a highly sensored facility with many different types of sensors, including balanced magnetic switches BMS1, BMS2, infrared motion detectors MD1, MD2, MD3, MD4, and breakbeam sensors BB1, BB2, BB3. The primary purpose for the existing sensor suite was to monitor the facility FAC for possible diversionary activities (theft). However, because of the type and location of the sensors, it was possible to extract additional information about the states of the other ongoing processes at the facility FAC. A scenario was constructed to simulate the retrieval of a large barrel BRL from a storage position on storage racks SR at a source location and transportation of the barrel BRL to a destination location. For the purposes of this scenario, the destination was the same as the source, both simulated by the facility FAC. The actual movement of the barrel BRL was made by an operator-less forklift, the Automated Guided Vehicle AGV. The AGV started from a known location in the facility FAC, went to the storage rack SR, raised its fork, lifted the barrel BRL, lowered the barrel BRL to ground level, then carried the barrel BRL to a truck door on an outside wall. A sensor pack T1 on the barrel BRL monitored motion of the barrel BRL and some attributes of the contents of the barrel BRL. Next, the barrel BRL was driven to and loaded onto a sensored truck, and the truck was driven to its destination (the truck actually left and later returned to the facility FAC in the simulation). While on the truck, the sensor T1 continued to monitor the motion and other features of the barrel BRL and its contents. When the truck returned to the facility FAC, the barrel BRL was removed from the truck and positioned on the floor. An overhead crane grappled the barrel BRL and carried it to its final location within the facility FAC. Throughout this entire scenario, sensors BMS1, BMS2, MD1, MD2, MD3, MD4, BB1, BB2, BB3 around the facility FAC detected, and cameras DCM1, DCM2 photographed, the motions of the involved robots, barrel, crane, and people. To test the ability of. KG to detect and analyze undeclared activities, there was a deliberate modification to the routine scenario described above: the sensor pack T1 was removed from the barrel BRL, and only the sensor pack T1 was placed on the bed of the truck. Consequently, there was an undeclared activity in the raw sensor data RSD monitoring the process of the AGV picking up the barrel BRL and returning it to the storage racks SR. KG identified these extra activities and reported them to the inspector for further investigation. (1) Event Rules Prior to performing a KG analysis of the simulation, event rules ER for the facility sensors were defined. These event rules ER were used by the Event Generator EG to identify the events E in the raw sensor data RSD from all 24 sensors at the facility FAC. Table 3 shows the event rules for the sensor on the center door of the east wall, Door1, that was balanced magnetic switch BMS1. BMS1 was a discrete sensor which reported only two states: Closed (corresponding reported value is =0), or Open (=4). The Event Generator EG tagged each transition in this sensor as an "event" which it then transmitted to the event E to the Analysis Engine AE.
TABLE 3
SENSORS
Door1.vertline.Door1 Balanced Magnetic Switch 1 (BMS1) Data.vertline.Center
door
along East
wall.vertline.DISCRETE.vertline.0.vertline.Closed.vertline.4.vertline.Open
.vertline.
Door1-SOH.vertline.Door1 Balanced Magnetic Switch 1 (BMS1)
State-of-health.vertline.
Center door along East
wall.vertline.DISCRETE.vertline.0.vertline.Report.vertline.
(2) Destination File After the event rules were specified, each allowable activity at the facility FAC was modeled. These models were instructions to the Analysis Engine AE that ran the Facility State Machine FSM about what to do at each step. The instructions were contained in a destination file. In particular, each allowed process was defined in terms of the destination definitions DD required to model the process. A destination, or (state,event) pair, defined what happened when an object in state "state" and incoming event "event" was transmitted to the Analysis Engine AE from the Event Generator EG. For example, a destination was defined as shown in Table 4.
TABLE 4
DESTINATION PeopleMotion Door1Open
CHANGE PeopleMotionCounter +1
// PRINT PeopleMotionCounter
This destination described the instructions for the (state,event) pair (PeopleMotion,Door1Open). The object "Person" was initiated in state "PeopleMotion", so when event "Door1Open" came in from the sensor system (for example, a balanced magnetic switch sensor BMS1 that monitored the closed/open state of Door1), this destination was executed. Within this destination the variable PeopleMotionCounter was incremented, so that when all of the data was analyzed, the Analysis Engine AE could report back sensor reports that could be ascribed to human motion. A destination file was generated to describe each of the 22 allowed process destination definitions for the facility FAC. (3) Some High Level State Machines FIG. 3 shows the relationships of some of the high-level state machines in the simulation. The master process is SourceToDestination STD. This master process had four processes, SourcePalletRetrieve SPR, TransportToDestination TTD, DestinationPalletStore DPS, and ItelStorePallet ISP. Processes at this level were subdivided further into lower level processes and, if necessary, into activities. Also shown are a few of the lower level processes and activities, MotionStageToCenter MSTC, MotionCenterToRacks MCTR, and CenterPillarMotion CPM. The lines connecting the processes are internal events that helped the higher level processes keep track of what state the lower level processes were in. Typically, the lower level process would send an internal event signal to the higher level process when it was completed. This internal event often advanced the higher level state machine so that it could start tracking the next process in the sequence of processes required for completion. Each of the connecting lines may represent one or more triggering events. Table 5 shows the destination file for the Breakbeam Object, BBObject. Breakbeam2 sensor BB2 monitored motion in the vicinity of the center pillar. When Breakbeam2 sensor BB2 was broken, it sent an event CenterPillarEvent CPE from the activity CenterPillarMotion CPM to the activity MotionCenterToRacks MCTR, indicating that the Breakbeam Object was in motion at the center pillar. However, in the case shown, Breakbeam3 sensor BB3 at the south pillar did not trigger fast enough, suggesting that the Breakbeam Object was not the Automated Guided Vehicle AGV, but more likely a human. Therefore, the Automated Guided Vehicle was returned to the staging area and this activity was not part of the process AgvToRacks ATR.
TABLE 5
// DESTINATIONS for object BBObject (BreakBeam Object)
// Process CenterPillarMotion - moves BBObject from staging area
// to center.
// Sends CenterPillarEvent
//
// This model is a bit complicated because we do not want south pillar
// events to move the PillarObject when it is in the staging area.
// We do this by not creating the BBObject until we are ready
// to use it, and we destroy it as soon as we detect the motion
// we expected. This is a desentization in the model but it is
// necessary because of the huge amount of noise
// (caused by human motion) in the data.
DESTINATION QuiescentStaging Breakbeam2Broken
// The flags in the following MESSAGE command instruction the state
// machine engine to flag the "start" of the process
CenterPillarMotion.
MESSAGE *SN *FF *TP *PCenterPillarMotion *AS Motion between
center pillars start.
// The SEND command signals a higher level process that something has
happened.
SEND CenterPillarEvent
// Start a 60 second timer to make sure this is really the AGV.
START WaitForBB3Timer 60 BB3NotHitBeforeTimeout
NEXTSTATE QuiescentCenterOut
// We got BB2, but BB3 did not trigger fast enough to make us
// believe we really have the AGV - must be human motion.
DESTINATION QuiescentCenterOut BB3NotHitBeforeTimeout
MESSAGE *SN *FF *TP *PCenterPillarMotion *AI Center pillar motion
not confirmed by south pillar motion.
// We got faked out by noise. Send the BBObject (ostensibly the Agv)
// back to the staging area.
NEXTSTATE QuiescentStaging
(4) Raw Sensor Data A very small portion of the raw sensor data RSD gathered in the simulation is shown in Table 6. The actual data file from the simulation contained thousands of lines. Each line contains one data point from one sensor reading. Each data point entry contains the date and time the data point was taken, and the value of the reading. Each data point also identifies which sensor reported the data point. In the case of the first line of data in the file, Motion4 sensor MD4 detected motion (=1) at 1:30:28 PM on the 7.sup.th of September. Motion4 MD4 returned to its normal state of no motion (=0) 44 seconds later. One sensor package, like the group of sensors collectively called T1, could have more than one sensor associated with it. For example, the T1 sensor package reported both motion and temperature. Each time the motion detection sensor reported (motion or no motion), another data point was created. Similarly, each time the thermometer reported, one data point was created (temperature at that instant).
TABLE 6
07-Sep-99 1:30:28 PM, 1, Motion4 // Motion 4 sensor reports
"Motion"
07-Sep-99 1:30:30 PM, 0, Breakbeam2-SOH
07-Sep-99 1:30:38 PM, 1, T1
07-Sep-99 1:30:40 PM, 0, T1
07-Sep-99 1:30:50 PM, 4, Breakbeam1
07-Sep-99 1:30:51 PM, 0, Breakbeam1
07-Sep-99 1:30:53 PM, 4, Door2
07-Sep-99 1:30:58 PM, 0, Door2
07-Sep-99 1:31:12 PM, 0, Motion4 // Motion 4 sensor reports
"No Motion"
(5) Process Declarations To compare the actual processes that were performed during the simulation to the expected processes, the inspector constructed a process declarations file PD that declared to the Process Comparison Engine PCE the expected, or declared processes DP that were part of the expected operations EO. A declaration file, as shown in Table 7, was constructed for each data analysis. Each line in the file describes one activity in the whole process. In the middle of the declarations file are some lines, commented out as denoted by the starting keyword string "//", which describe the surreptitious return of the barrel BRL to the racks SR. Since these lines are commented out, when the Analysis Engine AE grouped actual activities that looked like the process ItelStorePallet ISP out of the event data, these actual activities were not found in the declared processes DP and were reported to the inspector as being "extra."
TABLE 7
SourceToDestination
SourcePalletRetrieve
AgvToRacks
CenterPillarMotion
SouthPillarMotion
PalletInMotion
AgvReturnsToInitial
SouthPillarMotion
CenterPillarMotion
TransportToDestination
// ItelStorePallet
// PalletInMotion
// AgvToRacks
// CenterPillarMotion
// SouthPillarMotion
// AgvReturnsToInitial
// SouthPillarMotion
// CenterPillarMotion
DestinationPalletStore
PalletInMotion
CenterPillarMotion // The AGV goes to the racks.
CenterPillarMotion // The AGV returns to its staging
location.
(6) Comparison of Declared vs. Actual Processes There were 22 declared processes DP for the simulation. The status of each of the declared processes was available to the inspector through the User Interface UI. The declared processes DP that were confirmed by the raw sensor data RSD were indicated as normal to the inspector. Those actual processes which were not declared, or which did not occur as defined in the process declarations file PD, were shown as abnormal. As described supra, eight processes were commented out in the process declarations file in Table 7, starting with ItelStorePallet ISP which corresponded with using the AGV to return the barrel BRL to the racks SR. A process summary display enabled the inspector to delve down into the details of the undeclared processes. The inspector could examine the raw sensor data RSD from the 24 sensors in as much detail as desired, right down to an individual data point. A sensor summary table display listed all of the sensors at the facility along with some of the attributes of each sensor, including the sensor name, a brief description of its location, the sensor's health, and the number of data reports (data points) that came from that sensor. It will be understood that the above description is merely illustrative of the applications of the principles of the present invention. Other variations and modifications of the invention will be apparent to those of skill in the art.
|
Same subclass Same class Consider this |
||||||||||
