diff --git a/missions/avcl/SailorOverboard.xml b/missions/avcl/SailorOverboard.xml index abbee886abd4ca009be509c94cd1b1bab4ace15b..85afd1b23a615bcbb97a9093ff166bb2144e0a24 100644 --- a/missions/avcl/SailorOverboard.xml +++ b/missions/avcl/SailorOverboard.xml @@ -1,123 +1,123 @@ -<?xml version="1.0" encoding="UTF-8"?> -<AVCL version="3.0" vehicleName="RescueDrone" vehicleType="UAV" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../schemas/AVCL.3.0.xsd"> - <head> - <meta name="title" content="SailorOverboard.xml"/> - <meta name="description" content="AVCL mission to perform SAILOR OVERBOARD operations, carried out in concert with shipboard emergency procedures."/> - <meta name="created" content="19 November 2019"/> - <meta name="modified" content="31 December 2019"/> - <meta name="creator" content="Don Brutzman"/> - <meta name="reference" content="https://wiki.nps.edu/display/NOW/Ethical+Control+of+Unmanned+Systems"/> - <meta name="Image" content="https://gitlab.nps.edu/Savage/EthicalControl/raw/master/missions/SailorOverboard8PhaseMission.png"/> - <meta name="generator" content="Altova XMLSpy, https://www.altova.com"/> - <meta name="generator" content="Apache NetBeans, https://netbeans.apache.org"/> - <meta name="generator" content="NPS Autonomous Unmanned Vehicle (AUV) Workbench, https://savage.nps.edu/AuvWorkbench"/> - <meta name="identifier" content="https://gitlab.nps.edu/Savage/EthicalControl/tree/master/missions/avcl/SailorOverboard.xml"/> - <meta name="license" content="../license.html"/> - </head> - <body> - <MissionPreparation> - <UnitsOfMeasure distance="meters" angle="degrees" mass="kilograms" time="seconds"/> - <AgendaMission> - <LaunchPosition id="LaunchPosition" description="Ship position when robot is launched"> - <LatitudeLongitude latitude="0" longitude="0"/> - </LaunchPosition> - <RecoveryPosition id="RecoveryPosition" description="Ship position when ready to recover robot"> - <LatitudeLongitude latitude="0" longitude="0"/> - </RecoveryPosition> - <GoalList> - <Goal id="Goal1" title="Deploy, Launch" description="Sailor Overboard Immediate Action" phase="Launch" nextOnSuccess="Goal2" nextOnFailure="Goal2" nextOnException="Goal5"> - <Rendezvous description=""> - <TargetVehicleID value="101" description="Sailor in water"/> - </Rendezvous> - <OperatingArea> - <Point> - <LatitudeLongitude latitude="36.62" longitude="121.506"/> - <!--36°36′11″N 121°53′37″W--> - </Point> - </OperatingArea> - <Duration value="300"/> - <ReportingCriteria value="onCommence"/> - <ReportingCriteria value="periodic"/> - <ReportingCriteria value="statusChanged"/> - <ReportingCriteria value="onComplete"/> - </Goal> - <Goal id="Goal2" title="Rendezvous with Sailor" description="Go directly to best known location" phase="Locate" nextOnSuccess="Goal4" nextOnFailure="Goal3" nextOnException="Goal5"> - <Search datumType="point" requiredPD="0.5"> - <Target name="Sailor in water" id="SailorInWater"/> - </Search> - <OperatingArea> - <Point> - <LatitudeLongitude latitude="0" longitude="0"/> - </Point> - </OperatingArea> - <Duration value="6000"/> - </Goal> - <Goal id="Goal3" title="Search for Sailor " description="Sailor position not known, intermittent" phase="Locate" nextOnSuccess="Goal4" nextOnFailure="Goal5" nextOnException="Goal5"> - <MarkTarget description="TODO ensure beacon/pinger in water"> - <Marker type="dyeMarker"/> - <Target name="Sailor in water" id="SailorInWater2" description="TODO need refid to avoid duplicatess and have single reference"/> - </MarkTarget> - <OperatingArea> - <Point> - <LatitudeLongitude latitude="0" longitude="0"/> - </Point> - </OperatingArea> - <Duration value="6000"/> - </Goal> - <Goal id="Goal4" title="Track Sailor afloat until safe" description="Watch closely, not to interfere with rescue operations" phase="Track" nextOnSuccess="Goal5" nextOnFailure="Goal5" nextOnException="Goal5"> - <MonitorTransmissions xsi:type="monitorTransmissionsElementType" description="Track sailor in water"/> - <OperatingArea> - <Point> - <LatitudeLongitude latitude="0" longitude="0"/> - </Point> - </OperatingArea> - <Duration value="6000"/> - </Goal> - <Goal id="Goal5" title="Proceed to Recovery" description="Mission complete, prepare for pickup" phase="Mission Finish" nextOnSuccess="Goal6" nextOnFailure="Goal2" nextOnException="Goal6"> - <Reposition description="Return to ship or other recovery point"> - </Reposition> - <OperatingArea> - <Point> - <LatitudeLongitude latitude="0" longitude="0"/> - </Point> - </OperatingArea> - <Duration value="6000"/> - </Goal> - <Goal id="Goal6" title="Halt and prepare for recovery" phase="Recover Robot" description="Operations complete, final success state"> - <Rendezvous description=""> - <TargetVehicleID value="102" description="Recovery ship"/> - </Rendezvous> - <OperatingArea> - <Point> - <LatitudeLongitude latitude="0" longitude="0"/> - </Point> - </OperatingArea> - <Duration value="6000"/> - </Goal> - <Goal id="Goal7" title="Halt and deploy recovery beacon" phase="Recover Robot" description="Unable to continue, final failure state"> - <Rendezvous description=""> - <TargetVehicleID value="102" description="Recovery ship"/> - </Rendezvous> - <OperatingArea> - <Point> - <LatitudeLongitude latitude="0" longitude="0"/> - </Point> - </OperatingArea> - <Duration value="6000"/> - </Goal> - <Goal id="Goal8" title="Halt and await further orders" phase="Recover Robot" description="Unexpected problem, final exception state"> - <Rendezvous description=""> - <TargetVehicleID value="102" description="Recovery ship"/> - </Rendezvous> - <OperatingArea> - <Point> - <LatitudeLongitude latitude="0" longitude="0"/> - </Point> - </OperatingArea> - <Duration value="6000"/> - </Goal> - </GoalList> - </AgendaMission> - </MissionPreparation> - </body> -</AVCL> +<?xml version="1.0" encoding="UTF-8"?> +<AVCL version="3.0" vehicleName="RescueDrone" vehicleType="UAV" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../schemas/AVCL.3.0.xsd"> + <head> + <meta name="title" content="SailorOverboard.xml"/> + <meta name="description" content="AVCL mission to perform SAILOR OVERBOARD operations, carried out in concert with shipboard emergency procedures."/> + <meta name="created" content="19 November 2019"/> + <meta name="modified" content="9 June 2022"/> + <meta name="creator" content="Don Brutzman"/> + <meta name="reference" content="https://wiki.nps.edu/display/NOW/Ethical+Control+of+Unmanned+Systems"/> + <meta name="Image" content="https://gitlab.nps.edu/Savage/EthicalControl/raw/master/missions/SailorOverboard8PhaseMission.png"/> + <meta name="generator" content="Altova XMLSpy, https://www.altova.com"/> + <meta name="generator" content="Apache NetBeans, https://netbeans.apache.org"/> + <meta name="generator" content="NPS Autonomous Unmanned Vehicle (AUV) Workbench, https://savage.nps.edu/AuvWorkbench"/> + <meta name="identifier" content="https://gitlab.nps.edu/Savage/EthicalControl/tree/master/missions/avcl/SailorOverboard.xml"/> + <meta name="license" content="../license.html"/> + </head> + <body> + <MissionPreparation> + <UnitsOfMeasure distance="meters" angle="degrees" mass="kilograms" time="seconds"/> + <AgendaMission> + <LaunchPosition id="LaunchPosition" description="Ship position when robot is launched"> + <LatitudeLongitude latitude="0" longitude="0"/> + </LaunchPosition> + <RecoveryPosition id="RecoveryPosition" description="Ship position when ready to recover robot"> + <LatitudeLongitude latitude="0" longitude="0"/> + </RecoveryPosition> + <GoalList> + <Goal id="Goal1" title="Deploy, Launch" description="Sailor Overboard Immediate Action" phase="Launch" nextOnSuccess="Goal2" nextOnFailure="Goal7" nextOnException="Goal8"> + <Rendezvous description=""> + <TargetVehicleID value="101" description="Sailor in water"/> + </Rendezvous> + <OperatingArea> + <Point> + <LatitudeLongitude latitude="36.62" longitude="121.506"/> + <!--36°36′11″N 121°53′37″W--> + </Point> + </OperatingArea> + <Duration value="300"/> + <ReportingCriteria value="onCommence"/> + <ReportingCriteria value="periodic"/> + <ReportingCriteria value="statusChanged"/> + <ReportingCriteria value="onComplete"/> + </Goal> + <Goal id="Goal2" title="Rendezvous with Sailor" description="Go directly to best known location" phase="Locate" nextOnSuccess="Goal4" nextOnFailure="Goal3" nextOnException="Goal5"> + <Search datumType="point" requiredPD="0.5"> + <Target name="Sailor in water" id="SailorInWater"/> + </Search> + <OperatingArea> + <Point> + <LatitudeLongitude latitude="0" longitude="0"/> + </Point> + </OperatingArea> + <Duration value="6000"/> + </Goal> + <Goal id="Goal3" title="Search for Sailor " description="Sailor position not known, intermittent" phase="Locate" nextOnSuccess="Goal4" nextOnFailure="Goal5" nextOnException="Goal5"> + <MarkTarget description="TODO ensure beacon/pinger in water"> + <Marker type="dyeMarker"/> + <Target name="Sailor in water" id="SailorInWater2" description="TODO need refid to avoid duplicatess and have single reference"/> + </MarkTarget> + <OperatingArea> + <Point> + <LatitudeLongitude latitude="0" longitude="0"/> + </Point> + </OperatingArea> + <Duration value="6000"/> + </Goal> + <Goal id="Goal4" title="Track Sailor afloat until safe" description="Watch closely, not to interfere with rescue operations" phase="Track" nextOnSuccess="Goal5" nextOnFailure="Goal5" nextOnException="Goal5"> + <MonitorTransmissions xsi:type="monitorTransmissionsElementType" description="Track sailor in water"/> + <OperatingArea> + <Point> + <LatitudeLongitude latitude="0" longitude="0"/> + </Point> + </OperatingArea> + <Duration value="6000"/> + </Goal> + <Goal id="Goal5" title="Proceed to Recovery" description="Mission complete, prepare for pickup" phase="Mission Finish" nextOnSuccess="Goal6" nextOnFailure="Goal7" nextOnException="Goal8"> + <Reposition description="Return to ship or other recovery point"> + </Reposition> + <OperatingArea> + <Point> + <LatitudeLongitude latitude="0" longitude="0"/> + </Point> + </OperatingArea> + <Duration value="6000"/> + </Goal> + <Goal id="Goal6" title="Halt and prepare for recovery" phase="Recover Robot" description="Operations complete, final success state"> + <Rendezvous description=""> + <TargetVehicleID value="102" description="Recovery ship"/> + </Rendezvous> + <OperatingArea> + <Point> + <LatitudeLongitude latitude="0" longitude="0"/> + </Point> + </OperatingArea> + <Duration value="6000"/> + </Goal> + <Goal id="Goal7" title="Halt and deploy recovery beacon" phase="Recover Robot" description="Unable to continue, final failure state"> + <Rendezvous description=""> + <TargetVehicleID value="102" description="Recovery ship"/> + </Rendezvous> + <OperatingArea> + <Point> + <LatitudeLongitude latitude="0" longitude="0"/> + </Point> + </OperatingArea> + <Duration value="6000"/> + </Goal> + <Goal id="Goal8" title="Halt and await further orders" phase="Recover Robot" description="Unexpected problem, final exception state"> + <Rendezvous description=""> + <TargetVehicleID value="102" description="Recovery ship"/> + </Rendezvous> + <OperatingArea> + <Point> + <LatitudeLongitude latitude="0" longitude="0"/> + </Point> + </OperatingArea> + <Duration value="6000"/> + </Goal> + </GoalList> + </AgendaMission> + </MissionPreparation> + </body> +</AVCL> diff --git a/missions/lisp/SailorOverboardConverted.cl b/missions/lisp/SailorOverboardConverted.cl index ca99887e80fc249922e9851dabcfcec8c2e7b265..d458506c18ad44d78b7eb8ef0aab7e775a0d3997 100644 --- a/missions/lisp/SailorOverboardConverted.cl +++ b/missions/lisp/SailorOverboardConverted.cl @@ -115,7 +115,7 @@ (setf terminal-goal-list '(goalGoal6 goalGoal7 goalGoal8)) (initialize-goal goalGoal1 "Goal1: Deploy, Launch - Sailor Overboard Immediate Action" - '(("Success." goalGoal2) ("Failed." goalGoal2) ("Exception." goalGoal5))) + '(("Success." goalGoal2) ("Failed." goalGoal7) ("Exception." goalGoal8))) (initialize-goal goalGoal2 "Goal2: Rendezvous with Sailor - Go directly to best known location" '(("Success." goalGoal4) ("Failed." goalGoal3) ("Exception." goalGoal5))) @@ -127,7 +127,7 @@ '(("Success." goalGoal5) ("Failed." goalGoal5) ("Exception." goalGoal5))) (initialize-goal goalGoal5 "Goal5: Proceed to Recovery - Mission complete, prepare for pickup" - '(("Success." goalGoal6) ("Failed." goalGoal2) ("Exception." goalGoal6))) + '(("Success." goalGoal6) ("Failed." goalGoal7) ("Exception." goalGoal8))) (initialize-goal goalGoal6 "Goal6: Halt and prepare for recovery - Operations complete, final success state" nil) diff --git a/missions/prolog/SailorOverboardConverted.pl b/missions/prolog/SailorOverboardConverted.pl index fb4109ccf439a5d9760f0ce01ad62b188d7829ca..32f347472507fa37c139e4b65c1341f755325627 100644 --- a/missions/prolog/SailorOverboardConverted.pl +++ b/missions/prolog/SailorOverboardConverted.pl @@ -16,8 +16,8 @@ (<-- (execute_goal 'Goal1) (command "Goal1: Deploy, Launch - Sailor Overboard Immediate Action") (update_outcome) ; initial goal, by default (current_goal_outcome s) (change_goal 'Goal1 'Goal2)) -(<- (execute_goal 'Goal1) (current_goal_outcome f) (change_goal 'Goal1 'Goal2)) -(<- (execute_goal 'Goal1) (current_goal_outcome x) (change_goal 'Goal1 'Goal5)) +(<- (execute_goal 'Goal1) (current_goal_outcome f) (change_goal 'Goal1 'Goal7)) +(<- (execute_goal 'Goal1) (current_goal_outcome x) (change_goal 'Goal1 'Goal8)) (<- (execute_goal 'Goal2) (command "Goal2: Rendezvous with Sailor - Go directly to best known location") (update_outcome) (current_goal_outcome s) (change_goal 'Goal2 'Goal4)) (<- (execute_goal 'Goal2) (current_goal_outcome f) (change_goal 'Goal2 'Goal3)) @@ -32,8 +32,8 @@ (<- (execute_goal 'Goal4) (current_goal_outcome x) (change_goal 'Goal4 'Goal5)) (<- (execute_goal 'Goal5) (command "Goal5: Proceed to Recovery - Mission complete, prepare for pickup") (update_outcome) (current_goal_outcome s) (change_goal 'Goal5 'Goal6)) -(<- (execute_goal 'Goal5) (current_goal_outcome f) (change_goal 'Goal5 'Goal2)) -(<- (execute_goal 'Goal5) (current_goal_outcome x) (change_goal 'Goal5 'Goal6)) +(<- (execute_goal 'Goal5) (current_goal_outcome f) (change_goal 'Goal5 'Goal7)) +(<- (execute_goal 'Goal5) (current_goal_outcome x) (change_goal 'Goal5 'Goal8)) (<- (execute_goal 'Goal6) (command "Goal6: Halt and prepare for recovery - Operations complete, final success state") (update_outcome) (current_goal_outcome s) (change_goal 'Goal6 'mission_complete)) (<- (execute_goal 'Goal6) (current_goal_outcome f) (change_goal 'Goal6 'mission_abort)) diff --git a/missions/turtle/SailorOverboardConverted.ttl b/missions/turtle/SailorOverboardConverted.ttl index 83919a614e08c3c732861ea6fb25d433c9021145..ab855bd7573ab42cc2af26d89c0fc931302aaa68 100644 --- a/missions/turtle/SailorOverboardConverted.ttl +++ b/missions/turtle/SailorOverboardConverted.ttl @@ -22,8 +22,8 @@ owl:imports <https://savage.nps.edu/EthicalControl/ontologies/MissionExecutionOn :Goal1 rdf:type owl:NamedIndividual , owl:Thing , meo:Goal ; meo:hasNextOnSuccess :Goal2 ; - meo:hasNextOnFailure :Goal2 ; - meo:hasNextOnException :Goal5 ; + meo:hasNextOnFailure :Goal7 ; + meo:hasNextOnException :Goal8 ; meo:isPartOfPhase "Launch" ; rdfs:comment "Deploy, Launch: Sailor Overboard Immediate Action" . @@ -50,8 +50,8 @@ owl:imports <https://savage.nps.edu/EthicalControl/ontologies/MissionExecutionOn :Goal5 rdf:type owl:NamedIndividual , owl:Thing , meo:Goal ; meo:hasNextOnSuccess :Goal6 ; - meo:hasNextOnFailure :Goal2 ; - meo:hasNextOnException :Goal6 ; + meo:hasNextOnFailure :Goal7 ; + meo:hasNextOnException :Goal8 ; meo:isPartOfPhase "Mission Finish" ; rdfs:comment "Proceed to Recovery: Mission complete, prepare for pickup" .