Last update: April 1, 2020 Chapter 3 Deliberation with Refinement Automated Planning and Acting Methods Malik Ghallab, Dana Nau and Paolo Traverso Dana S. Nau http://www.laas.fr/planning University of Maryland Nau – Lecture slides for Automated Planning and Acting Licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License 1
Motivation respond to user requests Planning ● Hierarchically organized … deliberation … bring o7 to room2 ▸ At high levels, abstract actions ▸ At lower levels, go to navigate fetch navigate deliver more detail to room1 o7 to room2 o7 hallway … … … ● Refine abstract actions … into ways of carrying out those actions move to door open door get out close door ▸ How? … … … ungrasp move identify move maintain back Acting grasp turn type close knob knob pull of pull to door knob monitor monitor Nau – Lecture slides for Automated Planning and Acting 2
move to door open door get out close door Opening a Door … … … ● Many different methods, depending on what kind ungrasp move identify identify Hinged door that opens to move maintain back of door grasp turn type type close the left, toward robot knob knob ▸ Sliding or hinged? pull of of pull to door door knob monitor monitor Nau – Lecture slides for Automated Planning and Acting 3
move to door open door get out close door Opening a Door … … … ● Many different methods, depending on what kind ungrasp move identify identify Hinged door that opens to move maintain back of door grasp turn type type close the left, toward robot knob knob ▸ Sliding or hinged? pull of of pull to door door knob ▸ Hinge on left or right? monitor monitor Nau – Lecture slides for Automated Planning and Acting 4
move to door open door get out close door Opening a Door … … … ● Many different methods, depending on what kind ungrasp move identify identify Hinged door that opens to move maintain back of door grasp turn type type close the left, toward robot knob knob ▸ Sliding or hinged? pull of of pull to door door knob ▸ Hinge on left or right? monitor monitor ▸ Open toward or away? Nau – Lecture slides for Automated Planning and Acting 5
move to door open door get out close door Opening a Door … … … ● Many different methods, depending on what kind ungrasp move identify identify Hinged door that opens to move maintain back of door grasp turn type type close the left, toward robot knob knob ▸ Sliding or hinged? pull of of pull to door door knob ▸ Hinge on left or right? monitor monitor ▸ Open toward or away? ▸ Knob, lever, push bar, … Nau – Lecture slides for Automated Planning and Acting 6
move to door open door get out close door Opening a Door … … … ● Many different methods, depending on what kind ungrasp move identify identify Hinged door that opens to move maintain back of door grasp turn type type close the left, toward robot knob knob ▸ Sliding or hinged? pull of of pull to door door knob ▸ Hinge on left or right? monitor monitor ▸ Open toward or away? ▸ Knob, lever, push bar, pull handle, push plate, … Nau – Lecture slides for Automated Planning and Acting 7
move to door open door get out close door Opening a Door … … … ● Many different methods, depending on what kind ungrasp move identify identify Hinged door that opens to move maintain back of door grasp turn type type close the left, toward robot knob knob ▸ Sliding or hinged? pull of of pull to door door knob ▸ Hinge on left or right? monitor monitor ▸ Open toward or away? ▸ Knob, lever, push bar, pull handle, push plate, something else? Nau – Lecture slides for Automated Planning and Acting 8
Outline 3.1 Representation a. State variables, commands, refinement methods b. Example 3.2 Acting a. Rae (Refinement Acting Engine) b. Example c. Extensions 3.3 Planning a. Motivation and basic ideas b. Deterministic action models c. SeRPE (Sequential Refinement Planning Engine) 3.4 Using Planning in Acting a. Techniques b. Caveats Nau – Lecture slides for Automated Planning and Acting 9
State-Variable Representation Quick review: ● Objects: Robots = { r1 }, Containers = { c1 , c2 , c3 , …}, … c2 Locations = { loc0 , loc1 , loc2 , …} loc4 loc3 ● State variables : syntactic terms c1 to which we can assign values r1 loc2 loc1 ▸ loc ( r ) ∈ Locations loc0 ▸ load ( r ) ∈ Containers ⋃ { nil } ▸ pos ( c ) ∈ Locations ⋃ Robots ⋃ { unknown } ▸ view ( r , l ) ∈ { T , F } – whether robot r has looked at location l • r can only see what’s at its current location ● State : assign a value to each state variable ▸ { loc(r1) = loc0 , pos(c1) = loc2 , pos(c3) = loc4 , pos(c2) = unknown , …} Details: Automated Planning and Acting, Sections 2.1 and 3.1.1 Nau – Lecture slides for Automated Planning and Acting 10
State-Variable Representation Extensions: … c2 loc4 ● Range( x ) loc3 ▸ can be finite, infinite, continuous, discontinuous, c1 r1 vectors, matrices, other data structures loc2 loc1 loc0 ● Assignment statement x ← expr ▸ expression that returns a ground value in Range( x ) and has no side-effects on the current state ● Tests (e.g., preconditions) ▸ Simple : x = v , x ≠ v , x > v , x < v ▸ Compound : conjunction, disjunction, or negation of simple tests Nau – Lecture slides for Automated Planning and Acting 11
Commands tasks ● Command : primitive function that Acting M ! the execution platform can perform ▸ take ( r,o,l ): commands events robot r takes object o at location l ▸ put ( r,o,l ): Execution Platform r puts o at location l ▸ perceive ( r,l ): robot r perceives what objects are at l Environment • r can only perceive what’s at its current location ▸ … Nau – Lecture slides for Automated Planning and Acting 12
Tasks and Methods open door move to door open door get out close door ● Task : an activity for the … … … actor to perform ungrasp move ● For each task, a set of identify Hinged door that opens to move maintain back grasp turn refinement methods type close the left, toward robot knob knob pull of pull to ▸ Operational models: door knob monitor monitor • tell how to perform the task • don’t predict what it will do • assignment statements method-name( arg 1 , …, arg k ) • control constructs: if-then-else, while, … . task: task-identifier • tasks pre: test body: a program • can extend to include events, goals • commands to the execution platform Nau – Lecture slides for Automated Planning and Acting 13
Opening a Door open door move to door open door get out close door = What kind: … … … Hinged on left, opens Ø toward us, lever handle ungrasp move identify Hinged door that opens to m1-unlatch ( r,d,l,o ) move maintain back grasp turn type close the left, toward robot task: unlatch ( r,d ) knob knob pull of pull to pre: loc ( r,l ) ∧ toward-side ( l,d ) ∧ door knob monitor monitor side ( d , left ) ∧ type ( d , rotate ) ∧ handle ( d,o ) body: grasp ( r,o ) turn ( r,o , alpha1 ) m-opendoor( r,d,l,h ) pull ( r , val1 ) task: opendoor( r,d ) if door-status ( d ) = cracked then pre: loc( r ) = l ∧ adjacent( l,d ) ungrasp ( r , o ) ∧ handle( d,h ) else fail body: while ¬reachable( r,h ) do m1-throw-wide ( r,d,l,o ) move-close( r,h ) task: throw-wide (r, d ) monitor-status( r,d ) pre: loc ( r,l ) ∧ toward-side ( l,d ) ∧ if door-status ( d ) = closed then side ( d , left ) ∧ type ( d , rotate ) ∧ unlatch ( r,d ) handle ( d,o ) ∧ door-status ( d ) = cracked throw-wide ( r,d ) body: grasp ( r,o ) end-monitor-status ( r,d ) pull ( r , val1 ) move-by ( r , val2 ) Nau – Lecture slides for Automated Planning and Acting 14
Outline 3.1 Representation a. State variables, commands, refinement methods b. Example 3.2 Acting a. Rae (Refinement Acting Engine) b. Example c. Extensions 3.3 Planning a. Motivation and basic ideas b. Deterministic action models c. SeRPE (Sequential Refinement Planning Engine) 3.4 Using Planning in Acting a. Techniques b. Caveats Nau – Lecture slides for Automated Planning and Acting 15
Rae (Refinement Acting Engine) tasks ● Based on OpenPRS ▸ Programming language, Acting M ! open-source robotics software ▸ Deployed in many applications commands events ● Input: external tasks, events, current state Execution Platform ● Output: commands to execution platform Environment ● Perform multiple tasks/events in parallel ▸ Purely reactive, no lookahead ● For each task/event, a refinement stack ▸ current path in Rae ’s search tree for the task/event ● Agenda = {all current refinement stacks} Nau – Lecture slides for Automated Planning and Acting 16
Rae (Refinement Acting Engine) Summary of Rae : ● Agenda = {current refinement stacks} loop: ▸ One for each external task or event for every new external task or event τ do choose a method instance m for τ create a refinement stack and add it to Agenda for each stack in Agenda Progress it, and remove it if it’s finished Stack element ( τ,m,i,tried ) τ: task m: method i: instruction pointer tried: methods already tried Nau – Lecture slides for Automated Planning and Acting 17
Recommend
More recommend