Motion Planning, Part III Graph Search, Part I. Howie Choset

Similar documents
Motion Planning. Howie CHoset

Motion Planning. Howie CHoset

Motion Planning, Part IV Graph Search Part II. Howie Choset

Lesson 1 Introduction to Path Planning Graph Searches: BFS and DFS

Motion Planning. COMP3431 Robot Software Architectures

MEM380 Applied Autonomous Robots Fall Depth First Search A* and Dijkstra s Algorithm

Advanced Robotics Path Planning & Navigation

Robotic Motion Planning: A* and D* Search

Sampling-based Planning 2

Discrete Motion Planning

Path Planning. Jacky Baltes Dept. of Computer Science University of Manitoba 11/21/10

Advanced Robotics Path Planning & Navigation

Road Map Methods. Including material from Howie Choset / G.D. Hager S. Leonard

Route planning / Search Movement Group behavior Decision making

Spring 2010: Lecture 9. Ashutosh Saxena. Ashutosh Saxena

Path Planning. Marcello Restelli. Dipartimento di Elettronica e Informazione Politecnico di Milano tel:

Motion Planning for a Point Robot (2/2) Point Robot on a Grid. Planning requires models. Point Robot on a Grid 1/18/2012.

Robotic Motion Planning: Review C-Space and Start Potential Functions

Sung-Eui Yoon ( 윤성의 )

Assignment 1 is out! Due: 9 Sep 23:59! Can work in a group of 2-3 students.! NO cheating!!!! Submit in turnitin! Code + report!

Visual Navigation for Flying Robots. Motion Planning

Introduction to Information Science and Technology (IST) Part IV: Intelligent Machines and Robotics Planning

Visibility Graph. How does a Mobile Robot get from A to B?

Basic Motion Planning Algorithms

Roadmaps. Vertex Visibility Graph. Reduced visibility graph, i.e., not including segments that extend into obstacles on either side.

EE631 Cooperating Autonomous Mobile Robots

ME512: Mobile Robotics Path Planning Algorithms. Atul Thakur, Assistant Professor Mechanical Engineering Department IIT Patna

Can work in a group of at most 3 students.! Can work individually! If you work in a group of 2 or 3 students,!

Navigation and Metric Path Planning

Notes. Video Game AI: Lecture 5 Planning for Pathfinding. Lecture Overview. Knowledge vs Search. Jonathan Schaeffer this Friday

Metric Planning: Overview

Approximate path planning. Computational Geometry csci3250 Laura Toma Bowdoin College

Path Planning for Point Robots. NUS CS 5247 David Hsu

Path Planning. CMPS 146, Fall Josh McCoy

Informed search strategies (Section ) Source: Fotolia

HW#1 due today. HW#2 due Monday, 9/09/13, in class Continue reading Chapter 3

Configuration Space of a Robot

Motion Planning for Humanoid Robots

Humanoid Robotics. Inverse Kinematics and Whole-Body Motion Planning. Maren Bennewitz

CMU-Q Lecture 4: Path Planning. Teacher: Gianni A. Di Caro

6.141: Robotics systems and science Lecture 10: Implementing Motion Planning

CS 5522: Artificial Intelligence II

Informed/Heuristic Search

Graphs vs trees up front; use grid too; discuss for BFS, DFS, IDS, UCS Cut back on A* optimality detail; a bit more on importance of heuristics,

Shortest Path Search Algorithms with Heuristic and Bidirectional Searches. Marcelo Johann.

Robot Motion Planning

Planning & Decision-making in Robotics Planning Representations/Search Algorithms: RRT, RRT-Connect, RRT*

Introduction to Mobile Robotics Path and Motion Planning. Wolfram Burgard, Cyrill Stachniss, Maren Bennewitz, Diego Tipaldi, Luciano Spinello

CS171 Introduction to Computer Science II. Graphs

ME/CS 132: Advanced Robotics: Navigation and Vision

6.141: Robotics systems and science Lecture 10: Motion Planning III

Search : Lecture 2. September 9, 2003

521495A: Artificial Intelligence

Week 4 Lecture Notes Part 1 Blind Search cont. and Informed Search

Manipula0on Algorithms Mo0on Planning. Mo#on Planning I. Katharina Muelling (NREC, Carnegie Mellon University) 1

The big picture: from Perception to Planning to Control

Branch & Bound (B&B) and Constraint Satisfaction Problems (CSPs)

6.141: Robotics systems and science Lecture 9: Configuration Space and Motion Planning

Problem Solving & Heuristic Search

Search. CS 3793/5233 Artificial Intelligence Search 1

UNINFORMED SEARCH. Announcements Reading Section 3.4, especially 3.4.1, 3.4.2, 3.4.3, 3.4.5

Humanoid Robotics. Inverse Kinematics and Whole-Body Motion Planning. Maren Bennewitz

Informed Search CS457 David Kauchak Fall 2011

Algorithms and Path Planning

Planning in Mobile Robotics

Planning Techniques for Robotics Planning Representations: Skeletonization- and Grid-based Graphs

CPS 170: Artificial Intelligence Search

CS 4649/7649 Robot Intelligence: Planning

Algorithms for Sensor-Based Robotics: Sampling-Based Motion Planning

PATH PLANNING IMPLEMENTATION USING MATLAB

A* and 3D Configuration Space

Outline for today s lecture. Informed Search I. One issue: How to search backwards? Very briefly: Bidirectional search. Outline for today s lecture

Informed search. Soleymani. CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2016

Topic 1 Uninformed Search

CS4733 Class Notes. 1 2-D Robot Motion Planning Algorithm Using Grown Obstacles

Autonomous Mobile Robots, Chapter 6 Planning and Navigation Where am I going? How do I get there? Localization. Cognition. Real World Environment

Probabilistic Methods for Kinodynamic Path Planning

Problem Solving and Search

PAC-MAN is one of the most popular game

CMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro

Self-Collision Detection. Planning for Humanoid Robots. Digital Human Research Center. Talk Overview

Informed Search A* Algorithm

Informed search. Lirong Xia

Heuristic Search and Advanced Methods

A* Optimality CS4804

Path Planning. Ioannis Rekleitis

CS 354R: Computer Game Technology

Outline. Best-first search

Algorithms for Sensor-Based Robotics: Sampling-Based Motion Planning

Algorithms and Theory of Computation. Lecture 3: Graph Algorithms

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 19 January, 2018

Motion Planning 2D. Corso di Robotica Prof. Davide Brugali Università degli Studi di Bergamo

CS 206 Introduction to Computer Science II

Grad AI Fall, 2007 Homework 1

Robotics Tasks. CS 188: Artificial Intelligence Spring Manipulator Robots. Mobile Robots. Degrees of Freedom. Sensors and Effectors

Robot Motion Planning

search, DFS & BrFS; cycle checking & MPC arc costs; heuristics; LCFS, BeFS, A* misc: iterative deepening, etc.

Robot Motion Control Matteo Matteucci

INTRODUCTION TO HEURISTIC SEARCH

LECTURE 17 GRAPH TRAVERSALS

Transcription:

Motion Planning, Part III Graph Search, Part I Howie Choset

Happy President s Day

The Configuration Space What it is A set of reachable areas constructed from knowledge of both the robot and the world How to create it First abstract the robot as a point object. Then, enlarge the obstacles to account for the robot s footprint and degrees of freedom In our example, the robot was circular, so we simply enlarged our obstacles by the robot s radius (note the curved vertices)

Example of a World (and Robot) Free Space Obstacles x,y Robot

Configuration Space: Accommodate Robot Size Free Space Obstacles x,y Robot (treat as point object)

Translate-only, non-circularly symmetric Pick a reference point

Translate-only, non-circularly symmetric Pick a reference point

With Rotation: how much distance to rotate Pick a reference point

Configuration Space Quiz Where do we put? 360 b A B 270 180 q A a 90 b An obstacle in the robot s workspace 0 q B 90 a Torus 180 270 360 (wraps horizontally and vertically)

Configuration Space Quiz Where do we put? 360 b A B 270 180 q A a 90 b An obstacle in the robot s workspace 0 q B 45 a Torus (wraps vertically) 90 135 180

Configuration Space Obstacle Reference configuration How do we get from A to B? 360 b A B 270 q A 180 An obstacle in the robot s workspace a 90 b 0 q B 45 a 90 135 180 The C-space representation of this obstacle

Two Link Path Thanks to Ken Goldberg

Two Link Path

Total Potential Function U ( q) U att ( q) U rep ( q) F( q) U ( q) + =

Local Minimum Problem with the Charge Analogy

Representations World Representation You could always use a large region and distances However, a grid can be used for simplicity

Representations: A Grid Distance is reduced to discrete steps For simplicity, we ll assume distance is uniform Direction is now limited from one adjacent cell to another Time to revisit Connectivity (Remember Vision?)

Representations: Connectivity 8-Point Connectivity 4-Point Connectivity (approximation of the L1 metric)

The Wavefront Planner: Setup

The Wavefront in Action (Part 1) Starting with the goal, set all adjacent cells with 0 to the current cell + 1 4-Point Connectivity or 8-Point Connectivity? Your Choice. We ll use 8-Point Connectivity in our example

The Wavefront in Action (Part 2) Now repeat with the modified cells This will be repeated until no 0 s are adjacent to cells with values >= 2 0 s will only remain when regions are unreachable

The Wavefront in Action (Part 3) Repeat again...

The Wavefront in Action (Part 4) And again...

The Wavefront in Action (Part 5) And again until...

The Wavefront in Action (Done) You re done Remember, 0 s should only remain if unreachable regions exist

The Wavefront, Now What? To find the shortest path, according to your metric, simply always move toward a cell with a lower number The numbers generated by the Wavefront planner are roughly proportional to their distance from the goal Two possible shortest paths shown

This is really a Continuous Solution Not pixels Waves bend L1 distance

Pretty Wavefront

Rapidly-Exploring Random Tree

Path Planning with RRTs (Rapidly-Exploring Random Trees) BUILD_RRT (q init ) { T.init(q init ); for k = 1 to K do q rand = RANDOM_CONFIG(); EXTEND(T, q rand ) } EXTEND(T, q rand ) q new [ Kuffner & LaValle, ICRA 00] q init q near q rand

Path Planning with RRTs (Some Details) BUILD_RRT (q init ) { T.init(q init ); for k = 1 to K do q rand = RANDOM_CONFIG(); EXTEND(T, q rand ) } STEP_LENGTH: How far to sample 1. Sample just at end point 2. Sample all along 3. Small Step Extend returns 1. Trapped, cant make it 2. Extended, steps toward node 3. Reached, connects to node EXTEND(T, q rand ) q new STEP_SIZE 1. Not STEP_LENGTH 2. Small steps along way 3. Binary search q init q near q rand

Grow two RRTs towards each other q new q target [ Kuffner, LaValle ICRA 00] q goal q init q near

Map-Based Approaches: Properties of a roadmap: Roadmap Theory Accessibility: there exists a collision-free path from the start to the road map Departability: there exists a collision-free path from the roadmap to the goal. Connectivity: there exists a collision-free path from the start to the goal (on the roadmap). a roadmap exists a path exists Examples of Roadmaps Generalized Voronoi Graph (GVG) Visibility Graph

Roadmap: Visibility Graph Formed by connecting all visible vertices, the start point and the end point, to each other For two points to be visible no obstacle can exist between them Paths exist on the perimeter of obstacles In our example, this produces the shortest path with respect to the L2 metric. However, the close proximity of paths to obstacles makes it dangerous

The Visibility Graph in Action (Part 1) First, draw lines of sight from the start and goal to all visible vertices and corners of the world. start goal

The Visibility Graph in Action (Part 2) Second, draw lines of sight from every vertex of every obstacle like before. Remember lines along edges are also lines of sight. start goal

The Visibility Graph in Action (Part 3) Second, draw lines of sight from every vertex of every obstacle like before. Remember lines along edges are also lines of sight. start goal

The Visibility Graph in Action (Part 4) Second, draw lines of sight from every vertex of every obstacle like before. Remember lines along edges are also lines of sight. start goal

The Visibility Graph (Done) Repeat until you re done. goal start

Visibility Graph Overview Start with a map of the world, draw lines of sight from the start and goal to every corner of the world and vertex of the obstacles, not cutting through any obstacles. Draw lines of sight from every vertex of every obstacle like above. Lines along edges of obstacles are lines of sight too, since they don t pass through the obstacles. If the map was in Configuration space, each line potentially represents part of a path from the start to the goal.

Graph Search Howie Choset 16-311

Outline Overview of Search Techniques A* Search 42

Graphs Collection of Edges and Nodes (Vertices) A tree 43

Grids 44

Stacks and Queues Stack: First in, Last out (FILO) Queue: First in, First out (FIFO) 45

Depth First Search algorithm dft(x) visit(x) FOR each y such that (x,y) is an edge IF y was not visited yet THEN dft(y) Copied from wikipedia Worst case performance Worst case space complexity O( V + E ) for explicit graphs traversed without repetition, O( V ) if entire graph is traversed without repetition, O(longest path length searched) for implicit graphs without elimination of duplicate nodes 46

Breadth First Search visit(start node) queue <- start node WHILE queue is nor empty DO x <- queue FOR each y such that (x,y) is an edge and y has not been visited yet DO visit(y) queue <- y END wikipedia END http://www.cse.ohio-state.edu/~gurari/course/cis680/cis680ch14.html 47

Depth First and Breadth First 48

Wavefront Planner: A BFS 49

Search Uninformed Search Use no information obtained from the environment Blind Search: BFS (Wavefront), DFS Informed Search Use evaluation function More efficient Heuristic Search: A*, D*, etc. 50

Uninformed Search Graph Search from A to N A B C D BFS E F G H I J K L M N 51

Dijkstra s Search: f(n) = g(n) Pop lowest f first 52

Dijkstra s Search: f(n) = g(n) 1. O = {S} Pop lowest f first 53

Dijkstra s Search: f(n) = g(n) 1. O = {S} 2. O = {1, 2, 4, 5}; C = {S} (1,2,4,5 all back point to S) Pop lowest f first 54

Dijkstra s Search: f(n) = g(n) 1. O = {S} 2. O = {1, 2, 4, 5}; C = {S} (1,2,4,5 all back point to S) 3. O = {1, 4, 5}; C = {S, 2} (there are no adjacent nodes not in C) Pop lowest f first 55

Dijkstra s Search: f(n) = g(n) 1. O = {S} 2. O = {1, 2, 4, 5}; C = {S} (1,2,4,5 all back point to S) 3. O = {1, 4, 5}; C = {S, 2} (there are no adjacent nodes not in C) 4. O = {1, 5, 3}; C = {S, 2, 4} (1, 2, 4 point to S; 5 points to 4) Pop lowest f first 56

Dijkstra s Search: f(n) = g(n) 1. O = {S} 2. O = {1, 2, 4, 5}; C = {S} (1,2,4,5 all back point to S) 3. O = {1, 4, 5}; C = {S, 2} (there are no adjacent nodes not in C) 4. O = {1, 5, 3}; C = {S, 2, 4} (1, 2, 4 point to S; 5 points to 4) 5. O = {5, 3}; C = {S, 2, 4, 1} Pop lowest f first 57

Dijkstra s Search: f(n) = g(n) Pop lowest f first 1. O = {S} 2. O = {1, 2, 4, 5}; C = {S} (1,2,4,5 all back point to S) 3. O = {1, 4, 5}; C = {S, 2} (there are no adjacent nodes not in C) 4. O = {1, 5, 3}; C = {S, 2, 4} (1, 2, 4 point to S; 5 points to 4) 5. O = {5, 3}; C = {S, 2, 4, 1} 6. O = {3, G}; C = {S, 2, 4 1,5} (goal points to 5 which points to 4 which points to S) 58

Dijkstra s Search: f(n) = g(n) Pop lowest f first 1. O = {S} 2. O = {1, 2, 4, 5}; C = {S} (1,2,4,5 all back point to S) 3. O = {1, 4, 5}; C = {S, 2} (there are no adjacent nodes not in C) 4. O = {1, 5, 3}; C = {S, 2, 4} (1, 2, 4 point to S; 5 points to 4) 5. O = {5, 3}; C = {S, 2, 4, 1} 6. O = {3, G}; C = {S, 2, 4 1,5} (goal points to 5 which points to 4 which points to S) 7. O = {3}; C = {S, 2, 4, 1,5} (Path found because Goal was popped) 59

Informed Search: A* Notation n node/state c(n 1,n 2 ) the length of an edge connecting between n 1 and n 2 b(n 1 ) = n 2 backpointer of a node n 1 to a node n 2. 60

Informed Search: A* Evaluation function, f(n) = g(n) + h(n) Operating cost function, g(n) Actual operating cost having been already traversed Heuristic function, h(n) Information used to find the promising node to traverse Admissible never overestimate the actual path cost Cost on a grid 61

A*: Algorithm Start O is empty? N Pick n best from O such that f(n best ) < f(n) Remove n best from O and add it to C Y End The search requires 2 lists to store information about nodes N update b(x)=n best if (g(n best )+c(n best,x)<g(x)) N Expand all nodes x that are neighbors of n best and not in C x is not in O? n best = goal? Y Add x to O Y End 1) Open list (O) stores nodes for expansions 2) Closed list (C) stores nodes which we have explored 62

A*: Example (1/6) A 4 4 4 B C D Heuristics A = 14 H = 8 6 H 3 3 3 3 3 3 4 4 E F G 4 3 4 4 3 4 4 4 4 I J 3 4 4 3 2 2 4 4 L M N K 6 B = 10 I = 5 C = 8 J = 2 D = 6 K = 2 E = 8 L = 6 F = 7 M = 2 G = 6 N = 0 Legend operating cost 63

A*: Example (2/6) 6 A 4 4 4 B C 3 3 3 3 3 3 4 4 E F G 4 3 4 4 3 4 D 6 Closed List A(0) Open List - Priority Queue E(11) B(14) Expand H(14) H 2 4 4 4 I J L 3 4 4 M 4 Heuristics A = 14, B = 10, C = 8, D = 6, E = 8, F = 7, G = 6 H = 8, I = 5, J = 2, K = 2, L = 6, M = 2, N = 0 4 3 N 2 K A(x) = A(g(n)) E(y) = E(f(n)) where f(n) = g(n) + h(n) = 3 + 8 = 11 64

A*: Example (3/6) Closed List Open List - Priority Queue 6 A 4 4 4 B C 3 3 3 3 3 3 4 4 E F G 4 3 4 4 3 4 D 6 A(0) E(3) B(16) > H(15) > I(11) B(14) H(14) F(14) H 4 4 4 I J K 2 L 3 4 4 M 4 4 3 N 2 Update Add new node Heuristics A = 14, B = 10, C = 8, D = 6, E = 8, F = 7, G = 6 H = 8, I = 5, J = 2, K = 2, L = 6, M = 2, N = 0 Since A B is smaller than A E B, the f- cost value of B in an open list needs not be updated 65

A*: Example (4/6) 6 A H 4 4 4 B C 3 3 3 3 3 3 4 4 E F G 4 3 4 4 3 4 4 4 4 I J D K 6 Closed List A(0) E(3) I(6) Open List - Priority Queue J(12) M(12) B(14) H(18) > H(14) F(17) > F(14) L(15) 2 L 3 4 4 M 4 4 3 N 2 Update Add new node Heuristics A = 14, B = 10, C = 8, D = 6, E = 8, F = 7, G = 6 H = 8, I = 5, J = 2, K = 2, L = 6, M = 2, N = 0 66

A*: Example (5/6) Closed List Open List - Priority Queue 6 A H 4 4 4 B C 3 3 3 3 3 3 4 4 E F G 4 3 4 4 3 4 4 4 4 I J 3 4 4 3 2 2 4 4 L M N D K 6 A(0) E(3) I(6) J(10) Update M(16) > M(12) N(13) B(14) F(21) > H(14) F(14) L(15) K(16) G(19) Add new node Heuristics A = 14, B = 10, C = 8, D = 6, E = 8, F = 7, G = 6 H = 8, I = 5, J = 2, K = 2, L = 6, M = 2, N = 0 67

A*: Example (6/6) Closed List Open List - Priority Queue 6 A 4 4 4 B C 3 3 3 3 3 3 4 4 E F G 4 3 4 4 3 4 D 6 A(0) E(3) I(6) J(10) M(10) N(14) L(24) > > N(13) B(14) H(14) F(14) L(15) K(16) G(19) Goal H 2 4 4 4 I J 3 4 4 3 4 4 L M N 2 K Update Add new node Heuristics A = 14, B = 10, C = 8, D = 6, E = 8, F = 7, G = 6 H = 8, I = 5, J = 2, K = 2, L = 6, M = 2, N = 0 Since the path to N from M is greater than that from J, the optimal path to N is the one traversed from J 68

A*: Example Result 6 A H 4 4 4 B C 3 3 3 3 3 3 4 4 E F G 4 3 4 4 3 4 4 4 4 I J D K 6 Generate the path from the goal node back to the start node through the backpointer attribute 2 L 3 4 4 M 4 4 3 N 2 69