Title: Using Jess For Monitoring Agents
1Using Jess For Monitoring Agents
- Ranjeev Mittu, NRL
- Myriam Abramson, NRL
- Joshua Walters, ITT
- Jennie Womble, ITT
- Art Torrey, GITI
2Outline
- The EXMON Project (2003)
- Motivation
- EXMON Architecture
- GCCS
- ITEM
- CoABS Grid
- CMDR
- Agents
- C4I Controller and UI Agents
- Jess Monitoring Agents
- Lessons Learned
3Execution Monitoring (EXMON) Federation
- Project funded by DMSO
- Interface C2 systems and simulations to detect
critical events to the achievement of the plan. - It is assumed that plan understanding agents
decompose an OPORD for critical observable
events. - Monitor how the execution of the plan may be
deviating from the simulated plan in terms of
those observable events.
4Motivation
- It is not possible to observe everything in a
complex situation. - The generation of alerts due to deviations to
critical events of the plan may warrant changes
in course of action. - Observable events here are track deviations.
5EXMON Architecture Overview
User Interface
C4I Controller
GCCS-M Ambassador
R T I
CoABSGrid
Interpolated Deviations
CMDR
ITEM
Extrapolated Deviations
Mass/Survival
FMT
EXMON HLA/RTI Federation
EXMON Agent Federation
6Global Control Command System (GCCS)
GCCS-M Ambassador
GCCS-M Ambassador
- The Ambassador provides a direct linkage between
the Track Database Manager (TDBM) and the HLA
Runtime Infrastructure - Developed by NRL as part of a DMSO HLA experiment
on Simulation-C4I interoperability - Relies upon standard simulation and C4ISR
architecture standards, including HLA and COE - Has been using to populate the TDBM with
simulation data.. - JTLS-GCCS
- NSS-GCCS
- Pegasus-GCCS
- .And to initialize simulations based on data
already resident in the TDBM - GCCS-NSS
- GCCS-ITEM
- GCCS-JWARS
7Integrated Theater Engagement Model (ITEM)
ITEM
- Computer Based, Theater Level Simulation
- Fully Integrated Joint Warfare (Naval, incl.
Amphibious, Air, Ground) - Level of Detail
- Simulates at the Unit Level (Ship, Ground
Units, and Aircraft) - Scalable Level of Combat from Small Unit to
Major Theater Level - Modular Design
- Developed in the C Language
- Architecture is Object Oriented
- Interruptible
- User Controlled Time Step Duration
- User Can Save State of the Game at Any
Interruption - Visualization
- Contains Interactive Map Display and GUI
- Treatment of Uncertainty
- Expected Value Model
- Monte Carlo techniques
8CoABS
9CMDR
CMDR
- CMDR Bridges HLA and Agent federations
- Automated translation of data
- Simultaneous access to multiple Federations
- Record playback of RTI data stream
- Monitor and control dataflow within the
federation - A suite of Java applications and libraries
offering - Rapid construction of HLA-compliant applications
- Insulation of application code from RTI specifics
- Tested with several RTI versions (RTI-S, RTI-NG)
10Agents
- User Interface agent
- C4I Controller agent
- Monitoring Jess agents
- Mass Monitoring
- Track Deviation monitoring by interpolation
- Track Deviation monitoring by extrapolation
11C4I Controller and UI Agents
- The C4I Controller agent manages the distribution
of simulated/real data to the agents from the RTI
based on the decomposition of a plan
understanding agent. - The UI agent spawns monitor agents on specific
geographical areas of interest and relay alert
messages from the monitoring agents to the GCCS
desktop. The monitoring agents are then
discovered by the C4I controller. - The UI agent also supports the specification of
deviation thresholds by the user.
12The Role of Simulation
- ITEM starts first to predict future tracks
through the simulation of the plan as described
by OPORDs. - GCCS tracks are projected against those future
simulated tracks through extrapolation or
interpolation. - Deviations of the projected tracks against the
future simulated tracks generate an alert. - ITEM is resynchronized at certain time intervals.
13Jess Agent
Jess script
External GeoSpatial Functions
Tracks, commands
parseIntoJess
GridComponent JessAgent
Rete Engine
Receive Messages
Jess Listener
Instantiated Fact
SendMessage
Alert
14Tracks
(deftemplate track "platform or unit"
(slot ltn (type atom)) (slot name (type
string)) (slot entity_type (type atom)) real
(GCCS) or simulated (ITEM) (slot dtg (type
long)) Julian seconds (unix time) (slot lat
(type float)) (slot lon (type float)) (slot alt
(type float)) in feet (slot speed (type float)
(default 0)) in knots (not used here) (slot
course (type float) (default 0)) in degrees
(not used here) (slot threat (type atom))
friendly or hostile (slot threshold (type float)
(default 1.0)) distance threshold (slot
prob_of_survival (type float)) given by
ITEM (slot curr_mass (type float)) (slot
survivability_threshold (type float)) (slot
initial_mass (type float)) (slot surr_threshold
(type float)))
(defrule expire-1 ?f1 lt- (track (entity_type
PlatformRealWorldUnitRealWorld)) gt (retract
?f1))
15External Geo-Spatial Functions
(load-function JessSpline) (load-function
JessDistance) (load-function DeadReckon)
- The spline function interpolates a track at a
certain time given n simulated tracks. - The deadreckoning function extrapolates a track
based on position, direction and speed, at a
future date. - The distance function computes a distance between
2 points in (lat,lon,alt) coordinates assuming
flat earth.
16Interpolation Rule
project a position by interpolation (defrule
interpolate (declare (salience 1)) ?s1 lt-
(track (ltn ?ltn) (entity_type
PlatformSimulatedUnitSimulated) (dtg ?date0)
(lon ?lon0) (lat ?lat0) (alt ?alt0) (threshold
?thresh)) ?s2 lt- (track (ltn ?ltn) (entity_type
PlatformSimulatedUnitSimulated) (dtg ?date1)
(lon ?lon1) (lat ?lat1) (alt ?alt1)) ?r1 lt-
(track (ltn ?ltn) (entity_type
PlatformRealWorldUnitRealWorld) (dtg ?date)
(lon ?lon) (lat ?lat) (alt ?alt)) (not
(alert-event (ltn ?ltn))) (test (lt ?date ?date1
( ?date ?siminterval))) (test (lt (- ?date
?siminterval) ?date0 ?date)) gt (printout t
"Interpolating " ?ltn " at " ?date " between 2
simulated events " ?date0 " and " ?date1 crlf)
(interpolate ?s1 ?s2 ?r1) will generate a
projected event (assert (track (entity_type
CHECKPOINT) (ltn ?ltn) (dtg ?date) (lon ?lon)
(lat ?lat)(alt ?alt) (threshold ?thresh))))
17Extrapolation Rule
deviation check by extrapolation (defrule
extrapolate (declare (salience 1)) ?f1 lt-
(track (ltn ?ltn) (entity_type
PlatformRealWorldUnitRealWorld) (dtg ?dtg)
(lat ?lat) (lon ?lon) (alt ?alt) (speed
?speed(gt ?speed 0)) (course ?course(gt
?course 0))) ?f2 lt- (track (ltn ?ltn)
(entity_type PlatformSimulatedUnitSimulated)
(dtg ?dtg1) (lat ?lat1) (lon ?lon1) (alt
?alt1) (threshold ?thresh)) (not (alert-event
(ltn ?ltn))) (test (lt ?dtg ?dtg1 ( ?dtg
?siminterval))) gt (printout t
"Extrapolating " ?ltn " position from " ?dtg " to
" ?dtg1 crlf) (deadreckon ?f1 ?f2) (assert
(track (entity_type CHECKPOINT) (ltn ?ltn) (dtg
?dtg1) (lat ?lat1) (lon ?lon1)(alt ?alt1)
(threshold ?thresh))))
18Lessons Learned
- The integration of the different modules was hard
but possible. The integration of Jess monitoring
agents was seamless. - Tracking single deviations might make sense when
tracking a single ship. - When trying to get a sense of the situation with
multiple entities, an entropy measure might be a
better metric for the cumulative effect of small
deviations. - Let pi be the probability of deviation for track
i
- The entropy H or average uncertainty for multiple
tracks where pigt0 is computed as follows