From Constrained Delaunay Triangulations to Roadmap Graphs with Arbitrary Clearance
Abstract
This work studies path planning in twodimensional space, in the presence of polygonal obstacles. We specifically address the problem of building a roadmap graph, that is, an abstract representation of all the paths that can potentially be followed around a given set of obstacles. Our solution consists in an original refinement algorithm for constrained Delaunay triangulations, aimed at generating a roadmap graph suited for planning paths with arbitrary clearance. In other words, a minimum distance to the obstacles can be specified, and the graph does not have to be recomputed if this distance is modified. Compared to other solutions, our approach has the advantage of being simpler, as well as significantly more efficient.
Stéphane Lens and Bernard Boigelot \subjclassF.2.2 Nonnumerical Algorithms and Problems.
1 Introduction
Path planning is a central issue in fields such as mobile robotics; autonomous robots often need to be able to compute onthefly trajectories from their current position to a target location, taking into account various feasibility and optimality constraints.
We study path planning in twodimensional space in the presence of obstacles. This problem has historically been addressed by various approaches ranging from cell decomposition [kambhampati1985multiresolution] to optimization, potential field [ge2002dynamic], and stochastic [lavalle01] techniques. In this work, we address the construction of a roadmap graph, which is an abstract representation of all the paths that can potentially be followed around the obstacles [latombe1991planning, lavalle2006planning]. After it has been computed, a roadmap graph can be explored using algorithms such as Dijkstra’s or A, in order to extract its shortest path from an origin to a target destination, according to the metric of interest. In actual applications, this path then needs to be interpolated into a feasible trajectory, taking into account physical constraints. In addition to robotics, roadmap graphs are also especially useful in the case of problems that require to plan a large number of paths constrained by the same set of obstacles, such as crowd path planning [ali2013modeling].
This article tackles the problem of building a roadmap graph for a region of the Euclidean plane constrained by a given finite set of polygonal obstacles. In addition to the geometrical description of these obstacles, we also consider a clearance distance that defines the smallest distance at which the obstacles can be approached. This is equivalent to studying the path planning problem for a disk of radius that moves between obstacles without intersecting them.
This problem has already been well studied. In the particular case of obstacles taking the form of individual points, a roadmap graph can be obtained by first computing a Voronoi diagram of these points [berg2008computational]. This yields a finite graph whose nodes correspond to the points of the plane that locally maximize the distance to their nearest obstacles. The edges of the graph represent direct paths between nodes that clear the obstacles at the largest possible distance, which can then be checked against .
Thanks to a duality argument, the exact same roadmap graph can also be constructed starting from a Delaunay triangulation of the set of points [devillers1998improved]. The nodes of the graph are then associated to the triangles of the triangulation (technically, to the center of their circumcircle), and two nodes are linked by an edge whenever their corresponding triangles share a common side. An interesting property of such roadmap graphs is that they can be constructed independently from the value of the clearance distance : Exploring the graph for a particular value of simply amounts to following only the edges that correspond to triangle sides with a length at least equal to . This property is of particular importance to autonomous robotics applications: After having computed a roadmap graph, evaluating several strategies for clearing the obstacles at different margins of safety becomes possible at very small cost.
Most applications require however to build roadmap graphs for sets of obstacles that include line segments in addition to individual points, which is the case in particular whenever obstacles take polygonal shapes. A first possible solution to this generalized problem consists in computing a generalized Voronoi diagram, which partitions the points of the plane according to their nearest point or line obstacle [geraerts2010planning]. The main drawback is that the edges of such diagrams can take the form of parabolic arcs, that are more difficult to work with than line segments. A workaround consists in discretizing line obstacles into finitely many individual points [bhattacharya2008roadmap], but it then becomes difficult to find a good tradeoff between a fine discretization level, which may yield an unnecessarily large graph, and a coarse one, which might result in an imprecise approximation. A third strategy is to build a visibilityVoronoi complex [wein2005visibility], which produces a graph from which a roadmap can easily be extracted, but this technique turns out to be prohibitively costly, requiring a computation time that is more than quadratic in the number of obstacles.
A fourth solution is to start from a constrained Delaunay triangulation, in which the line obstacles are required to appear as sides of the triangles [chew1989constrained]. A roadmap graph can then be extracted from such a triangulation using the same method as for (classical) Delaunay ones. Unfortunately, exploiting such a graph for planning paths with a given clearance distance is not as straightforward as before: The existence of a path in the graph from a triangle to another that only traverses sides of length at least equal to , does not guarantee anymore that there exists a corresponding path in the plane, staying at a distance greater than or equal to from the obstacles. In [kallmann2014dynamic], this problem is solved by augmenting the triangulation with additional parameters that have to be taken into account when the roadmap is searched for paths. In addition, some parts of the triangulation have to be refined in order for this mechanism to behave correctly.
The contribution of this work is to show that a roadmap graph suited for arbitrary values of the clearance distance can be derived from a constrained Delaunay triangulation of the obstacles. We introduce a refinement algorithm for such triangulations, that proceeds by inserting a carefully selected set of additional point obstacles known as Steiner points. The resulting graph precisely describes the possible paths in the plane around the original set of obstacles. It has the property that the graph paths traversing triangle sides of length at least equal to exactly correspond to the paths in the plane that stay at distance greater than or equal to from the obstacles, for arbitrary values of . The method does not require to store additional information in the triangulation, i.e., only the length of traversed triangle sides has to be checked, which makes searching for paths very efficient. Our algorithm has been implemented and experimentally evaluated on randomly generated sets of obstacles, obtaining significantly lower execution times than [bhattacharya2008roadmap, geraerts2010planning, kallmann2014dynamic, wein2005visibility].
The paper is structured as follows. In Section 2, we discuss the construction of a roadmap graph in the case of point obstacles, using a Delaunay triangulation. In Section 3, we generalize this result to obstacles composed of line segments in addition to individual points. Our algorithm for refining constrained Delaunay triangulations is developed in Section 4. Finally, we present in Section 5 experimental results, and discuss in Section 6 the benefits of our approach.
2 Point Obstacles
In this section, we recall classical results related to the construction of a roadmap graph with respect to point obstacles. Consider a finite set of points representing obstacles that must be avoided. A triangulation of these points is a finite set of triangles taking their vertices in , such that their union exactly covers the convex hull of , , …, and the intersection between any pair of triangles can either be empty, equal to a single vertex , or equal to a segment linking two points in . Such a triangulation is said to be Delaunay if, for every triangle , all the points in are located outside or on the circumcircle of [bern2004triangulations].
From a Delaunay triangulation of , one can extract a roadmap graph representing the possible paths in the plane around those obstacles. This is done by building a graph whose nodes correspond to the triangles , and in which two nodes are linked by an edge if and only if their underlying triangles and share a common side.
An interesting property of this graph is that it can be used for reasoning about the possible paths in the plane that remain at a specified clearance distance from obstacles, even though the graph is defined independently from . Let us define a feasible position as a point in the plane such that for all . A feasible path is defined as a path in the plane that only visits feasible positions. A feasible triangle is one that contains at least one feasible point. The following result is well known [bern2004triangulations, berg2008computational].
There exists a path in from a feasible triangle to another one that traverses only triangle sides of length such that iff there exists a feasible path in the plane leading from a point in to a point in , with respect to the clearance distance .
This theorem intuitively expresses that the feasible paths in the plane that can be followed around the obstacles are exactly represented by the paths in the graph , being careful of only traversing triangle sides that have a length consistent with the clearance distance. The graph thus represents a roadmap that can be searched for paths leading from a triangle to another, using for instance algorithms such as Dijkstra’s or A [wagner2007speed].
It is worth mentioning that a path of that visits a sequence of triangles does not always translate into a feasible path in the plane that exactly follows this sequence of triangles. It may indeed be the case that moving from to requires to pass through an intermediate triangle that is not represented in the path , which is not problematic. However, the sequence of triangles successively visited by any feasible path in the plane must necessarily correspond to a path that exists in the graph .
After having extracted a path from , for a given clearance distance , a corresponding feasible path in the plane can be obtained as follows. The goal is to generate a path that clears the obstacles in the same way as , but that is locally optimal in the sense that it minimizes the traveled distance and does not contain unnecessary switchbacks. The sequence of triangles represents a channel, i.e., a triangulated region of the plane in which one can move from a triangle to its successor by traversing their common side. The vertices of the triangles that compose a channel precisely represent the obstacles that must be cleared when moving along this channel.
Given a channel obtained for a clearance distance , the shortest feasible path in the plane that follows this channel can be computed thanks to a simple generalization of the funnel algorithm [demyen2006efficient]. This operation conceptually consists in placing a solid disk of radius on each channel vertex, and of pulling an elastic cord taunt between these disks, from the entrance to the exit triangles of the channel.
The main advantage of this approach to synthesizing paths is its efficiency: Triangulating a set of points and searching for the shortest path in a finite graph can be performed in time, where denotes the number of obstacles, and the funnel algorithm runs in time. (The practical cost of this algorithm is usually even smaller, since it actually runs in linear time with respect to the number of triangles that belong to the considered channel.) One drawback is the fact that the shortest path in the roadmap graph does not necessarily correspond to the shortest feasible one in the plane, but using a suitable metric, it is known that this approximation usually suffices for most applications [kallmann2010shortest].
3 Point and Line Obstacles
Our aim is now to generalize the results of Section 2 to sets of obstacles that include line segments in addition to individual points. The motivation is to be able to deal with obstacles that have a polygonal shape. We first adapt triangulations to this setting, and then investigate how to build roadmap graphs out of them.
3.1 Constrained Triangulations
Let us consider a set of obstacles composed of a finite number of points as well as a finite set of line segments . We assume w.l.o.g. that each segment links two points and that belong to , and that the intersection of any pair of segments is either empty, or limited to a point belonging to . It is also natural to require that path planning remains restricted to areas that are fully delineated by external obstacles.
For a set of obstacles , a constrained triangulation is a triangulation in which every segment (called a constrained segment) forms the side of at least one triangle. Note that, if the goal is to reason about feasible paths in the plane, the notion of triangulation can somehow be slightly extended. First, it is not mandatory for regions that cannot be reached, such as the interior of polygonal obstacles, to be covered by triangles. Second, since constrained segments cannot be traversed, we allow a side of a triangle to be composed of a series of collinear constrained segments instead of a single one. An example of constrained triangulation is given in Figure 1, in which an unreachable region is grayed out, and constrained segments are represented in red.
Delaunay’s criterion can readily be adapted to constrained triangulations. Given a set of obstacles, a point is said to be visible from a point if the intersection between the segment and every constrained segment is either empty, or is equal to one of its extremities or . A constrained triangulation is then Delaunay if for each of its triangles , all the points in that are visible from , or are located outside or on its circumcircle. It is easily shown that this criterion is equivalent to imposing that, for every pair of adjacent triangles, with , either is a constrained segment, or one has .
3.2 Refining Constrained Triangulations
A roadmap graph can be derived from a constrained triangulation of a set of obstacles by a procedure similar to the one outlined in Section 2: One builds a graph whose nodes are associated to the triangles, and links the nodes corresponding to pairs of adjacent triangles. However, in the presence of constrained segments, Theorem 2 does not hold anymore. The problem is illustrated in Figure 2(a), where the clearance distance does not make it possible to traverse the gap between the point and the constrained segment .
Our solution to this problem is to refine the constrained triangulation by inserting additional obstacle points, known as Steiner points, until we obtain a constrained triangulation for which a result similar to Theorem 2 can be established. Adding a Steiner point amounts to splitting a constrained segment in two components connected at that point, fragmenting one of the two triangles adjacent to this segment. For instance, Figure 2(b) shows that adding the orthogonal projection of onto as a Steiner point decomposes the triangle into , yielding a channel for which Theorem 2 now applies. Indeed, it now becomes possible to traverse the sequence of segments if and only if the clearance distance is at most equal to .
Since inserting a Steiner point splits a triangle in two, this operation may result in a refined constrained triangulation that does not satisfy anymore Delaunay’s criterion. It then becomes necessary to update the triangulation so as to restore this property, which will be essential to the correct computation of further Steiner points. This update procedure is carried out as follows. Consider a triangle that has been split into by the addition of a Steiner point inside the segment . If the segment is unconstrained and joins two triangles and , then one has to check whether they satisfy Delaunay’s criterion. If not, the quadrilateral must be flipped, which consists in replacing the pair of triangles by . The same operation must be performed for the segment , as well as for the remaining outside edges of flipped quadrilaterals. It is known that this procedure, borrowed from incremental Delaunay triangulation algorithms, has a low average cost, the expected number of triangles to be processed remaining bounded [berg2008computational].
Finally, it should be stressed out that the refinement operation must be able to handle situations that are more complex than the one illustrated in Figure 2. For instance, even in situations where is unconstrained, the traversal of might be affected by constraints located beyond this segment. We address the problem of selecting a correct set of Steiner points in the next two sections.
3.3 Point/Point and Point/Line Constraints
Recall that the goal is to obtain a roadmap graph in which, for every clearance distance , each path that only traverses triangle sides of length such that represents a channel that can be passed by remaining at a distance at least equal to from the obstacles. In other words, one should be able to check whether a channel can be passed with sufficient clearance only by measuring the length of the traversed triangle sides, similarly to the case of point obstacles discussed in Section 2.
A solid disk of radius that moves along a channel has to clear different configurations of obstacles. First, traversing a segment between two vertices and is only possible if . We call this condition a point/point constraint. Second, if the orthogonal projection of a vertex on a constrained segment is located inside this segment, moving between and this segment (in other words, traversing ) imposes , which forms a point/line constraint. In order to assess the possibility of passing a channel for a given clearance distance , it is sufficient to consider point/point and point/line constraints. As discussed in [kallmann2014dynamic], other configurations such as moving between two constrained segments are systematically covered by the point/point and point/line constraints induced by their extremities.
It has been shown in Section 2 that point/point constraints are automatically dealt with by Delaunay triangulations: In the absence of constrained segments, Theorem 2 holds and the triangulation provides a suitable roadmap graph. The difficulty is thus to handle correctly point/line constraints.
Consider a triangle crossed from the side to the side , or the other way around. We assume w.l.o.g. that this triangle satisfies . We check whether there exists a vertex of the triangulation located on the same side of as , that is involved in a point/line constraint with a constrained segment located on the other side of this line. (This precisely means that the orthogonal projection of on belongs to the interior of the segment , and is such that intersects .)
A point/line constraint induced by such a vertex is relevant only if it is more restrictive than the point/point constraints generated by the channel that is followed. We introduce the following definition.
A vertex is said to be problematic for the traversed segments and if

it is located on the same side of as ,

there exists a constrained segment that contains the orthogonal projection of , which is such that , and

the points and satisfy .
Indeed, it is not necessary to consider vertices for which , since the point/line constraint between and is then systematically satisfied as a consequence of the fact that the segment can be traversed with sufficient clearance. The motivation for the conditions and is less obvious. With respect to , there are actually two types of possible channels in which the triangle is traversed from to : Those in which the segment needs to be crossed (type 1), and those in which it does not (type 2). Note that the segment does not necessarily correspond to the side of a triangle in the triangulation. The two situations are illustrated in Figure 3.
For a channel of type 1, the point/line constraint between and cannot be more restrictive than the point/point constraints induced by the channel if the condition is satisfied, since the latter guarantee that the segment can be traversed. On the other hand, in a channel of type 2, the point/line constraint induced by is irrelevant and does not need to be taken into account.
When studying the triangle , one does not know whether the channel that will be followed after traversing and is of type 1 or 2, hence both possibilities have to be taken into account. This goal is achieved by considering only the point/line constraints induced by problematic vertices, according to Definition 3.3. Note that the notion of problematic vertices captured by this definition is similar to the concept of disturbances introduced in [kallmann2010shortest], but our strategy for dealing with them, described in the next section, completely differs.
3.4 Steiner Points Placement
Our approach to selecting a suitable set of Steiner points is based on the following idea: For every pair of unconstrained sides of every triangle of the constrained triangulation, if this pair of segments potentially admits a problematic vertex, then this triangle has to be refined. The refinement operation consists in inserting a Steiner point that splits the triangle in such a way that problematic vertices cannot exist anymore.
Checking for problematic vertices is done as follows. Recall that we assume w.l.o.g. . First, it is easily established that the pair can only admit a problematic vertex if the corresponding triangle is such that . This property relies on the fact that the constrained triangulation satisfies Delaunay’s criterion, from which it follows that all the points located outside or on the circumcircle of necessarily violate at least one of the conditions to be problematic.
If the angle is acute, which can be checked by testing whether the orthogonal projection of onto is an interior point of the segment , then the next step is to check whether itself is problematic. This is equivalent to deciding whether there exists a constrained segment that contains as an interior point the orthogonal projection of onto , such that is visible from , crosses , and . We will introduce a procedure for carrying out efficiently this check in Section 4. If this operation succeeds, then is inserted as a Steiner point into the constrained segment , splitting the triangle that is adjacent to this segment, on the same side as . The situation is illustrated in Figure 4(a).
When, on the other hand, turns out to be unproblematic, it remains to check whether there may exist other potential problematic vertices. This operation is performed in the following way. We compute the point located at the intersection of the circumcircle of and the line parallel to containing . Then, we apply to the same decision procedure as to in the previous step: We check whether projects onto a constrained segment , its projection is visible from , crosses , and . In such a case, the projection of onto is necessarily interior to this segment. We then add as a Steiner point, in the same way as before. This case is illustrated in Figure 4(b). The motivation for selecting instead of is twofold. First, is generally not a vertex of the constrained triangulation, hence it does not always appear in the result of the refinement. Second, the goal of getting rid of triangles that may admit problematic vertices is correctly achieved with the choice of .
Indeed, after having refined a constrained triangulation using the procedure described in this section, every resulting triangle that is part of a channel includes a safe zone that cannot be crossed by constrained segments, and allows the passage of a solid disk of diameter equal to the smallest triangle side that is traversed. This safe zone is illustrated in Figure 5 for the triangle considered in Figure 4. As a consequence, if a disk of given diameter is able to pass all the segments that compose a channel, then it can traverse this channel while remaining confined in the safe zone of the successively visited triangles. This proves the following result.
In a refined constrained triangulation, there exists a path in from a feasible triangle to another one that traverses only unconstrained triangle sides of length such that iff there exists a feasible path leading from a point in to a point in , with respect to the clearance distance .
Finally, it is worth mentioning that our refinement procedure always terminates, since the insertion of a Steiner point creates right triangles that will not be refined further.
4 Refinement Algorithm
As explained in Section 3.4, a constrained triangulation is refined by checking, for each pair of unconstrained sides belonging to one of its triangles , whether a Steiner point has to be created by projecting on some constrained segment. Assuming w.l.o.g. , this check only has to be performed if , and amounts to deciding whether there exists a constrained segment onto which can be projected, with its projection satisfying specific conditions. If the check does not succeed, a similar operation has to be carried out for another point derived from .
The crucial issue in the procedure is to perform efficiently the check operation, which can be seen as a particular instance of the following problem: Given a point , a triangle side in the triangulation that contains the orthogonal projection of , and a distance such that , decide whether there exists a point belonging to a constrained segment , such that crosses with . If the answer is positive, return the corresponding segment that is nearest to .
In order to solve this problem, the first step is to check whether itself is a constrained segment, in which case the procedure directly terminates with . Otherwise, we explore the triangulation, starting with the triangle adjacent to on the opposite side as . It can be shown that, as a consequence of Delaunay’s criterion, the segment can contain a point such that only if . Therefore, the search can be continued by repeating the same procedure with the longest segment among and replacing . The check terminates when either a suitable constrained segment is found, the projection of onto does not exist, or this projection is such that .
The complete algorithm for refining a constrained triangulation is summarized in Algorithm 1.
5 Complexity and Experimental Results
The time needed to run our constrained Delaunay triangulation refinement algorithm can be estimated as follows. Let denote the number of obstacle vertices. The number of triangles that have to be inspected at Line 2 of Algorithm 1 is . Indeed, since we start from a constrained Delaunay triangulation, the expected number of triangles incident to vertices of the triangulation remains bounded [berg2008computational], hence the total number of projections of vertices onto constrained segments performed by the algorithm is . Each insertion of a Steiner point also entails a bounded number of operations (Lines 12–13 and 27–34) in order to restore Delaunay’s criterion. The time needed to inspect one triangle (Lines 3–7) is however not bounded and can be as high as , which brings the worstcase time complexity of the algorithm to .
We have been able to reach this worstcase upper bound with specifically crafted families of instances, but only by implementing the choice performed at Line 2 with a deliberately naive approach, systematically selecting the triangle that leads to the larger number of calls to check(). With the more sensible strategy of inspecting first the triangles that include exactly one constrained side, which is easy to implement, we did not manage to find instances of the problem for which the asymptotic cost of our algorithm exceeds . The question of proving that the worstcase complexity is actually linear using this simple heuristics remains open, similarly to the solution proposed in [kallmann2014dynamic].
Our refinement algorithm has been implemented in order to compare it experimentally to solutions such as [geraerts2010planning, kallmann2014dynamic]. In addition to being simpler, our technique also has the advantage of offering significantly smaller execution times, even though it produces slightly larger refined triangulations than [kallmann2014dynamic]. We provide in Figure 6 measurements performed on randomly generated sets of obstacles of increasing size, using a i5460M CPU at 2.53 GHz. Note that the reported values do not include the time needed to compute the constrained Delaunay triangulation of the obstacles prior to running our algorithm.
An example of refined constrained triangulation computed for a typical case study is shown in Figure 7, with shortest paths extracted for two different values of the clearance parameter. For this example, the refinement procedure runs in about 30 s.
Points  Triangles  Refined points  Refined triangles  Time (ms) 

1227  2448  1420  2641  0.27 
5558  11110  6179  11731  1.23 
15042  30078  16644  31680  3.49 
30205  60404  33311  63510  9.08 
54990  109974  60563  115547  19.78 
136168  272330  150022  286184  52.66 
325058  650110  358931  683983  128.31 
649632  1299258  719149  1368775  260.05 
1298879  2597752  1443726  2742599  526.40 
6 Conclusions
In this work, we have introduced an original method for extracting a roadmap graph from a constrained Delaunay triangulation of a set of polygonal obstacles. Our approach consists in refining the constrained triangulation by adding a carefully selected set of Steiner points. The resulting triangulation has the important property that it can be searched for paths in the plane that avoid the obstacles at an arbitrarily selected clearance distance : this amounts to checking that the triangle sides that are traversed have a length that satisfies . This contrasts with techniques such as [kallmann2014dynamic] that require to store additional information in the triangulation, and to modify search algorithms in order to take it into account. Compared to the algorithm proposed in [lamarche2004crowd], ours is able to handle constraints induced by a point and a segment that do not belong to the same triangle, such as, e.g., the situations depicted in Figure 4. Our method has been implemented, and has the advantages of being simpler and significantly more efficient than other known solutions such as [bhattacharya2008roadmap, geraerts2010planning, kallmann2014dynamic, wein2005visibility]. Its drawback is that it produces refined triangulations that are slightly larger than those of [kallmann2014dynamic], but since the total number of additional triangles created during refinement is small (about 5% in our experiments), their impact on the overall cost of path planning remains negligible.
In order to use our roadmap synthesis method for actual path planning applications, additional problems need to be solved, which have not been addressed in this article. First, the roadmap graph usually needs to be connected to specific origin and destination locations. We perform this operation by combining solutions proposed in [jan2014shortest] and [kallmann2014dynamic]. In a few words, the technique consists in triangulating the set of obstacles after adding the origin and destination locations as additional vertices, then removing them, and finally performing some local operations for taking care of obstacles that are close to these locations. A second problem is to search for a suitable path in a roadmap graph, which can be achieved by shortestpath search algorithms such as Dijkstra’s or A, using a metric of interest.
Finally, it is worth mentioning that our motivation for studying roadmap graph generation was prompted by our participation to an autonomous robotics contest^{1}^{1}1http://www.eurobot.org, in which mobile robots compete in a m area heavily constrained with obstacles. In this setting, achieving very small computation times was essential in order to be competitive.