Motion Planning: Algorithms and Applications

Final Project:  CS 576 Spring 1999

Sridharan Thyagarajan

Maintaining Visibility of a Moving Target




Project Description:
    Many real life applications involve robots maintaining visibility of moving targets ,like Autonomous security guard , Robots supervising a plant site  or guiding other robots etc. In all these applications the robot has sensory equipment's like camera, sonar beams, laser beams which help in finding out the position of the target. The main aim of the robot is not to loose track of the moving target as the target moves in the environment.

Problem Formulation:
    The Environment in which the robot is going to navigate is known and is stored in the from of a 2D map. There are two kinds of problems in maintaining visibility of the target, one in which the path of the target is known and the other in which the path of the target is partially predictable. The former problem can be solved using Dynamic programming ( more Details) . The part of tracking non predictable targets can also be done using Dynamic programming but the space & time complexity is high for higher dimensional problem. To solve this problem [1] heuristics have been developed using probability models, this project is an extension of the heuristic methods developed for maintaining visibility and is described below

    The robot has a camera mounted on it with a specified cone of vision. The robot has to move in such a way that the target lies in the viewing cone and also the minimum time to escape should be maximized. The robot has region of the environment which is visible to it and its called the visibility polygon. The time for the target to escape from the vision of the robot is the time it takes to run away through the closest segment of the visibility polygon.

Partially Predictive Targets:
    There is little knowledge about the type of actions  the target would take and the robot has to move into a configurations such that the minimum time to escape is maximized. The target and robot can move in any direction and it's assumed that the robot is faster than the target if not the target can escape easily. These below sections describe the various algorithmic components and definitions that are used to develop the algorithm for maintaining the visibility of the target.

    Visible Gaps:
        On analyzing the visibility polygon , the segments of the visibility polygon through which the robot can escape can be further filtered into segments called Visible Gaps.
 


Violet Arrow : Gaps, Blue Arrow : Obstacle Edges, Yellow region - Visibility Polygon
Red Circle - Robot

    Notice in the figure that the visibility polygon is made of segments that are the edges of the obstacle and segments which are not part of obstacles. These segments are precisely the Visible Gaps. These Visible Gaps are of interest as you can see in the figure these are the edges through which a target could possibly escape ( Assuming that Targets  cant go throurh obstacles ).
 

    Gap Algorithm( config robotConfig, Map of the Environment) :
           Find the visibility polygon at the robots config
            Sort it radially if needed
            For each adjacent segments of the visibility polygon if there is gap / distance between the end points
            then this gap is added to the list of visible gaps

    There is a minor problem in the above algorithm which would flare up in calculation of the minimum time to escape. The above algorithm gives the Gaps which are not visible to the Target, which means that if the target cant see that gap it can escape through it. So the calculation of the shortest distance to this segment by using projections would mislead the robots understanding of the targets time to escape.
One way to over come this is instead of directly using the Map the below modification can be done
which removes the edges which are not visible to the target

 VisibleGapAlgorithm( Robot Configuration, Target configuration Map of the Environment) :

           Find the visibility polygon  Vt at the Targets configuration
           Find the visibility polygon at the robots configuration with Vt as the input
            Sort it radially if needed
            For each adjacent segments of the visibility polygon if there is gap / distance between the end points
            then this gap is added to the list of visible gaps

The other way is that for those edges which are not visible compute the distance along the obstacles which leads to the gap( like the bugs algorithm) . The former algorithm would be a better method in most cases as the other one takes up more time which may be critical in real-time applications.

    Minimum Escape Time or Distance:
        Given the targets position and the visible gaps its the minimum of the shortest distances to the gaps. This distance divided by the velocity of the target is the minimum escape time and the distance is the minimum escape distance
 

    Target Tracker:
        Heuristic algorithm that maintains visibility of the target based on maximizing the minimum time to escape.
       For a given robot configuration A(ti) and target position T(ti), where ti belongs to discrete time intervals we need to find the neighboring configurations to which the robot has to move next at time ti+1 in order to maximize the minimum time to escape or the current configuration may be the best.

    There can be many heuristic for this and here is one which works fine
        For as many trials as you need
            Pick neighboring configurations for the robot from its current configuration in a random manner or uniformly around a small circle about the robots center.
            If the Target is visible in the configuration
                    Find its minimum escape time

       Out of these configurations choose the one which has the Maximum Minimum Time to Escape
       Set this configuration to the robot
 

Conclusions:
    The algorithm worked well for different environments . It was found that keeping a smaller  range for the visibility cone performed better than for a one which had a larger cone for the following reason.
     If the Visibility polygon is large then the robot lets the target be at a longer distance form its center, but when an static obstacle comes in suddenly  into the visibility polygon ( as the robot moves )it produces Gaps which may cause a sudden change in the minimum escape time of the target , there by making the robot cover a large distance in a short time. The other case would be that a obstacle just outside the visibility polygon is a good place for the target to escape as robot is not aware of a possible gap. This can be avoided by keeping the maximum distance between the target and robot to be proportional to the velocity of the robot and target or gaps are calculated for an infinite range. Basically there needs to be a trade of between the two based on performance and accuracy .
 

Reference
[1] Motion Strategies for Maintaining Visibility of a Moving Target by Steven M. LaValle, Héctor H. González-Baños, Craig Becker, and Jean-Claude Latombe. In Proc. 1997 IEEE International Conference on Robotics and Automation.

[2] J.O'Rourke. Art Gallery Theorems and Applications. Oxford University Press, New York, NY, 1987

Computed Examples:
    Movie1.html
    Movie2.html
    Movie3.html

Source Code:
Main Program
Abstract Camera
Derived Cone Camera
Configuration
Taget Tracker - Header
Target Tracker- Definition
Motion Manager
Robot Class
Visibility Related Function
Data File:
Specifies all the Data files
Robot's Data
U shaped Obstacle
Many Blocks
Blocks