Planning to find an unpredictable evader

The goal is to develop a planner uses visibility to search for a find an "evader" that moves arbitrarily fast among polygonal obstacles. The input is: i) a polygonal description of the environment; ii) an initial position of a point robot (a.k.a. the "pursuer"). The output is a continuous collision-free path that explores the environment in a way that guarantees that the evader will eventually be seen by the pursuer, regardless of the evader's efforts.

The project is organized into 4 steps:
  1. Generate a roadmap based on edge visibility: Write a program decomposes a polygonal environment into convex cells that maintain constant edge visibility (i.e., the set of edges that are visible from from any point in the interior of the cell remain unchanged). Form a roadmap by connecting cell centers of adjacent cells using line segments. The decomposition is described in the paper below.
  2. Generate a visibility polygon: From any point, (x,y), in the environment, the set of all points visible to (x,y) form a polygon, called the visibility polygon. Write a program that computes the visibility polygon for any point (hint: perform a radial sweep).
  3. Generate and search an information-state graph: Write a program that generates a graph from the edge-visibility roadmap that maintains the correct information states (identifying which portions of the environment have been "cleared" and which remain "contaminated"). Use dynamic programming to search the resulting graph for a solution.
  4. Coordinate multiple pursuers: Many environments cannot be successfully searched by a single pursuer. Extend the planner from the previous step by allowing a pursuer to search part of the environment and remain fixed, while another pursuer searches the remaining portion of the environment.

Related paper: A Visibility-Based Pursuit-Evasion Problem by Leonidas J. Guibas, Jean-Claude Latombe, Steven M. LaValle, David Lin and Rajeev Motwani. [Postscript version]