From 45ff78d2bd32b24df412011769e6a31dbf62c9b9 Mon Sep 17 00:00:00 2001 From: brutzman <brutzman@DESKTOP-2S09UKA.ern.nps.edu> Date: Tue, 22 Oct 2019 15:24:48 -0700 Subject: [PATCH] consolidate testing programs (lisp, prolog) in directory tree for missions --- missions/.gitkeep | 1 - .../JOE2018MissionAutonomousExecution.cl | 0 ...E2018MissionAutonomousExecution.output.txt | 0 .../SailorOverboard/SailorOverboardMission.cl | 0 .../SailorOverboardMission.cl.log.txt | 0 ...ionExhaustiveEvaluationOutcomeSequences.cl | 0 ...stiveEvaluationOutcomeSequences.cl.log.txt | 0 ...stivelyTestableMeaSoftwareBreakpoints.docx | Bin ...ustivelyTestableMeaSoftwareBreakpoints.pdf | Bin .../SailorOverboard/MissionExecutionEngine.pl | 0 missions/prolog/SailorOverboard/README.md | 82 ++++++++++++++++++ .../SailorOverboardUavMission.2019Aug12b.png | Bin .../SailorOverboardUavMission.vsdx | Bin ...boardUavMissionOrdersReducedState1.log.txt | 0 ...rOverboardUavMissionOrdersReducedState1.pl | 0 ...boardUavMissionOrdersReducedState2.log.txt | 0 ...rOverboardUavMissionOrdersReducedState2.pl | 0 ...boardUavMissionOrdersReducedState3.log.txt | 0 ...rOverboardUavMissionOrdersReducedState3.pl | 0 19 files changed, 82 insertions(+), 1 deletion(-) delete mode 100644 missions/.gitkeep rename {testing => missions}/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.cl (100%) rename {testing => missions}/lisp/IeeeJoePaper2018/JOE2018MissionAutonomousExecution.output.txt (100%) rename {testing => missions}/lisp/SailorOverboard/SailorOverboardMission.cl (100%) rename {testing => missions}/lisp/SailorOverboard/SailorOverboardMission.cl.log.txt (100%) rename {testing => missions}/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl (100%) rename {testing => missions}/lisp/SailorOverboard/SailorOverboardMissionExhaustiveEvaluationOutcomeSequences.cl.log.txt (100%) rename {testing => missions}/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.docx (100%) rename {testing => missions}/prolog/SailorOverboard/AchievingFailSafeEthicallyConstrainedMissionsUsingExhaustivelyTestableMeaSoftwareBreakpoints.pdf (100%) rename {testing => missions}/prolog/SailorOverboard/MissionExecutionEngine.pl (100%) create mode 100644 missions/prolog/SailorOverboard/README.md rename {testing => missions}/prolog/SailorOverboard/SailorOverboardUavMission.2019Aug12b.png (100%) rename {testing => missions}/prolog/SailorOverboard/SailorOverboardUavMission.vsdx (100%) rename {testing => missions}/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.log.txt (100%) rename {testing => missions}/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState1.pl (100%) rename {testing => missions}/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.log.txt (100%) rename {testing => missions}/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState2.pl (100%) rename {testing => missions}/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.log.txt (100%) rename {testing => missions}/prolog/SailorOverboard/SailorOverboardUavMissionOrdersReducedState3.pl (100%) diff --git a/missions/.gitkeep b/missions/.gitkeep deleted file mode 100644 index 8b13789..0000000 --- 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 0000000..dbd7fd5 --- /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 -- GitLab