algorithm:
1. drive straight towards goal, stop if the goal is reached
2. stop when an obstacle is encountered and mark that location the *hit point*
3. turn left or right and follow the obstacle boundary
4. compute distance to goal at all points while traversing boundary,
record point with minimum distance as *leave point*
5. continue following boundary until hit point is re-encountered
6. return (again, either clockwise or counterclockwise) to leave point
7. if driving towards goal would lead to immediate collision with obstacle, abort
8. goto 1
algorithm:
1. mark the *M line* directly connecting the start and goal points
2. drive straight towards the goal, stop if the goal is reached
3. stop when an obstacle is encountered and mark that location the *hit point*
4. turn left or right and follow the boundary until a *leave point*
on the M line is reached that is closer to the goal than the hit point
5. if the most recent hit point is reached again without finding a new leave point, abort
6. goto 2
here turning left or right may make a difference in terms of total path length; without global information it is not possible to always make an optimal choice, but heruistics could be applied (e.g. choose direction that points closest towards goal)
algorithm:
1. drive straight towards goal, stop if the goal is reached
2. stop when an obstacle is encountered and mark that location the *hit point*;
also mark a (modified from Bug2) *M line* from the hit point to the goal
3. turn left or right and follow the boundary, keeping track of the *closest point*
to the goal so far along this obstacle, until a *leave point* is reached
where any of the following hold (check them in order)
a. the goal is visible (i.e. the free space distance towards the goal
is at least as large as the total distance to the goal)
b. the total distance to the goal minus the free space towards the goal is
less than or equal to the distance from the closest point to the goal
so far along this obstacle minus a minimum step distance; i.e.
if the robot were to leave from this point, it could get at least
the minimum step distance to the goal, and it could also get at least
as close to the goal as it would if it had left from any point yet
encountered on this obstacle
c. a point on the M line is reached that is closer to the goal than the hit point
4. goto 1
the third leave condition ensures completeness in case neither of the first two leave conditions ever triggers