Maintaining Visibility with Viewing Angle Constraints
Mike Lin
Project Description
This project was inspired by the Stanford Instructional Television Network,
and by one speaker in particular who wandered all over the classroom,
especially to places where the cameras could not seem him well. In such a
situation, it could be helpful to have an additional mobile camera, perhaps
mounted on a robot that could roam up and down the aisles.
This project simulates such a scenario, where the path of the target is
completely known, and where there are visibility obstacles (e.g. pillars)
as well as mobility obstacles (e.g. desks and chairs), with the additional
constraint that the target must be viewed from a given range of angles
relative to the target (e.g. one wants to see its front, not its behind.)
Problem Specification
Input:
- Description of the workspace: polygonal visibility and mobility
obstacles, and the position of any static cameras. Limitations on
the static cameras' fields of view can be simulated by the strategic
placement of additional visibility obstacles.
- Path of the target: position and allowable viewing angles at discrete
time steps.
- Initial position of the mobile camera.
Output:
- Path of the mobile camera that will maintain visibility of the
target, if such a path exists, while minimizing camera motion
(assuming the camera always points toward the target).
Algorithm
- For each time step, determine the region of acceptable robot positions:
- Calculate the visibility polygon for the target. This is
accomplished by sweeping a ray (centered at the target) around
the environment, while maintaining a list of all line segments
that intersect that ray. Whenever the nearest line segment
changes, a new vertex is added to the visibility polygon.
- Determine whether a static camera lies within that polygon.
- If so, then the robot can be anywhere not occupied by an obstacle;
otherwise, the robot must be within the visibility polygon.
- Scan-convert each of these (polygonal) regions, and stack the results
into a 3-D C-space bitmap.
- Find an optimal path through C_free via a heuristic graph search,
where the start point is as given, the end point is any position in
the last time step, and the cost of a path is proportional to its
average squared velocity.
Sample Results
In these simulations, path planning was done at a spatial resolution of
about 100 points square, and a time resolution of one frame per frame.
Color Code
| gray | visibility obstacles |
| green | mobility obstacles |
| magenta | target path |
| yellow | static camera |
| blue | mobile camera |
| red | target visibility region |
Comments
In the present incarnation, almost all of the execution time is spent in
the graph search of the discretized free space. Even with a much better
implementation, this would most likely still be true as long as it is a
bitmap that is being searched. Although bitmaps are very general, and
could represent a much more complex environment, given the restriction
that obstacles are polygonal, it seems that there would be a smarter
approach to finding a path.
michelin@cs.stanford.edu
Last modified: Sat Mar 22 19:58:00 PST 1997