motion planning for a
play

Motion Planning for a Position paper Point Robot (2/2) ( ) 1 2 - PDF document

1/18/2012 Class scribing Motion Planning for a Position paper Point Robot (2/2) ( ) 1 2 Planning requires models Point Robot on a Grid The Bug algorithms are reactive motion strategies; they are not motion planners


  1. 1/18/2012 • Class scribing Motion Planning for a • Position paper Point Robot (2/2) ( ) 1 2 Planning requires models Point Robot on a Grid � The Bug algorithms are “reactive motion strategies”; they are not motion planners � To plan its actions, a robot needs a T l it ti b t d (possibly imperfect) predictive model of its actions, so that it can choose among several possible courses of action Assumptions: - The robot perfectly controls its actions - It has an accurate geometric model of the environment (i.e., the 3 obstacles) 4 Point Robot on a Grid 8-Puzzle Game 8 2 1 2 3 3 4 7 4 5 6 5 5 1 1 6 6 7 7 8 8 Initial state Goal state How can the robot find a collision-free path to the goal? State: Any arrangement of 8 numbered tiles and an empty tile on a 3x3 board Assumptions: - The robot perfectly controls its actions - It has an accurate geometric model of the environment (i.e., the obstacles) 5 6 1

  2. 1/18/2012 8-Puzzle: Successor Function State Graph and Search Tree SUCC(state) � subset of states 8 2 7 The successor function is knowledge 3 4 about the 8-puzzle game, but it does not tell us which outcome to use, nor to 5 1 6 which state of the board to apply it. 8 2 8 2 7 8 2 7 3 4 7 3 4 6 3 4 State graph Search tree 5 1 6 5 1 5 1 6 Note that some states may Search is about the be visited multiple times exploration of alternatives 7 8 Search Nodes and States Node expansion 8 2 The expansion of a node N of the 3 4 7 search tree consists of: 5 1 6 8 2 1) Evaluating the successor N 3 4 7 function on STATE (N) 5 1 6 2) Generating a child of N for each state returned by the each state returned by the 8 2 7 function If states are allowed to be duplicated, If states are allowed to be duplicated, 3 4 the search tree may be infinite even the search tree may be infinite even 5 1 6 when the state space is finite when the state space is finite 8 2 8 2 8 2 8 4 2 8 2 8 2 8 4 2 3 4 7 3 4 7 3 4 7 3 7 3 4 7 3 4 7 3 7 5 1 6 5 1 6 5 1 6 5 1 6 5 1 6 5 1 6 5 1 6 9 10 Fringe of Search Tree � The fringe is the set of all search nodes that haven’t been expanded yet 8 2 3 4 7 5 1 6 8 2 7 3 4 5 1 6 8 2 8 2 8 2 8 4 2 3 4 7 3 4 7 3 4 7 3 7 5 1 6 5 1 6 5 1 6 5 1 6 11 12 2

  3. 1/18/2012 Search Strategy Search Algorithm SEARCH(Start, Finish) Search tree � The fringe is the set of all search nodes 1. INSERT(Start,FRINGE) Start that haven’t been expanded yet 2. Repeat: a. If FRINGE is empty then return � The fringe is implemented as a priority failure × × queue FRINGE queue FRINGE b. q � REMOVE(FRINGE) b q � REMOVE(FRINGE) c. If q = Finish then return a path from • INSERT(node,FRINGE) FRINGE Start to Finish • REMOVE(FRINGE) d. For every new state q’ in SUCCESSORS(q) � The ordering of the nodes in FRINGE i. Install q’ as a child of q in the defines the search strategy search tree ii. INSERT(q’,FRINGE) 13 14 Blind Search Strategies Point Robot on a Grid � Breadth-first New positions are inserted at the end of FRINGE What is the effect? � Depth first � Depth-first New positions are inserted at the beginning of FRINGE What is the effect? How can the robot find a collision-free path to the goal? Assumptions: - The robot perfectly controls its actions - It has an accurate geometric model of the environment (i.e., the 15 obstacles) 16 Search tree × × Now, the robot can × search its model for a 1000 × 1000 grid � 1,000,000 configurations In 3-D � 10 9 configurations collision-free path to × In 6-D � 10 18 configurations!!! the goal × � Need for smart search techniques × or sparse discretization 17 18 3

  4. 1/18/2012 Smart Search Smart Search Search tree Search tree SEARCH(Start t ,Finish) SEARCH(Start t ,Finish) 1. INSERT(q start ,FRINGE) 1. INSERT(q start ,FRINGE) 2. Repeat: 2. Repeat: a. If FRINGE is empty then return failure a. If FRINGE is empty then return failure b. q � REMOVE(FRINGE) b. q � REMOVE(FRINGE) c. If q = Finish then return a path from Start to Finish c. If q = Finish then return a path from Start to Finish d. For every new state q’ in SUCCESSORS(q) d. For every new state q’ in SUCCESSORS(q) i. Install q’ as a child of q in the search tree i. Install q’ as a child of q in the search tree ii. INSERT(q’,FRINGE) ii. INSERT(q’,FRINGE) What can smart search be? How can it be done? � Smart ordering of the configurations in FRINGE ( best-first search ) 19 20 Evaluation function Application � f : node N � real positive number f ( N ) f(N) = Euclidean distance to the goal � For instance f ( N ) may be the Euclidean distance (straight-line distance) to the goal goal � Sort the fringe by increasing value of f 21 22 Application Another Example f(N) = Manhattan distance to the goal 23 24 4

  5. 1/18/2012 Another Example Another Example f(N) = h(N), with h(N) = Manhattan distance to the goal f(N) = Manhattan distance to the goal 8 7 6 5 4 3 2 3 4 5 6 8 7 6 5 4 3 2 3 4 5 6 7 5 4 3 5 7 5 4 3 5 6 3 2 1 0 1 2 4 6 3 2 1 0 0 1 2 4 7 6 5 7 7 6 5 8 7 6 5 4 3 2 3 4 5 6 8 7 6 5 4 3 2 3 4 5 6 25 26 Another Example A* Search f ( N ) = g ( N ) + h ( N ) , where g ( N ) is the length of the path reaching N and 0 ≤ h ( N ) ≤ length of the shortest path from N to goal [ h is called the heuristic function] f(N) = g(N)+h(N), with h(N) = Manhattan distance to goal FRINGE is a priority queue sorted in increasing order of f and g(N) = distance traveled to reach N A*(Start,Finish) 1. Insert the initial-node (state = Start) into FRINGE 8+3 8+3 7+4 7+4 6+5 6+3 5+6 5+6 4+7 4+7 3+8 3+8 2+9 2+9 3+10 2. Repeat: 8 7 6 5 4 3 2 3 4 5 6 a. If FRINGE is empty then return failure 7+2 7+2 5+6 4+7 3+8 3+8 b. Let N be the first node in FRINGE, remove N from FRINGE 7 5 4 3 5 c. Let s be the state of N and mark s as closed d. If s = Finish then return the path found between Start and Finish and exit 6+1 6+1 2+9 1+10 2+9 6 3 2 1 0 1 2 4 1+10 0+11 0+11 e. For every state s’ in SUCCESSORS(s) i. If s’ is closed then do nothing 7+0 7+0 7 6+1 6+1 6 5 ii. Else – Create a node N’ with state s’ as a successor of N 8+1 8+1 8 7+2 6+3 7+2 7 6+3 5+4 6 5+4 4+5 5 4+5 3+6 4 3+6 2+7 3 2+7 3+8 2 3 4 5 6 – If there is a node N” in FRINGE with state s’ then – If g(N”) < g(N’) then do nothing, else remove N” from FRINGE and insert N’ in FRINGE, – Else insert N’ in FRINGE 27 28 How to Choose h ? A* Search f ( N ) = g ( N ) + h ( N ) , where g ( N ) is the length of the path reaching N and 0 ≤ h ( N ) ≤ length of � f ( N ) = g ( N ) + h ( N ), where 0 ≤ h ( N ) ≤ length the shortest path from N to goal [ h is called the heuristic function] h * ( N ) of the shortest path from N to goal FRINGE is a priority queue sorted in increasing order of f Both h(N) = Euclidean distance from N to goal � Would h ( N ) ≡ 0 be a good choice? A*(Start,Finish) and 1. Insert the initial-node (state = Start) into FRINGE � Would h ( N ) ≡ h * ( N ) be a good choice? 2. Repeat: h(N) = Manhattan distance from N to goal h(N) = Manhattan distance from N to goal a. If FRINGE is empty then return failure If FRINGE i t th t f il verify 0 ≤ h ( N ) ≤ length of the shortest path b. Let N be the first node in FRINGE, remove N from FRINGE from N to the goal c. Let s be the state of N and mark s as closed d. If s = Finish then return the path found between Start and Finish and exit e. For every state s’ in SUCCESSORS(s) i. If s’ is closed then do nothing A* search is guaranteed to return ii. Else � Which one is better: – Create a node N’ as a successor of N, with state s’ a shortest path if a path exists – If there is a node N” in FRINGE with state s’ then h ( N ) = Euclidean distance to goal? – If g(N”) < g(N’) do nothing, else remove N” from FRINGE and h ( N ) = Manhattan distance to goal? insert N’ in FRINGE 29 30 – Else insert N’ in FRINGE 5

  6. 1/18/2012 Attractive/Repulsive Potential Attractive/Repulsive Potential Fields Fields U (q) = |q - q | 2 U (q) = |q - q | 2 att goal att goal Best-first search with potential fields: Sort positions in FRINGE in increasing p g order of potential What could be a Bug motion strategy with potential fields? 2 2 ⎛ 1 1 ⎞ ⎛ 1 1 ⎞ Equipotential Equipotential What would be its drawback? U (q) = - U (q) = - ⎜ ⎟ contours ⎜ ⎟ contours rep d (q) d rep d (q) d ⎝ ⎠ ⎝ ⎠ obst min obst min 31 32 Cell Decomposition 1000 × 1000 grid � 1,000,000 configurations In 3-D � 10 9 configurations In 6-D � 10 18 configurations!!! � Need for smart search techniques or sparse discretization 33 Cell Decomposition Cell Decomposition 6

  7. 1/18/2012 Cell Decomposition Cell Decomposition critical events � criticality-based decomposition Cell Decomposition Cell Decomposition How would you represent a bounded polygonal region? Planar sweep � O(n log n) time, O(n) space Continuous space Tradeoffs Discretization � Cell decomposition: precomputation of data structure � Path planning: query processing for a given Path planning query processing for a given (Start, Finish) pair using this data structure � Can the precomputation cost be amortized over several queries? Sampling-based Criticality-based � What if the world changes frequently? Search 41 42 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend