executing reactive model based programs through graph based temporal planning n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Executing Reactive, Model-based Programs through Graph-based Temporal Planning PowerPoint Presentation
Download Presentation
Executing Reactive, Model-based Programs through Graph-based Temporal Planning

Loading in 2 Seconds...

play fullscreen
1 / 70

Executing Reactive, Model-based Programs through Graph-based Temporal Planning - PowerPoint PPT Presentation


  • 113 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Executing Reactive, Model-based Programs through Graph-based Temporal Planning' - wing-richards


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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
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
cooperative mars exploration
Cooperative Mars Exploration

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

mit cooperative vehicle testbed
MIT Cooperative Vehicle Testbed
  • Distributed Satellites: Spheres, Spheres, TechSat21
mit cooperative vehicle testbed1
MIT Cooperative Vehicle Testbed
  • Distributed Satellites: Spheres, Spheres, TechSat21
  • Aerobots: Indoor blimps
mit cooperative vehicle testbed2
MIT Cooperative Vehicle Testbed
  • Distributed Satellites: Spheres, Spheres, TechSat21
  • Aerobots: Indoor blimps
  • Sensing: distributed, wireless sensor net
mit cooperative vehicle testbed3
MIT Cooperative Vehicle Testbed
  • Distributed Satellites: Spheres, Spheres, TechSat21
  • Aerobots: Indoor blimps
  • Sensing: distributed, wireless sensor net
  • Rovers: 1 ATRV Sr., 3 ATRV Jr
outline1
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
why model based programming

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
model based programs interact directly with state

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.

reactive model based programs interact directly with state

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

cooperative model based programming
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)
outline2
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
slide14

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.
reactive model based programming

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):

slide16

Example Enroute Activity:

Enroute

Corridor 2

Rendezvous

Rescue Area

Corridor 1

rmpl for group enroute
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

}

}

rmpl for group enroute1
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

}

}

rmpl for group enroute2
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

}

}

rmpl for group enroute3
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

}

}

rmpl for group enroute4
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

}

}

rmpl for group enroute5
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

}

}

rmpl interpreter

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
slide24
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).
kirk reactive temporal planner

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

outline3
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
slide27

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)

slide28

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)

slide29

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

slide30

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)

outline4
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
planning group enroute
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
planning group enroute1

[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)
generates schedulable plan
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
planning example
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

planning example1
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

planning example2
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

planning example3
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

planning example4
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

planning example5
Planning Example
  • Continue

Start

End

1

2

7

8

9

3

4

5

6

13

14

10

11

12

15

16

17

18

planning example6
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

planning example7
Planning Example
  • Continue

Start

End

1

2

7

8

9

3

4

5

6

13

14

10

11

12

15

16

17

18

planning example8
Planning Example

Start

End

1

2

7

8

9

3

4

5

6

13

14

10

11

12

15

16

17

18

temporal constraint consistency
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]

temporal constraint consistency1
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]

temporal constraint consistency2
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]

temporal constraint consistency3
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]

how do handle asks

[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
satisfying asks
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}

avoiding threats
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}

symbolic constraint consistency

[0,infb]

Symbolic Constraint Consistency
  • Promote or demote

{4,6}

{5,8}

{7,9}

tell(c)

7

8

9

5

6

{4,6}

{8,11}

10

11

12

tell(c)

{4,6}

{7,9}

{7,10}

outline5
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
slide53

Enroute Activity:

  • Closer look at Group Traverse sub-activity

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( PROCEED)

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)

Traverse to Science Target

slide54

Group Traverse sub-activity:

  • Traverse through way points to science target

Group Traverse[405, 486]

4

5

Ask( PATH2 = OK)

[0, 0]

[0, 0]

8

3

[0, 0]

[0, 0]

Group Traverse[405, 486]

6

7

Ask( PATH2 = OK)

slide55

Obstacle

Obstacle

Obstacle

Group Traverse sub-activity:

  • One obstacle between nodes 4 and 5
  • Two Obstacles between nodes 6 and 7

4

5

[0, 0]

[0, 0]

8

3

[0, 0]

[0, 0]

6

7

slide56

How do we optimally select activities and paths?

  • Current Research:
  • Perform global path planning using Rapidly-exploring Random Trees (RRTs) (la Valle).
  • Search for globally optimal plan by unifying TPN & RRT graphs, and by searching hybrid graph best first.
  • Perform local kino-dynamic path planning along path segments using hybrid maneuver automata (Frazzoli, Dahleh, Feron).
slide57

RRT:Example

Path 1

4

5

[0, 0]

[0, 0]

8

3

[0, 0]

[0, 0]

6

7

Path 2

slide58

RRT:Example

Assume rovers take Path 1:

Path 1

xinit

xgoal

4

5

[0, 0]

[0, 0]

8

3

[0, 0]

[0, 0]

6

7

Path 2

slide59

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

slide60

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

slide61

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

slide62

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

slide63

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

slide64

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

slide65

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

Common Node

slide66

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

slide67

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

slide68

RRT:Example

Path 1

xinit

xgoal

Xobs

4

5

current status
Current Status
  • Kirk demonstrated on cooperative scenario using UAV simulation.
  • Development on Multi-Rover testbed currently in progress.
  • Distributed hybrid activity/path planning in progress.
  • Selected for NASA Space Technology 7, Phase A
  • together with IDEA (Muscettola)
model based cooperative programming
Model-based Cooperative Programming

Goal: Fast, mission-directed coordination of teams of vehicles acting in an uncertain environments.

Solution: New middle ground between embedded programming, task decomposition execution, and temporal planning.

  • Rich embedded language,RMPL, for describing complex concurrent team strategies extended to time and contingency.
  • Kirk Interpreter “looks” for schedulable threads of execution before “leaping” to execution.
  • Temporal Plan Network provides a flexible, temporal, graph-based planning paradigm built upon Simple Temporal Nets.
  • Interpreter “leaps” through flexible execution (Nicola talk).
  • Current work towards unifying activity planning, global path planning and kino-dynamics.