The greatest improvement in the operator performance comes when full
information (the bird's-eye view) about C-space is available (on the
issue of operating with uncertainty, see the discussion in Section
5.2). We thus need to compute and display all the virtual
obstacles. An intuitive approach proposed in [8] is to treat each
link separately. First, link l2 is ignored, and all free space points
for the whole range of values
are computed. Points of the arm
contact with physical (W-space) obstacles are recorded and become
part of the corresponding virtual obstacle. Then, for each value of
within its appropriately digitized range, free space points
for the whole range of values
are computed in the same fashion,
by rotating link l2 around positions of joint 2 determined by the
current value
. Depending on the representation chosen for the
virtual obstacles, their ``insides'' may have to be filled using a
polygon-filling algorithm.
For the two-dimensional problem in question, C-obstacle calculation can be greatly simplified by tracing the obstacle boundaries with arm links and thus immediately creating their C-space images. Note that two or more W-space obstacles can produce a single virtual obstacle; that is, for the purposes of motion control, they would indeed be one obstacle. Our simulation uses an efficient variation of this procedure [7], which makes use of the Bug1 [6] algorithm.
In brief, procedure Bug1 operates as follows: the point robot starts moving along the straight line towards target point T. If it encounters an obstacle, a hit point H is defined at the encounter location, and the robot turns and moves in a prespecified direction (say, left) along the obstacle boundary. Once the obstacle is circled, and H is once again encountered, a leave point L is defined on the obstacle, which is the point closest to T. The robot then takes the shortest path to L and then proceeds to T in straight-line fashion, repeating the procedure whenever an obstacle is encountered. The procedure converges to T or informs that this is impossible if true. The algorithm's computational complexity is linear in the perimeters of the W-obstacles.
Figure 5 gives the C-space representation of W-space of Figure
3. Angle
is along the horizontal axis,
-
along the vertical axis. The range of change of each angle is
, making
C-space a square. The dark areas represent the virtual obstacles.
The C-space correspondence to a two-torus means in that all four
corners of the square are identified (i.e. correspond to the same
point). Similarly, the top and bottom edges of the square are
identified, and so are the left and right edges. Given this last
fact, note that the C-space in Figure 5 contains only
one virtual obstacle which corresponds to four physical obstacles in W-space,
Figure 3. Point T is chosen as the corner point of the C-space
square; in principle, therefore, one's moving from point S to any
corner will produce a legitimate (if not necessarily the shortest)
path for the arm in W-space.
Figure: The sample task of Fig. 3; C-space representation.