Localization Navigation II Topological Representations What makes a

  • Slides: 48
Download presentation
Localization & Navigation II

Localization & Navigation II

Topological Representations: What makes a good landmark? • Perceivable from many different viewpoints •

Topological Representations: What makes a good landmark? • Perceivable from many different viewpoints • Persistence • Distinct features – Readily recognizable • Unique features – Avoid sensor aliasing

What would make good landmarks in the EB?

What would make good landmarks in the EB?

Navigation with a Relational Graph • Graph representation: G = (V, E) – Landmarks

Navigation with a Relational Graph • Graph representation: G = (V, E) – Landmarks and paths connecting – DAG – Paths can contain additional information • Pathing – Graph search – Shortest Path Algorithm • Dijkstra’s Shortest Path

Example: Distinctive Places

Example: Distinctive Places

Distinctive Places

Distinctive Places

Distinctive Places Hill-Climbing Algorithm to get position at the landmark

Distinctive Places Hill-Climbing Algorithm to get position at the landmark

Triangulation • A single landmark can be used as a beacon • Given 2

Triangulation • A single landmark can be used as a beacon • Given 2 landmarks the robot’s pose can be constrained on the arc of a circle • Given 3 landmarks the robot’s pose can be determined to a point

Metric Representations • Coordinate system representation • Path is decomposed into waypoints – As

Metric Representations • Coordinate system representation • Path is decomposed into waypoints – As opposed to landmarks • Path planning is usually based on some measure of optimal or best path – Graph search or graph coloring methods

World Representations

World Representations

Meadow Map • Extend boundaries to accommodate size of robot • Divide free space

Meadow Map • Extend boundaries to accommodate size of robot • Divide free space into convex polygons – Connecting corners • Create waypoints by determining the midpoints of lines that border two polygons • Use graph search method for path planning

Meadow Map What problems would the robot encounter using a Meadow Map? Are there

Meadow Map What problems would the robot encounter using a Meadow Map? Are there other problems with using a Meadow Map?

Voronoi Graph • A Voronoi Graph is formed by paths equidistant from the two

Voronoi Graph • A Voronoi Graph is formed by paths equidistant from the two closest objects • This generates a very safe roadmap which avoids obstacles as much as possible

Voronoi Graph • Use a graph search method for path planning • Advantages and

Voronoi Graph • Use a graph search method for path planning • Advantages and Disadvantages?

Regular Grid • Subdivide space into same size grid spaces • Use center of

Regular Grid • Subdivide space into same size grid spaces • Use center of square or vertices as waypoints • Considered as 4 connected or 8 connected

Regular Grid • Advantages & Disadvantages?

Regular Grid • Advantages & Disadvantages?

Quadtree Representation • Recursively divides a square into four smaller squares until each square

Quadtree Representation • Recursively divides a square into four smaller squares until each square is either filled with free space or non-free space • Center of squares are used as waypoints

Wave Front Planners • Graph Coloring Algorithm • From the goal destination “color” each

Wave Front Planners • Graph Coloring Algorithm • From the goal destination “color” each bordering region with a value indicating its proximity, continue from each region until the start region is colored. • Follow the gradient toward the goal

Wave Front Planner • World Representation – You could always use a large region

Wave Front Planner • World Representation – You could always use a large region and distances – However, a grid can be used for simplicity

Wave Front Planner: Connectivity • 8 -Point Connectivity • 4 -Point Connectivity

Wave Front Planner: Connectivity • 8 -Point Connectivity • 4 -Point Connectivity

The Wavefront Planner: Setup

The Wavefront Planner: Setup

The Wavefront in Action (Part 1) • Starting with the goal, set all adjacent

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?

The Wavefront in Action (Part 2) • Now repeat with the modified cells –

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 3) • Repeat again. . .

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

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

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

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

The Wavefront in Action (Done) • You’re done – Remember, 0’s should only remain

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 always move toward a

The Wavefront, Now What? • To find the shortest path 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

Can difficult terrain be modeled?

Can difficult terrain be modeled?

Graph Search • The activity of looking for a sequence of actions that solves

Graph Search • The activity of looking for a sequence of actions that solves (achieves) the goal (goal state) • Plan: sequence of actions to achieve a goal • State-Space Search – Initial State – Set of Actions – Goal Test • Search Tree: root is the initial state, each successive level is a state expanded from its parent by the application of a valid action

8 -Tile Puzzle

8 -Tile Puzzle

Search Strategy: choosing which state to expand next.

Search Strategy: choosing which state to expand next.

Search Strategies • Uninformed or blind searches – Breadth First Search, Depth First Search

Search Strategies • Uninformed or blind searches – Breadth First Search, Depth First Search Systematic, exhaustive search

Heuristic Search • Heuristic – “Rule of thumb” – a way to measure good

Heuristic Search • Heuristic – “Rule of thumb” – a way to measure good a state is to get to your goal • Examples – Parking: what would be a good heuristic to find your car?

Search Strategies • Informed or heuristic searches – Use domain knowledge to determine which

Search Strategies • Informed or heuristic searches – Use domain knowledge to determine which state looks most promising to expand next • Heuristic Function h(n) = estimate of the path cost from state n to the goal h(n) = 0 if and only if n is a goal state

Informed Search Strategies Best First or Greedy Search: Expand the state that is estimated

Informed Search Strategies Best First or Greedy Search: Expand the state that is estimated to be closest to the goal

Informed Search Strategies Branch & Bound: Expand the state that is estimated to be

Informed Search Strategies Branch & Bound: Expand the state that is estimated to be closest to the goal f(n) = g(n) + h(n) g(n) = actual cost of path going through state n f(n) is estimated cost of the cheapest solution that goes through state n

Branch & Bound f(n) = g(n) + h(n)

Branch & Bound f(n) = g(n) + h(n)

A* Search • Admissible Heuristic: Always underestimates the actual cost of the path •

A* Search • Admissible Heuristic: Always underestimates the actual cost of the path • A* search is Branch & Bound with an admissible heuristic • Why is it important for h(n) to “underestimate” the actual cost?

Search Space Comparison • Breadth First Search Space • Shaded region is A* Search

Search Space Comparison • Breadth First Search Space • Shaded region is A* Search Space • The better h(n) estimates the actual cost, the smaller the search space • A* and it variations used mostly for navigation

Search: A* • f(n) = g(n) + h(n) – g(n) Cost of going from

Search: A* • f(n) = g(n) + h(n) – g(n) Cost of going from the starting state to state n – h(n) heuristic estimate of the cost of going from state n to the goal state • Guaranteed to find a solution if one exists • Will find the optimal solution

Admissible Heuristics for Pathing Straight Line Distance h(A) = sqrt((A. x-goal. x)^2 + (A.

Admissible Heuristics for Pathing Straight Line Distance h(A) = sqrt((A. x-goal. x)^2 + (A. y-goal. y)^2) Manhattan Distance h(A) = (abs(A. x-goal. x) + abs(A. y-goal. y)) Diagonal Distance h(A) = max(abs(A. x-goal. x), abs(A. y-goal. y)) Use a weighting factor to estimate the cost of traversing difficult terrain.

A* Primer Create a node containing the goal state node_goal Create a node containing

A* Primer Create a node containing the goal state node_goal Create a node containing the start state node_start Put node_start on the open list While the OPEN list is not empty { Get the node off the open list with the lowest f-value and call it node_current If node_current is the same state as node_goal we have found the solution; return solution Generate each state node_successor that can come after node_current For each node_successor of node_current { Set the cost of this node to be the cost of node_current plus the cost to get to node_successor If this node is on the OPEN list but the existing one is better then discard this successor; break If this node is on the CLOSED list but the existing one is better then discard this successor; break Remove occurrences of this state from OPEN and CLOSED Set the parent of node_successor to node_current Set h-value to be the estimated distance to node_goal Add this node to the OPEN list by f-value } Return failure Do you have to have an OPEN and CLOSED list?

A* Example: European Vacation

A* Example: European Vacation

On the Road to Bucharest A* Pathing: Arad to Bucharest

On the Road to Bucharest A* Pathing: Arad to Bucharest

Optimal (Shortest) Path • A* chooses which location to expand based on the value

Optimal (Shortest) Path • A* chooses which location to expand based on the value f(n) = g(n) + h(n) • If h(n) is admissible, A* will generate all paths that underestimate the actual path cost, thereby guaranteeing that the solution path found is the optimal one.

Additional Points • Cost of Travel – Additional costs associated with path or region.

Additional Points • Cost of Travel – Additional costs associated with path or region. – Terrain – Uphill & down hill costs • An efficient data structure is important for storing the Open and Close lists. – Suggestions? • Variations A* Demo – IDA* (Iterative Deepening) – Bi-directional – D* (Dynamic Planning) – Hierarchical A*

Obstacles • What should the robot do if it cannot complete the plan? •

Obstacles • What should the robot do if it cannot complete the plan? • Alternatives – D* – Dijkstra’s Shortest Path Algorithm