RMPL for group-Enroute MERS Conditionality Group-Enroute([l,u]=t choose i and Preemption Group-Traverse- Path(PATH1 1, PATH1 2, PAtH1 3, Re POS)[I*90,u*9081 1 maintaining PATH1 OK, Group-Traverse- Path(PATH2 1, PATH2 2, PATH2 3, RE POS)[l*90,u*908] Group-Transmit(OPS, ARRIVED)[0, 21, Group-Wait(hOlDI, HOlD2)[O, u*10%] 1 watching PROCEED RMPL for Group-Enroute MERS Sequentiall choose i Concurrency Path(PATHl 1, PATHl 2,P 3, RE POS)[1*90号,u*90号]; maintaining PATHI do i Group-Traverse- Path(PATH2 1, PATH2 2, PATH2 3, RE POS)[l*90,u*908] maintaining PATH2 OK Group-Transmit(OPS,ARRIVED)[0,2,t- Gr。up-Wait(HOLD1,HOLD2)[0,u*10号
RMPL for Group-Enroute Group-Enroute()[l,u] = { choose { do { Group-TraversePath(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-TraversePath(PATH2_1,PATH2_2,PATH2_3,RE_POS)[l*90%,u*90%]; } maintaining PATH2_OK }; { Group-Transmit(OPS,ARRIVED)[0,2], do { Group-Wait(HOLD1,HOLD2)[0,u*10%] } watching PROCEED } } Conditionality and Preemption: RMPL for Group-Enroute Group-Enroute()[l,u] = { choose { do { Group-TraversePath(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-TraversePath(PATH2_1,PATH2_2,PATH2_3,RE_POS)[l*90%,u*90%]; } maintaining PATH2_OK } ; { Group-Transmit(OPS,ARRIVED)[0,2], do { Group-Wait(HOLD1,HOLD2)[0,u*10%] } watching PROCEED } } Sequentiality: Concurrency:
RMPL for group-Enroute MERS Temporal Constraints Group-Enrouteo[l,u= do Path(PATH1 1, PATH1 2, PATH1 3, RE POS)[I*90%,u*901 ning PATH1 Path(PATH2 1, PATH2 2, PATH2 3, RE POS)[l*90%,u*90]i 1 maintaining PATH2 OK Group-Transmit(OPS, ARRIVED)[0, 21, i watching PROCEED RMPL for Group-Enroute MERS Non-deterministi Group-Enroute()[l choose i choice Group-T Path(PATH1 1, PATH1 2 13, RE POS)[1*908,u*908 1 maintaining PATH do Group-Traverse Path(PATH2 1, PATH2 2, PATH2 3, RE PoS)[*90,u*90] 1 maintaining PATH2 OK Group-Transmit(OPS, ARRIVED)[0, 2] Gr。up-Wait(HOLD1,HOLD2)[0,u*10号
RMPL for Group-Enroute Group-Enroute()[l,u] = { choose { do { Group-FlyPath(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-FlyPath(PATH2_1,PATH2_2,PATH2_3,RE_POS)[l*90%,u*90%]; } maintaining PATH2_OK }; { Group-Transmit(OPS,ARRIVED)[0,2], do { Group-Wait(HOLD1,HOLD2)[0,u*10%] } watching PROCEED } } Temporal Constraints: RMPL for Group-Enroute Group-Enroute()[l,u] = { choose { do { Group-TraversePath(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-TraversePath(PATH2_1,PATH2_2,PATH2_3,RE_POS)[l*90%,u*90%]; } maintaining PATH2_OK }; { Group-Transmit(OPS,ARRIVED)[0,2], do { Group-Wait(HOLD1,HOLD2)[0,u*10%] } watching PROCEED } } Non-deterministic choice:
Model-Predictive Dispatch for RMPL MERS How do we provide fast, temporally flexible planning? Graph-based planners support fast planning but plans are totally order Desire flexible plans based on simple temporal networks(e.g, HSTS, Muscetola et al.) How do we create temporally flexible plan graphs Generalize simple temporal networks ( temporal plan network TPN) kas Model-Predictive Dispatch for RMPL MERS Programming Language RMPL Compiler Represents all Temporal Plan Network(TPN)with STN RMPL executions Reactive Temporal Planner Selects schedulable execution threads of TPN Concurrent Plan Plan= Execution threads related by Simple Temporal ne
• How do we provide fast, temporally flexible planning? • Graph-based planners support fast planning. • … but plans are totally order. • Desire flexible plans based on simple temporal networks (e.g., HSTS, Muscetola et al.). How do we create temporally flexible plan graphs? • Generalize simple temporal networks (temporal plan network TPN). Model-Predictive Dispatch for RMPL RMPL Compiler Temporal Plan Network (TPN) with STN Reactive Temporal Planner z Selects schedulable execution threads of TPN Reactive Model-based Programming Language Concurrent Plan z Plan = Execution threads related by Simple Temporal Net z Represents all RMPL executions Model-Predictive Dispatch for RMPL