Academia.eduAcademia.edu

Online sub-optimal obstacle avoidance

2003

This paper presents an on-line planner for sub-optimal obstacle avoidance. It generates near-shortest paths incrementally by avoiding obstacles optimally one at a time. In known environments, obstacles are avoided in an order determined by a global criterion. In unknown environments, obstacles are avoided as they are detected by on-board sensors. This avoidance strategy is guaranteed to reach the goal regardless of the order in which the obstacles are avoided. The method is demonstrated in several examples for an omnidirectional point robot moving amongst planar polygonal obstacles.

Submitted to International Journal of Robotics Research, December 1999. Revised November 1, 1999. On-Line Sub-Optimal Obstacle Avoidance Zvi Shiller Mechanical and Aerospace Engineering University of California Los Angeles, CA 90095 Abstract This paper presents an on-line planner for sub-optimal obstacle avoidance. It generates near-shortest paths incrementally by avoiding obstacles optimally one at a time. In known environments, obstacles are avoided in an order determined by a global criterion. In unknown environments, obstacles are avoided as they are detected by on-board sensors. This avoidance strategy is guaranteed to reach the goal regardless of the order in which the obstacles are avoided. The method is demonstrated in several examples for an omnidirectional point robot moving amongst planar polygonal obstacles. 1 1 Introduction This paper presents an on-line planner for known and unknown environments. We consider an on-line planner any planner that generates the path incrementally, in contrast to o -line planners, which compute the entire path before the robot makes its rst move. On-line, is thus associated with incremental, rather than with local sensors. Current approaches to on-line obstacle avoidance for known environments include potential eld methods [6, 9, 10, 11, 12, 16, 20], and for unknown environments, a number of sensor-based planners [14], and on-line adaptations of classical o -line methods [4, 17, 8]. The potential eld approach, rst proposed in [9], generates paths by following the negative gradient of a potential function, which consists of an attractive potential at the goal, and repulsive potentials at the obstacles. While this approach is computationally ecient and is suitable for online feedback control, it su ers from local minima, which may cause the path to terminate at a point other than the goal. This problem was overcome using harmonic potentials [6] and navigation functions [16]. Harmonic potentials attain their extremal values on the boundary of their domain [5]. Since the superposition of harmonic potentials is also harmonic, obstacles represented by harmonic potentials do not induce local minima. The navigation function consists of asymptotically decaying functions that are tuned to avoid local minima. Both functions are computationally too expensive for on-line planning, particularly in environments with a large number of obstacles, and none attempts to generate the shortest path. A similar approach was used to compute shortest paths by following the negative gradient of the distance function (the shortest distance to the goal) [7, 2]. The computation of the distance function requires solving the shortest path problem (or some approximation of it) at each point, which is computationally expensive for all but a small number of obstacles. Sensor-based planners assume unknown environments, which are uncovered locally using on-board sensors [14]. The traditional assumption of local sensors led to the development of "bug" algorithms that avoid obstacles by following their boundaries at close range. Naturally, such planners are concerned with global convergence, and not much with path optimality. On-line adaptations of classical o -line planners include local roadmaps [4], incremental cell-decomposition [17], and the \tangent bug" algorithm [8]. Since the objectives of these planners di er from each other (the roadmap attempts to maximize distance to obstacles, whereas the tangent-bug attempts to nd the shortest path), they are dicult to compare. This paper presents a di erent approach to on-line obstacle avoidance, which is applicable to known and unknown environments, and is extendable to arbitrary cost functions. Note that we do not associate on-line with unknown environments, nor with sensor-based planning, since even in fully known envi2 ronments, it may be necessary to plan motions on the y (on-line) due to the high computational complexity of the o -line solution, or due to changes in the environment. Associating on-line with incremental, rather than with sensorbased, seems more general and applicable to a wider range of applications. This approach was motivated by optimal control theory, which states that the global optimal solution to any dynamic optimization follows the negative gradient of the so called return function. The return function is the cost-to-go to the goal from any feasible state, and is a solution of the Hamilton-JacobiBellman (HJB) equation [3]. The computation of the return function for optimally avoiding a single obstacle, using any cost function, is relatively simple, but the optimal avoidance of multiple obstacles is another matter. One measure of this computational diculty is the number of potential local minima, which grows exponentially with the number of obstacles (2n for planar obstacles). Even simple problems, such as the shortest path problem, are at best polynomial in the number of obstacles [21], which is computationally quite extensive when considering a large number of obstacles. To overcome this inherent diculty, we propose to approximate the solution, or equivalently, to approximate the return function, of the multi-obstacle problem by avoiding obstacles optimally one at a time. This was motivated by the observation that the e ect of an obstacle on the return function is local, i.e., the di erence between the shortest path that avoids the obstacle (the constrained solution) and the straight line to the goal (the unconstrained solution) diminishes with the distance of the initial point from the obstacle [19]. Therefore, a given obstacle can be practically ignored at points not in its immediate vicinity. Avoiding obstacles one at a time thus approximates the original continuous return function by a piecewise continuous function that switches between the return functions of the individual obstacles. The closer the approximation to the true return function, the closer the path to the global optimal. This avoidance strategy reduces the original problem of optimally avoiding m obstacles to m simpler problems of optimally avoiding one obstacle each. On average, this translates to a decrease in computational complexity from polynomial, for the shortest path problem, to linear in the number of obstacles. This eciency makes this approach an attractive alternative to o -line planning. The freedom to avoid obstacles in the order of their detection makes it applicable to sensor-based planning, since obstacles can be avoided as they are detected by the on-board proximity sensors. The proposed planner has global convergence properties regardless of the order in which the obstacles are avoided, and of the sensor range, This approach resembles some properties of existing on-line planners. For example, following the gradient of the return function is similar to potential eld methods [6, 9, 11, 16], except that the return function yields the optimal path (following an approximated return function produces obviously a sub-optimal path). It is also similar to following the gradient of a distance function [7, 2], except that we limit the distance function to one obstacle, which is computa3 tionally cheaper. And the concept of avoiding one obstacle at a time is inherent to sensor-based planning [14, 8], except that our paths are generally shorter. We have previously used this approach to avoid circular obstacles, minimizing distance [19] and motion time [18]. In this paper we focus on minimizing distance in R2 , assuming an omnidirectional point robot and arbitrary planar obstacles, satisfying the following assumptions: Assumption 1: The free-space is connected (no obstacles with holes). Assumption 2: The boundary of each obstacle is a piecewise smooth closed curve. Assumption 3: The obstacles are non-intersecting and not overlapping with the goal. Any set of overlapping obstacles is represented by a single obstacle. Assumption 4: The number of obstacles is nite. We distinguish between obstacles that do not encircle the goals and those that do. Initially, we make the following assumption: Assumption 5: The goal lies out of the convex hull of the union of all obstacles. Satisfying Assumption 5 ensures no loops, as is later proven in Section 3. The paper is organized as follows. Section 2 presents the optimal avoidance of a single known obstacle. We refer the reader to [19] for a detailed discussion of the HJB equation, and the motivation for avoiding obstacles one at a time. Section 3 addresses the avoidance of multiple obstacles in known environments, subject to Assumption 5. This assumption is relaxed in Section 4. Section 5 addresses computational eciency as compared to o -line planning. Section 6 extends this approach to unknown environments. Examples that demonstrate the method for 18 polygonal obstacles are presented in Section 7. 2 Optimal Avoidance of One Obstacle We rst address the optimal avoidance of one known planar obstacle, under Assumptions 1-5. Consider for simplicity the convex obstacle, denoted OB in Figure 1. This obstacle a ects the shortest path only from points in a subset of the free-space, we call the obstacle shadow, shown grey in Figure 1. It coincides with the shadow created by OB and a point light source at o. To formalize the avoidance of a single obstacle, we rst de ne the obstacle shadow, and then de ne the exit point (point b in Figure 1). 4 Shadow x0 a OB b o Figure 1: Optimal avoidance of one obstacle 2.1 The Obstacle Shadow To de ne the obstacle shadow, we use elementary Topology and Join1 Geometries [15]. A few de nitions are in order. De nition 1 [15]: a=b denotes a ray, consisting of the half line, originating at a opposite to point b. De nition 2: A=b denotes the union of all rays generated by the set A and element b: A=b = [(a=b); a 2 A: If b is a point, then A=b is a cone. (1) The obstacle shadow is generated by sweeping a ray along @OB , the boundary of OB , as shown in Figure 2, then subtracting OB from the swept cone. This leads to the following de nition: De nition 3: The SOB=o , is de ned as: shadow of obstacle OB with respect to goal o, denoted SOB=o = @OB=o ? OB: where @OB denotes the boundary of OB . (2) If OB is convex, then SOB=o consists of one connected set. Otherwise, SOB=o may consist of multiple disconnected subsets, as shown in Figure 4. Note that 1 A join operation between two elements 2 assigns to each ordered pair ( ) a uniquely determined subset of . In Euclidean geometry, the join operation between two points ( ) is the open segment with end points and . a; b J a; b J a; b a 5 b A/b A b Figure 2: A cone generated by a ray from b. Shadow ∂OB/o OB OB ∂OB o o Figure 3: Generating the obstacle shadow each subset is bounded by at least one ray of the cone @OB=o that is locally tangent to @OB . We call a primary shadow the subset of SOB=o that is bounded by the two extreme rays of @OB=o. The other subsets of SOB=o are secondary shadows, and are bounded each by one tangent ray that is interior to @OB=o. A formal de nition of a primary shadow is given later (De nition 9) after de ning exit points. 2.2 The Exit Point The tangency points between the extreme rays of each shadow and the obstacle boundary are exit points, since any shortest path originating in the shadow must pass through one of the exit points, from which it follows the straight line to the goal o, as later stated in Proposition 1. A primary shadow has two exit points 6 Primary shadow OB b a c Secondary shadows e d in o Figure 4: The shadows of a concave obstacle (a and b in Figure 4), whereas a secondary shadow has only one (points c, d, and e). To formally de ne an exist point, we need the following de nitions: De nition 4 [15]: p is an extreme point of A if p is never contained in the join2 of two distinct points of A. De nition 5 [15]: R is an extreme ray of cone K if for x; y  K , R  (x; y) implies R  x; y: (3) The notation A  B means that A intersects B , or A and B have a common element. De nition 6: p 2 @OB is an exit point of shadow Si  SOB=o if p 2 R, R is an extreme ray of Si , (p; o) \ OB =6 0, and (p; o) < (x; o); x 2 R \ @OB . We observe that the exit points of the primary shadow subdivide @OB into two subsets. We call one upper boundary, denoted @U , and the other lower boundary, denoted @L. To de ne the upper and lower boundaries, we recall the de nition of a limit point [1]: De nition 7: p is a limit point of A if every neighborhood of p contains at least one point of A ? p. Such point may or may not be in A. 2 A join operation between two elements 2 assigns to each ordered pair ( ) a uniquely determined subset of . In Euclidean geometry, the join operation between two points ( ) is the open segment with end points and [15]. a; b J a; b J a; b a 7 b De nition 8: Let p; q 2 @ OB be the two exit points generated by the extreme rays (De nition 5) of . Then, the upper boundary, join ( ) 2 , of which every point is a limit point of boundary,  , is the complement of : OB=o p; q @ OB @L @ OB @U  , is the . The lower @ OB SOB=o @U @L = @ OB ? (4) @ U: Note that must include points that are not limit points of OB=o , for otherwise, no point on the obstacle boundary would be visible from , a contradiction of Assumptions 2 and 3. @L S o De nition 9: A primary shadow is a connected subset of SOB=o , of which every point of @U is a limit point. 2.3 The Avoidance Strategy Using the de nition of the obstacle shadow and the properties of the exit points, we can state the following proposition: Proposition 1: The shortest path from any shadow must exit the shadow through one of its exit points, from which it follows the straight line to the goal without entering any of the other shadows. Proof: This follows from De nition 6 and from the observation that entering any shadow after exiting one shadow would deviate from the straight line to the goal, which by De nition 6 is obstacle-free. 2 x0 a b OB c in o Figure 5: The shortest path 8 Proposition 1 is demonstrated in Figure 5, where the shortest path from some point x0 in the primary shadow follows the boundary of the convex hull of OB until reaching the exit point of the primary shadow (point c), from which it follows the straight line to the goal o without entering another shadow. The avoidance of a single obstacle is summarized in the following Algorithm, under Assumptions 1-5 and the assumption that the geometry of the obstacle is known (unknown environments are treated later in Section 6): Algorithm 0: Optimal avoidance of a single obstacle Initialize: Set current point x = x0. Step 1: If the line (x; o) does not intersect OB, go to Step 3. Step 2: Compute the shortest path to o. If none, Stop, and declare "Target unreachable." Follow the shortest path until clearing OB (reaching the exit point q). Set x = q. Step 3: Move along (x; o) to o. STOP. 2 The calculation of the optimal path can be done using a tangent graph or any other ecient optimization. The choice of the exit point, when two exist, is determined by the shortest path. No solution may be found in Step 2, declaring the target "unreachable," if the free-space is not connected (violating Assumption 1), or the goal is inside the obstacle (violating Assumption 3). 3 Near-Optimal Avoidance of Multiple Obstacles Multiple obstacles can be avoided optimally on-line (in known environments) by solving the shortest path problem at the initial point, and re-solving it whenever obstacles appear or disappear. This can be eciently done using tangent graphs [13, 21], except that the tangent graph grows polynomially with the number of obstacles [21]. We circumvent this problem by avoiding obstacles optimally one at a time. In this Section, the avoidance strategy is subject to Assumptions 1-5, and assuming known environments. By considering only those obstacles whose shadows contain the current point, and among those selecting only one to avoid at one time, we e ectively reduce the problem of avoiding m obstacles to m simpler sub-problems of avoiding one obstacle each. This may compromise path optimality, at the gain of drastically reducing the average computational complexity to be linear in the number of obstacles. It is practical to assume that the optimal avoidance of a single obstacle is computationally negligible, and can be done in real-time. 9 The order in which the obstacles are avoided may a ect computational eciency and path optimality. It does not, however, a ect convergence to the goal for the shortest path problem3, as discussed later. We considered two criteria for selecting the current obstacle (the one to be avoided), one global and one local: 1) the maximum cost obstacle, i.e. the obstacle that maximizes the value of the return function (requires the longest shortest path) from the current point, x, and 2) the nearest obstacle. The former is a global criterion applicable to any cost function, and useful in known environments. The latter is a local criterion, and useful in unknown or partially known environments. In the case of convex obstacles, we observed that the paths generated using both criteria were close to optimal, whereas for concave obstacles, using the nearest obstacles resulted in signi cantly longer paths, as demonstrated later in this paper. 3.1 The Basic Algorithm We begin with the simplest basic algorithm, which is later used as a building block for more general cases. It applies to general known planar obstacles, under Assumptions 1-5, and the following Assumption, which makes this a basic algorithm: Assumption 6: The path generated between two subsequent obstacles is not blocked by another obstacle. In the following algorithm, we denote o the goal point, and qi the exit point used while avoiding OBi . Algorithm 1: The Basic Algorithm Initialize: x = x0. Step 1. Select the current obstacle, OBm , that intersects the shortest path from x to o. If none (m = 0), go to step 3. Step 2. Compute the shortest path to o. If none, Stop, and declare "Target unreachable." Follow the shortest path until clearing OBm (reaching the exit point qm ). Set x = qm , Go to step 1. Step 3. Move along (x; o) to o. STOP. 2 3 In this paper, we prove that selecting the obstacles in any order guarantees global convergence as long as each selected obstacle is avoided to its exit point. The exit point, as de ned earlier, is characteristic of the shortest path problem, and may not apply to other cost functions. To achieve global convergence for general cost functions, the obstacles must be selected by a global criterion [18]. 10 x OB 1 a b c OB 2 OB 3 in o Figure 6: Avoidance of multiple obstacles using the basic Algorithm This algorithm is demonstrated for the case shown in Figure 6. Here, OB1 is selected as the current obstacle at the initial point. The path is, therefore, generated by avoiding OB1 until reaching the exit point a, which is in the shadows of both OB2 and OB3 . From a, OB2 is selected as the current obstacle and is avoided until reaching the exit point c. From c, the shortest path is the straight line to the goal. In the context of optimal control, the path generated by the basic Algorithm switches (always at the exit points) from the return function of OB1 to the return function of OB2 , and nally to the unconstrained return function. Consequently, the path follows the negative gradient of what we call the pseudo return function [19], which is an approximation of the true return function for this problem. Although we cannot quantify this approximation, since it depends on the speci c shapes and locations of the obstacles, the paths generated using the maximum cost criterion were very close to the global optimal paths for convex [19] as well as for concave obstacles (see examples in this paper), suggesting a close approximation of the true return function. 3.2 Convergence of Algorithm 1 We now prove convergence of Algorithm 1 by proving that it cannot enter an in nite loop, which is the only condition that would preclude it from reaching the goal (under Assumptions 1-6). We rst prove convergence for one and then for two obstacles. Lemma 1: Let OB be an obstacle not overlapping with the goal o, S  SOB=o be a connected shadow (primary or secondary), and q 2 @OB be an exit point (right or left) of this shadow. The shortest path from any point x 2 S to o 6= x that 11 avoids cannot re-enter after passing through the exit point . OB S q Proof: Suppose the path from to does re-enter after passing through the exit point . By Proposition 1, it must then pass through again. But passing through twice creates a loop that is non-optimal, violating Step 2 of the algorithm. If this shadow has a second exit point, say point , then passing through implies that the path ? ? is shorter than the straight line ( ), a contradiction. x o S q q q p q 2 p p o q; o Lemma 2: Given two obstacles and goal 2 R2 ? C , satisfying assumptions 1 to 5, where R2 ? C is a connected free-space, Algorithm 1 avoids both obstacles in a nite number of steps from any point 2 R2 ? C . o x OB1 q1 z OB2 q 2 in Figure 7: Avoiding two obstacles Proof: Given two obstacles, 1 , 2 (see Figure 7), let 1  OB1 =o be the primary shadow of 1 . Also, assume, without loss of generality: OB OB S S OB a) 1 is avoided rst, starting from 2 1 , b) the shortest path passes through the left exit point, 1 2 c) ( 1 ) intersects 2 at 2 2 (the upper boundary of d) ( 1 ) \ 2 = 0. OB x S q q ;o q ;z OB z @U , ), @ OB1 OB2 OB For Algorithm 1 to enter an in nite loop, it is necessary that the exit point of the shadow containing 1 (the exit point of the rst obstacle) be in a previously visited shadow, or 2 2 1  OB1 =o . For 2 to be in 1 , it is necessary that 2 penetrates 1 through one of its extreme rays, without intersecting 1 . Treating the plane as a topological space with two holes ( 1 and ), there are only 6 homotopically di erent closed curves between q2 q q OB S S OB OB o 12 S q S ????? ?????? ????? ????? ?????? ????? ????? ?????? ????? ?????? ????? ????? ?????? ????? ????? ?????? ????? ????? ?????? ????? ?????? ????? ?????? ????? ?????? ?????? ??????? ?????? ??????? ??????? ?????? ??????? ??????? ?????? ??????? ??????? ?????? ??????? ??????? ?????? ??????? ??????? ?????? ??????? ?????? ??????? ?????? ??????? q2 q2 q2 OB 1 OB 1 q1 q1 q1 z z OB 1 z OB 2 OB 2 OB 2 o o o b a q2 c q2 q2 OB 1 OB 1 q1 z z OB 2 z OB 2 OB 2 o in OB 1 q1 q1 o o e d f Figure 8: Proof of Lemma 2 (= 2  3: 2 around 1 (+ ?) and 3 around (+ ? 0)4), all shown in Figure 8. Cases and violate Assumption 5; in cases and , 2 is not an exit point of the shadow containing 1 , since it does not belong to the tangent ray of the secondary shadow containing 1 ; and in cases and , 2 is not an exit point of the shadow containing 1 , in addition to violating Assumption 5 and the assumption that is the rst colliding point of the line 1 ? with 2. This proves that under the stated assumptions, no exit point of the shadow containing 1 can be in an already exited shadow of 1 . From Proposition 1, it follows that the shortest path cannot pass twice through the same exit point, which in turn implies that both obstacles are avoided in a nite number of steps. z 2 ( 1 ) and q ;o q2 OB a ; o d ; q e q q f ; b q c q z q o OB q OB 2 In proving Lemma 2, we considered a primary shadow for 1 . However, the same arguments hold for secondary shadows, and even more so, since penetrating a secondary shadow requires crossing only one tangent boundary by 2 instead of the two for the primary shadow. The exact shape of 1 is also unimportant since all we need is the two exit points and their tangents through . We also assumed that 1 is avoided through its left exit point. Exiting through the right makes no di erence, except to mirror the cases treated here. OB OB o OB OB 4 "+", "-", and "0" denote CCW, CW, and no circle around a hole, respectively. 13 Note that this proof applies only to re-entering the same shadow of 1 . It does not preclude entering another shadow of 1 after avoiding 2 , which implies a di erent exit point. Exiting from di erent exit points does not create a loop. We now extend Lemma 2 to three obstacles: OB OB OB Lemma 3: Given three obstacles and goal 2 R2 ? C , satisfying Assumptions 1 to 5, Algorithm 1 avoids these obstacles in a nite number of steps from any point 2 R2 ? C . o x q OB 1 1 OB 2 q 2 OB 3 q3 in Figure 9: Avoiding three obstacles Proof: Denote 1  OB1 =o 2  OB2 =o 3  OB3 =o as the shadows visited by the shortest path shown in Figure 9. By Lemma 2, 3 62 2 . It remains to prove that 3 62 1 . Assume, without loss of generality: a) The order of avoidance is rst 1 , starting from 2 1 , then 2 , and nally 3 , b) The shortest path passes through the exit point, 1 2 1, 2 2 2, 3 2 3, c) ( 1 2 ) \ 3 =6 0 (the shortest path from 1 to 2 does not intersect 3 ), d) ( 2 ) intersects 3 at 2 3 (the upper boundary of 3 ). Assume 3 2 1 . Excluding the closed curves between 2 3 and 3 2 1 S S ;S S ;S S q q S S OB x S OB OB q q @ OB q @ OB @ OB q ;q OB OB OB OB q ;o OB q z @U OB S z S q S that circle (since they violate Assumption 5), there are a total of only 22 = 4 homotopically di erent curves, all shown in Figure 10. Cases are similar to cases of the proof of Lemma 2, and are hence ruled out using similar arguments. In case , 3 is not an exit point of the shadow containing 2 and . o b; d b; e c q q 14 z ????? ??????? ????? ??????? ????? ??????? ????? ??????? ????? ??????? ?? ????? ??????? ?? ?? ????? ??????? ?? ?? ????? ??????? ?? ?? ?? ?? ????????? ?????? ????????? ?????? ????????? ?????? ????????? ?????? ????????? ?????? ?? ?? ????????? ?????? ?? ?? ?? ?? ????????? ?????? ?? ?? ?? ?? q3 q3 OB 1 OB 1 q OB 2 OB 2 q 2 z z a b q3 q3 2 OB 3 OB 3 q OB 1 OB 1 1 OB 2 q z 2 z OB 3 OB 3 in q OB 2 2 d c Figure 10: OB3 penetrating S1 . In case , 3 is a legitimate exit point of the shadow containing , but it violates assumption (a) above that 3 is avoided third. 2 a q z OB The following Theorem extends Lemma 3 to an arbitrary number of obstacles. Theorem 1: The paths generated by Algorithm 1 are guaranteed to terminate at the goal for all initial points x 2 R2 ? C , under Assumptions 1 to 6. Proof: By Lemma 3, Theorem 1 holds for the case of three obstacles. We now prove it for obstacles, by induction. Assume that Theorem 1 holds for ? 1 obstacles, or n 62 i = 2 ? 1. It remains to prove that n 62 1 , i.e., that no exit point of n can be in an already exited shadow of 1 . Denote i  OB =o = 1 as the shadows visited by the shortest path, n n q q S S ;i ;n OB OB S S i ;i ;n and assume, without loss of generality: a) The obstacles are avoided in the order of their index, i.e. rst 1 , then 2 , and nally n, b) The shortest path passes through the exit points, i 2 i =1 , c) ( k?1 k ) \ n =6 0, = 2 ? 1 (early segments of the shortest path do not intersect n ) OB OB OB q q ;q OB k ;n OB 15 @ OB ; i ;n d) ( ?1 ) intersects qn ;o OBn at 2 z @ Un (the upper boundary of OBn ). Assume 2 1 . Similarly to the proof of Lemma 3, there are only 22 = 4 new homotopically di erent closed curves introduced by adding , that do not encircle , all shown in Figure 11. The other closed curves between 2 and 2 1 either circle , thus violating Assumption 5, or they pass between previously avoided obstacles, thus violating the assumed order of avoidance (assumption ) and assumption . qn S OBn o qn z S Sn o a ????? ??????? ????? ??????? ????? ??????? ????? ??????? ????? ??????? ?? ????? ??????? ?? ?? ????? ??????? ?? ?? ????? ??????? ?? ?? ?? ?? ?????? ????????? ?????? ????????? ?????? ????????? ?????? ????????? ?????? ????????? ?? ?? ?????? ????????? ?? ?? ?????? ????????? ?? ?? ????????? ?? ?? ?? ?? c qn qn OB 1 OB 1 2 2 OB n-1 OB n-1 q n-1 n-1 OB n z OB n q q z a b qn qn OB 1 OB 1 1 2 2 OB n-1 q OB n-1 q n-1 z n-1 z OB n in OB n d c Figure 11: OBn penetrating S1 Cases are similar to cases of Lemma 3, and are hence ruled out using similar arguments. In case , is not an exit point of the shadow containing is avoided ?1 and , and case violates assumptions (a) and (c) that last. We thus proved that 62 = 1 ? 1, under the assumption that 62 = 2 ? 1. Demonstrating this result for = 3, extends it, by induction, to an arbitrary . That no shadow can be visited twice for any number of obstacles, implies that Algorithm 1 cannot enter an in nite loop. Convergence follows from Assumption 4 that the number of obstacles is nite. b; d b; e c qn z a OBn qn qn Si ; i qn Si ; i ;n ;n n n 2 In proving Theorem 1, we did not assume any speci c criterion for selecting the current obstacle. It therefore holds for any selection criterion, as long as each obstacle is avoided optimally, or until reaching an exit point, which, as 16 proven, is visited at most once. 3.3 Modi cations of the Basic Algorithm: Relaxing Assumption 6 The basic algorithm does not handle cases that violate Assumption 6, as shown in Figure 12, where OB3 intersects the shortest path that avoids OB2 . This situation can be easily handled by slightly modifying Algorithm 1 to either switch to the colliding obstacle as the current obstacle, or to recursively apply the basic algorithm to intermediate goals de ned along the original path. x x b a c in OB 1 a b OB 3 c OB 1 OB 3 OB 2 OB 2 o o Figure 12: Modi cations of the basic Algorithm. 3.3.1 Switch to the colliding obstacle Switching to OB3 as the current obstacle when a potential collision is detected, and then applying the basic algorithm to its exit point c, takes care of the problem. The switch to OB3 may be as early as at point a, the exit point of OB1 (on left Figure 12), or as late as at point b, the colliding point with OB3 (on right of Figure 12). The exact switching point may depend on the amount of known information about the obstacles, or the range of the on-board sensors. Once detected, the obstacle is avoided optimally until reaching an exit point. By Theorem 1, the path cannot return to the same exit point, and hence would 17 not enter an in nite loop. This assumes that the geometry of the obstacle is known. The treatment of unknown obstacles is discussed later in Section 5. x OB 1 a b c OB 3 OB 2 d in o Figure 13: De ning intermediate goals. 3.3.2 Intermediate Goals The other modi cation uses the basic algorithm to reach an intermediate goal, de ned along the original path avoiding OB2 , as shown in Figure 13. This point is selected as the exit point d of OB2 . If the new path intersects another obstacle, this process is then repeated recursively until an obstacle-free path is found. Convergence of this modi cation is ensured by virtue of Assumptions 3, 4 and Theorem 1. Assumptions 3,4 imply that the number of potential intermediate goals is nite since the obstacles are nite and not overlapping. This in turn implies that there exists at least one nonintersecting tangent between every obstacle and one other obstacle. An intermediate goal on this neighboring obstacle is therefore reachable by a basic path (generated by the basic Algorithm). Theorem 1 implies that no intermediate goal is visited more than once, which guarantees convergence. 4 General Environments: Relaxing Assumption 5 Obstacles that violate Assumption 5 may in rare cases cause Algorithm 1 to enter an in nite loop, as shown in Figure 14. Here, the obstacles were shaped so that the shortest path from the right exit point of each obstacle passes through the right exit point of the next obstacle, resulting in a (clockwise) loop. To break the loop, we modify Algorithm 1 as follows, assuming known obstacles, Assumptions 1-4, and the ability to recognize a previously visited point. 18 To detect a loop, we store the exit points visited along the path in a que, and compare each new exit point to those already in the que. When the path returns to an already visited exit point, the points down the que to the rst occurance of that point form a closed loop around the goal, as is discussed later in Section 4.2. The direction of this loop (CW or CCW) is determined by calculating the net angle gain of a ray from the goal, passing through all the exit points in the loop in the order they were deposited in the que. Determining the direction of the loop allows us to break the loop by avoiding all subsequent obstacles through the exit point opposite to the exit point associated with that loop. For example, a CW loop is associated with the right exit point. A CW loop is therefore broken by switching to the left exit points of all subsequent obstacles. For the case shown in Figure 14 a, a loop was detected when the path returned to point q. Since this was a CW loop, it is broken (in this case in one step) by avoiding the next obstacle through the left exit point, as shown in Figure 14 b. Switching to the opposite exit point ensures that the subsequent path is interior to the original loop, as discussed later in Section 4.2. The algorithm may enter another loop (opposite in direction to the original loop), in which case the exit point is reversed again. This strategy ensures that each loop is interior to the previous loop. The number of such loops may not exceed the number of obstacles since each loop encircles a subset of the obstacles encircled by the previous loop. x0 x0 p p q g0 g0 in q a b Figure 14: Avoiding Loops 19 4.1 The Algorithm In this algorithm we store the exit points, p, in an ordered list, Q, with elements Qi = p. In this algorithm, "to pop Q to element j " means to remove all elements Qi ; i > j , and to set the current x to the values in Qj . The variable direction stores the direction of the detected loop. Algorithm 2: Avoiding Loops Initialize: x = x0 ; i = 0; direction = 0. Step 1: Search Q for x. If none: (add the current point to Q): Set i = i + 1 (index for points in Q), Qi = x. Else: (detected a loop) Pop the list to Qj = x; j < i ( nd the element that contains the current point x). Determine the direction of the loop (using the points Qj to Qi ). Assign direction = CW, or CCW. Step 2: Select the current obstacle, OBm , from x to o. If none (m = 0), go to step 4. Step 3. (Avoid OBm ) If direction = 0, compute the shortest path that avoids OBm to o. Else, compute the shortest path that avoids OBm to o through the right exit point if direction = CCW , or the left exit point if direction = CW . If none, Stop, and declare "Target unreachable." Clear OBm (reach the exit point qm ). Set x = qm , Go to step 1. Step 4. Move along (x; o) to o. STOP. 2 Note that in the case of a loop, the shortest path in Step 3 is the shortest under the condition that it passes through a speci ed exit point. This potential increase in the path length is the price paid to ensure convergence. Also note that, similarly to Algorithm 1, the goal is "unreachable" if Assumptions 1 or 3 are violated. This should be easy to determine since we assume here known obstacles, or sensors of in nite range. 20 4.2 Convergence of Algorithm 2 To prove convergence of Algorithm 2, we rst prove that any close loop must encircle the goal, and then prove that such a loop is broken by reversing the direction of avoidance. Lemma 4: A loop created by Algorithm 2 must encircle the goal. Proof: Theorem 1 precludes loops that do not encircle the goal under Assump- tion 5. Theorem 1 applies also to general obstacles as long as their boundary segments in the loop do not encircle the goal. It follows that any closed loop produced by Algorithm 2 must encircle the goal. 2 We now show that any loop around the goal is broken by reversing the direction of avoidance. We need the following propositions. Proposition 2: The shortest path avoiding a given obstacle includes a portion of its upper boundary. Proof: This follows from Proposition 1 and De nition 6. The obstacle is avoided if the straight line from the current point to the goal intersects the obstacle at its upper boundary. If the exit point is not visible from the current point, then the path must follow some section of the upper boundary to reach it. If the exit point is visible from the current point, then the followed segment of the upper boundary reduces to a point. 2 Proposition 3: The angle from the ray z=o, z 2 @U , to the ray q =o (the ray passing through the right exit point, q ) is always negative (CCW being positive), and the angle from z=o to q =o (the left exit point, q ) is always positive. r r l l Proof: This follows from z=o being interior to the cone @U=o, and q , q being r extreme points of @U . 2 l Referring to Figure 14, we make the following observation: Observation 1: Avoiding obstacles through the right (left) exit point encircles the goal CW (CCW). Proposition 4: A closed loop around the goal, with no reversals (of exit points), contains all the obstacles it avoids. Proof: Assume a CW loop, which is a non-reversing loop (all obstacles are avoided through the same{right{exit point), and consider two obstacles, OB1 and OB2 , both part of the loop, as shown in Figure 15. By Observation 1, this 21 loop passes through the right exit point of both obstacles. If 1 is avoided rst and 2 is avoided second, then the right exit point, 1 , of 1 must be in the shadow of 2 , and the upper boundary of 2 must cross the extreme ray containing 1 at some point closer to the goal, or ( ) ( 1 ). Since by Assumption 3 the obstacles do not cross each other, it follows that the upper boundary of 2 is interior to the upper boundary of 1 between the extreme rays of 1 . Since the upper boundary of 2 left of 1 is interior (closer to the goal) to the upper boundary of 1 , and the upper boundary of 2 right of 1 forms a segment of the loop, it follows that 2 is contained by the CW loop. Extending these arguments to the rest of the obstacles implies that all obstacles avoided by a non-reversing loop are contained in that loop. 2 OB OB q OB q OB OB z z; o OB < q ;o OB OB OB q OB OB q OB OB 1 q1 z OB2 o in Figure 15: Proof of Proposition 4. Note that the arguments used in the proof of Proposition 4 apply only to primary shadows since they require that the obstacle penetrates one extreme ray and exits through the opposite exit point. A secondary shadow has only one extreme ray (and one exit point on that ray), and thus cannot be part of a non-reversing loop. The next Corollary follows from Proposition 4: Corollary 1: The left (right) exit point of every obstacle is internal to a CW (CCW) loop. Theorem 2: Algorithm 2 converges to the goal in nite time. Proof: To prove convergence of Algorithm 2, we need to show that it does not enter an in nite loop. If no loop is detected, then convergence follows from Assumption 4 that the number of obstacles is nite. 22 Consider, without loss of generality, a CW loop, detected in Step 1 after only one turn. Step 3 of Algorithm 2 then switches to the left exit point. If the loop is non-reversing (all obstacles are avoided through the right exit points), switching to the left exit point would bring the path inside the loop, since by Corollary 1 the left exit point is internal to a CW loop. Avoiding all subsequent obstacles through their left exit points would ensure that all new exit points are internal to the loop. In the worst case, Algorithm 2 runs into another loop after avoiding the rst loop. The new loop must be CCW and non-reversing (since all obstacles are now avoided through their left exit points). This loop is ensured to be internal to the original loop since the exit points it passes through and the segments of the upper boundaries are internal to the original loop. The exit points of the new loop are separated from the original loop by some minimum distance that is the sum of the minimum thickness and the minimum spacing between the obstacles. The CCW loop is broken by switching to the right exit point, which may result in a third loop (CW) that is internal to the second loop. The number of subsequent loops is bounded by the number of remaining obstacles to be avoided, which is decreasing with each loop. If the original loop is CW but it switches between right and left exit points, then switching to the left exit point may result in a path that partly coincides with the original loop. If this results in a CCW loop, then it must be nonreversing, since it avoids all obstacle through their left exit points. The CCW loop is then broken as discussed earlier. 2 Note that the selection of a speci c exit point after a loop has been detected may not yield the shortest path for each avoided obstacle. This potential increase in path length is necessary to ensure convergence. It is used only after a loop has been detected, and may not be needed for most practical environments. 5 Computational Eciency We assess the eciency of the proposed approach for known environments in the context of o -line planning. For simplicity, we consider convex polygonal obstacles. The computational burden of this approach consists of checking collision and evaluating the shortest path avoiding individual obstacles. Checking collision involves computing intersections between one line and all the edges of the obstacle. Computing the shortest path for an individual obstacle involves generating two tangents from the current point and two from the goal to the obstacle, and evaluating the distance of both paths. Both computations (collision and shortest path) are computationally simple, except that they are repeated at every exit point. At each exit point, collision is tested with the remaining obstacles (excluding the already avoided obstacles). The number of these obstacles decreases linearly. 23 In total, there are kn ? k2 2 such tests, where n is the number of obstacles and k is the number of visited exit points (number of avoided obstacles). The number of shortest path evaluations at each exit point depends on the selection criterion. The nearest obstacle criterion requires only one evaluation at each step. The determination of the nearest obstacle, however, requires the calculation of the distance between the current point to all remaining obstacles, which is repeated in total kn? k2 2 times. The maximum cost criterion requires no calculation of distance, but the computation of the shortest path to all remaining obstacles. In total, there are kn ? k2 2 such evaluations. Obviously, the maximum cost is computationally more expensive than the nearest criterion. It can serve as a fair comparison to other methods. This approach thus requires kn ? k2 2 collision tests, and kn ? k2 2 shortest path evaluations. It is therefore of complexity O(nk2 ). The maximum number of visited exit points, k, is n, raising the complexity to O(n2 ). The existence of loops multiplies this number by two since each loop, which is visited only once, results in avoiding some obstacles within the loop at most twice. While this is the worst complexity, it is an unrealistic measure since generally, not all obstacles are visited during the motion. Our experience with convex obstacles [19] shows that only a small fraction of the obstacles were visited, roughly the number of obstacles along the straight line to the goal from the initial point. The examples presented in this paper later in Section 7, with concave obstacles, also involve a relatively small number of obstacles (less than 5 out of 18 for the maximum cost criterion). So while the worst complexity is polynomial in the number of obstacles, we can claim linear average complexity. In comparison, the tangent graph approach, which is currently the most ecient, is of O(n2 ) complexity [21]. However, this complexity is xed, since the size of the graph depends on the number of obstacles, and not on the shortest path. We should recognize, however, that the tangent graph generates the shortest path, whereas we can only approximate it at an unknown accuracy. The shortest path and collision evaluations are suitable for parallel computation since they are calculated independently for many obstacles at each exit point. Thus, using n processors, each computing the shortest path to one obstacle, can reduce the worst computation time to be linear in the number of obstacles, and the average computation time to be linear in the number of actually avoided obstacles. 6 Unknown Environments The preceding algorithms are applicable to unknown environment, provided that exit points can be recognized by the on-line sensors. Once exit points are properly determined, the avoidance strategy of known obstacles applies, 24 retaining the same convergence properties, except that the unknown obstacles are avoided non-optimally. 6.1 Convex Obstacles To determine exit points on-line, rst consider the convex obstacle shown in Figure 16. A collision occurs when the straight line to the goal from the current position intersects the upper boundary of some obstacle at some point z . An exit point can be reached by following the boundary of the obstacle in either direction (CW or CCW), until the straight line to the goal is no longer obstructed by the obstacle. For smooth convex obstacles, an exit point is detected when the tangent (direction of motion) points at the goal. The avoidance strategy for convex obstacles is therefore quite simple, resembling typical "bug" algorithms. The following Algorithm is a modi cation of Algorithm 1, assuming convex obstacles and Assumptions 1-5: CCW z CW OB Left exit point in Right exit point o Figure 16: Avoiding an unknown convex obstacle. Algorithm 3: Avoiding unknown convex obstacles Step 1. Move along the straight line to the goal. If the goal is reached, Stop. Else, an obstacle was detected. Step 2. Choose (arbitrarily) a direction of avoidance (CW or CCW). Follow @OB until reaching an exit point. Go to Step 1. 2 Convergence of Algorithm 3 follows from convergence of Algorithm 1, since convergence of the latter was based on avoiding obstacles via exit points, regardless of the order in which the obstacles are avoided. Failure to reach the 25 goal may not occur under the stated assumptions. Violating these assumptions may result in failure to reach an exit point in Step 2. 6.2 Concave Obstacles For concave obstacles, we recall Proposition 3, stating that a CW turn around the obstacle from the colliding point z 2 @U  @OB reaches the right exit point, whereas a CCW turn reaches the left exit point. Therefore, a CW turn around an obstacle should result in a negative angle gain between the direction at the original colliding point and the exit point, and similarly, a CCW turn should result in a positive angle gain. This applies to any obstacle (convex or concave, encircling the goal or not) since any ray passing through any point on the boundary is internal to the cone de ned by the rays passing through the two exit points. a OB in o Figure 17: Avoiding an unknown concave obstacle. An exit point is, therefore, detected locally when it satis es the following conditions: a) the straight line to the goal is not obstructed by the obstacle, b) the direction of motion points towards the goal, c) the angle gain from the colliding point is negative for a CW turn, and positive for a CCW turn. Having established a simple procedure to determine the proper exit point for a given avoidance direction, we can use Algorithm 3 for concave obstacles as well, under Assumption 5. Note, however, that not every point that locally satis es conditions (a) to (c) is a true exit point, as shown in Figure 17. Here, point a appears locally as an exit point during a CW turn, but it is not, since its tangent to the goal intersects the obstacle. We call it a false exit point. 26 If the sensory information is strictly local, then each lobe of the concave obstacle can be treated as a separate obstacle, and each point that appears as an exit point be treated as a true exit point. The avoidance strategy then follows the obstacle boundary and the straight line segments to the goal from each apparent exit point, as shown in Figure 17. a b c OB d in o Figure 18: A loop created by switching directions at false exit points. Switching the direction of avoidance before reaching a true exit point may cause Algorithm 3 to enter an in nite loop, even if the obstacle does not encircle the goal, as shown in Figure 18. Here, after exiting a false exit point, a, the robot switches to a CCW turn, which brings it all the way to point b. At b, it switches to a CW turn, which brings it back to point a. Reaching a true exit point (c or d) breaks the loop. Similarly to the approach used in Algorithm 2, in nite loops are prevented by switching the direction of avoidance from a revisited (true or false) exit point. In Figure 18, this would occur at point a, after completing one loop (that includes point b). From a, a CW turn should be attempted, which would reach point c and thus leave the obstacle. The avoidance of general unknown concave obstacles satisfying Assumptions 1-4 follows Algorithm 2, with minor modi cations that do not warrant a repeat of the algorithm. The modi cations involve Steps 2 and 3. The selection of the current obstacle for known obstacles is done after exiting the previous obstacle, using any local or global criterion. For unknown obstacles, the current obstacle is selected as the rst obstacle obstructing the straight line to the goal. Step 3 in Algorithm 2 avoids the current obstacle optimally until reaching the right of left exit points. In unknown environments, the current obstacle is avoided by following its boundary until reaching an exit point (false or true). The direction of avoidance (CW or CCW) is arbitrary5, unless a loop has been detected. Loops 5 An arbitrary direction can be resolved using any local criterion, such as selecting the 27 are broken by reversing the direction of avoidance, as in Step 3 of Algorithm 2. Failure to reach the goal is now detected when the same exit point is visited twice (after reversal of direction), or when the algorithm returns to the hitting point on the obstacle boundary without reaching an exit point. Both situations result from violating Assumptions 2 and 3. Convergence of this procedure, under Assumptions 1-4, follows from convergence of Algorithm 2, with the exception that loops not around the goal (such as the loop shown in Figure 18) are possible. However, such loops are caused by reversing the direction of avoidance before reaching a true exit point. They can be avoided simply by keeping the direction of avoidance xed until entering a loop, and then reversing the direction of avoidance until encountering the next loop. This will ensure that each obstacle is avoided until reaching a true exit point, which by Lemma 4 precludes loops not around the goal. 6.3 Spirals Spirals deserve a special consideration as they seem to present a challenge for any avoidance strategy. First, the exit point of a spiral that encircles the goal does not satisfy De nition 6 since all rays passing through o and @OB intersect the cone SOB=o (2), and hence no ray satis es the de nition of an extreme ray (De nition 5). This is more of a semantic than an actual problem, since the de nition of exit points is not unique. Instead of rede ning exit points, we note that the two extreme points a and b of the spiral on the left in Figure 19, are equivalent to the exit points of the primary shadow of the spiral on the right, which does not encircle the goal. We may treat both as exit points, even though only b is a true exit point (for spirals with one turn or more), since all shortest paths starting outside the spiral must pass through that point. Figure 19 demonstrates the avoidance of two spirals using the proposed approach, assuming unknown geometry. In both cases, we make the worst choices of the avoidance direction at each colliding point. On the right, a spiral that does not encircle the goal is avoided by rst attempting a CW turn to point c, which is a false exit point. Colliding again with the obstacle, the robot attempts a CCW turn to d, another false exit point. At e, a CCW turn brings it to a, a true exit point, then terminating at the goal, as shown. A CW turn would exit the obstacle at b, also terminating at the goal. Note that returning to d after completing the loop through e does not qualify as a revisit of an exit point since on the way back to d, the robot points away from the goal, thus not satisfying condition (b) (see Section 5.2). The spiral on the left in Figure 19, which encircles the goal, is avoided by rst attempting a CW turn to a, and continuing CW from the colliding point d. This causes to revisit the (false) exit point a, in which case a CCW turn is attempted to the exit point b, terminating at the goal. direction in which the slope points towards the goal. 28 c c a d d b b e a o in o Figure 19: Avoiding spirals. 7 Examples The following examples demonstrates this approach for general planar polygonal obstacles. Using the set-up shown in Figure 20, with 18 concave obstacles, and assuming a known environment, several paths were computed from di erent initial point to the same goal. Computation time for each path was only a fraction of a second on a Silicon Graphics Indy workstation. Starting from various initial points, and using the maximum cost obstacle criterion, Algorithm 2, modi ed to account for intermediate goals, produced the paths shown in Figures 20 to 23 by the solid line. All paths seem very close to the optimal path. The path in Figures 23 is in fact the shortest path. The dotted lines in Figures 20 to 23 represent paths computed with the nearest obstacle criterion. This is similar to the selection criterion dictated by an on-board sensor, except that once the obstacle was selected, its geometry was assumed known. These paths are much longer than the path generated by the maximum cost criterion since they penetrate deep into the convex hull of the largest obstacle. Figures 20 and 23 show the paths generated by cutting a pass through the largest obstacle. Here the di erence between the paths generated by either criterion is relatively small; the maximum cost paths are generally shorter. 8 Conclusions An on-line planner for generating near-shortest paths amongst general planar obstacles was presented. It generates the path incrementally by avoiding obstacles optimally one at a time. The main feature of this approach is that it is simple, yet it produces near-shortest paths, and it is globally convergent. 29 in Goal Figure 20: Near-Optimal Paths The avoidance strategy does not specify the order in which obstacles must be avoided. The obstacles can be selected using a global criterion, such as selecting the most expensive (the maximum cost) obstacle to be avoided rst, or using a local criterion by selecting the nearest obstacle in the direction of the goal. The former was shown to result in close to optimal paths. The latter is useful for unknown environments when using short range sensors. Although the main focus of this paper has been on-line planning, the proposed approach presents an ecient alternative to o -line planning of nearshortest paths, by reducing computational complexity from polynomial [21] to linear (on average) in the number of obstacles. The proposed avoidance strategy was implemented for general planar polygonal obstacles on a Silicon Graphics Indy workstation. Avoidance of 18 concave obstacles took only a fraction of a second. The paths produced by the global criterion appear to be close, if not identical, to the shortest paths in all cases. The global criterion is extendable to other cost functions [18], which are beyond the capabilities of all other existing on-line planners. Acknowledgments This work was conducted during a sabbatical leave at Tohoku University, Japan. The examples were generated by Dr. Satish Sundar. 30 in Goal Figure 21: Near-Optimal Paths References [1] M.A. Armstrong. Basic Topology. Springer-Verlag, New York, 1983. [2] J. Barraquand, B. Langlois, and J.C. Latombe. Numerical potential eld techniques for robot path planning. IEEE Transactions on Systems, Man and Cybernetics, 22(2):224{241, 1992. [3] L. Cesari. Optimization - Theory and Applications: Problems with Ordinary Di erential Equations. Springer-Verlag, New York, 1983. [4] H. Choset and J. Burdick. Sensor based planning, part ii: Incremental construction of the generalized voroni graph. IEEE Int'l. Conf. on Robotics and Automation, pages "1643{1648", 1995. [5] R. V. Churchill, J. W. Brown, and R. F. Verhey. Complex Variables and Applications. McGraw-Hill (3rd ed.), New York, 1974. [6] C. I. Connoly, J. B. Burns, and R. Weiss. Path planning using laplace's equation. IEEE Conf. on Robotics and Automation, Cincinnati, OH, 1:2102{2106, 1991. [7] R. Jarvis. Collision-free trajectory planning using distance transforms. Transactions of the Institution of Engineers, Australia, Mechanical Engineering, ME10(3):187{191, September 1985. 31 in Goal Figure 22: Near-Optimal Paths [8] I. Kamon, E. Rimon, and E. Rivlin. Tangentbug: A range-sensor based navigation algorithm. Int. Journal of Robotics Research, 17(8), August 1998. [9] O. Khatib. Real time obstacle avoidance for manipulators and mobile robots. Int'l Journal of Robotics Research, 1:65{78, 1986. [10] P. Khosla and R. Volpe. Superquadric arti cial potentials for obstacle avoidance approach. Proc. IEEE Int'l Conference on Robotics and Automation, 3:1778{1784, 1988. [11] J. O. Kim and P. Khosla. Real time obstacle avoidance using harmonic potential functions. Proc. IEEE Int'l Conference on Robotics and Automation, 1:790{796, 1991. [12] D. E. Koditschek and E. Rimon. Robot navigation functions on manifolds with boundary. Advances in Applied Mathematics, 11:412{442, 1990. [13] Jean-Claude Latombe. Robot Motion Planning. Kluwer Academic Publishers, Boston, 1991. [14] V.J. Lumelsky and A. Stepanov. Path planning strategies for a point mobile automaton moving amidst unknown obstacles of arbitrary shape. Algorithmica, 2:403{430, 1987. 32 in Goal Figure 23: Near-Optimal Paths [15] W. Prenowitz and Jantosciak J. Join Geometries: A Theory of Convex Sets and Linear Geometry. Spinger-Verlag, New-York, 1979. [16] E. Rimon and D. E. Koditschek. Exact robot navigation using arti cial potential functions. IEEE Trans. on Robotics and Automation, 8:501{518, 1992. [17] A. Stentz. Optimal and ecient path pllanning for partially-known environments. IEEE Int'l. Conf. on Robotics and Automation, page "", 1994. [18] S. Sundar and Z. Shiller. Time-optimal obstacle avoidance. Proc. IEEE Conf. on Robotics and Automation, pages 3075{3080, 1995. [19] S. Sundar and Z. Shiller. Optimal obstacle avoidance based on sucient conditions of optimality. IEEE Transactions of Robotics and Automation, 13(2):305{310, 1997. [20] R. Volpe and P. Khosla. Arti cial potentials with elliptical isopotential contours for obstacle avoidance. Proc. IEEE Int'l Conf. on Robotics and Automation, 3:1778{1784, 1987. [21] Liu Y.H. and Arimoto S. Path planning using a tangent graph for mobile robots among polygonal and curved obstacles. International Journal of Robotics Research, 11(4):376{382, August 1992. 33 Goal Figure 24: Near-Optimal Paths 34