discrete motion planning - alaa khamis...setdo activate_belt,1; !activate the belt place_piece...

101
MUSES_SECRET: ORF-RE Project - © PAMI Research Group University of Waterloo 1/22 1 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis Lecture 8 Thursday November 23, 2016 Discrete Motion Planning

Upload: others

Post on 20-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 1/22 1 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Lecture 8 – Thursday November 23, 2016

Discrete Motion Planning

Page 2: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 2/22 2 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Objectives

When you have finished this lecture you should be able to:

• Recognize what a motion plan is, what it is supposed to

achieve, requirements of a path planner, how to represent a

plan, how to measure the quality of a plan and different

planning algorithms available.

• Understand different discrete planning algorithms.

Page 3: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 3/22 3 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Introductory Concepts

• Discrete Planning

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Dijkstra’s Algorithm

• Best-first

• A* Algorithm

Outline

Page 4: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 4/22 4 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Introductory Concepts

• Discrete Planning

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Dijkstra’s Algorithm

• Best-first

• A* Algorithm

Outline

Page 5: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 5/22 5 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Planning

Introductory Concepts

Planning is a complex activity that determines a future course

of actions/activities for an executing entity to drives it from

an initial state to a specified goal state. Planning often

involves reasoning with incomplete information.

Page 6: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 6/22 6 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Planning is everywhere

Introductory Concepts

AI Discrete Planning [1]

Piano Mover Problem [1] Unmanned Vehicles (UXVs) Planning

Rubik’s cube Sliding Puzzle

Robot Manipulator Planning

Unmanned Aerial Vehicles (UAV) & Micro Aerial Vehicles

(MAV)

Unmanned Underwater

Vehicles (UUV)

Unmanned Surface Vehicles (USV)

Unmanned Ground Vehicles (UGV)

Page 7: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 7/22 7 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Motion Planning

A robot has to compute a collision-free path from a start position (s) to a given goal position (G), amidst a collection of obstacles.

Introductory Concepts

Articulated Robot Rigid Robot

Page 8: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 8/22 8 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

Planning Entity Planned Entity/ Execution Entity

Plan Monitoring

Plan adaptation (Plan repair/Re-planning)

Track

Plan

Planning Environment

Mapped Environment/

Domain Model

Planning Method/Solver

Environment Perception

• Planning Overview

Page 9: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 9/22 9 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• Planning Overview: Planning Environment

Different planning approaches for different environments.

Modeling Dimensions:

Structure: structured versus unstructured.

Observerability: fully versus partially observable.

Determinism: deterministic versus stochastic.

Continuity: discrete versus continuous.

Adversary: benign versus adversarial.

Number of agents: single agent versus multiagent.

Page 10: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 10/22 10 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• Planning Overview: Planning Environment

Kinds of events that trigger planning [2]:

Time-based: for example, a plan for automated guided vehicle (AGV) needs to be made each season.

Event-based: a plan for AGV must be made after an event, for example, a rush order in a factory.

Disturbance-based: a plan must be adjusted because a disturbance occurs that renders the plan invalid- for example, unexpected moving obstacle in the robot way.

For reading: Can You Program Ethics Into a Self-Driving Car?

Page 11: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 11/22 11 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Domain Model Model

Transformation Solver Plan

• Initial state

• Goal state

• Possible states of the robot(s)

• Primitive actions or activities

• Hard and soft constraints

• Uncertainty (sensor and actuators)

• A priori knowledge

• C-Space configuration

• Graph Decomposition

• Cell decomposition

• Road maps

• Potential fields

• …

• Discrete Planning

• Combinatorial Planning

• Sampling-based Planning

• Potential Field Method

• Metaheuristics

• Planning under Uncertainty

• Hybrid approaches

• …

• Planning Process

Introductory Concepts

Page 12: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 12/22 12 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Natural Questions:

Introductory Concepts

◊ What is a plan?

◊ What is plan supposed to achieve?

◊ What are the requirements of a path planner?

◊ How is an environment transformed?

◊ How will plan quality be evaluated?

◊ Who or what is going to use the plan?

◊ What are the different planning algorithms?

Page 13: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 13/22 13 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• What is a plan?

Introductory Concepts

Waits until receiving a signal from the presence sensor

Stops the conveyer belt

Picks the defected piece

Deposits the defected piece in the waste box

Reactivates the movement of the conveyer belt

Returns to initial position

Repeat

Plan: Activity Diagram

PROC main()

go_wait_position; !Move to initial position

WHILE Dinput(finish)=0 Do !wait end program signal

IF Dinput(defected_piece)=1 THEN !Wait defected piece signal

SetDO activate_belt,0; !Stop belt

pick_piece !Pick the defected piece

SetDO activate_belt,1; !Activate the belt

place_piece !Place the defected piece

go_wait_position; !Move to the initial position

ENDIF

ENDWHILE

ENDPROC

ABB RAPID Program

Page 14: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 14/22 14 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• What is a plan?

Introductory Concepts

◊ Suppose that we have a tiny mobile

robot that can move along the floor in a

building.

◊ The task is to determine a path that it

should follow from a starting location to

a goal location, while avoiding

collisions.

◊ A reasonable model can be formulated by

assuming that the robot is a moving

point in a two-dimensional

environment that contains obstacles.

Page 15: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 15/22 15 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• What is a plan?

Introductory Concepts

◊ The task is to design an algorithm that

accepts an obstacle region defined by a

set of polygons, an initial position, and

a goal position.

◊ The algorithm must return a path that

will bring the robot from the initial

position to the goal position, while

only traversing the free space.

Page 16: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 16/22 16 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• What is plan supposed to achieve?

◊ A plan might simply specify a sequence of actions to be

taken; however, it may be more complicated.

◊ If it is impossible to predict future states, the plan may

provide actions as a function of state.

◊ In this case, regardless of future states, the appropriate

action is determined.

◊ It might even be the case that the state cannot be

measured.

◊ In this case, the action must be chosen based on whatever

information is available up to the current time.

Page 17: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 17/22 17 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• What are the requirements of a path planner?

1. to find a path through a mapped environment so that the

robot can travel along it without colliding with anything,

2. to handle uncertainty in the sensed world model and

errors in path execution,

3. to minimize the impact of objects on the field of view of the

robot’s sensors by keeping the robot away from those

objects,

4.to find the optimum path, if that path is to be negotiated

regularly.

Introductory Concepts

Page 18: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 18/22 18 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• What are the requirements of a path planner?

5. Determine the following:

Introductory Concepts

◊ Horizon: What time/space span does the plan cover? Receding Horizon Control/planning (RHC)

◊ Frequency: How often is the plan created or adapted?

[2]

◊ Level of detail: Does the plan need more detail in order to be executed? Does the executing entity have to fill in the details, or the plan used as a template for another planner (multiresolutional planning)?

◊ (Re)presentation: How is the plan represented and depicted? Does it specify the end state, or does it provide a process description that leads to the end state?

Page 19: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 19/22 19 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• How is an environment transformed?

◊ The first step of any path-planning system is to transform

the continuous environmental model into a discrete

map suitable for the chosen path-planning algorithm.

◊ Path planners differ as to how they effect this discrete

decomposition.

Introductory Concepts

R

SE

S

S

SES ES NE

……… …

Graph Decomposition: Environment is represented as an ordered directed graph.

Page 20: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 20/22 20 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• How is an environment transformed?

Cell decomposition: discriminate between free and occupied cells.

Page 21: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 21/22 21 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• How is an environment transformed?

Road map: identify a set of routes within the free space.

Potential field: impose a mathematical function over the space.

Page 22: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 22/22 22 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

◊ Configuration space (C-Space) is the set of legal

configurations of the robot.

◊ C-Space also defines the topology of continuous motions.

Transform.

Introductory Concepts

• Configuration space

Source: https://www.youtube.com/watch?v=zLEIWt6XZDY

Page 23: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 23/22 23 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

For both articulated

robots and rigid-object

robots (no joints)

there exists a

transformation to the

robot and obstacles

that turns the robot

into a single point.

The C-Space

Transform.

Introductory Concepts

• Configuration space

Workspace Configuration Space

Page 24: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 24/22 24 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• Configuration space

Assume the following:

[3]

𝒜 : a rigid/articulated robot; 𝒲 : the workspace (i.e., the Cartesian space in which the robot moves); 𝒜(𝑞) : the subset of the workspace that is occupied by the robot at configuration q 𝒪𝑖 : the obstacles in the workspace;

𝒪 = ⋃𝒪𝑖, obstructive region and 𝒞 : configuration space, which is the set of all possible configurations. A complete specification of the location of every point on the robot is referred to as a configuration.

Page 25: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 25/22 25 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• Configuration space

[3]

𝒞obs: configuration space obstacle,

which is the set of configurations for which the robot collides with an obstacle, 𝒞obs ⊆ 𝒞

The set of collision-free configurations, referred to as the free configuration space, is then simply

𝒞free = 𝒞\𝒞obs

𝒞obs = 𝑞 ∈ 𝒞|𝒜(𝑞)⋂𝒪 ≠ 𝜙

𝒞 = 𝒞free ∪ 𝒞obs

Page 26: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 26/22 26 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• Configuration space

[3]

The path planning problem is to find a path from an initial configuration qinit to a final configuration qfinal, such that the robot does not collide with any obstacle as it traverses the path.

A collision-free path from qinit to qfinal is a continuous map, 𝒯: 0,1 → 𝒞free

with 𝒯(0)= qinit and 𝒯(1)= qfinal

qinit

qfinal

𝒞free

𝒞obs

Page 27: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 27/22 27 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

• Configuration space: Articulated Robots

Consider a two-link planar arm in a workspace containing a single obstacle

Two-link Planar Arm Configuration Space

[3]

The region 𝒞obswas computed

using a discrete grid on the configuration space

Collision-free cells Obstructive cells

Page 28: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 28/22 28 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Free Space

Robot (treat as point object)

x,y

Obstacles Free Space

Robot x,y

Introductory Concepts

• Configuration space: Rigid Robots

Workspace Configuration Space

Page 29: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 29/22 29 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• C-Space Transform Examples

…is equivalent to…

Where can I move this robot in the vicinity of this obstacle

Where can I move this point in the vicinity of this expanded obstacle

Where can I move this robot in the vicinity of this obstacle

Where can I move this point in the vicinity of this expanded obstacle

…is equivalent to…

Assuming you’re not allowed to rotate

Introductory Concepts

Page 30: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 30/22 30 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Object-growth Algorithm

1. Attach a coordinate frame to the reference point,

2. Flip the robot about the two axes of the coordinate frame, one axis at

a time.

3. Place the reference point of the flipped robot at each of the vertices

of the object and calculate the positions of the vertices of the robot.

4. Find the convex hull of the vertices. The convex hull is the convex

polygon formed by stretching a rubber band around the vertices.

Introductory Concepts

Reading Material

Page 31: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 31/22 31 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Object-growth Algorithm

1. Attach a coordinate frame to the reference point,

2. Flip the robot about the two axes of the coordinate frame, one axis at a

time.

Introductory Concepts

Reading Material

Page 32: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 32/22 32 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Object-growth Algorithm

3. Place the reference point of the flipped robot at each of the vertices of

the object and calculate the positions of the vertices of the robot.

4. Find the convex hull of the vertices. The convex hull is the convex

polygon formed by stretching a rubber band around the vertices.

Flipped robot

Introductory Concepts

Reading Material

Page 33: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 33/22 33 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Convex hull Algorithm: Sklansky’s Algorithm

1. Place vertices into a counter-clockwise ordered list

2. Allocate a stack

3. Push vertex 0 onto stack

4. Push vertex 1 onto stack

5. For i=2 to n do

{compare vertex i to ray formed by the 2 vertices at the top of the stack}

if vertex i is on or to the right of the ray (stacktop-1, stacktop) then

pop {discard top element of stack}

End

push vertex i {put vertex i onto stack}

End

Stack (LIFO)

Introductory Concepts

Reading Material

Page 34: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 34/22 34 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Convex hull Algorithm: Sklansky’s Algorithm

Point Pushed Popped Stack

0 0 - 0

1 1 - 1,0

2

3

4

5

6

7

8

9

… … … …

Repeat…

2 1 2,0

3 2 3,0

4 - 4,3,0

5 4 5,3,0

6 5 6,3,0

7 6 7,3,0

8 - 8,7,3,0

9 8 9,7,3,0

Introductory Concepts

Reading Material

Page 35: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 35/22 35 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• How will plan quality be evaluated?

Introductory Concepts E

va

lua

tio

n M

etri

cs

Expense

Distance from obstacles

Smoothness of the path

Time

Distance travelled

Optimality of the path

etc…

Page 36: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 36/22 36 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Who or what is going to use the plan?

global

local

Raw data

Environment Model Local Map

“Position” Global Map

Actuator Commands

Sensing Acting

Information Extraction

Path Execution

Cognition Path Planning

Knowledge, Data Base

Mission Commands

Path

Real World Environment

Localization Map Building

Mo

tio

n C

on

tro

l

Per

cep

tio

n

[4]

Introductory Concepts

Page 37: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 37/22 37 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Introductory Concepts

Motion Planning Methods

Discrete

Planning

• What are the different planning algorithms?

Forward

Search

Backward

Search

◊ Breadth first

◊ Depth first

◊ Dijkstra’s algorithm

◊ A*

◊ …

Combinatorial Planning

Cell Decomposition

Roadmaps

◊ Voronoi Diagrams

◊ Visibility Graph

◊ Free Way Net

◊ Silhouette

◊ MAKLINK

◊ …

◊ Exact

◊ Approximate (Fixed/ Adaptive)

Other Approaches

◊ Sampling-Based Motion Planning (Rapidly-exploring Random Trees-RRTs, Probabilistic Roadmaps-PRMs)

◊ Potential Field Methods

◊ Metaheuristics

◊ Decision-theoretic Planning

◊ Hybrid approaches

Page 38: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 38/22 38 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Introductory Concepts

• Discrete Planning

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Dijkstra’s Algorithm

• Best-first

• A* Algorithm

Outline

Page 39: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 39/22 39 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• The typical approach towards the problem of path planning

assumes a graph representation of the terrain. The problem

of minimum-path planning on a graph is well known, and a

variety of algorithms are applicable under different input

specification.

• Therefore path planning problem is handled as a search

problem to find the shortest path between start and goal

points on a graph.

Discrete Planning

Page 40: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 40/22 40 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Forward Graph Search Methods/ Enumerative Algorithms

Informed Search Uninformed/Blind Search

◊ Breadth-first (BFS) ◊ Depth-first (DFS) ◊ British Museum Search

or Brute-force Search ◊ Dijkstra ◊ …

◊ Best-first ◊ A* ◊ …

Discrete Planning

Page 41: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 41/22 41 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Introductory Concepts

• Discrete Planning

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Dijkstra’s Algorithm

• Best-first

• A* Algorithm

Outline

Page 42: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 42/22 42 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Step 1. Form a queue Q and set it to the initial state (for example, the Root).

Step 2. Until the Q is empty or the goal state is found

do:

Step 2.1 Determine if the first element in the Q is the goal.

Step 2.2 If it is not

Step 2.2.1 remove the first element in Q.

Step 2.2.2 Apply the rule to generate new state(s) (successor states).

Step 2.2.3 If the new state is the goal state quit and return this state

Step 2.2.4 Otherwise add the new state to the end of the queue.

Step 3. If the goal is reached, success; else failure.

[5]

Breadth-first Search (BFS)

Reading Material

Page 43: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 43/22 43 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• BFS uses the queue as data

structure.

• Queue is a First-In-First-Out

(FIFO) data structure.

• A FIFO means that the node that has

been sitting on the queue for the

longest amount of time is the

next node to be expanded.

Breadth-first Search (BFS)

Page 44: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 44/22 44 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

Queue

Start IN

OUT [6]

Breadth-first Search (BFS)

Page 45: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 45/22 45 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

S

Queue

S

Start

IN

OUT

Breadth-first Search (BFS)

Page 46: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 46/22 46 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

S

S SE

Queue

SE S

Start S

IN

OUT

Breadth-first Search (BFS)

Page 47: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 47/22 47 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

S

S SE

Queue

SE S SE

Start S S

S SE

IN

OUT

Breadth-first Search (BFS)

Page 48: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 48/22 48 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

S

S SE

Queue

NE E SE S

Start S S SE

S SE E NE

IN

OUT

Breadth-first Search (BFS)

Page 49: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 49/22 49 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

S

S SE

S SE E NE

◊ The FIFO queue continues until the goal node is found

Breadth-first Search (BFS)

Page 50: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 50/22 50 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

S

S SE

S SE E NE

• The path leading to the goal

node (E) is traced back up

the tree which maps out the

directions that the robot must

follow to reach the goal.

• Traveling back up the tree,

we can see that the robot from

the start would have to go

south, then south east, then

east to reach the goal.

Assume that E is the goal, Path is: Start SSEE

Breadth-first Search (BFS)

Page 51: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 51/22 51 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• In BFS, every node generated

must remain in memory.

• The number of nodes

generated is at most:

O(bd)

where b represents the

maximum branching factor

for each node and d is the

depth one must expand to

reach the goal. b=2 and d=3 Total # of nodes=23=8

Start

S

S SE

S SE E NE

Breadth-first Search (BFS)

Page 52: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 52/22 52 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Space complexity: O(bd) (keep every node in memory)

• We can see from this that a for very large workspace

where the goal is deep within the workspace, the

number of nodes could expand exponentially and demand

a very large memory requirement.

• Time Complexity:

i.e., exponential in d.

2 11 .... ( 1) /( 1) ( )d d db b b b b O b

Breadth-first Search (BFS)

Page 53: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 53/22 53 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Breadth-first Search (BFS)

Source: Data Science Central

• Zettabyte: fills the Pacific ocean

• Exabyte: covers Germany twice

• Petabyte: covers Manhattan

• Terabyte: 2 container ships

• Gigabyte: 3 container lorries

• Megabyte: 8 bags of rice

• Kilobyte: cup of rice

• Byte of data: one grain of rice

Space Complexity

O(bd)

Time Complexity

O(bd)

Page 54: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 54/22 54 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

◊ High memory requirement.

◊ Exhaustive search as it will process every node.

◊ Doesn’t get stuck.

◊ Finds the shortest path (minimum number of steps).

Breadth-first Search (BFS)

Page 55: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 55/22 55 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Introductory Concepts

• Discrete Planning

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Dijkstra’s Algorithm

• Best-first

• A* Algorithm

Outline

Page 56: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 56/22 56 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Step 1. Form a stack S and set it to the initial state (for example, the Root).

Step 2. Until the S is empty or the goal state is found

do:

Step 2.1 Determine if the first element in the S is the goal.

Step 2.2 If it is not

Step 2.2.1 Remove the first element in S.

Step 2.2.2 Apply the rule to generate new state(s) (successor states).

Step 2.2.3 If the new state is the goal state quit and return this state

Step 2.2.4 Otherwise add the new state to the beginning of the stack

Step 3. If the goal is reached, success; else failure.

Depth-first Search (DFS)

Reading Material

Page 57: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 57/22 57 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Stack (LIFO)

• DFS uses the stack as data structure.

• Stack is a Last-In-First-Out

(LIFO) data structure.

• The stack contains the list of

discovered nodes. The most recent

discovered node is put (pushed) on

top of the LIFO stack.

• The next node to be expanded is

then taken (popped) from the top of

the stack and all of its successors are

added to the stack. http://wiki.ugcnet4cs.in/t/Stack

Depth-first Search (DFS)

Page 58: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 58/22 58 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

Stack

Start

IN OUT

Depth-first Search (DFS)

Page 59: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 59/22 59 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Start

S

Stack

S Start

IN OUT

Depth-first Search (DFS)

Page 60: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 60/22 60 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Stack

SE S

S Start

Start

S

S SE

IN OUT

Depth-first Search (DFS)

Page 61: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 61/22 61 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

NE E S SW S

SE S Start

Start

S

S SE

S E NE SW

Depth-first Search (DFS)

Page 62: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 62/22 62 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

◊ The next node to be

expanded would be NE

and its successors would

be added to the stack and

this loop continues until

the goal is found.

◊ Once the goal is found,

you can then trace

back through the tree to

obtain the path for the

robot to follow.

Depth-first Search (DFS)

Page 63: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 63/22 63 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Depth first search usually requires a considerably less

amount of memory that BFS.

• This is mainly because DFS does not always expand out every

single node at each depth.

• However the DFS could continue down an unbounded

branch forever even if the goal is not located on that

branch.

• Time Complexity: O(bd) terrible if d is much larger than

b but if solutions are dense, may be much faster than BFS.

• Space Complexity: O(bd), i.e., linear space!

Depth-first Search (DFS)

Page 64: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 64/22 64 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Low memory requirement.

• Full state space search in that every node is processed, i.e, it’s

exhaustive within its set limits.

• Could get stuck exploring infinite paths.

• Used if there are many solutions and you need only one.

Depth-first Search (DFS)

Page 65: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 65/22 65 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• BFS vs. DFS

BFS DFS

Space Complexity More expensive Less expensive. Requires only O(d) space irrespective of number of children per node.

Time Complexity More time efficient. A vertex at lower level (closer to the root) is visited first before visiting a vertex that is at higher level (far away from the root)

Less time efficient.

Depth-first Search (DFS)

Page 66: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 66/22 66 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

DFS is preferred if

◊ The tree is deep;

◊ Solutions occur deeply in the tree;

◊ The branching factor is not excessive.

BFS is preferred if

◊ The branching factor is not too large (hence memory

costs);

◊ A solution appears at a relatively shallow level;

◊ No path is excessively deep.

• BFS vs. DFS

Depth-first Search (DFS) S

pa

ce

Co

mp

lex

ity

: O

(bd)

Tim

e C

om

ple

xit

y:

O(b

d)

Sp

ac

e C

om

ple

xit

y:

O(b

d)

Tim

e C

om

ple

xit

y:

O(b

d)

Page 67: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 67/22 67 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Introductory Concepts

• Discrete Planning

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Dijkstra’s Algorithm

• Best-first

• A* Algorithm

Outline

Page 68: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 68/22 68 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

◊ Blind search finds only one arbitrary solution instead of

the optimal solution.

◊ To find the optimal solution with DFS or BFS, you must not

stop searching when the first solution is discovered. Instead,

the search needs to continue until it reaches all the solutions,

so you can compare them to pick the best.

◊ The strategy for finding the optimal solution is called British

Museum search or brute-force search.

The inventors called this procedure the British Museum algorithm "... since it seemed to them as sensible as placing monkeys in front of typewriters in order to reproduce all the books in the British Museum [5]."

• British Museum Search

Dijkstra’s Algorithm

Page 69: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 69/22 69 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Dijkstra’s algorithm (Dynamic Programming) is a graph

search algorithm that solves the single-source shortest

path problem for a fully connected graph with nonnegative

edge path costs, producing a shortest path tree.

Dynamic programming (a fancy name for divide-and-

conquer with a table) approaches are based on the recursive

division of a problem into simpler sub-problems.

Dijkstra’s algorithm is uninformed/blind, meaning it does

not need to know the target node before hand and doesn’t use

heuristic information.

Dijkstra’s Algorithm

Page 70: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 70/22 70 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

1. Init

Set start distance to 0, dist[s]=0,

others to infinite: dist[i]= (for is),

Set Ready = { } .

2. Loop until all nodes are in Ready

Select node n with shortest known distance that is not in Ready

set Ready = Ready + {n} .

FOR each neighbor node m of n

IF dist[n]+edge(n,m) < dist[m] /* shorter path found */

THEN { dist[m] = dist[n]+edge(n,m); pre[m] = n;}

Dijkstra’s Algorithm

Reading Material

Page 71: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 71/22 71 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

S

c

0

a

d

b

10

9 9

3

2

5

6

1

From s to: S a b c d

Distance 0

Predecessor - - - - -

Step 0: Init list, no predecessors

Ready = {} [6]

Dijkstra’s Algorithm

Page 72: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 72/22 72 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

S

c

0

a

d

b

10

5 9

10

9 9

3

2

5

6

1

From s to: S a b c d

Distance 0 10 5 9

Predecessor - s - s s

Step 1: Closest node is s, add to Ready

Update distances and pred. to all neighbors of s, Ready = {S}

Dijkstra’s Algorithm

Page 73: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 73/22 73 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

S

c

0

a

d

b

8

5 7

14

10

9 9

3

2

5

6

1

From s to: S a b c d

Distance 0 10 8 14 5 9 7

Predecessor - s c c s s c

Step 2: Next closest node is c, add to Ready

Update distances and pred. for a and d, Ready = {S, c}

Dijkstra’s Algorithm

Page 74: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 74/22 74 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

S

c

0

a

d

b

8

5 7

14

10

9 9

3

2

5

6

1

Step 3: Next closest node is d, add to Ready

Update distance and pred. for b. Ready = {s, c, d}

From s to: S a b c d

Distance 0 8 14 13 5 7

Predecessor - c c d s c

Dijkstra’s Algorithm

Page 75: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 75/22 75 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

S

c

0

a

d

b

8

5 7

14

10

9 9

3

2

5

6

1

Step 4: Next closest node is a, add to Ready

Update distance and pred. for b. Ready = {S, a, c, d}

From s to: S a b c d

Distance 0 8 13 9 5 7

Predecessor - c d a s c

Dijkstra’s Algorithm

Page 76: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 76/22 76 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

S

c

0

a

d

b

8

5 7

9

10

9 9

3

2

5

6

1

Step 5: Closest node is b, add to Ready

check all neighbors of s. Ready = {S, a, b, c, d} complete!

From s to: S a b c d

Distance 0 8 9 5 7

Predecessor - c a s c

Dijkstra’s Algorithm

Page 77: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 77/22 77 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Shortest path between s and a is {S, c, a} length=8

S

c

0

a

d

b

8

5 7

9

10

9 9

3

2

5

6

1

From s to: S a b c d

Distance 0 8 9 5 7

Predecessor - c a s c

◊ dist[a] = 8

◊ pre[a] = c

◊ pre[c] = S

◊ Shortest path: Sc a,

◊ Length is 8

Dijkstra’s Algorithm

Page 78: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 78/22 78 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Shortest path between s and b is {S, c, a,b} length=9

S

c

0

a

d

b

8

5 7

9

10

9 9

3

2

5

6

1 ◊ dist[b] = 9

◊ pre[b] = a

◊ pre[a] = c

◊ pre[c] = S

◊ Shortest path: Sc a b

From s to: S a b c d

Distance 0 8 9 5 7

Predecessor - c a s c

Dijkstra’s Algorithm

Page 79: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 79/22 79 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Shortest path between s and d is {S, c} length=5

S

c

0

a

d

b

8

5 7

9

10

9 9

3

2

5

6

1 ◊ dist[c] = 5

◊ pre[c] = S

◊ Shortest path: Sc

From s to: S a b c d

Distance 0 8 9 5 7

Predecessor - c a s c

Dijkstra’s Algorithm

Page 80: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 80/22 80 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Shortest path between s and d is {S, c, d} length=7

S

c

0

a

d

b

8

5 7

9

10

9 9

3

2

5

6

1 ◊ dist[d] = 7

◊ pre[d] = c

◊ pre[c] = S

◊ Shortest path: Sc d

From s to: S a b c d

Distance 0 8 9 5 7

Predecessor - c a s c

Dijkstra’s Algorithm

Page 81: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 81/22 81 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Dijkstra’s Algorithm

As can be seen from previous example, instead of solving

subproblems recursively, solve them sequentially and store their

solutions in a table. The trick is to solve them in the right order

so that whenever the solution to a subproblem is needed, it is

already available in the table [I. Parberry. Problems on algorithms. Prentice-Hall, 1995].

Page 82: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 82/22 82 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Introductory Concepts

• Discrete Planning

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Dijkstra’s Algorithm

• Best-first

• A* Algorithm

Outline

Page 83: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 83/22 83 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

1. Workspace discretized into cells

2. Insert (xinit,yinit) into list OPEN

3. Find all 8-way neighbors to (xinit,yinit) that have not been previously

visited and insert into OPEN

4. Sort neighbors by minimum potential

5. Form paths from neighbors to (xinit,yinit)

6. Delete (xinit,yinit) from OPEN

7. (xinit,yinit) = minPotential(OPEN)

8. GOTO 2 until (xinit,yinit)=goal (SUCCESS) or OPEN empty (FAILURE)

Best-first

Reading Material

Page 84: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 84/22 84 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 85: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 85/22 85 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 86: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 86/22 86 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 87: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 87/22 87 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 88: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 88/22 88 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 89: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 89/22 89 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 90: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 90/22 90 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 91: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 91/22 91 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 92: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 92/22 92 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

+

Goal +

Neighbor

Visited

Obstacle

Local minimum detected

Best step

Best-first

Page 93: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 93/22 93 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

◊ It is a kind or mixed depth and breadth first search.

◊ Adds the successors of a node to the expand list.

◊ All nodes on the list are sorted according to the heuristic

values.

◊ Expand most desirable unexpanded node.

◊ Special Case: A*.

Best-first

Page 94: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 94/22 94 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• Introductory Concepts

• Discrete Planning

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Dijkstra’s Algorithm

• Best-first

• A* Algorithm

Outline

Page 95: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 95/22 95 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Pronounced “A-Star”; heuristic algorithm for computing the

shortest path from one given start node to one given goal

node.

The A* search algorithm is a variant of dynamic programming

(Dijkstra) that tries to reduce the total number of states

explored by incorporating a heuristic estimate of the cost to

get the goal from a given state.

A* Algorithm

Page 96: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 96/22 96 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

1. Use a queue to store all the partially expanded paths.

2. Initialize the queue by adding to the queue a zero length path from the root

node to nowhere.

3. Repeat

Examine the first path on the queue.

If it reaches the goal node then success.

Else {continue search}

Remove the first path from the queue.

Expand the last node on this path by one step.

Calculate the cost of these new paths.

Add these new paths to the queue.

A* Algorithm

Reading Material

Page 97: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 97/22 97 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Sort the queue in ascending order according to the sum of the cost of the

expanded path and the estimated cost of the remaining path for each path.

If more than one path reaches a subnode

Then delete all but the minimum cost path.

Until the goal has been found or the queue is empty.

4. If the goal has been found return success and the path, otherwise return failure.

A* Algorithm

Reading Material

Page 98: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 98/22 98 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

A

S

C E

D B

G 4

3

3

5

3

5

3

2

4 F

10.5

8.5 5.7 2.8

0

3 7 10.3

S

A B

C

E

D

B

G

11.5

11.7

11.8

12

12.3

17.3

21

A* Algorithm

Page 99: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 99/22 99 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

Source: http://en.wikipedia.org/wiki/File:Astar_progress_animation.gif

A* Algorithm

Page 100: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 100/22 100 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

• This algorithm may look complex since there seems to be the

need to store incomplete paths and their lengths at various

places.

• However, using a recursive best-first search

implementation can solve this problem in an elegant way

without the need for explicit path storing.

• The quality of the lower bound goal distance from each node

greatly influences the timing complexity of the algorithm.

• The closer the given lower bound is to the true

distance, the shorter the execution time.

A* Algorithm

Page 101: Discrete Motion Planning - Alaa Khamis...SetDO activate_belt,1; !Activate the belt place_piece !Place the defected piece go_wait_position; !Move to the initial position ENDIF ENDWHILE

MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo 101/22 101 L8, SPC418: Autonomous Vehicles Design and Control- Zewail City of Science and Technology - Fall 2016 © Dr. Alaa Khamis

References

1. LaValle, S. M. (2006). Planning algorithms. Cambridge university press.

2. van Wezel, W., Jorna, R. J., & Meystel, A. M. (Eds.). (2006). Planning in Intelligent Systems: Aspects, motivations, and methods. John Wiley & Sons.

3. Spong, M. W., Hutchinson, S., & Vidyasagar, M. Robot modeling and control. John Wiley & Sons, 2006.

4. Siegwart, R., Nourbakhsh, I. R., & Scaramuzza, D. (2011). Introduction to autonomous mobile robots. MIT press.

5. Crina Grosan and Ajith Abraham. Intelligent Systems: A Modern Approach. Springer, 2011.

6. http://dasl.mem.drexel.edu/Hing/BFSDFSTutorial.htm, Last accessed: November 20, 2016.