diff --git a/missions/.gitkeep b/missions/.gitkeep deleted file mode 100644 index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000 --- a/missions/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/testing/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.cl b/missions/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.cl similarity index 100% rename from testing/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.cl rename to missions/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.cl diff --git a/testing/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.output.txt b/missions/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.output.txt similarity index 100% rename from testing/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.output.txt rename to missions/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.output.txt diff --git a/testing/lisp/SailorOverboard/SailorOverboardMission.cl b/missions/lisp/SailorOverboard/SailorOverboardMission.cl similarity index 100% rename from testing/lisp/SailorOverboard/SailorOverboardMission.cl rename to missions/lisp/SailorOverboard/SailorOverboardMission.cl diff --git a/testing/lisp/SailorOverboard/SailorOverboardMission.cl.log.txt b/missions/lisp/SailorOverboard/SailorOverboardMission.cl.log.txt similarity index 100% rename from testing/lisp/SailorOverboard/SailorOverboardMission.cl.log.txt rename to missions/lisp/SailorOverboard/SailorOverboardMission.cl.log.txt diff --git a/testing/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl b/missions/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl similarity index 100% rename from testing/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl rename to missions/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl diff --git a/testing/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl.log.txt b/missions/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl.log.txt similarity index 100% rename from testing/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl.log.txt rename to missions/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl.log.txt diff --git a/testing/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.docx b/missions/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.docx similarity index 100% rename from testing/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.docx rename to missions/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.docx diff --git a/testing/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.pdf b/missions/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.pdf similarity index 100% rename from testing/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.pdf rename to missions/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.pdf diff --git a/testing/prolog/SailorOverboard/MissionExecutionEngine.pl b/missions/prolog/SailorOverboard/MissionExecutionEngine.pl similarity index 100% rename from testing/prolog/SailorOverboard/MissionExecutionEngine.pl rename to missions/prolog/SailorOverboard/MissionExecutionEngine.pl diff --git a/missions/prolog/SailorOverboard/README.md b/missions/prolog/SailorOverboard/README.md new file mode 100644 index 0000000000000000000000000000000000000000..dbd7fd514d6386a9b51e6542da80ffc6329e813c --- /dev/null +++ b/missions/prolog/SailorOverboard/README.md @@ -0,0 +1,82 @@ +# Sailor Overboard UAV Mission + +Sailor overboard response is critical for any maritime vessel and can result in lethal outcomes if not performed successfully. This is an exemplar robot mission corresponding to and complementing human procedures, implemented in the Prolog programming language. + +* The [Sailor Overboard UAV Mission figure](SailorOverboardUavMission.2019Aug12b.png) shows mission logic using the ternary approach to goal definition, with each branch resulting from success, failure or exception. +* Robert B. McGhee, [Achieving Fail-Safe and Ethically Constrained Missions for Manned or Unmanned Vehicles Using Exhaustively Testable MEA Software Breakpoints](AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.pdf), Technical Memorandum, Naval Postgraduate School (NPS), August 2019. + +Instructions follow for running mission tests. + +## Prolog Prerequisites + +1. [Allegro CL 10.1](https://franz.com/downloads/clp/survey) by [Franz](https://franz.com/downloads/clp/survey). We are using the "Free Express Edition." + +## Mission Execution Engine (MEE) + +The [MissionExecutionEngine.cl](MissionExecutionEngine.cl) is a Prolog program that provides +a reusable set of constructs which, when invoked together with a separate set of +mission orders, becomes actively executable following compilation by a Prolog compiler. + +## Sailor Overboard Mission #1 + +[SailorOverboardUavMissionOrdersReducedState1.cl](SailorOverboardUavMissionOrdersReducedState1.cl) mission #1 +uses a similar but simpler mission structure to demonstrate the basic state changes that occur +when running this mission. Here are [sample outputs](SailorOverboardUavMissionOrdersReducedState.log.txt). + +a. First load file [MissionExecutionEngine.cl](MissionExecutionEngine.cl), the RBM Strategic Level task sequencing algorithm. + +b. Compile it (using the Dumptruck icon). Warnings can be ignored. + +c. Similarly load and run [SailorOverboardUavMissionOrdersReducedState1.cl](SailorOverboardUavMissionOrdersReducedState1.cl) + +d. Now type in debug window: **(run)** + +e. For each goal within the mission, type single-letter responses for (S)uccess, (F)ailure, or Abort(x). + +f. Example output file [SailorOverboardUavMissionOrdersReducedState1.log.txt](SailorOverboardUavMissionOrdersReducedState1.log.txt) shows all 21 possible sets of interactions by a human operator. + +## Sailor Overboard Mission #2 +[SailorOverboardUavMissionOrdersReducedState2.cl](SailorOverboardUavMissionOrdersReducedState2.cl) mission #2 +adds further detail to the minimalist mission #1, expanding phase 1 to phases 1.1, 1.2 and 1.3 + +(User note: you may need to restart Allegro CL for proper operation.) + +a. First load file [MissionExecutionEngine.cl](MissionExecutionEngine.cl), the RBM Strategic Level task sequencing algorithm. + +b. Compile it (using the Dumptruck icon). Warnings can be ignored. + +c. Similarly load and run [SailorOverboardUavMissionOrdersReducedState2.cl](SailorOverboardUavMissionOrdersReducedState2.cl) + +d. Now type in debug window: **(run)** + +e. For each goal within the mission, type single-letter responses for (S)uccess, (F)ailure, or Abort(x). + +f. Example output file [SailorOverboardUavMissionOrdersReducedState2.log.txt](SailorOverboardUavMissionOrdersReducedState2.log.txt) shows a variety of interactions by a human operator. + +3. TODO: full [Sailor Overboard Uav Mission](SailorOverboardUavMission.2019Aug12b.png) mission in Prolog. + + +## Sailor Overboard Mission #3 +[SailorOverboardUavMissionOrdersReducedState3.cl](SailorOverboardUavMissionOrdersReducedState3.cl) mission #3 +adds further detail to mission #2, expanding to an 8-phase with a chokepoint at State #5 +i.e. single-node predecessor prior to States 6, 7, 8. + +(User note: you may need to restart Allegro CL for proper operation.) + +a. First load file [MissionExecutionEngine.cl](MissionExecutionEngine.cl), the RBM Strategic Level task sequencing algorithm. + +b. Compile it (using the Dumptruck icon). Warnings can be ignored. + +c. Similarly load and run [SailorOverboardUavMissionOrdersReducedState3.cl](SailorOverboardUavMissionOrdersReducedState3.cl) + +d. Now type in debug window: **(run)** + +e. For each goal within the mission, type single-letter responses for (S)uccess, (F)ailure, or Abort(x). + +f. Example output file [SailorOverboardUavMissionOrdersReducedState3.log.txt](SailorOverboardUavMissionOrdersReducedState3.log.txt) shows a variety of interactions by a human operator. + +3. TODO: full [Sailor Overboard Uav Mission](SailorOverboardUavMission.2019Aug12b.png) mission in Prolog. + +--- + + diff --git a/testing/prolog/SailorOverboard/SailorOverboardUavMission.2019Aug12b.png b/missions/prolog/SailorOverboard/SailorOverboardUavMission.2019Aug12b.png similarity index 100% rename from testing/prolog/SailorOverboard/SailorOverboardUavMission.2019Aug12b.png rename to missions/prolog/SailorOverboard/SailorOverboardUavMission.2019Aug12b.png diff --git a/testing/prolog/SailorOverboard/SailorOverboardUavMission.vsdx b/missions/prolog/SailorOverboard/SailorOverboardUavMission.vsdx similarity index 100% rename from testing/prolog/SailorOverboard/SailorOverboardUavMission.vsdx rename to missions/prolog/SailorOverboard/SailorOverboardUavMission.vsdx diff --git a/testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.log.txt b/missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.log.txt similarity index 100% rename from testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.log.txt rename to missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.log.txt diff --git a/testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.pl b/missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.pl similarity index 100% rename from testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.pl rename to missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.pl diff --git a/testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.log.txt b/missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.log.txt similarity index 100% rename from testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.log.txt rename to missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.log.txt diff --git a/testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.pl b/missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.pl similarity index 100% rename from testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.pl rename to missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.pl diff --git a/testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.log.txt b/missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.log.txt similarity index 100% rename from testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.log.txt rename to missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.log.txt diff --git a/testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.pl b/missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.pl similarity index 100% rename from testing/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.pl rename to missions/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.pl