Outline Executing Reactive, Model-based • Cooperative Vehicle Missions Programs through Graph-based • Model-based Programming Temporal Planning • Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) Phil Kim and Brian C. Williams, Artificial Intelligence and Space Systems Labs • Activity Planning (Kirk) Massachusetts Institute of Technology • Optional: Hybrid Activity/Path Planning Mark Abramson Draper Labs MIT Cooperative Vehicle Testbed Cooperative Mars Exploration How do we coordinate heterogeneous teams of orbiters, • Distributed Satellites: Spheres, Spheres, TechSat21 rovers and air vehicles to perform globally optimal science exploration? MIT Cooperative Vehicle Testbed MIT Cooperative Vehicle Testbed • Distributed Satellites: Spheres, Spheres, TechSat21 • Distributed Satellites: Spheres, Spheres, TechSat21 • Aerobots: Indoor blimps • Aerobots: Indoor blimps • Sensing: distributed, wireless sensor net 1
MIT Cooperative Vehicle Testbed Outline • Distributed Satellites: Spheres, Spheres, TechSat21 • Cooperative Vehicle Missions • Aerobots: Indoor blimps • Sensing: distributed, wireless sensor net • Model-based Programming • Rovers: 1 ATRV Sr., 3 ATRV Jr • Reactive Model-based Programming Language (RMPL) • Temporal Plan Networks (TPN) • Activity Planning (Kirk) • Optional: Hybrid Activity/Path Planning Model-based Programs Why Model-based Programming? Interact Directly with State Leading Diagnosis: Embedded programs interact with Model-based programs plant sensors/actuators: interact with plant state: •Legs deployed during descent. • Read sensors • Noise spike on leg sensors • Read state latched by monitors. • Set actuators • Write state • Laser altimeter registers 50ft. • Begins polling leg monitors to Model-based Embedded Program Embedded Program determine touch down. • Latched noise spike read as Obs Cntrl touchdown. • Engine shutdown at ~50ft. S S Mars 98: Plant Plant • Climate Orbiter • Mars Polar Lander Create Embedded Languages Programmer must map between Model-based executive maps That Reason from state and sensors/actuators. between sensors, actuators to states. Commonsense Models Reactive Model-based Programs Cooperative Model-based Programming Interact Directly with State Valve Valve X 0 X 1 X N-1 X N Model-based • How do we specify the allowed behaviors Stuck Stuck 0.01 0.01 Open Open S T open open Embedded Programs 0. 01 0. 01 of cooperative robotic networks? (RMPL) Open Open Close Close 0. 01 0. 01 Stuck Stuck S Valve fails Reactive Model-based • How do we command cooperative Closed Closed closed closed 0.01 0.01 stuck closed Programming Language: inflow = outflow = 0 networks? (this talk) � State assertion Plant Model-based � State query Model Executive � Conditional Execution • How do we monitor cooperative networks? Thrust � Preemption (next talk) � Iteration = On Obs Cntrl � Concurrent execution State estimates State goals S Fire backup s ˆ engine Plant Mode Reactive Estimation Planning X 0 X 1 X N-1 X N S T 2
Example Scenario Outline TWO ONE • Cooperative Vehicle Missions HOME HOME Enroute COLLECTION POINT COLLECTION POINT RENDEZVOUS RENDEZVOUS Landing Site: ABC • Model-based Programming Diverge • Reactive Model-based Programming Landing Site: XYZ SCIENCE AREA 1 SCIENCE AREA 1’ ’ SCIENCE AREA 1 SCIENCE AREA 1 Language (RMPL) • Temporal Plan Networks (TPN) SCIENCE AREA 3 Properties: SCIENCE AREA 3 • Activity Planning (Kirk) � Teams are focused to a hierarchy complex strategies. • Optional: Hybrid Activity/Path Planning � Maneuvers are temporally coordinated. � Novel events occur during critical phases. � Quick response draws upon a library of contingencies. Create Language with planner-like capabilities Example Enroute Activity: Reactive Model-based Programming Enroute Idea: Describe team behaviors by starting with a rich concurrent, embedded programming language (RMPL,TCC, Esterel): Corridor 2 c • Sensing/actuation activities � If c next A • Conditional execution � Unless c next A • Preemption � A, B • Full concurrency � Rendezvous Rendezvous Rescue Area Rescue Area Always A • Iteration � Corridor 1 � Add temporal constraints: • Timing � A [l,u] � Add choice (non-deterministic or decision-theoretic): Choose {A, B} • Contingency � RMPL for Group-Enroute RMPL for Group-Enroute Activities: Group-Enroute()[l,u] = { Group-Enroute()[l,u] = { choose { choose { do { do { Group-Traverse- Group-Traverse- Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; Path(PATH1_1,PATH1_2,PATH1_3,RE_POS) [l*90%,u*90%]; } maintaining PATH1_OK, } maintaining PATH1_OK, do { do { Group-Traverse- Group-Traverse- Path(PATH2_1,PATH2_2,PATH2_3,RE_POS)[l*90%,u*90%]; Path(PATH2_1,PATH2_2,PATH2_3,RE_POS)[ l*90%,u*90%]; } maintaining PATH2_OK } maintaining PATH2_OK }; }; { { Group-Transmit(OPS,ARRIVED)[0,2], Group-Transmit(OPS,ARRIVED) [0,2], do { do { Group-Wait(HOLD1,HOLD2)[0,u*10%] Group-Wait(HOLD1,HOLD2) [0,u*10%] } watching PROCEED } watching PROCEED } } } } 3
RMPL for Group-Enroute RMPL for Group-Enroute Conditionality Sequentiality: Group-Enroute()[l,u] = { Group-Enroute()[l,u] = { and Preemption: Concurrency: choose { choose { do { do { Group-Traverse- Group-Traverse- Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, } maintaining PATH1_OK, do { do { Group-Traverse- Group-Traverse- Path(PATH2_1,PATH2_2,PATH2_3,RE_POS)[l*90%,u*90%]; Path(PATH2_1,PATH2_2,PATH2_3,RE_POS)[l*90%,u*90%]; } maintaining PATH2_OK } maintaining PATH2_OK }; } ; { { Group-Transmit(OPS,ARRIVED)[0,2], Group-Transmit(OPS,ARRIVED)[0,2] , do { do { Group-Wait(HOLD1,HOLD2)[0,u*10%] Group-Wait(HOLD1,HOLD2)[0,u*10%] } watching PROCEED } watching PROCEED } } } } RMPL for Group-Enroute RMPL for Group-Enroute Temporal Constraints: Non-deterministic Group-Enroute() [l,u] = { Group-Enroute()[l,u] = { choice: choose { choose { do { do { Group-Fly- Group-Traverse- Path(PATH1_1,PATH1_2,PATH1_3,RE_POS) [l*90%,u*90%] ; Path(PATH1_1,PATH1_2,PATH1_3,RE_POS)[l*90%,u*90%]; } maintaining PATH1_OK, } maintaining PATH1_OK, do { do { Group-Fly- Group-Traverse- Path(PATH2_1,PATH2_2,PATH2_3,RE_POS) [l*90%,u*90%] ; Path(PATH2_1,PATH2_2,PATH2_3,RE_POS)[l*90%,u*90%]; } maintaining PATH2_OK } maintaining PATH2_OK } ; }; { { Group-Transmit(OPS,ARRIVED) [0,2] , Group-Transmit(OPS,ARRIVED)[0,2], do { do { Group-Wait(HOLD1,HOLD2) [0,u*10%] Group-Wait(HOLD1,HOLD2)[0,u*10%] } watching PROCEED } watching PROCEED } } } } RMPL Interpreter � Dynamically selects among alternate executions, satisfies open conditions and checks schedulability, • How do we provide fast, temporally flexible � Selects execution times, monitors outcomes and plans planning? contingencies. • Graph-based planners support fast planning. RMPL Program • … but plans are totally order. • Kirk • Desire flexible plans based on simple temporal • Kirk Reactive Temporal Planner networks (e.g., HSTS, Muscetola et al.). • • Idea Idea Plan Runner (Hidden) States How do we create temporally flexible plan graphs? • • Titan Titan Model of • Generalize simple temporal networks • • monitor activities monitor activities Networked Mode Estimation Reactive Planning (temporal plan network TPN). • • diagnose plan failures diagnose plan failures Embedded Vehicles Observables Commands 4
Outline Kirk: Reactive Temporal Planner Reactive Model-based Programming Language • Cooperative Vehicle Missions • Model-based Programming RMPL Compiler • Reactive Model-based Programming Represents all � Language (RMPL) Temporal Plan Network (TPN) with STN RMPL executions • Temporal Plan Networks (TPN) Reactive Temporal Planner Selects schedulable • Activity Planning (Kirk) � execution threads of TPN • Optional: Hybrid Activity/Path Planning Concurrent Plan Plan = Execution � threads related by Simple Temporal Net Enroute Activity: Enroute Activity: • Start with flexible plan representation • Start with flexible plan representation Enroute Enroute [450,540] 1 2 1 2 [0, 0] [0, 0] Group Fly Traverse Group Wait Group Traverse Group Wait [405, 486] [0, 54] [0, 0] [0, 0] [0, 0] 4 5 9 10 4 5 Science Target Science Target 8 13 8 [0, 0] Group Transmit Group Transmit [0, ] [0, 2] 11 12 Activity (or sub-activity) Activity (or sub-activity) Duration (temporal constraint) Enroute Activity: Enroute Activity: •TPN representation of Enroute activity and sub-activities • Add conditional nodes Enroute Enroute [450,540] 1 2 1 2 [0, 0] [0, 0] Group Fly Path Group Wait Group Traverse Group Wait [405, 486] [0, 54] 4 5 9 10 4 5 [0, 0] [0, 0] [0, 0] [0, 0] Science Target Science Target 3 8 13 3 8 [0, 0] Group Fly Path Group Transmit [0, 0] Group Traverse Group Transmit [0, ] [0, 0] [405, 486] [0, 2] 6 7 11 12 Activity (or sub-activity) Activity (or sub-activity) Duration (temporal constraint) Conditional node 5
Recommend
More recommend