180 likes | 374 Views
Using Jess For Monitoring Agents. Ranjeev Mittu, NRL Myriam Abramson, NRL Joshua Walters, ITT Jennie Womble, ITT Art Torrey, GITI. Outline. The EXMON Project (2003) Motivation EXMON Architecture GCCS ITEM CoABS Grid CMDR Agents C4I Controller and UI Agents Jess Monitoring Agents
E N D
Using Jess For Monitoring Agents Ranjeev Mittu, NRL Myriam Abramson, NRL Joshua Walters, ITT Jennie Womble, ITT Art Torrey, GITI
Outline • The EXMON Project (2003) • Motivation • EXMON Architecture • GCCS • ITEM • CoABS Grid • CMDR • Agents • C4I Controller and UI Agents • Jess Monitoring Agents • Lessons Learned
Execution 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.
Motivation • 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.
EXMON 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
GCCS Workstation GCCS COP (application) TDBM API socket TDBM libraries GCCS Ambassador RTI API socket TDBM RTI 1.3 libraries COE Kernel TCP/IP RTI-based FOM data exchanges over LAN or WAN Global 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
Integrated 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
CMDR 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)
Agents • User Interface agent • C4I Controller agent • Monitoring Jess agents • Mass Monitoring • Track Deviation monitoring by interpolation • Track Deviation monitoring by extrapolation
C4I 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.
The 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.
Jess Agent Jess script External GeoSpatial Functions Tracks, commands parseIntoJess GridComponent JessAgent Rete Engine Receive Messages Jess Listener Instantiated Fact SendMessage Alert
Tracks (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 <- (track (entity_type PlatformRealWorld|UnitRealWorld)) => (retract ?f1))
External 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. • Thedeadreckoningfunction extrapolates a track based on position, direction and speed, at a future date. • Thedistance function computes a distance between 2 points in (lat,lon,alt) coordinates assuming flat earth.
Interpolation Rule ;;project a position by interpolation (defrule interpolate (declare (salience 1)) ?s1 <- (track (ltn ?ltn) (entity_type PlatformSimulated|UnitSimulated) (dtg ?date0) (lon ?lon0) (lat ?lat0) (alt ?alt0) (threshold ?thresh)) ?s2 <- (track (ltn ?ltn) (entity_type PlatformSimulated|UnitSimulated) (dtg ?date1) (lon ?lon1) (lat ?lat1) (alt ?alt1)) ?r1 <- (track (ltn ?ltn) (entity_type PlatformRealWorld|UnitRealWorld) (dtg ?date) (lon ?lon) (lat ?lat) (alt ?alt)) (not (alert-event (ltn ?ltn))) (test (< ?date ?date1 (+ ?date ?*siminterval*))) (test (< (- ?date ?*siminterval*) ?date0 ?date)) => (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))))
Extrapolation Rule ;;deviation check by extrapolation (defrule extrapolate (declare (salience 1)) ?f1 <- (track (ltn ?ltn) (entity_type PlatformRealWorld|UnitRealWorld) (dtg ?dtg) (lat ?lat) (lon ?lon) (alt ?alt) (speed ?speed&:(> ?speed 0)) (course ?course&:(> ?course 0))) ?f2 <- (track (ltn ?ltn) (entity_type PlatformSimulated|UnitSimulated) (dtg ?dtg1) (lat ?lat1) (lon ?lon1) (alt ?alt1) (threshold ?thresh)) (not (alert-event (ltn ?ltn))) (test (< ?dtg ?dtg1 (+ ?dtg ?*siminterval*))) => (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))))
Lessons 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 pibe the probability of deviation for track i: • The entropy H or average uncertainty for multiple tracks where pi>0 is computed as follows: