CSCE 452/752 Robotics and Spatial Intelligence, Spring 2024

8. Navigation: Visibility graphs

Introduction

Definition
A visibility graph can be used to compute shortest paths among known polygonal planar obstacles.

Problem

Given:
Compute:

Intuition

Imagine a candidate path as a piece of string connecting the start and goal points. Make that path smaller and smaller by tightening the string.
What kinds of paths can we get?

Visibility graph definition

Definition
The visibility graph is a weighted graph that includes all paths consisting of line segments between obstacle vertices, the start position, or the goal position.
Nodes:
Edges:

Visibility graph example

After computing the visibility graph, plan a path using your favorite path-finding algorithm for graphs.
Some common mistakes:
  • Leaving out edges between adjacent vertices, i.e. along the obstacle boundaries.
  • Leaving out edges between non-adjacent vertices on the same obstacle.

Comment 1: Some edges can be eliminated

Consider an edge in the visibility graph between obstacle vertices. The result is called a reduced visibility graph.
To determine if an edge can be removed, imagine that it extends just a little further in each direction. If that extension goes into an obstacle, then the edge is not part of the reduced visibility graph.

Comment 2: Shortest vs. Safest paths

The paths generated by this method are, by construction, very unsafe. Be careful what you ask for!
visibility graph Voronoi graph