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