+ All Categories

D* Lite

Date post: 23-Feb-2016
Category:
Upload: manny
View: 44 times
Download: 0 times
Share this document with a friend
Description:
D* Lite. an incremental version of A* for navigating in unknown terrain. It implements the same behavior as Stentz ’ Focussed Dynamic A* but is algorithmically different. [email protected]. Mars Rover. Incremental search + heuristic search. - PowerPoint PPT Presentation
Popular Tags:
68
[email protected] D* Lite an incremental version of A* for navigating in unknown terrain It implements the same behavior as Stentz’ Focussed Dynamic A* but is algorithmically different. [email protected]
Transcript
Page 1: D*  Lite

[email protected]

D* Litean incremental version of A*

for navigating in unknown terrainIt implements the same behavior as Stentz’ Focussed Dynamic A* but is algorithmically different.

[email protected]

Page 2: D*  Lite

Mars Rover

Page 3: D*  Lite

How to search efficiently using heuristic to guide the search

How to search efficiently by using re-using information from previous search results

Incremental search + heuristic search

Page 4: D*  Lite

• Stentz 1995• Clever heuristic method that achieves a speedup of one to

two orders of magnitudes over repeated A* searches• The improvement is achieved by modifying previous search

results locally• Extensively used on real robots, including outdoor high

mobility multi-wheeled vehicle (HMMWV)• Integrated into Mars Rover prototypes and tactical mobile

robot prototypes for urban reconnaissance

Focussed Dynamic A* (D*)

Page 5: D*  Lite

• D* Lite implements the same navigation strategy as D*, but is algorithmically different

• Substantially shorter than D*• Uses only one tie-breaking criterion when comparing

priorities (simplified maintenance)• No nested if statements with complex conditions• Simplifies the analysis of program flow• Easier to extend• At least as efficient as D*

D* Lite vs. D*

Page 6: D*  Lite

Previously, we learned LPA*

original eight-connected gridworld

LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change.

Page 7: D*  Lite

Path Planning

original eight-connected gridworld

LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change.

Page 8: D*  Lite

Path Planning

changed eight-connected gridworld

LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change.

Page 9: D*  Lite

Path Planning

changed eight-connected gridworld

LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change.

Page 10: D*  Lite

LPA*

• LPA* is an incremental version of A* that applies to the same finite path-planning problems as A*.

• It shares with A* the fact that it uses non-negative and consistent heuristics h(s) that approximate the goal distances of the vertices s to focus its search.

• Consistent heuristics obey the triangle inequality:– h(sgoal) = 0 – h(s) ≤ c(s, s’) + h(s’); for all vertices s ∈ S and s’ ∈ succ(s) with s ≠ sgoal.

Page 11: D*  Lite

D* LiteLPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change.

D* Lite repeatedly determines shortest paths between the current vertex Scurrent of the robot and Sgoal as the edge costs of a graph

change, while the robot moves towards Sgoal.

Page 12: D*  Lite

D* LiteLPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change.

D* Lite repeatedly determines shortest paths between the current vertex Scurrent of the robot and Sgoal as the edge costs of a graph

change, while the robot moves towards Sgoal.

D* Lite is suitable for solving goal-directed navigation problems in unknown terrains.

Page 13: D*  Lite

Free space Assumption

Page 14: D*  Lite

Free space Assumption

Page 15: D*  Lite
Page 16: D*  Lite
Page 17: D*  Lite

Free space assumptionMove the robot on a shortest potentially unblocked path towards the goal.

Page 18: D*  Lite

Using the free space assumption in path planning

Search from the Goal towards the robot’s current location- This allows one to re-use parts of the search tree after the

robot has moved.- This allows one to use heuristics to focus the search; thereby

not requiring to search the entire graph.

Page 19: D*  Lite

Using the free space assumption in path planning

Search from the Goal towards the robot’s current location- This makes incremental search efficient.

Page 20: D*  Lite

Variables• S finite set of vertices• set of successors of s• set of predecessors of s • Cost of moving from vertex s to vertex s’

• Start vertex – has no predecessors• Goal vertex – has no successors

Page 21: D*  Lite

LPA* Variables• Start distance = length of the shortest path

from Sstart to S

• g(s) = estimate of the Start distance g*(s)

Page 22: D*  Lite

D* Lite Variables• Goal distance = length of the shortest path

from S to Sgoal

• g(s) = estimate of the Goal distance g*(s)

Page 23: D*  Lite

LPA* Rhs-valueThe rhs-values are one-step look-ahead values, based on the g-values; and thus, potentially better informed than the g-values

Page 24: D*  Lite

D* Lite Rhs-valueThe rhs-values are one-step look-ahead values, based on the g-values; and thus, potentially better informed than the g-values

Page 25: D*  Lite

D* Lite Rhs-value

• g-value = rhs-value: cell is locally consistent• g-value ≠ rhs-value: cell is locally inconsistent• g-value > rhs-value: cell is locally overconsistent• g-value < rhs-value: cell is locally underconsistent

• the priority queue contains exactly the locally inconsistent vertices • their priority is [min(g(s),rhs(s)) + h(s,sstart) + km; min(g(s),rhs(s))]• smaller priorities first, according to a lexicographic ordering

The rhs-values are one-step look-ahead values, based on the g-values and thus potentially better informed than the g-values

Page 26: D*  Lite

Shortest Path• If all vertices are locally consistent,

– g(s) == g*(s) ; for all vertices s– one can trace back the shortest path from Sstart to Sgoal.

• From vertex s, find a successor s’ that minimises g(s’) + c(s, s’). • Ties can be broken arbitrarily.• Repeat until Sgoal is reached.

from Sstart to Sgoal

Page 27: D*  Lite

Selective Update• D*Lite does not make all vertices locally consistent

after some edge costs have changed• It uses heuristics to focus the search• It updates only the g-values that are relevant for

computing the shortest path

Page 28: D*  Lite

Priority• D*Lite maintains a priority queue for keeping track of

locally inconsistent vertices – vertices that potentially needs their g-values updated to make them locally consistent

• Priority of a vertex = key• Key – vector with 2 components

k(s) = [ k1(s); k2(s) ]

k1(s) = min(g(s), rhs(s)) + h(s, sstart) + kmk2(s) = min(g(s), rhs(s))

Page 29: D*  Lite

Priority• Priority of a vertex = key• Key – vector with 2 components

k(s) = [ k1(s); k2(s) ]

k1(s) = min(g(s), rhs(s)) + + h(s, sstart) + kmk2(s) = min(g(s), rhs(s))

Key comparison (lexicographic ordering): k(s) ≤ k’(s) iff either ( k1(s) < k1‘(s) )

or ( k1(s) == k1‘(s) ) and( k2(s) ≤ k2‘(s) )

The vertex with the smallest key is

expanded first by D*Lite.

Page 30: D*  Lite

Heuristic Function (8-connected Gridworld)

• As an approximation of the distance between two cells, we use the maximum of the absolute differences of their x and y coordinates.

• These heuristics are for eight-connected gridworlds what Manhattan distances are for four-connected gridworlds.

Lifelong Planning A* h(s, sgoal) – calculated relative to the goal position

D*Lite h(s, sstart) – calculated relative to the start position

Page 31: D*  Lite

The pseudocode uses the following functions to manage the priority queue:

• U.TopKey() - returns the smallest priority of all vertices in priority queue U.

(If U is empty, then U.TopKey() returns [∞; ∞].) • U.Pop() - deletes the vertex with the smallest priority in priority

queue U and returns the vertex. • U.Insert(s; k) - inserts vertex s into priority queue U with priority k.• Update(s; k) - changes the priority of vertex s in priority queue U to

k. (It does nothing if the current priority of vertex s already equals k.)

• U.Remove(s) - removes vertex s from priority queue U.

Priority Queue Management

Page 32: D*  Lite

LPA* Pseudocode (just for comparison)

Page 33: D*  Lite

D* Lite Pseudocode

gets satisfied when one of the edge costs change

Page 34: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 1

Page 35: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 2

Page 36: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 3

Page 37: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 4

Page 38: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 5

Page 39: D*  Lite

After one cell gets blocked…

Blocked cell: C3

The previous search results are carried over to help solve this re-planning problem.

Page 40: D*  Lite
Page 41: D*  Lite

After one cell gets blocked…

Blocked cell: C3

Neighbours of C3: B3, C4, D3, C2

Among the neighbours, Cells B3 & C2 calculates their rhs-values based on C3; therefore, set their g-values to ∞

Page 42: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 6

Page 43: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 7

Page 44: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 8

Page 45: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 9

Page 46: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 10

Page 47: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 11

Page 48: D*  Lite

Route-planning example: 4-connected gridworld

Example, Step 12

Page 49: D*  Lite

Simulation Example

D* Lite operating in a 4-Connected Gridworld

demonstration of the use of the km variable

Page 50: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 1

Page 51: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 2

Page 52: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 3

Page 53: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 4

Page 54: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 5

Page 55: D*  Lite

Cell C3 gets blocked…

Page 56: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 6

Page 57: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 7

Page 58: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 8

Page 59: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 9

Page 60: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 10

Page 61: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 11

Page 62: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 12

Page 63: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 13

Page 64: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 14

Page 65: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 15

Page 66: D*  Lite

Route-planning example #2: 4-connected gridworld

Example, Step 16

Page 67: D*  Lite

Conclusions

• D* Lite is a fast re-planning method for robot navigation in unknown terrain.

• It implements the same navigation strategies as D*, and is at least as efficient as D*.


Recommended