1 / 68

D* Lite

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. n.h.reyes@massey.ac.nz. Mars Rover. Incremental search + heuristic search.

manny
Download Presentation

D* Lite

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. n.h.reyes@massey.ac.nz

  2. Mars Rover

  3. Incremental search + heuristic search How to search efficiently using heuristic to guide the search How to search efficiently by using re-using information from previous search results

  4. Focussed Dynamic A* (D*) • 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

  5. D* Litevs.D* • D* Liteimplements 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*

  6. Previously, we learned LPA* LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change. original eight-connected gridworld

  7. Path Planning LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change. original eight-connected gridworld

  8. Path Planning LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change. changed eight-connected gridworld

  9. Path Planning LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change. changed eight-connected gridworld

  10. 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-negativeand consistentheuristicsh(s)that approximate the goal distances of the vertices sto 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.

  11. D* Lite LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change. D* Literepeatedly determines shortest paths between the current vertex Scurrentof the robot and Sgoal as the edge costs of a graph change, while the robot moves towards Sgoal.

  12. D* Lite LPA* repeatedly determines shortest paths between Sstart and Sgoal as the edge costs of a graph change. D* Literepeatedly determines shortest paths between the current vertex Scurrentof the robot and Sgoal as the edge costs of a graph change, while the robot moves towards Sgoal. D* Liteis suitable for solving goal-directed navigation problems in unknown terrains.

  13. Free space Assumption

  14. Free space Assumption

  15. Free space assumption Move the robot on a shortest potentially unblocked path towards the goal.

  16. 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.

  17. Using the free space assumption in path planning • Search from the Goal towards the robot’s current location • This makes incremental search efficient.

  18. Variables • S finite set of vertices • set of successorsof 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

  19. LPA* Variables • Start distance = length of the shortest path from Sstart to S • g(s) = estimate of the Start distance g*(s)

  20. D* Lite Variables • Goal distance = length of the shortest path from StoSgoal • g(s) = estimate of the Goal distance g*(s)

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

  22. D* LiteRhs-value The rhs-values are one-step look-ahead values, based on the g-values; and thus, potentially better informed than the g-values

  23. D* LiteRhs-value The rhs-values are one-step look-ahead values, based on the g-values and thus potentially better informed than the g-values • 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 inconsistentvertices • 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

  24. 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 Sstart to Sgoal • From vertex s, find a successors’ that minimises g(s’) + c(s, s’). • Ties can be broken arbitrarily. • Repeat until Sgoal is reached.

  25. Selective Update • D*Lite does not make all vertices locally consistent after some edge costs have changed • It uses heuristicsto focus the search • It updates only the g-values that are relevant for computing the shortest path

  26. 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) + km k2(s) = min(g(s), rhs(s))

  27. 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) + km k2(s) = min(g(s), rhs(s)) The vertex with the smallest key is expanded first by D*Lite. Key comparison (lexicographic ordering): k(s) ≤ k’(s) iffeither(k1(s) <k1‘(s) ) or (k1(s) ==k1‘(s) ) and (k2(s) ≤k2‘(s) )

  28. Heuristic Function (8-connectedGridworld) • As an approximation of thedistance 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. D*Liteh(s, sstart) – calculated relative to the startposition Lifelong Planning A* h(s, sgoal) – calculated relative to the goalposition

  29. Priority Queue Management 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.

  30. LPA* Pseudocode(just for comparison)

  31. D* LitePseudocode gets satisfied when one of the edge costs change

  32. Route-planning example:4-connected gridworld Example, Step 1

  33. Route-planning example:4-connected gridworld Example, Step 2

  34. Route-planning example:4-connected gridworld Example, Step 3

  35. Route-planning example:4-connected gridworld Example, Step 4

  36. Route-planning example:4-connected gridworld Example, Step 5

  37. After one cell gets blocked… Blocked cell: C3 The previous search results are carried over to help solve this re-planning problem.

  38. 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 ∞

  39. Route-planning example:4-connected gridworld Example, Step 6

  40. Route-planning example:4-connected gridworld Example, Step 7

  41. Route-planning example:4-connected gridworld Example, Step 8

  42. Route-planning example:4-connected gridworld Example, Step 9

  43. Route-planning example:4-connected gridworld Example, Step 10

  44. Route-planning example:4-connected gridworld Example, Step 11

  45. Route-planning example:4-connected gridworld Example, Step 12

  46. Simulation Example D* Liteoperating in a 4-Connected Gridworld • demonstration of the use of the km variable

  47. Route-planning example #2:4-connected gridworld Example, Step 1

More Related