1 / 70

Executing Reactive, Model-based Programs through Graph-based Temporal Planning

Executing Reactive, Model-based Programs through Graph-based Temporal Planning. Phil Kim and Brian C. Williams, Artificial Intelligence and Space Systems Labs Massachusetts Institute of Technology Mark Abramson Draper Labs. Outline. Cooperative Vehicle Missions Model-based Programming

Télécharger la présentation

Executing Reactive, Model-based Programs through Graph-based Temporal Planning

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Executing Reactive, Model-based Programs through Graph-based Temporal Planning Phil Kim and Brian C. Williams, Artificial Intelligence and Space Systems Labs Massachusetts Institute of Technology Mark Abramson Draper Labs

  2. Outline • Cooperative Vehicle Missions • Model-based Programming • Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Optional: Hybrid Activity/Path Planning

  3. Cooperative Mars Exploration How do we coordinate heterogeneous teams of orbiters, rovers and air vehicles to perform globally optimal science exploration?

  4. MIT Cooperative Vehicle Testbed • Distributed Satellites: Spheres, Spheres, TechSat21

  5. MIT Cooperative Vehicle Testbed • Distributed Satellites: Spheres, Spheres, TechSat21 • Aerobots: Indoor blimps

  6. MIT Cooperative Vehicle Testbed • Distributed Satellites: Spheres, Spheres, TechSat21 • Aerobots: Indoor blimps • Sensing: distributed, wireless sensor net

  7. MIT Cooperative Vehicle Testbed • Distributed Satellites: Spheres, Spheres, TechSat21 • Aerobots: Indoor blimps • Sensing: distributed, wireless sensor net • Rovers: 1 ATRV Sr., 3 ATRV Jr

  8. Outline • Cooperative Vehicle Missions • Model-based Programming • Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Optional: Hybrid Activity/Path Planning

  9. Create Embedded Languages That Reason from Commonsense Models Why Model-based Programming? • Leading Diagnosis: • Legs deployed during descent. • Noise spike on leg sensors latched by monitors. • Laser altimeter registers 50ft. • Begins polling leg monitors to determine touch down. • Latched noise spike read as touchdown. • Engine shutdown at ~50ft. • Mars 98: • Climate Orbiter • Mars Polar Lander

  10. Embedded Program Model-basedEmbedded Program Obs Cntrl S Plant S Plant Model-based Programs Interact Directly with State • Embedded programs interact withplant sensors/actuators: • Read sensors • Set actuators • Model-based programs interact with plant state: • Read state • Write state Programmer must map between state and sensors/actuators. Model-based executive maps between sensors, actuators to states.

  11. State estimates State goals Valve Mode Estimation Reactive Planning Valve fails stuck closed Stuck open 0.01 Open 0. 01 Open Close 0. 01 Stuck closed Closed 0.01 inflow = outflow = 0 Fire backup engine Reactive Model-based Programs Interact Directly with State Model-basedEmbedded Programs S Reactive Model-based Programming Language: • State assertion • State query • Conditional Execution • Preemption • Iteration • Concurrent execution Plant Model Model-based Executive Thrust = On Obs Cntrl S Plant

  12. Cooperative Model-based Programming • How do we specify the allowed behaviors of cooperative robotic networks? (RMPL) • How do we command cooperative networks? (this talk) • How do we monitor cooperative networks? (next talk)

  13. Outline • Cooperative Vehicle Missions • Model-based Programming • Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Optional: Hybrid Activity/Path Planning

  14. TWO ONE HOME Enroute COLLECTION POINT RENDEZVOUS Landing Site: ABC Diverge Landing Site: XYZ SCIENCE AREA 1’ SCIENCE AREA 1 SCIENCE AREA 3 Create Language with planner-like capabilities Example Scenario Properties: • Teams are focused to a hierarchy complex strategies. • Maneuvers are temporally coordinated. • Novel events occur during critical phases. • Quick response draws upon a library of contingencies.

  15. c • If c next A • Unless c next A • A, B • Always A • A [l,u] • Choose {A, B} • Sensing/actuation activities • Conditional execution • Preemption • Full concurrency • Iteration • Timing • Contingency • Add temporal constraints: • Add choice (non-deterministic or decision-theoretic): Reactive Model-based Programming Idea: Describe team behaviors by starting with a rich concurrent, embedded programming language (RMPL,TCC, Esterel):

  16. Example Enroute Activity: Enroute Corridor 2 Rendezvous Rescue Area Corridor 1

  17. RMPL for Group-Enroute Group-Enroute()[l,u] = { choose { do { Group-Traverse-Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-Traverse-Path(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 } }

  18. RMPL for Group-Enroute Activities: Group-Enroute()[l,u] = { choose { do { Group-Traverse-Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-Traverse-Path(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 } }

  19. RMPL for Group-Enroute Conditionality and Preemption: Group-Enroute()[l,u] = { choose { do { Group-Traverse-Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-Traverse-Path(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 } }

  20. RMPL for Group-Enroute Sequentiality: Concurrency: Group-Enroute()[l,u] = { choose { do { Group-Traverse-Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-Traverse-Path(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 } }

  21. RMPL for Group-Enroute Temporal Constraints: Group-Enroute()[l,u] = { choose{ do { Group-Fly-Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do { Group-Fly-Path(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 } }

  22. RMPL for Group-Enroute Non-deterministic choice: Group-Enroute()[l,u] = { choose { do{ Group-Traverse-Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, do{ Group-Traverse-Path(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 } }

  23. RMPL Program Reactive Temporal Planner Plan Runner (Hidden) States Model of Networked Embedded Vehicles • monitor activities • diagnose plan failures Mode Estimation Reactive Planning Observables Commands RMPL Interpreter • Dynamically selects among alternate executions, satisfies open conditions and checks schedulability, • Selects execution times, monitors outcomes and plans contingencies. • Kirk • Idea • Titan

  24. 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).

  25. RMPL Compiler Temporal Plan Network (TPN) with STN Reactive Temporal Planner • Selects schedulable execution threads of TPN • Represents all RMPL executions Concurrent Plan • Plan = Execution threads related by Simple Temporal Net Kirk: Reactive Temporal Planner Reactive Model-based Programming Language

  26. Outline • Cooperative Vehicle Missions • Model-based Programming • Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Optional: Hybrid Activity/Path Planning

  27. Enroute Activity: • Start with flexible plan representation Enroute 1 2 Group Fly Traverse Group Wait 4 5 9 10 Science Target 8 13 Group Transmit 11 12 Activity (or sub-activity)

  28. Enroute Activity: • Start with flexible plan representation Enroute[450,540] 1 2 [0, 0] [0, 0] Group Traverse Group Wait 4 [405, 486] 5 [0, 54] [0, 0] [0, 0] [0, 0] Science Target 8 [0, 0] Group Transmit [0, ] [0, 2] Activity (or sub-activity) Duration (temporal constraint)

  29. Enroute Activity: • Add conditional nodes Enroute[450,540] 1 2 [0, 0] [0, 0] Group Traverse Group Wait 4 [405, 486] 5 [0, 54] [0, 0] [0, 0] [0, 0] [0, 0] Science Target 8 3 [0, 0] [0, 0] Group Traverse Group Transmit [0, ] [0, 0] [405, 486] [0, 2] Activity (or sub-activity) Duration (temporal constraint) Conditional node

  30. Enroute Activity: • Add temporally extended, symbolic constraints Enroute[450,540] 1 2 [0, 0] [0, 0] Group Traverse Group Wait 4 [405, 486] 5 9 [0, 54] 10 [0, 0] [0, 0] [0, 0] [0, 0] Ask( PATH1 = OK) Ask( EXPLORE = OK) Science Target 8 13 3 [0, 0] [0, 0] Group Traverse Group Transmit [0, ] [0, 0] 6 [405, 486] 7 11 [0, 2] 12 Ask( PATH2 = OK) Activity (or sub-activity) Duration (temporal constraint) Conditional node Symbolic constraint (Ask,Tell)

  31. Outline • Cooperative Vehicle Missions • Model-based Programming • Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Optional: Hybrid Activity/Path Planning

  32. Planning Group-Enroute Group-Enroute [450,540] 1 2 Group Traverse Group Wait Ask(PATH1=OK) Ask(PROCEED) 4 9 5 10 [405,486] [0,54] Science Target 3 8 13 Group Traverse Group Transmit Ask(PATH2=OK) [0,] 6 7 11 12 [405,486] [0,2] • To Plan: • Instantiate Group-Enroute

  33. [500,800] s e Tell(PATH1=OK) Tell(PROCEED) [10,10] [0,] 14 15 16 17 [450,450] [200,200] Planning Group-Enroute Group-Enroute [0,] [0,] [450,540] 1 2 Group Traverse Group Wait Ask(PATH1=OK) Ask(PROCEED) 4 9 5 10 [405,486] [0,54] Science Target 3 8 13 Group Traverse Group Transmit Ask(PATH2=OK) [0,] 6 7 11 12 [405,486] [0,2] • To Plan: • Instantiate Group-Enroute • Add External Constraints (Tells)

  34. Generates Schedulable Plan Group-Enroute [500,800] s e [0,] [0,] [450,540] 1 2 Group Traverse Group Wait Ask(PATH1=OK) Ask(PROCEED) 4 9 5 10 [405,486] [0,54] Science Target 3 8 13 Group Traverse Group Transmit Ask(PATH2=OK) [0,] 6 7 11 12 [405,486] [0,2] Tell(PATH1=OK) Tell(PROCEED) [10,10] [0,] 14 15 16 17 [450,450] [200,200] • To Plan: • Instantiate Group-Enroute • Add External Constraints • Trace consistent trajectories • Check Schedulability • Satisfy and Protect Asks

  35. Planning Example • Find paths from start-node to end-node Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  36. Planning Example • Not a decision-node: Follow all outarcs Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  37. Planning Example • Not a decision-node: Follow all outarcs Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  38. Planning Example • Not a decision-node: Follow all outarcs Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  39. Planning Example • Decision-node: Select a single outarc Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  40. Planning Example • Continue Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  41. Planning Example • Not a decision-node: Follow all outarcs Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  42. Planning Example • Continue Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  43. Planning Example Start End 1 2 7 8 9 3 4 5 6 13 14 10 11 12 15 16 17 18

  44. Temporal Constraint Consistency • Don’t test consistency at each step. • Only when a path induces a cycle, check for negative cycle in the STN distance graph [18,20] 1 2 [0,0] [15,16] 7 8 9 [0,0] [0,0] [0,0] [0,0] [4,6] [0,0] [0,0] [2,3] [0,0] 3 4 5 6 13 14 10 11 12 [0,0] 15 16 17 18 [3,8] [0,] [5,5]

  45. Temporal Constraint Consistency • Example: Inconsistent [18,20] 1 2 [0,0] [15,16] 7 8 9 [0,0] [0,0] [0,0] [0,0] [4,6] [0,0] [0,0] [2,3] [0,0] 3 4 5 6 13 14 10 11 12 [0,0] 15 16 17 18 [3,8] [0,] [5,5]

  46. Temporal Constraint Consistency • Backtrack to choice [18,20] 1 2 [0,0] [15,16] 7 8 9 [0,0] [0,0] [0,0] [0,0] [4,6] [0,0] [0,0] [2,3] [0,0] 3 4 5 6 13 14 [0,0] [0,0] 10 11 12 [0,0] [0,0] [12,13] 15 16 17 18 [3,8] [0,] [5,5]

  47. Temporal Constraint Consistency • Complete paths [18,20] 1 2 [0,0] [15,16] 7 8 9 [0,0] [0,0] [0,0] [0,0] [4,6] [0,0] [0,0] [2,3] [0,0] 3 4 5 6 13 14 [0,0] [0,0] 10 11 12 [0,0] [0,0] [12,13] 15 16 17 18 [3,8] [0,] [5,5]

  48. [500,800] s e Tell(PATH1=OK) Tell(PROCEED) [10,10] [0,] 14 15 16 17 [450,450] [200,200] How Do Handle Asks? Group-Enroute [0,] [0,] [450,540] 1 2 Group Traverse Group Wait Ask(PATH1=OK) Ask(PROCEED) 4 9 5 10 [405,486] [0,54] Science Target 3 8 13 Group Traverse Group Transmit Ask(PATH2=OK) [0,] 6 7 11 12 [405,486] [0,2] • Unconditional Planning: • Guarantee satisfaction at compile time. • Treatment similar to causal-link planning

  49. Satisfying Asks • Compute bounds on activities. • Link ask to equivalent, overlapping tell. • Constrain tell to contain ask. {4,6} {5,8} {7,11} ask(c) 7 8 9 5 6 {4,6} {8,11} 10 11 12 tell(c) {4,6} {6,9} {7,10}

  50. Avoiding Threats • Identify overlapping Inconsistent activities. {4,6} {5,8} {7,11} tell(c) 7 8 9 5 6 {4,6} {8,11} 10 11 12 tell(c) {4,6} {6,9} {7,10}

More Related