1 / 86

Model-based Reactive Programming of Cooperative Vehicles for Mars Exploration

Model-based Reactive Programming of Cooperative Vehicles for Mars Exploration. Brian C. Williams, Phil Kim, Michael Hofbaur, Jon How, John Kennell, Jason Loy, Rob Ragno, John Stedl and Aisha Walcott Artificial Intelligence and Space Systems Labs Massachusetts Institute of Technology.

elysia
Télécharger la présentation

Model-based Reactive Programming of Cooperative Vehicles for Mars Exploration

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. Model-based Reactive Programming of Cooperative Vehicles for Mars Exploration Brian C. Williams, Phil Kim, Michael Hofbaur, Jon How, John Kennell, Jason Loy, Rob Ragno, John Stedl and Aisha Walcott Artificial Intelligence and Space Systems Labs Massachusetts Institute of Technology

  2. Cooperative Mars Exploration How do we coordinate heterogeneous teams of orbiters, rovers and air vehicles to perform globally optimal science exploration? • Cooperative Mars Testbed: • 1 ATRV S. • 3 ATRV Jr • monster trucks • indoor blimps • Spheres formation flying vehicles

  3. Cooperative Vehicles High-level vehicle coordination (MERS) Fast Agile Maneuvering (frazzoli, dahleh, feron) Support: ONR & DARPA

  4. Model-based Cooperative Autonomy Perform distributed, planning and execution by reasoning from models of networked vehicles, their interactions and their environment: • Program using a rich embedded language to describe concurrent team strategies. • Plan and schedule coordinated activities of heterogenous vehicles to achieve science goals. • Distributed optimal planning • Combine activity planning, with global/ local kino-dynamic path planning. • Execute and monitor coordinated plans for individual subsystems. • Isolate and diagnose individuals that lead to team failure. • Compensate for failures within the team through reconfiguration, repair or replanning.

  5. Outline • The Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Path Planning

  6. Example Scenario TWO ONE HOME Enroute COLLECTION POINT RENDEZVOUS Landing Site: ABC Diverge Landing Site: XYZ SCIENCE AREA 1’ SCIENCE AREA 1 SCIENCE AREA 3 Properties: • Team guided by a hierarchy of complex strategies. • Maneuvers are coordinated and time constrained. • Novel events occur during critical phases. • Quick response draws upon a library of contingencies.

  7. 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 and choice. Reactive Model-based Programming Idea: Describe team behaviors by extending a rich reactive programming language (e.g., Esterel) RMPL builds upon ideas from TCC (gupta et al.)

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

  9. 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 } }

  10. 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 } }

  11. 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 } }

  12. RMPL for Group-Enroute 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 } }

  13. 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 } }

  14. RMPL for Group-Enroute Decision Theoretic 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 } }

  15. RMPL Program Reactive Temporal Planner Plan Runner (Hidden) States Model of Networked Embedded Vehicles Diagnosis & Mode Estimation Reconfiguration & Repair Observables Commands RMPL Interpreter • dynamically selects consistent alternatives, schedules events, monitors outcomes and plans contingencies. • select procedures • order actions • allocate resources • select execution times • monitor activities • diagnose plan failures

  16. How do we provide fast, temporally flexible planning? • Graph-based planners support efficient planning … but plans are totally order How do we create temporally flexible plan graphs? • Generalize simple temporal networks (temporal plan network TPN).

  17. c • If c next A • Unless c next A • A, B • Always A • A [l,u] • Choose {A, A’…} • Generalizes Simple Temporal Networksto Choice • Selects schedulable trajectories of TPN • Expands to RRT to avoid obstacles • Concurrent execution threads related by Simple Temporal Net Kirk: Reactive Planner Reactive Model-based Programming Language RMPL Compiler Temporal Plan Network (TPN) Reactive Temporal Planner RRT-based Path Planner Concurrent Plan

  18. Outline • The Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Path Planning

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

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

  21. Enroute Activity: • TPN representation of Enroute activity and sub-activities Enroute 1 2 Group Fly Path Group Wait 4 5 9 10 Science Target 8 13 3 Group Fly Path Group Transmit 6 7 11 12 Activity (or sub-activity)

  22. 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

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

  24. Outline • The Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Path Planning

  25. 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

  26. [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

  27. 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 optimal consistent trajectories • Check Schedulability • Satisfy and Protect Asks

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

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

  35. 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

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

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

  38. Temporal Constraint Consistency • 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]

  39. 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]

  40. Temporal Constraint Consistency • Backtrack [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]

  41. 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]

  42. Symbolic Constraint Consistency • Link and protect asks • Avoid inconsistent telk {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}

  43. Symbolic Constraint Consistency • Example: Inconsistent {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}

  44. Symbolic Constraint Consistency • Example: Impose ordering {4,6} {5,8} {7,9} ask(c) 7 8 9 [0,0] 5 6 {4,6} {8,11} 10 11 12 tell(c) {4,6} {7,9} {7,10}

  45. Outline • The Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Distributed Optimal Planning • Path Planning

  46. Enroute Activity: • Want Distributed, Optimal Planning • extend shortest path auction algorithm by Bertsekas 1 [450,540] 2 4 5 9 10 8 13 3 6 7 11 12

  47. Enroute Activity: • Edge weights represent cost of activity execution 1 [450,540] 2 0 0 4 425 5 9 30 10 0 0 0 0 8 13 3 0 0 0 0 6 440 7 11 1 12

  48. Enroute Activity: • Demonstration of extended auction algorithm price = 0 price = 0 1 [450,540] 2 0 0 4 425 5 9 30 10 0 0 0 0 price = 0 price = 0 price = 0 price = 0 8 13 3 price = 0 price = 0 price = 0 0 0 0 0 6 440 7 11 1 12 price = 0 price = 0 price = 0 price = 0 Path P = 1 Start Node : 1 End Node: 2

  49. Enroute Activity: • Extended auction algorithm price = 0 price = 0 1 [450,540] 2 0 0 Extend Path 4 425 5 9 30 10 0 0 0 0 price = 0 price = 0 price = 0 price = 0 8 13 3 price = 0 price = 0 price = 0 0 0 0 0 6 440 7 11 1 12 price = 0 price = 0 price = 0 price = 0 Path P = 1  3

  50. Enroute Activity: • Extended auction algorithm price = 0 price = 0 1 [450,540] 2 0 0 4 425 5 9 30 10 0 0 0 0 price = 0 price = 0 price = 0 price = 0 8 13 3 Extend Path price = 0 price = 0 price = 0 0 0 0 0 6 440 7 11 1 12 price = 0 price = 0 price = 0 price = 0 Path P = 1  3  6

More Related