Swarm2.mp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. /*//————————————————————————————
  2. // Kristin Giammarco
  3. // 11 February 2015 - Initial Model Started by KGiammarco
  4. // 12 February 2015 - Made Executable for Eagle6 KGiammarco
  5. // 21 Feb 2015 - Interactions 12, 13, 14a, 14b, 15 causing execution issues,
  6. // tried retyping Interaction 15 with no success
  7. // Based on "Swarm CONOPs" Draft 11 February 2015
  8. //---------------------------------------------------------
  9. notes:
  10. 1. COORDINATE should be applied to roots, hence
  11. I’ve replaced UAV (which is just a composite event) with SWARM
  12. 2. Swarm is a set (no ordering), this requires Asynchronous COORDINATE <!>
  13. 3. Heavy coordination implies that even for scope 2 there is only 1 trace.
  14. Need to look carefully where in the model appears a coordination
  15. with root that allows only a single event participating in the COORDINATE.
  16. //---------------------------------------------------------
  17. // Main Actors
  18. //————————————————————————————*/
  19. SCHEMA Swarm2
  20. ROOT Flight_Crew: Conduct_PreMission_Briefing
  21. (* PreFlight_UAV *)
  22. Propose_Staging_Plans
  23. (* Request_UAV_Launch_Permission
  24. Launch_UAV
  25. Assess_Flight_Behavior
  26. Confirm_Nominal_Flight_Behavior
  27. Stage_UAV_for_Ingress *)
  28. Alert_All_UAVs_Staged
  29. (* Observe_New_UAV_in_Recovery_List
  30. [ Receive_Recovery_Prioritization_List ]
  31. Recover_UAV
  32. Retrieve_UAV
  33. Alert_RC_UAV_Landing *)
  34. Confirm_UAVs_Recovered_Retrieved
  35. Conduct_PostMission_Hotwash;
  36. ROOT Swarm: {+ UAV +};
  37. /* composite event */
  38. UAV: Undergo_PreFlight
  39. Launch
  40. Report_Flight_Status
  41. Confirm_Staged_for_Ingress
  42. Confirm_Ingress_SubSwarm_ID
  43. Commence_Mission
  44. Confirm_Egress_SubSwarm_ID
  45. Confirm_Staged_for_Egress
  46. Land;
  47. COORDINATE <!> $a: PreFlight_UAV FROM Flight_Crew,
  48. $b: Undergo_PreFlight FROM Swarm
  49. DO ADD $a PRECEDES $b; OD; /* 2 */
  50. COORDINATE <!> $a: Launch_UAV FROM Flight_Crew,
  51. $b: Launch FROM Swarm
  52. DO ADD $a PRECEDES $b; OD; /* 6 */
  53. COORDINATE <!> $a: Report_Flight_Status FROM Swarm,
  54. $b: Assess_Flight_Behavior FROM Flight_Crew
  55. DO ADD $a PRECEDES $b; OD; /* 7 */
  56. COORDINATE <!> $a: Stage_UAV_for_Ingress FROM Flight_Crew,
  57. $b: Confirm_Staged_for_Ingress FROM Swarm
  58. DO ADD $a PRECEDES $b; OD; /* 8a */
  59. COORDINATE <!> $a: Confirm_Staged_for_Egress FROM Swarm,
  60. $b: Observe_New_UAV_in_Recovery_List FROM Flight_Crew
  61. DO ADD $a PRECEDES $b; OD; /* 12 */
  62. COORDINATE <!> $a: Recover_UAV FROM Flight_Crew,
  63. $b: Land FROM Swarm
  64. DO ADD $b PRECEDES $a; OD; /* 14a */
  65. ROOT Mission_Commander: Conduct_PreMission_Briefing
  66. Confirm_Staging_Plans
  67. Confirm_Swarm_Mission_Plan
  68. (* Grant_UAV_Launch_Permission *)
  69. Conduct_PostMission_Hotwash;
  70. COORDINATE $a: Propose_Staging_Plans FROM Flight_Crew,
  71. $b: Confirm_Staging_Plans FROM Mission_Commander
  72. DO ADD $a PRECEDES $b; OD; /* 3 */
  73. COORDINATE $a: Request_UAV_Launch_Permission FROM Flight_Crew,
  74. $b: Grant_UAV_Launch_Permission FROM Mission_Commander
  75. DO ADD $a PRECEDES $b; OD; /* 5 */
  76. COORDINATE $a: Confirm_UAVs_Recovered_Retrieved FROM Flight_Crew,
  77. $b: Conduct_PostMission_Hotwash FROM Mission_Commander
  78. DO ADD $a PRECEDES $b; OD; /* 16a */
  79. ROOT Swarm_Operator: Conduct_PreMission_Briefing
  80. Propose_Swarm_Mission_Plan
  81. (* Assign_Ingress_SubSwarmID *)
  82. Command_Swarm_to_Commence_Mission
  83. (* Assign_Egress_SubSwarmID *)
  84. Provide_Recovery_Prioritization_List
  85. Conduct_PostMission_Hotwash;
  86. COORDINATE $a: Propose_Swarm_Mission_Plan FROM Swarm_Operator,
  87. $b: Confirm_Swarm_Mission_Plan FROM Mission_Commander
  88. DO ADD $a PRECEDES $b; OD; /* 4 */
  89. COORDINATE <!> $a: Confirm_Staged_for_Ingress FROM Swarm,
  90. $b: Assign_Ingress_SubSwarmID FROM Swarm_Operator
  91. DO ADD $a PRECEDES $b; OD; /* 8b */
  92. COORDINATE <!> $a: Assign_Ingress_SubSwarmID FROM Swarm_Operator,
  93. $b: Confirm_Ingress_SubSwarm_ID FROM Swarm
  94. DO ADD $a PRECEDES $b; OD; /* 9 */
  95. COORDINATE $a: Alert_All_UAVs_Staged FROM Flight_Crew,
  96. $b: Command_Swarm_to_Commence_Mission FROM Swarm_Operator
  97. DO ADD $a PRECEDES $b; OD; /* 10a */
  98. COORDINATE <!> $a: Command_Swarm_to_Commence_Mission FROM Swarm_Operator,
  99. $b: Commence_Mission FROM Swarm
  100. DO ADD $a PRECEDES $b; OD; /* 10b */
  101. COORDINATE <!> $a: Assign_Egress_SubSwarmID FROM Swarm_Operator,
  102. $b: Confirm_Egress_SubSwarm_ID FROM Swarm
  103. DO ADD $a PRECEDES $b; OD; /* 11 */
  104. COORDINATE $a: Provide_Recovery_Prioritization_List FROM Swarm_Operator,
  105. $b: Receive_Recovery_Prioritization_List FROM Flight_Crew
  106. DO ADD $a PRECEDES $b; OD; /* 13 */
  107. ROOT Range_Control: (* Receive_UAV_Landing_Notification *);
  108. COORDINATE $a: Alert_RC_UAV_Landing FROM Flight_Crew,
  109. $b: Receive_UAV_Landing_Notification FROM Range_Control
  110. DO ADD $a PRECEDES $b; OD; /* 15 */
  111. ROOT Safety_Coordinator: Conduct_PreMission_Briefing
  112. Conduct_PostMission_Hotwash;
  113. /*
  114. //---------------------------------------------------------
  115. // Interactions
  116. // SHARE ALL Simulating COORDINATE
  117. //---------------------------------------------------------
  118. Mission_Commander, Flight_Crew, Swarm_Operator, Safety_Coordinator SHARE ALL Conduct_PreMission_Briefing;
  119. */
  120. /*
  121. ROOT Interaction2: (* (PreFlight_UAV Undergo_PreFlight) *);
  122. Flight_Crew, Interaction2 SHARE ALL PreFlight_UAV;
  123. UAV, Interaction2 SHARE ALL Undergo_PreFlight;
  124. ROOT Interaction3: (* (Propose_Staging_Plans Confirm_Staging_Plans) *);
  125. Flight_Crew, Interaction3 SHARE ALL Propose_Staging_Plans;
  126. Mission_Commander, Interaction3 SHARE ALL Confirm_Staging_Plans;
  127. //COORDINATE $a: Propose_Swarm_Mission_Plan FROM Swarm_Operator,
  128. // $b: Confirm_Swarm_Mission_Plan FROM Mission_Commander
  129. // DO ADD $a PRECEDES $b OD; //4
  130. ROOT Interaction4: (* (Propose_Swarm_Mission_Plan Confirm_Swarm_Mission_Plan) *);
  131. Swarm_Operator, Interaction4 SHARE ALL Propose_Swarm_Mission_Plan;
  132. Mission_Commander, Interaction4 SHARE ALL Confirm_Swarm_Mission_Plan;
  133. //COORDINATE $a: Request_UAV_Launch_Permission FROM Flight_Crew,
  134. // $b: Grant_UAV_Launch_Permission FROM Mission_Commander
  135. // DO ADD $a PRECEDES $b OD; //5
  136. ROOT Interaction5: (* (Request_UAV_Launch_Permission Grant_UAV_Launch_Permission) *);
  137. Flight_Crew, Interaction5 SHARE ALL Request_UAV_Launch_Permission;
  138. Mission_Commander, Interaction5 SHARE ALL Grant_UAV_Launch_Permission;
  139. //COORDINATE $a: Launch_UAV FROM Flight_Crew,
  140. // $b: Launch FROM UAV
  141. // DO ADD $a PRECEDES $b OD; //6
  142. ROOT Interaction6: (* (Launch_UAV Launch) *);
  143. Flight_Crew, Interaction6 SHARE ALL Launch_UAV;
  144. UAV, Interaction6 SHARE ALL Launch;
  145. //COORDINATE $a: Report_Flight_Status FROM UAV,
  146. // $b: Assess_Flight_Behavior FROM Flight_Crew
  147. // DO ADD $a PRECEDES $b OD; //7
  148. ROOT Interaction7: (* (Report_Flight_Status Assess_Flight_Behavior) *);
  149. UAV, Interaction7 SHARE ALL Report_Flight_Status;
  150. Flight_Crew, Interaction7 SHARE ALL Assess_Flight_Behavior;
  151. //COORDINATE $a: Stage_UAV_for_Ingress FROM Flight_Crew,
  152. // $b: Confirm_Staged_for_Ingress FROM UAV
  153. // DO ADD $a PRECEDES $b OD; //8a
  154. ROOT Interaction8a: (* (Stage_UAV_for_Ingress Confirm_Staged_for_Ingress) *);
  155. Flight_Crew, Interaction8a SHARE ALL Stage_UAV_for_Ingress;
  156. UAV, Interaction8a SHARE ALL Confirm_Staged_for_Ingress;
  157. //COORDINATE $a: Confirm_Staged_for_Ingress FROM UAV,
  158. // $b: Assign_Ingress_SubSwarmID FROM Swarm_Operator
  159. // DO ADD $a PRECEDES $b OD; //8b
  160. ROOT Interaction8b: (* (Confirm_Staged_for_Ingress Assign_Ingress_SubSwarmID) *);
  161. UAV, Interaction8b SHARE ALL Confirm_Staged_for_Ingress;
  162. Swarm_Operator, Interaction8b SHARE ALL Assign_Ingress_SubSwarmID;
  163. //COORDINATE $a: Assign_Ingress_SubSwarmID FROM Swarm_Operator,
  164. // $b: Confirm_Ingress_SubSwarm_ID FROM UAV
  165. // DO ADD $a PRECEDES $b OD; //9
  166. ROOT Interaction9: (* (Assign_Ingress_SubSwarmID Confirm_Ingress_SubSwarm_ID) *);
  167. Swarm_Operator, Interaction9 SHARE ALL Assign_Ingress_SubSwarmID;
  168. UAV, Interaction9 SHARE ALL Confirm_Ingress_SubSwarm_ID;
  169. //COORDINATE $a: Alert_All_UAVs_Staged FROM Flight_Crew
  170. // $b: Command_Swarm_to_Commence_Mission FROM Swarm_Operator
  171. // DO ADD $a PRECEDES $b OD; //10a
  172. ROOT Interaction10a: (* (Alert_All_UAVs_Staged Command_Swarm_to_Commence_Mission) *);
  173. Flight_Crew, Interaction10a SHARE ALL Alert_All_UAVs_Staged;
  174. Swarm_Operator, Interaction10a SHARE ALL Command_Swarm_to_Commence_Mission;
  175. //COORDINATE $a: Command_Swarm_to_Commence_Mission FROM Swarm_Operator,
  176. // $b: Commence_Mission FROM UAV
  177. // DO ADD $a PRECEDES $b OD; //10b
  178. ROOT Interaction10b: (* (Command_Swarm_to_Commence_Mission Commence_Mission) *);
  179. Swarm_Operator, Interaction10b SHARE ALL Command_Swarm_to_Commence_Mission;
  180. UAV, Interaction10b SHARE ALL Commence_Mission;
  181. //COORDINATE $a: Assign_Egress_SubSwarmID FROM Swarm_Operator,
  182. // $b: Confirm_Egress_SubSwarm_ID FROM UAV
  183. // DO ADD $a PRECEDES $b OD; //11
  184. ROOT Interaction11: (* (Assign_Egress_SubSwarmID Confirm_Egress_SubSwarm_ID) *);
  185. Swarm_Operator, Interaction11 SHARE ALL Assign_Egress_SubSwarmID;
  186. UAV, Interaction11 SHARE ALL Confirm_Egress_SubSwarm_ID;
  187. //COORDINATE $a: Confirm_Staged_for_Egress FROM UAV,
  188. // $b: Observe_New_UAV_in_Recovery_List FROM Flight_Crew
  189. // DO ADD $a PRECEDES $b OD; //12
  190. //ROOT Interaction12: (* (Confirm_Staged_for_Egress Observe_New_UAV_in_Recovery_List) *);
  191. //UAV, Interaction12 SHARE ALL Confirm_Staged_for_Egress;
  192. //Flight_Crew, Interaction12 SHARE ALL Observe_New_UAV_in_Recovery_List;
  193. //COORDINATE $a: Provide_Recovery_Prioritization_List FROM Swarm_Operator,
  194. // $b: Receive_Recovery_Prioritization_List FROM Flight_Crew
  195. // DO ADD $a PRECEDES $b OD; //13
  196. //ROOT Interaction13: (* (Provide_Recovery_Prioritization_List Receive_Recovery_Prioritization_List) *);
  197. //Swarm_Operator, Interaction13 SHARE ALL Provide_Recovery_Prioritization_List;
  198. //Flight_Crew, Interaction13 SHARE ALL Receive_Recovery_Prioritization_List;
  199. //COORDINATE $a: Recover_UAV FROM Flight_Crew,
  200. // $b: Land FROM UAV
  201. // DO ADD $a PRECEDES $b OD; //14a
  202. //ROOT Interaction14a: (* (Recover_UAV Land) *);
  203. //Flight_Crew, Interaction14a SHARE ALL Recover_UAV;
  204. //UAV, Interaction14a SHARE ALL Land;
  205. //COORDINATE $a: Land FROM UAV,
  206. // $b: Retrieve_UAV FROM Flight_Crew
  207. // DO ADD $a PRECEDES $b OD; //14b
  208. //ROOT Interaction14b: (* (Land Retrieve_UAV) *);
  209. //UAV, Interaction14b SHARE ALL Land;
  210. //Flight_Crew, Interaction14b SHARE ALL Retrieve_UAV;
  211. //COORDINATE $a: Alert_RC_UAV_Landing FROM Flight_Crew,
  212. // $b: Receive_UAV_Landing_Notification FROM Range_Control
  213. // DO ADD $a PRECEDES $b OD; //15
  214. //ROOT Interaction15: (* (Alert_RC_UAV_Landing Receive_UAV_Landing_Notification) *);
  215. //Flight_Crew, Interaction15 SHARE ALL Alert_RC_UAV_Landing;
  216. //Range_Control, Interaction15 SHARE ALL Receive_UAV_Landing_Notification;
  217. ROOT Interaction15: (* (Alert_RC_UAV_Landing Receive_UAV_Landing_Notification) *);
  218. Flight_Crew, Interaction15 SHARE ALL Alert_RC_UAV_Landing;
  219. Range_Control, Interaction15 SHARE ALL Receive_UAV_Landing_Notification;
  220. //COORDINATE $a: Confirm_UAVs_Recovered_Retrieved FROM Flight_Crew,
  221. // $b: Conduct_PostMission_Hotwash FROM Mission_Commander
  222. // DO ADD $a PRECEDES $b OD; //16a
  223. ROOT Interaction16a: (* (Confirm_UAVs_Recovered_Retrieved Conduct_PostMission_Hotwash) *);
  224. Flight_Crew, Interaction16a SHARE ALL Confirm_UAVs_Recovered_Retrieved;
  225. Mission_Commander, Interaction16a SHARE ALL Conduct_PostMission_Hotwash;
  226. Mission_Commander, Flight_Crew, Swarm_Operator, Safety_Coordinator
  227. SHARE ALL Conduct_PostMission_Hotwash;
  228. //16b
  229. */