This commit is contained in:
2025-09-12 15:20:28 +08:00
commit 3257a14c32
449 changed files with 388780 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
pushd RIPR-AIAI
source RIPR-AIAI_source.soar
popd

View File

@@ -0,0 +1,27 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
VERSION 4
\RIPR-AIAI\RIPR-AIAI.dm
0 ROOT RIPR-AIAI RIPR-AIAI 1
1 0 FOPERATOR _firstload _firstload.soar 2
2 0 FOLDER all all 3
3 2 FOPERATOR output output.soar 4
4 2 FOPERATOR wait wait.soar 5
5 0 FOLDER elaborations elaborations 6
6 5 FOPERATOR _all _all.soar 7
7 5 FOPERATOR monitor monitor.soar 8
8 5 FOPERATOR top-state top-state.soar 9
9 0 OPERATOR f-pole f-pole.soar 10
10 0 OPERATOR initialize-RIPR-AIAI initialize-RIPR-AIAI.soar 11
11 0 OPERATOR pursue-target pursue-target.soar 12
12 0 OPERATOR pursuit-lag pursuit-lag.soar 13
13 0 OPERATOR pursuit-lead pursuit-lead.soar 14
14 0 OPERATOR pursuit-pure pursuit-pure.soar 15
END

View File

@@ -0,0 +1,178 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
81
SOAR_ID 0
SOAR_ID 1
SOAR_ID 2
SOAR_ID 3
ENUMERATION 4 2 operator state
ENUMERATION 5 1 none
ENUMERATION 6 4 conflict constraint-failure no-change tie
SOAR_ID 7
FLOAT_RANGE 8 -Infinity Infinity
FLOAT_RANGE 9 -Infinity Infinity
FLOAT_RANGE 10 -Infinity Infinity
FLOAT_RANGE 11 -Infinity Infinity
FLOAT_RANGE 12 -Infinity Infinity
FLOAT_RANGE 13 -Infinity Infinity
SOAR_ID 14
FLOAT_RANGE 15 -Infinity Infinity
SOAR_ID 16
ENUMERATION 17 1 initialize-RIPR-AIAI
ENUMERATION 18 1 elaboration
SOAR_ID 19
STRING 20
SOAR_ID 21
INTEGER_RANGE 22 -2147483648 2147483647
STRING 23
SOAR_ID 24
SOAR_ID 25
ENUMERATION 26 1 pursue-target
SOAR_ID 27
STRING 28
STRING 29
STRING 30
SOAR_ID 31
ENUMERATION 32 1 wait
SOAR_ID 33
INTEGER_RANGE 34 -2147483648 2147483647
SOAR_ID 35
STRING 36
STRING 37
FLOAT_RANGE 38 -Infinity Infinity
FLOAT_RANGE 39 -Infinity Infinity
FLOAT_RANGE 40 -Infinity Infinity
FLOAT_RANGE 41 -Infinity Infinity
FLOAT_RANGE 42 -Infinity Infinity
STRING 43
SOAR_ID 44
STRING 45
ENUMERATION 46 1 nil
FLOAT_RANGE 47 -Infinity Infinity
FLOAT_RANGE 48 -Infinity Infinity
FLOAT_RANGE 49 -Infinity Infinity
SOAR_ID 50
STRING 51
FLOAT_RANGE 52 -Infinity Infinity
FLOAT_RANGE 53 -Infinity Infinity
FLOAT_RANGE 54 -Infinity Infinity
FLOAT_RANGE 55 -Infinity Infinity
FLOAT_RANGE 56 -Infinity Infinity
SOAR_ID 57
SOAR_ID 58
STRING 59
INTEGER_RANGE 60 -2147483648 2147483647
STRING 61
INTEGER_RANGE 62 -2147483648 2147483647
FLOAT_RANGE 63 -Infinity Infinity
FLOAT_RANGE 64 -Infinity Infinity
FLOAT_RANGE 65 -Infinity Infinity
INTEGER_RANGE 66 -2147483648 2147483647
INTEGER_RANGE 67 -2147483648 2147483647
FLOAT_RANGE 68 -Infinity Infinity
FLOAT_RANGE 69 -Infinity Infinity
SOAR_ID 70
SOAR_ID 71
ENUMERATION 72 2 attack recon
STRING 73
FLOAT_RANGE 74 -Infinity Infinity
FLOAT_RANGE 75 -Infinity Infinity
SOAR_ID 76
FLOAT_RANGE 77 -Infinity Infinity
STRING 78
STRING 79
STRING 80
86
0 attribute 4
0 choices 5
0 impasse 6
0 io 1
0 item 44
0 name 36
0 operator 16
0 operator 25
0 operator 31
0 stale-time 47
0 superstate 46
0 top-state 7
1 input-link 2
1 output-link 3
2 current-time 15
2 orders-root 57
2 ownship-ammo 9
2 ownship-closing-speed-max 48
2 ownship-closing-speed-min 49
2 ownship-corner-speed 12
2 ownship-engagement-range-max 11
2 ownship-engagement-range-min 10
2 ownship-speed 8
2 ownship-speed-max 13
2 ownship-threat-tolerance 63
2 ownship-weapons-incoming 67
2 point-root 70
2 track-root 14
2 weight-closing-speed-of 54
2 weight-current-target 56
2 weight-others-targeting 65
2 weight-patrol-attack 74
2 weight-patrol-recon 75
2 weight-slant-range-to 53
2 weight-weapons-in-flight 69
3 do-nothing 21
3 pursue-point 76
3 pursue-target 24
14 target 19
16 name 17
16 random 18
19 closing-speed-of 40
19 currently-targeted 55
19 others-targeting 66
19 positioning 43
19 relative-bearing-to 38
19 slant-range-to 42
19 speed 41
19 target-name 20
19 target-type 61
19 threat-level 64
19 update-time 39
19 weapons-in-flight 62
21 nothing 22
21 status 23
24 job-bid 68
24 pursuit-mode 29
24 status 30
24 target-name 28
25 actions 35
25 counted 50
25 name 26
25 target 19
27 do-nothing 33
31 actions 27
31 name 32
33 nothing 34
33 status 37
35 pursue-target 24
44 actions 35
44 name 45
44 target 19
50 name 51
50 value 52
57 prefer-target-type 58
58 target-type 59
58 weight 60
70 point 71
71 point-name 73
71 point-patrol-type 72
71 relative-bearing-to 38
71 slant-range-to 42
76 job-bid 77
76 point-name 80
76 pursuit-mode 78
76 status 79

View File

@@ -0,0 +1,21 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
source _firstload.soar
pushd all
source all_source.soar
popd
pushd elaborations
source elaborations_source.soar
popd
source f-pole.soar
source initialize-RIPR-AIAI.soar
source pursue-target.soar
source pursuit-lag.soar
source pursuit-lead.soar
source pursuit-pure.soar

View File

@@ -0,0 +1,9 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
# AUTHOR: Michael Williams (michael.x.williams@boeing.com)

View File

@@ -0,0 +1,10 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
source output.soar
source wait.soar

View File

@@ -0,0 +1,32 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
# AUTHOR: Michael Williams (michael.x.williams@boeing.com)
sp {apply*operator*create-action-command
(state <s> ^name RIPR-AIAI
^operator <o>
^io.output-link <ol>)
(<o> ^actions <act>)
(<act> ^<command-name> <command>)
(<o> ^name <oname>)
-->
(<ol> ^<command-name> <command>)
(write (crlf) |Outputting | <oname> | | <command-name>)
}
sp {apply*operator*remove-command
(state <s> ^operator.actions
^io.output-link <ol>)
(<ol> ^<att> <value>)
(<value> ^status complete)
-->
(<ol> ^<att> <value> -)
(write (crlf) |Completed | <value>)
}

View File

@@ -0,0 +1,94 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
# AUTHOR: Michael Williams (michael.x.williams@boeing.com)
### Propose wait for a state no-change
sp {top-ps*propose*wait
(state <s> ^name RIPR-AIAI
^io.input-link.track-root <tr>
^io.input-link.point-root <pr>
^io.input-link.current-time <time>)
(<tr> -^<target> <t>)
(<pr> -^<point> <p>)
-->
(<s> ^operator <o> + >)
(<o> ^name wait)
(<o> ^actions <a>)
(<a> ^do-nothing <dn>)
(<dn> ^nothing 0)
(write (crlf) |Propose wait++++++++++++++++++++++++++++++++++++++++++++++++|)
}
sp {top-ps*check1
(state <s> ^name RIPR-AIAI)
-->
(write (crlf) |@@@ state <s> ^name RIPR-AIAI|)
}
sp {top-ps*check2
(state <s> ^io.input-link.track-root <tr>)
-->
(write (crlf) |@@@ state <s> ^io.input-link.track-root <tr>|)
}
#sp {top-ps*check3
# (state <s> ^io.input-link.track-root <tr>)
# (<tr> -^<target> <t>)
#-->
# (write (crlf) |@@@ <tr> -^<target> <t>|)
#}
#sp {top-ps*check4
# (state <s> ^io.input-link.point-root <pr>)
#-->
# (write (crlf) |@@@ state <s> ^io.input-link.point-root <pr>|)
#}
#sp {top-ps*check5
# (state <s> ^io.input-link.point-root <pr>)
# (<pr> -^<point> <p>)
#-->
# (write (crlf) |@@@ <pr> -^<point> <p>|)
#}
#
#sp {top-ps*propose*wait
# "Propose wait if there is a state no-change."
# :default
# (state <s> ^attribute state
# ^choices none
# -^operator.name wait)
#-->
# (<s> ^operator <o> + <)
# (<o> ^name wait)
# (<o> ^actions <a>)
# (<a> ^do-nothing <dn>)
# (<dn> ^nothing 0)
# (write (crlf) |Propose wait|)
#}
### This avoids a operator no-change after wait is selected
### I've included it just to keep the trace simple - it never fires
#sp {top-ps*apply*wait*random
# "Fake production just to avoid extra operator no-change."
# :default
# (state <s> ^operator <o>)
# (<o> ^name wait)
#-->
# (<o> ^random elaboration)
#}

View File

@@ -0,0 +1,55 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
#sp {impasse-conflict*resolve*reject-non-current
# (state <s> ^superstate nil)
# (state <ss> ^superstate <s>
# ^impasse conflict
# ^item <i1>
# ^item { <i2> <> <i1> } )
# (<i1> ^name pursue-target
# ^target.currently-targeted 1
# ^target.target-name <name1>
# ^target.update-time <ut> >= <st>)
# (<i2> ^name pursue-target
# ^target.currently-targeted 0
# ^target.target-name <name2>)
#-->
# (write (crlf) |prefer-current: Operator conflict between | <name1> | & | <name2>)
# (<s> ^operator <i2> -)
#}
#sp {fix*operator*tie*impasse
# (state <s> ^attribute operator
# ^impasse tie
# ^item <i1> ^item {<i2> <> <i1> })
# (<i1> ^name pursue-target
# ^job-bid <v1>)
# (<i2> ^name pursue-target
# ^job-bid <v2>)
#-->
# (<s> ^operator <i1> =)
# (<s> ^operator <i2> =)
#}
#sp {impasse-conflict*resolve*set-indifferent
# (state <s> ^superstate nil)
# (state <ss> ^superstate <s>
# ^impasse conflict
# ^item <i1>
# ^item <i2> <> <i1>)
# (<i1> ^name <oname1>
# ^target.target-name <name1>
# (<i2> ^name <oname2>
# ^target.target-name <name2>
# ^actions.pursue-target.pursuit-mode <pm2>)
#-->
# (write (crlf) |set-indifferent: Operator conflict between | <oname1> |:| <name1> |:| <pm1>| & | <oname2> |:| <name2>|:| <pm2>)
# (<s> ^operator <i1> =)
# (<s> ^operator <i2> =)
#}

View File

@@ -0,0 +1,9 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
source impasse-conflict.soar

View File

@@ -0,0 +1,95 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

View File

@@ -0,0 +1,43 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
# AUTHOR: Michael Williams (michael.x.williams@boeing.com)
#copy the io to all substates
sp {elaborate*state*io
(state <s> ^superstate.io <io>)
-->
(<s> ^io <io>)
}
#sp {elaborate*write-proposals
# (state <s> ^operator <o> +
# ^io.output-link <ol>
# ^name <sname>)
# (<o> ^actions <act>
# ^name <oname>)
# (<act> ^<command-name> <command>)
# (<command> ^<parameter-name> <parameter>)
#-->
# (write (crlf) |State: | <sname> | Proposed: | <oname> | Parameter: | <parameter> | Op: | <o>)
#}
#sp {elaborate*stale-time
# (state <s> ^io.input-link.current-time <ct>)
#-->
# (<s> ^stale-time (- <ct> 10))
#}
##copy the top state to all substates
#sp {elaborate*state*top-state
# (state <s> ^superstate.top-state <ts>)
#-->
# (<s> ^top-state <ts>)
#}

View File

@@ -0,0 +1,11 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
source _all.soar
source monitor.soar
source top-state.soar

View File

@@ -0,0 +1,106 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
# AUTHOR: Michael Williams michael.x.williams@boeing.com
#LBM - for debug
#sp {all*monitor*output-link
# (state <s> ^name RIPR-AIAI
# ^io.output-link <out>)
# (<out> ^<attr> <link>)
# (<link> ^{ <> status <attr2> } <value>)
# -->
# (write (crlf) | Output Command: | <attr> |.| <attr2> | | <value>)
#}
#sp {default*top-goal*halt*operator*failure
# "Halt if no operator can be selected for the top goal."
# :default
# (state <s> ^superstate nil)
# (state <ss> ^impasse conflict ^superstate <s>)
#-->
# (write (crlf) |Operator conflict.| )
# (write (crlf) |Soar must halt.| )
# (halt)
#}
#sp {default*select*reject-and-reconsider*conflict
# "Reject an object if it leads to a conflict that can not be solved."
# :default
# (state <s2> ^impasse conflict
# ^attribute operator
# ^superstate <s1>
# ^item <obj>
# ^quiescence t)
# (state <s3> ^attribute state
# ^choices none
# ^superstate <s2>
# ^quiescence t)
# (state <s1> ^operator <obj> +)
# -->
# (<s1> ^operator <obj> -)
#}
#sp {default*top-goal*halt*operator*failure
# "Halt if no operator can be selected for the top goal."
# :default
# (state <s> ^superstate nil)
# (state <ss> ^impasse constraint-failure ^superstate <s>)
#-->
# (write (crlf) |No operator can be selected for top goal.| )
# (write (crlf) |Soar must halt.| )
# (halt)
#}
#sp {impasse-conflict*resolve*prefer-closest
# (state <s> ^impasse conflict
# ^item <i1>
# ^item { <i2> <> <i1> } )
# (<i1> ^name pursue-target
# ^target.currently-targeted 1)
# (<i2> ^name pursue-target
# ^target.currently-targeted 0)
#-->
# (write (crlf) | prefer-closest: Operator conflict between | <name1> | & | <name2>)
# (<s>
#}
#### Monitor impasses I don't expect to get
#sp {all*monitor*impasse*state-no-change
# (state <s> ^attribute state
# ^choices none)
#-->
# (write (crlf) | State no-change impasse detected.|)
# (cmd |stop-soar --self|)
#}
#sp {all*monitor*operator*tie*impasse
# (state <s> ^attribute operator
# ^impasse tie
# ^item <i1> ^item {<i2> <> <i1> })
# (<i1> ^name <name1>)
# (<i2> ^name <name2>)
#-->
# (write (crlf) | Operator tie between | <name1> | & | <name2>)
# (cmd |stop-soar --self|)}
#
#sp {all*operator*impasse*tie*break
# (state <s> ^attribute operator
# ^impasse tie
# ^item <o>
# ^superstate <ss>)
#-->
# (write (crlf) | Make tied operators indifferent.|)
# (<ss> ^operator <o> =)}
#

View File

@@ -0,0 +1,15 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
# AUTHOR: Michael Williams (michael.x.williams@boeing.com)
#sp {elaborate*top-state*top-state
# (state <s> ^name RIPR-AIAI)
#-->
# (<s> ^top-state <s>)
#}

View File

@@ -0,0 +1,26 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
sp {propose*pursue-target*f-pole
(state <s> ^name RIPR-AIAI
^io.input-link.track-root <tr>
# ^target-name <tn>
)
(<tr> ^<target> <t>)
(<t> ^target-name <tn>
^weapons-in-flight <wif> > 0)
-->
(<s> ^operator <o> +)
(<o> ^name pursue-target
^target <t>
^actions <a>)
(<a> ^pursue-target <command>)
(<command> ^pursuit-mode f-pole
^target-name <tn>)
}

View File

@@ -0,0 +1,27 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
# AUTHOR: Michael Williams (michael.x.williams@boeing.com)
sp {propose*initialize-RIPR-AIAI
(state <s> ^superstate nil
-^name)
-->
(<s> ^operator <o> +)
(<o> ^name initialize-RIPR-AIAI)
(write (crlf) |Propose init|)
}
sp {apply*initialize-RIPR-AIAI
(state <s> ^operator <op>)
(<op> ^name initialize-RIPR-AIAI)
-->
(<s> ^name RIPR-AIAI)
(write (crlf) |Done with init!|)
}

View File

@@ -0,0 +1,152 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
# AUTHOR: Michael Williams (michael.x.williams@boeing.com)
### RIPR-AIAI knows how to pick a target and pursue it
sp {evaluate*pursue-target*prefer-lag
(state <s> ^name RIPR-AIAI
# ^target-name <name1>
^operator <o1> +
^operator <o2> +)
(<o1> ^name pursue-target
^actions.pursue-target.pursuit-mode lag
^target.target-name <name1>)
(<o2> ^name pursue-target
^actions.pursue-target.pursuit-mode pure
^target.target-name <name1>)
-->
(<s> ^operator <o1> > <o2>)
}
sp {evaluate*pursue-target*prefer-lead
(state <s> ^name RIPR-AIAI
# ^target-name <name1>
^operator <o1> +
^operator <o2> +)
(<o1> ^name pursue-target
^actions.pursue-target.pursuit-mode lead
^target.target-name <name1>)
(<o2> ^name pursue-target
^actions.pursue-target.pursuit-mode << pure lag >>
^target.target-name <name1>)
-->
(<s> ^operator <o1> > <o2>)
}
sp {evaluate*pursue-target*prefer-f-pole
(state <s> ^name RIPR-AIAI
# ^target-name <name1>
^operator <o1> +
^operator <o2> +)
(<o1> ^name pursue-target
^actions.pursue-target.pursuit-mode f-pole
^target.target-name <name1>)
(<o2> ^name pursue-target
^actions.pursue-target.pursuit-mode << pure lead lag >>
^target.target-name <name1>)
-->
(<s> ^operator <o1> > <o2>)
}
#sp {monitor*pursue-target*counts
# (state <s> ^name RIPR-AIAI
# ^operator <o> +)
# (<o> ^name pursue-target
# ^target <t>)
# (<t> ^target-name <name>
# ^counted <c>)
# (<c> ^name <val-name>
# ^value <v>)
#-->
# (write (crlf) |count: | <name> | | <val-name> | | <v> )
#}
#sp {evaluate*proposed-actions-for-diff-targets*indifferent
# (state <s> ^name check-target
# ^operator <o1> +
# ^operator <o2> +)
# (<o1> ^actions.<command1>.target-name <name1>)
# (<o2> ^actions.<command2>.target-name {<name2> <> <name1>})
#-->
# (<s> ^operator <o1> = <o2>)
#}
#sp {evaluate*pursue-target*prefer-high-score
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^operator { <o2> <> <o1> } +)
# (<o1> ^name pursue-target
# ^actions.pursue-target.job-bid <score1>
# ^target.target-name <name1>)
# (<o2> ^name pursue-target
# ^actions.pursue-target.job-bid { <score2> < <score1> }
# ^target.target-name <name2> <> <name1>)
#-->
# (<s> ^operator <o1> > <o2>)
# (write (crlf) |prefer-high-score: | <name1> | (| <score1> |) > | <name2> | (| <score2> |)|)
#}
#sp {evaluate*pursue-target*prefer-fastest-closer
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^operator <o2> +)
# (<o1> ^target.closing-speed-of <cso1>)
# (<o2> ^target.closing-speed-of <cso2> < <cso11>)
#-->
# (<s> ^operator <o1> > <o2>)
#}
#
#sp {evaluate*pursue-target*prefer-closest
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^operator <o2> +)
# (<o1> ^target.slant-range-to <nls1>)
# (<o2> ^target.slant-range-to <nls2> < <nls1>)
#-->
# (<s> ^operator <o1> < <o2>)
#}
#
#sp {evaluate*pursue-target*prefer-pure
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^operator <o2> +)
# (<o1> ^actions.pursue-target.pursuit-mode pure
# ^target <t>)
# (<o2> ^actions.pursue-target.pursuit-mode << lead lag >>
# ^target <t>)
#-->
# (<s> ^operator <o1> < <o2>)
#}
#
#sp {evaluate*pursue-target*prefer-lead
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^operator <o2> +)
# (<o1> ^actions.pursue-target.pursuit-mode lead
# ^target <t>)
# (<o2> ^actions.pursue-target.pursuit-mode lag
# ^target <t>)
#-->
# (<s> ^operator <o1> < <o2>)
#}
#sp {evaluate*pursue-target*prefer-current-target
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^operator <o2> +)
# (<o1> ^target.currently-targeted 0)
# (<o2> ^target.currently-targeted 1)
#-->
# (<s> ^operator <o1> < <o2>)
#}

View File

@@ -0,0 +1,38 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
sp {propose*pursue-target*lag
(state <s> ^name RIPR-AIAI
^io.input-link <il>
^io.input-link.track-root <tr>
# ^target-name <tn>
)
(<il> ^ownship-engagement-range-max <erx>)
(<tr> ^<target> <t>)
(<t> ^target-name <tn>
^slant-range-to <srt> <= <erx>
-^positioning <pos> << head-to-head head-to-tail >>)
-->
(<s> ^operator <o> +)
(<o> ^name pursue-target
^target <t>
^actions <a>)
(<a> ^pursue-target <command>)
(<command> ^pursuit-mode lag
^target-name <tn>)
}
#sp {evaluate*pursue-target*reject-lag*closing-too-slow
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^io.input-link.ownship-closing-speed-min <csm>)
# (<o1> ^actions.pursue-target.pursuit-mode lag
# ^target.closing-speed-of <cso> < <csm>)
#-->
# (<s> ^operator <o1> -)
#}

View File

@@ -0,0 +1,61 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
sp {propose*pursue-target*lead*not-head-to-slower-than-target
(state <s> ^name RIPR-AIAI
^io.input-link <il>
^io.input-link.track-root <tr>
# ^target-name <tn>
)
(<il> ^ownship-engagement-range-min <erm>
# ^ownship-engagement-range-max <erx>
^ownship-speed <os>)
(<tr> ^<target> <t>)
(<t> ^target-name <tn>
^slant-range-to <srt> >= <erm>
-^positioning <pos> << head-to-head head-to-tail >>
^speed <spd> >= <os>)
-->
(<s> ^operator <o> +)
(<o> ^name pursue-target
^target <t>
^actions <a>)
(<a> ^pursue-target <command>)
(<command> ^pursuit-mode lead
^target-name <tn>)
}
#sp {evaluate*pursue-target*reject-lead*closing-too-slow
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^io.input-link.ownship-closing-speed-min <csm>)
# (<o1> ^actions.pursue-target.pursuit-mode lead
# ^target.closing-speed-of <cso> < <csm>)
#-->
# (<s> ^operator <o1> -)
#}
#
#sp {evaluate*pursue-target*reject-lead*closing-too-fast
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^io.input-link.ownship-closing-speed-max <csx>)
# (<o1> ^actions.pursue-target.pursuit-mode lead
# ^target.closing-speed-of <cso> > <csx>)
#-->
# (<s> ^operator <o1> -)
#}
sp {evaluate*pursue-target*reject-lead*too-close
(state <s> ^name check-target
^operator <o1> +
^io.input-link.ownship-engagement-range-max <erx>)
(<o1> ^actions.pursue-target.pursuit-mode lead
^target.slant-range-to <srt> < <erx>)
-->
(<s> ^operator <o1> -)
}

View File

@@ -0,0 +1,73 @@
# ****************************************************************************
# CUI
#
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
#
# The use, dissemination or disclosure of data in this file is subject to
# limitation or restriction. See accompanying README and LICENSE for details.
# ****************************************************************************
sp {propose*pursue-target*pure*outside-max-range
(state <s> ^name RIPR-AIAI
^io.input-link <il>
^io.input-link.track-root <tr>
# ^target-name <tn>
)
(<il> ^ownship-engagement-range-max <erx>)
(<tr> ^<target> <t>)
(<t> ^target-name <tn>
^slant-range-to <srt> > <erx>)
-->
(<s> ^operator <o> +)
(<o> ^name pursue-target
^target <t>
^actions <a>)
(<a> ^pursue-target <command>)
(<command> ^pursuit-mode pure
^target-name <tn>)
}
sp {propose*pursue-target*pure*inside-max-range-head-to-x
(state <s> ^name RIPR-AIAI
^io.input-link <il>
^io.input-link.track-root <tr>
# ^target-name <tn>
)
(<il> ^ownship-engagement-range-max <erx>)
(<tr> ^<target> <t>)
(<t> ^target-name <tn>
^slant-range-to <srt> <= <erx>
^positioning <pos> << head-to-head head-to-tail >>)
-->
(<s> ^operator <o> +)
(<o> ^name pursue-target
^target <t>
^actions <a>)
(<a> ^pursue-target <command>)
(<command> ^pursuit-mode pure
^target-name <tn>)
}
#this rule may not be necessary, consider removing?
sp {evaluate*pursue-target*reject-pure*too-close-bad-positioning
(state <s> ^name RIPR-AIAI
^operator <o1> +
^io.input-link.ownship-engagement-range-max <oerx>)
(<o1> ^actions.pursue-target.pursuit-mode pure
^target.slant-range-to <srt> < <oerx>
-^target.positioning << head-to-head head-to-tail >>)
-->
(<s> ^operator <o1> -)
}
#sp {evaluate*pursue-target*reject-pure*closing-too-fast-too-close
# (state <s> ^name RIPR-AIAI
# ^operator <o1> +
# ^io.input-link.ownship-closing-speed-max <csx>
## ^io.input-link.ownship-engagement-range-max <oerx>
# )
# (<o1> ^actions.pursue-target.pursuit-mode pure
## ^target.slant-range-to <srt> < <oerx>
# ^target.closing-speed-of <cso> > <csx>)
#-->
# (<s> ^operator <o1> -)
#}