Next Article in Journal
Comparative Study of Wind Turbine Placement Methods for Flat Wind Farm Layout Optimization with Irregular Boundary
Next Article in Special Issue
Iterative Learning Method for In-Flight Auto-Tuning of UAV Controllers Based on Basic Sensory Information
Previous Article in Journal
MZM Optimization of PAM-4 Transmission in Data Center Interconnect
Previous Article in Special Issue
Solving the Time-Varying Inverse Kinematics Problem for the Da Vinci Surgical Robot
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Expanded Douglas–Peucker Polygonal Approximation and Opposite Angle-Based Exact Cell Decomposition for Path Planning with Curvilinear Obstacles

Department of Computer Science and Engineering, Dongguk University, Seoul 04620, Korea
*
Author to whom correspondence should be addressed.
Appl. Sci. 2019, 9(4), 638; https://doi.org/10.3390/app9040638
Submission received: 16 January 2019 / Revised: 8 February 2019 / Accepted: 11 February 2019 / Published: 14 February 2019
(This article belongs to the Special Issue Advanced Mobile Robotics)

Abstract

:
The Expanded Douglas–Peucker (EDP) polygonal approximation algorithm and its application method for the Opposite Angle-Based Exact Cell Decomposition (OAECD) are proposed for the mobile robot path-planning problem with curvilinear obstacles. The performance of the proposed algorithm is compared with the existing Douglas–Peucker (DP) polygonal approximation and vertical cell decomposition algorithm. The experimental results show that the path generated by the OAECD algorithm with EDP approximation appears much more natural and efficient than the path generated by the vertical cell decomposition algorithm with DP approximation.

1. Introduction

The path-planning process of a mobile robot aims at finding a collision-free path to move the robot from the current posture to the goal posture [1,2,3]. If there are multiple available paths, the optimal path in the sense of an objective function, such as the minimum distance, can be chosen. The algorithms for mobile-robot path planning can be grouped into four categories: roadmap approaches, such as the visibility graph or generalized Voronoi graph; cell decomposition approaches, such as the vertical cell decomposition (VCD) or approximate cell decomposition; sampling-based planning methods, such as the rapidly exploring random tree (RRT) or probabilistic roadmap (PRM), and potential field methods [2,3,4,5]. Among these methods, roadmap approaches are generally fast and easy to implement, but an intrinsic way to describe environmental information is not provided [1,2,3]. Sampling-based planning methods are more practical, but they do not provide completeness so we cannot recognize the non-existence of a path [2,3]. Potential field methods are useful to control the robot by generating a differentiable smooth path, but they cannot give explicit information on the roadmap and easily fall into a local minimum [1,2,3]. There are also some hybrid approaches, such as a potential field with RRT [6] or potential field with cell decomposition [7].
Cell decomposition, which is a classical and representative method for mobile-robot path planning, decomposes the given environment into several cells and finds a collision-free path based on the connectivity graph of these cells [2,3,4,5,6,7,8,9,10]. Here, each node of a connectivity graph is made by the representative point of each cell or its border line. Each link of the connectivity graph between the nodes indicates that the corresponding cell is adjacent to each other [11]. In various cell decomposition algorithms [12,13,14,15,16,17], one of the most widely known algorithms is vertical cell decomposition (VCD), but it does not generate an efficient path because it uses too many cells [8]. Figure 1 shows an example of the previous exact cell decomposition using VCD. VCD makes vertical lines from the convex vertices to decompose the environment into cells. The adjacency relationship among the cells is represented by the connectivity graph and used to find a path using graph search algorithms. VCD does not guarantee the optimality of the number of decomposed cells since there is no consideration of the shape of the obstacle. Reducing the number of decomposed cells directly increases the efficiency in path planning, but finding the optimal decomposition case is known as an NP-hard problem [1,2,3].
To supplement this drawback, the Opposite Angle-based Exact Cell Decomposition (OAECD) [18] was proposed by using a type of greedy approach to minimize the number of cells and increase efficiency. However, the OAECD can only be applied for polygonal obstacles, since it is operated based on the relationship among the vertices of the obstacles. In other words, path planning in an environment with curvilinear obstacles is impossible by itself. Therefore, in this paper, a novel expanded polygonal approximation method based on Douglas–Peucker (DP) algorithm is proposed to apply OAECD path planning to the cases with curvilinear obstacles.
In Chapter 2, a novel polygonal approximation algorithm for curvilinear obstacles is addressed. Then, the algorithm is applied to a modified OAECD algorithm in Chapter 3. The experimental results are shown in Chapter 4, and the paper is concluded in Chapter 5.

2. Polygonal Approximation Algorithm of Curvilinear Obstacle

In this chapter, the Douglas–Peucker (DP) algorithm [19], which is one of the most popular algorithms for polygonal approximation, is reviewed. An Expanded Douglas–Peucker (EDP) algorithm for the application with curvilinear obstacles is proposed with mathematical validation on the circumscription of the EDP Algorithm.

2.1. Douglas-Peucker Algorithm

The DP algorithm is a representative method of polygonal approximation. The purpose of a DP algorithm is to find a similar piecewise linear curve with fewer points given a closed curve. The algorithm uses the concept of dissimilarity based on the maximum distance between the original curve points and their simplified piecewise linear curve [17,18].
The algorithm (Algorithm 1) measures the distance between each point of a curve and the base line, which is the line segment with the same first and last points with the curve, to find the farthest point from the line segment with the maximum perpendicular distance.
Here, C is the set of obstacle contours, which is the set of point lists of the obstacle; ε is the threshold value for the maximum dissimilarity tolerance; R is the final result of the polygonal approximation of all obstacles; c is a point list of the obstacle contour, which is arranged in counter-clockwise order; pl is a point list; r1 and r2 indicate each result of the recursiveDP procedure; r indicates the final result of the polygonal approximation of an obstacle by DP algorithm.
Algorithm 1. Pseudo Code of the Initial DP.
Input:
C ← Set of point lists of the obstacle
ε ← Threshold value for maximum dissimilarity tolerance
Output:
R ← Final result of polygonal approximation of all obstacles represented as a set of point lists
 
Begin DP Procedure
1for each c in C do
2find two points in c, p1 and p2, which have the maximum distance from each other and p1 is in front of p2
3r1recursiveDP(pl[p1p2], ε) // pl: point list of a segment of obstacle contour
4r2recursiveDP(pl[p2 … starting point of cp1], ε)
5r ← point list[r1[0]… r1[end1 − 1] r2[0]… r2[end2 − 1]] // endi: number of points in ri
6insert r to R
7end for
End DP Procedure
In the recursive procedure of DP algorithm (Algorithm 2), the line segment is further divided into two sub-line segments using the farthest point as the via-point whenever the maximum perpendicular distance is greater than or equal to the threshold value for maximum dissimilarity tolerance, ε. This process is recursively repeated until the maximum perpendicular distance is less than ε.
Here, r1 and r2 are each the result of the recursiveDP procedure, and r is the result of the polygonal approximation of the given curve.
Algorithm 2. Pseudo Code of the Recursive DP.
Input:
pl ← Point list of the given curve
ε ← Threshold value for maximum dissimilarity tolerance
Output:
r ← Result of the polygonal approximation of the given curve represented as a point list
Initialization:
linebase ← line segment connected from pl[0] to pl[end] // end: number of points in pl
distmax ← −1
imax ← −1
 
Begin recursiveDP Procedure
1  for each point p in pl[1…end−1] do
2    dist ← perpendicular distance between linebase and p
3    if dist > distmax
4      distmaxdist
5      imax ← index of p
6    end if
7  end for
8  if distmax >= ε then
9    r1recursiveDP(pl[0…imax], ε) // pl: point list of a segment of the given curve
10    r2recursiveDP(pl[imax…end], ε)
11    r ← point list[r1[0]… r1[end1 − 1] r2[0]… r2[end2]] // endi: # of points in ri
12  else
13    insert pl[0] to r
14    insert pl[end] to r
15  end if
End recursiveDP Procedure
Figure 2 shows the process of the DP algorithm. lb is the base line, which is identical to linebase in Algorithm 2. lb1 is determined with the starting point P1 and ending point P2, which makes the widest width of the given obstacle. Then, we check whether distmax is less than ε. If distmax is less than ε, two vertices of lb1 are inserted into the point list of the polygonal approximation. If distmax is greater than or equal to ε, a new base line lb2 with P1 and P3 is made, new distmax is found again based on lb2, and the above procedures are repeated.
The obstacle approximation result by DP algorithm does not guarantee the circumscription of the original obstacle. In other words, some interior points of the obstacle region may not be included inside the polygon by the DP algorithm. Similarly, some exterior points of the obstacle region may be included inside the polygon by the DP algorithm.
Thus, if the result of the DP algorithm on a curvilinear obstacle is directly used for path planning, the generated path may penetrate inside the real obstacle region, and the robot may easily collide with the obstacle. To overcome this problem, a modified DP algorithm is proposed in this paper.

2.2. Proposed Expanded Douglas-Peucker (EDP) Algorithm

The path planning for curvilinear obstacles using DP algorithm may not be collision-free. The basic philosophy of the EDP algorithm is to guarantee the circumscription of obstacles by expanding the polygon of the DP algorithm with the maximum dissimilarity tolerance. In addition, by appending additional points near the convex corner, the convex corner clearance is considered, where the robot control may become more difficult during path following.
Figure 3 shows the operation of EDP based on the counter-clockwise traversal. The first step is to perform the DP algorithm. If the half angle between line segments l0 and l1 is 0–90°, i.e., the corner of DP polygon is convex, the perpendicular half-lined to l0 and l1 are v0 and v1 at the corner point, respectively. Then, the points on the arc, with the center point as the convex corner and the radius of ε, are appended starting from v0 and rotating with angle θrot until they meet v1 in the counter-clockwise direction. These points are added for the convex corner clearance. If the half angle between line segments l0 and l1 is 90° or more, i.e., the corner of DP polygon is concave, the point far from the cross point of l0 and l1 with distance ε to the outer direction of the obstacle is appended. The above procedures are repeated for the remaining corner points of the DP polygon.
Algorithm 3 shows the abstract version of the pseudo code of the EDP algorithm.
Algorithm 3. Pseudo Code of EDP (Abstract version).
Input:
RDP ← Result of DP polygonal approximation of all obstacles represented as a set of point lists
ε ← Threshold value for maximum dissimilarity tolerance
θrot ← Constant angle for obstacle corner clearance
Output:
R ← Final result of the EDP polygonal approximation represented as a set of point lists
 
Begin Expanded-DP Procedure
1for each rDP in RDP do
2  R ← null
3  for each point p in rDP do
4   if p is convex vertex then
5    θ ← half inner angle of p
6    distε
7    l0 ← line segment connected from the previous point of p to p
8    l1 ← line segment connected from p to the next point of p
9    v0 ← perpendicular half-line to l1 started from p
10    v1 ← perpendicular half-line to l2 started from p
11    loop
12     insert points pcv on the arc with center point p and radius ε, which is consisted of the points according to θrot angle from v0 to v1, to R
13    end loop
14   else
15    θ ← half outer angle of p
16    distε/sinθ
17    insert point pcc far from p with distance dist to the outer direction of the obstacle to R
18   end if
19  end for
20end for
End Expanded-DP Procedure
Here, RDP is the set of point lists of the polygonal approximation of the obstacles by the DP algorithm; ε is the threshold value for maximum dissimilarity tolerance; θrot is a constant angle for obstacle corner clearance; R is the final result of the polygonal approximation of all obstacles by the EDP algorithm, and rDP is a point list of the obstacle polygonal approximation by the DP algorithm, which is arranged in counter-clockwise order.
Figure 4 illustrates the detailed version of the EDP algorithm (Algorithm 4).
Since P n 1 P n = ( x n x n 1 ,   y n y n 1 ) and P n 1 P n P n Q 0 ,
unit vector of
P n Q 0 = 1 ( y n y n 1 ) 2 + ( x n x n 1 ) 2   ( y n y n 1 ,   ( x n x n 1 ) ) T
Therefore,
Q 0 = ε ( y n y n 1 ) 2 + ( x n x n 1 ) 2   ( y n y n 1 ,   ( x n x n 1 ) ) T
In addition, since Q i (i = 1, 2, …, m − 1) are on the arc with center point Pn and radius ε, rotating Q i with angle θ r o t in the counter-clockwise direction yields
Q i = ( cos θ r o t sin θ r o t sin θ r o t cos θ r o t ) ( Q i 1 P n ) + P n
Similarly, in the case of a concave corner,
O P n + P n Q s = ( x n , y n ) T + ( cos ( π θ ) sin ( π θ ) sin ( π θ ) cos ( π θ ) ) ( x n 1 x n ,   y n 1 y n ) T
Around the convex vertex of DP polygon, the concept of θrot is used for the convex corner clearance. When θrot Q 0 P n Q m , there is no additionally appending vertex, and Qm = Q1; when θrot < Q 0 P n Q m , there are additionally appending vertices Q1, Q2, …, which makes the effect of securing additional free space near the obstacle corner relatively difficult to path following.
Algorithm 4 shows the detailed version of the pseudo code of the EDP algorithm.
Algorithm 4. Pseudo Code of EDP (Detailed version).
Input:
RDP ← Result of DP polygonal approximation of all obstacles represented as a set of point lists
ε ← Threshold value for maximum dissimilarity tolerance
θrot ← Constant angle for obstacle corner clearance
Output:
R ← Final result of the EDP polygonal approximation represented as a set of point lists
 
Begin Expanded-DP Procedure
1for each rDP in RDP do
2  for each point Pn(xn, yn) in point list rDP do
3   ifPn+1PnPn+1 < π then
4    θ 1 2 Pn+1PnPn+1
5    distε
6     Q 0 ( x n , y n ) T + ε ( y n y n 1 ) 2 + ( x n x n 1 ) 2   ( y n y n 1 ,   ( x n x n 1 ) ) T
7     Q m ( x n + 1 , y n + 1 ) T + ε ( y n + 1 y n ) 2 + ( x n + 1 x n ) 2   ( y n + 1 y n ,   ( x n + 1 x n ) ) T
8    loop until i π 2 θ θ r o t
9      Q i ( cos θ r o t sin θ r o t sin θ r o t cos θ r o t ) ( Q i 1 P n ) + P n
10     insert Q i to R
11     ii + 1
12    end loop
13   else
14    θ 1 2 Pn+1PnPn+1
15    distε/sinθ
16     Q s O P n + P n Q s = ( x n , y n ) T + ( cos ( θ ) sin ( θ ) sin ( θ ) cos ( θ ) ) ( x n 1 x n ,   y n 1 y n ) T
18    insert Q s to R
19   end if
20  end for
21end for
End Expanded-DP Procedure

2.3. Mathematical Validation on the Circumscription of the EDP Algorithm

[Theorem] The polygon that consists of the resulting points from the expanded DP (EDP) algorithm on an obstacle includes all points of the original obstacle, i.e., no point of the obstacle region is outside of the polygon that consists of the resulting points from EDP on that obstacle.
(Proof) Let Pn be the n-th point from the DP polygonal approximation of an obstacle. Then, the following propositions are always true by the DP algorithm.
[P1] Pn−1, Pn, Pn+1 are points included in the boundary line of the obstacle.
[P2] Pn is the farthest point from the line segment P n 1 P n + 1 ¯ among the boundary points of the obstacle in [Pn−1, Pn+1].
[P3] Every boundary point of the obstacle in [Pn−1, Pn] has a shorter distance than ε from the line segment P n 1 P n ¯ .
[P4] Every boundary point of the obstacle in [Pn, Pn+1] has a shorter distance than ε from the line segment P n P n + 1 ¯
If Pn is a convex point.
Let us assume that there is a boundary point c ∈ [Pn−1, Pn+1] of the obstacle such that c is located outside the polygon Qm, Q0, Q1, …, Qm, Q’’0 such as Figure 5a, which consists of the resulting points from the EDP algorithm on the obstacle. Since Pn−1, Pn, and Pn+1 are points on the boundary line of the obstacle by proposition [P1], boundary point c should be identical to Pn or included in the range of [Pn−1, Pn] or (Pn, Pn+1).
If point c is identical to Pn, it is trivial that c cannot be located outside of the polygon with vertices Qm, Q0, Q1, …, Qm, and Q’’0, since Pn is inside the polygon.
If point c is included in the range of [Pn−1, Pn), the distance from point c to the line segment P n 1 P n ¯ should be less than ε by proposition [P3]. Therefore, c cannot be located outside of the polygon with vertices Qm ~ Q0.
If point c is included in the range of (Pn, Pn+1], the distance from point c to the line segment P n P n + 1 ¯ should be less than ε by proposition [P4]. Therefore, c cannot be located outside of the polygon with vertices Qm ~ Q’’0.
Therefore, no boundary point of the obstacle region is outside of the polygon with vertices Qm, Q0, Q1, …, Qm, and Q’’0 in the case of convex Pn.
If Pn is a concave point,
Let us assume that there is a boundary point c ∈ [Pn−1, Pn+1] of the obstacle such that c is located outside of the polygon Qm, Qs, Q’’0 such as Figure 5b, which consists of the resulting points from the EDP algorithm on the obstacle. Since Pn−1, Pn, and Pn+1 are points on the boundary line of the obstacle by proposition [P1], boundary point c should be identical to Pn or included in the range of [Pn−1, Pn] or (Pn, Pn+1).
If point c is identical to Pn, it is trivial that c cannot be located outside of the polygon with vertices Qm, Qs, and Q’’0, since Pn is inside the polygon.
If point c is included in the range of [Pn−1, Pn), the distance from point c to the line segment P n 1 P n ¯ should be less than ε by proposition [P3]. Therefore, c cannot be located outside of the polygon with vertices Qm and Qs.
If point c is included in the range of (Pn, Pn+1], the distance from point c to the line segment P n P n + 1 ¯ should be less than ε by proposition [P4]. Therefore, c cannot be located outside of the polygon with vertices Qs and Q’’0.
Therefore, no boundary point of the obstacle region is outside the polygon with vertices Qm, Qs, and Q’’0 in the case of concave Pn (Q.E.D.).
Once the polygonal approximation with the EDP algorithm is completed, it is possible to solve the obstacle collision problem that may occur when DP algorithm is used for the polygonal approximation of a curvilinear obstacle. Since the polygon created by the EDP algorithm can guarantee the circumscription of obstacles, this result of EDP can be used to apply OAECD in path planning with curvilinear obstacles.

3. Modified Opposite Angle-Based Exact Cell Decomposition (OAECD) Algorithm for Path Planning with Curvilinear Obstacles

The basic concept of the modified OAECD algorithm is to reduce as possible as many cells after the execution of the EDP algorithm and increase the calculation efficiency. Using the concept of inclusion of an opposite angle, OAECD first tries to connect the closest neighboring cell in the opposite angle region. OAECD does not randomly or sequentially process the points but processes in the order from a close pair to a far pair through three consecutive steps, which are similar to the human method. In addition, OAECD does not try to make an additional decomposition if the shape of the generating cell is convex.
The detailed algorithm for the modified OAECD consists of three steps [18]. Figure 6 shows how the decomposing lines are formed between the obstacles for each step of the modified OAECD algorithm. In the first step, the modified OAECD finds the closest neighboring vertex in the set of all vertices of other obstacles for every convex vertex (CV) of each obstacle. For every CV of each obstacle and its closest neighboring vertex (NV) in other obstacles, a new decomposing line is drawn if there is no existing decomposing line with the current CV, its closest NV is inside the region of the opposite angle of the current CV, and no intersection is made with other obstacles or other decomposing lines.
In the second step, for every CV among the remaining vertices and a vertex (AV) in another obstacle inside the region of the opposite angle of the current CV, a new decomposing line is drawn if there is no decomposing line with the current CV, the AV in another obstacle is the shortest one from the current CV among all available AVs, and there is no intersection with other obstacles or other decomposing lines.
Finally, in the third step, for every CV of the remaining vertices, a new decomposing line is drawn in the direction of the equiangular line of the opposite angle of the current CV until it intersects with the boundary of the environment, obstacle, or another decomposing line, if no decomposing line is connected with the current CV or more than one decomposing line is already connected from another CV, and the created angle near the current CV is larger than 180°.
The OAECD can be properly applied in a static environment. Although a single-sensed map may generate noise, it can sense multiple times for the same environment in a short period and remove the noise on the map by the moving average method [20] or the median method [21]. Based on these methods, one can plan the route. However, this process is only accurate in the static environment. In the dynamic environment, it is difficult to resolve the sensor noise completely by the moving average method or the median method for the same position because the obstacle moves.
Algorithms 5–7 show the pseudo code of the modified OAECD algorithm for each step in the process. Here, vc1 is a convex vertex of an obstacle; Vc is the set of point lists, which is the result of the EDP polygonal approximation of all obstacles; va1 is the closest neighboring vertex from vc1; V is the set of all vertices of the obstacles; Vcheck is the point set to check for processing.
Algorithm 5. Pseudo Code of the modified OAECD (Step 1).
Input:
VcR // R: Result of the EDP polygonal approximation of all obstacles represented as a set of point lists
M ← Environment map
Output:
Vchec ← Point set to check for processing
M ← Environment map with decomposing lines of step 1
 
Begin OAECD-Algorithm Procedure
1for every convex vertex of each obstacle in Vc do
2find the closest vertex in the set of all vertices of other obstacles by comparing the distances between the current vertex and other vertices
3end for
4for each vc1 in Vc do
5if there is no decomposing line that is already connected with vc1 then
6  if va1 is included in the region of the opposite angle of vc1 and line(vc1, va1 in V) is not intersected with other obstacles or other lines then
7   draw decomposing line from vc1 to va1 and insert vc1 to Vcheck
8  else if
9else if all angles near vc1 are less than or equal to 180° then
10  insert vc1 to Vcheck
11end if
12end for
End OAECD-Algorithm Procedure
Generally, the cells created by the cell decomposition methods are shaped as a convex polygon to avoid being penetrated by obstacles. Therefore, only the convex vertices of the obstacles are considered in this step because the concave vertices of the obstacles obviously result in convex vertices of the free cell. In other words, there is no need to make an additional decomposing line from some vertices if they preserve the concaveness. In addition, the closest neighboring vertex is chosen to reduce the number of possible cells and the possibility of crossing with other decomposing lines. Here, vc2 is a convex vertex of an obstacle in Vc-Vcheck, va2 is a vertex in the region of the opposite angle of vc2, and Vi is the set of all vertices inside the region of the opposite angle of vc2.
Algorithm 6. Pseudo Code of the modified OAECD (Step 2).
Input:
VcR//R: Result of the EDP polygonal approximation of all obstacles represented as a set of point lists
M ← Environment map
Vcheck ← Point set to check for processing (Result of previous step 1)
Output:
Vcheck ← Point set to check for processing (Result of this step)
M ← Environment map with the decomposing lines of step 1 and 2
 
Begin OAECD-Algorithm Procedure
1for each vc2 in Vc - Vcheck do
2if there is no decomposing line that is already connected with vc2 then
3  if va2 has the shortest distance with vc2 compared with those in Vi - {va2} and line(vc2, va2 in Vi) is not intersected with the obstacle and other lines then
4    draw decomposing line from vc2 to va2 and insert vc2 to Vcheck
5  end if
6else if all angles near vc2 are less than or equal to 180° then
7  insert vc2 to Vcheck
8end if
9end for
End OAECD-Algorithm Procedure
From Step 2, the decomposing line from vc2 to va2 is drawn, and vc2 is inserted into Vcheck although va2 is not the closest vertex in V. Here, vc3 is an unchecked convex vertex of each obstacle.
Algorithm 7. Pseudo Code of the modified OAECD (Step 3).
Input:
VcR//R: Result of the EDP polygonal approximation of all obstacles represented as a set of point lists
M ← Environment map
Vcheck ← Point set to check for processing (Result of previous step 2)
Output:
M ← The final environment map with decomposing lines of steps 1, 2, and 3
 
Begin OAECD-Algorithm Procedure
1for each vc3 in Vc - Vcheck do
2if there is no decomposing line that is already connected with vc3 then
3draw decomposing line from vc3 in the direction of half angle of the opposite angle of vc3 until it intersects with the boundary of the environment, other obstacles, or other lines and insert vc3 to Vcheck
4else if all angles near vc3 are less than or equal to 180° then
5  insert vc3 to Vcheck
6end if
7end for
End OAECD-Algorithm Procedure
The time complexity of the modified OAECD is O(n2) because the sub-time complexity is basically all O(n2) for Step 1, Step 2, and Step 3. In addition, the time complexity for Step 3 can be reduced to O(nlogn) approximately when the sweep-line method [22,23] is applied.

4. Experimental Results

Two types of experiments were conducted to find the performance of the proposed EDP and modified OAECD algorithm. An additional simulation has been performed to verify the feasibility of the modified OAECD algorithm for a map with curvilinear obstacles. The first experiment is conducted to compare the approximation error and the number of vertices of the approximated polygon made by EDP and DP. In each experiment, twenty maps were chosen in the pre-created one hundred fifty random maps, each of which is assumed to be 20 × 20 m2 in size and randomly have the position of the obstacle, position of the vertices of each obstacle, and area of the obstacle by using the random function in the math library of the MS Visual C++ compiler. The number of obstacles and vertices of each obstacle were fixed at fifteen. Bezier curve was used for the curvilinear obstacle representation by interconnecting the vertices of each obstacle and creating naturally curved obstacles. Each map was created by an image in bitmap format.
The second experiment was conducted to compare the performance of the OAECD algorithm and the VCD algorithm. Similar to the first experiment, the size of the map was assumed as 20 × 20 m2, and the position of the obstacle, positions of the vertices of each obstacle, number of vertices of each obstacle, and number of obstacles in the map were random variables.
Table 1 shows the experimental results by averaging the results of each experiment. Here, IA is the percentage area of the inner space of the approximated polygons outside the obstacle regions in comparison with the area of the original obstacle region. OA is the percentage area of the outer space of the approximated polygons inside the obstacle regions in comparison with the area of the original obstacle region. SA is the sum of IA and OA. AVG is the average values for various ε.
From Table 1, the average approximation error of the result of the EDP algorithm is approximately 5 times larger than that of DP algorithm to cover the entire area of the original obstacle regions.
Table 2 shows the experimental results by averaging the results of ten experiments with 15 random obstacles and 15 random vertices for each obstacle.
From Table 2, on average, the result of the EDP algorithm has 2.88 times more vertices than the result of the DP algorithm when θrot for EDP is 30°.
Figure 7 shows a graphical representation of Table 1 and Table 2. The approximation performance of EDP is worse than DP in the aspects of IA, SA, and average number of vertices. Nonetheless, OA of EDP is completely zero and better than DP since the result of the EDP can cover the entire area of the original obstacle regions.
Table 3 compares the performance of the modified OAECD algorithm and VCD algorithm. Here, NV is the total number of vertices in the connectivity graph, VV is the number of vertices that composes the generated path by the A* algorithm, and PL is the path length.
From Table 3, the path length by the modified OAECD algorithm is 60.7% shorter than the path length by VCD algorithm on average.
Figure 8 shows the comparison of VCD with DP and OAECD with EDP to show the feasibility of the modified OAECD algorithm for maps with static curvilinear obstacles.
The EDP shows that the polygonal approximation completely covers each obstacle. In addition, the OAECD shows a more natural-looking and efficient path than VCD in Figure 8a. The path from VCD with the DP algorithm may also easily collide with the obstacle, such as Figure 8b.
Even though the path in Figure 8a is more natural looking than that in Figure 8b, there are still some sharp corners which may occur generating an additional problem of motion control for real-world robots due to kinematic constraints. These corners can be smoothed by some additional path smoothing techniques [5,24].

5. Conclusions

In this paper, the Expanded Douglas–Peucker (EDP) polygonal approximation algorithm and its application method for the Opposite Angle-based Exact Cell Decomposition (OAECD) are proposed for the mobile-robot path-planning problem with curvilinear obstacles. In addition, mathematical analysis has been conducted to guarantee the circumscription of obstacle regions by the EDP approximation. Since OAECD is basically focused on the static environment, OAECD is not robust enough to sensor noises in the dynamic environment. Nonetheless, the proposed method is useful with both polygonal and curvilinear obstacles, since the EDP approximation can guarantee the circumscription of obstacle regions, and the modified OAECD algorithm can effectively reduce the number of decomposing cells.
The experimental results show that the path generated by the OAECD algorithm with the EDP approximation looks much more natural and is collision-free. That path is also more efficient than the path generated by the VCD algorithm with DP approximation, although on average, the EDP approximation may induce a larger approximation error and more approximation vertices than DP approximation.

Author Contributions

Idea and conceptualization: J.-W.J. and S.-B.C.; methodology: J.-W.J. and S.-B.C.; software: S.-B.C. and Y.S.; experiment: S.-B.C., J.-.G.K. and D.-W.L.; validation: J.-W.J.; investigation: S.-B.C. and J.-G.K.; resources: J.-W.J.; writing: J.-W.J., S.-B.C., J.-G.K., D.-W.L. and Y.S.; visualization: S.-B.C. and J.-G.K.; project administration: J.-W.J.

Funding

This research was supported by the Ministry of Science and ICT, Korea, under the National Program for Excellence in Software supervised by the Institute for Information & Communications Technology Promotion (2016-0-00017), the KIAT (Korea Institute for Advancement of Technology) grant funded by the Korea Government (MOTIE: Ministry of Trade Industry and Energy) (No. N0001884, HRD program for Embedded Software R&D) and the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (No. 2018R1A5A7023490).

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Latombe, J.-C. Robot Motion Planning; Kluwer Academic Publishers: Dordrecht, The Netherlands, 1991. [Google Scholar]
  2. Choset, H.; Lynch, K.M.; Hutchinson, S.; Kantor, G.; Burgard, W.; Kavraki, L.E.; Thrun, S. Principles of Robot Motion: Theory, Algorithms, and Implementations; MIT Press: Boston, MA, USA, 2005. [Google Scholar]
  3. La Valle, S.M. Planning Algorithms; Cambridge University Press: Cambridge, UK, 2006. [Google Scholar]
  4. Yang, L.; Qi, J.; Song, D.; Xiao, J.; Han, J.; Xia, Y. Survey of robot 3D path planning algorithms. J. Control Sci. Eng. 2016, 5, 22–44. [Google Scholar] [CrossRef]
  5. Gonzalez, D.; Perez, J.; Milanes, V.; Nashashibi, F. A Review of Motion Planning Techniques for Automated Vehicles. IEEE Trans. Intell. Transp. Syst. 2016, 17, 1135–1145. [Google Scholar] [CrossRef]
  6. Yang, H.; Jia, Q.; Zhang, W. An Environmental Potential Field Based RRT Algorithm for UAV Path Planning. In Proceedings of the 2018 37th Chinese Control Conference (CCC), Wuhan, China, 25–27 July 2018; pp. 9922–9927. [Google Scholar]
  7. Yanyi, Y.; Yingming, Z.; Xingchen, L. An improved artificial potential field algorithm based on nonuniform cell decomposition. In Proceedings of the 2017 6th International Conference on Measurement, Instrumentation and Automation (ICMIA 2017), Zhuhai, China, 29–30 June 2017. [Google Scholar]
  8. Avnaim, F.; Boissonnat, J.D.; Faverjon, B. A practical exact motion planning algorithm for polygonal objects amidst polygonal obstacles. In Proceedings of the IEEE International Conference on Robotics and Automation, Philadelphia, PA, USA, 24–29 April 1988. [Google Scholar]
  9. Brooks, R.A.; Lozano-Perez, T. A subdivision algorithm in configuration space for find path with rotation. IEEE Trans. Syst. 1985, 15, 224–233. [Google Scholar]
  10. Iswanto, I.; Oyas, W.; Imam, C.A. Quadrotor Path Planning Based on Modified Fuzzy Cell Decomposition Algorithm. Telecommun. Comput. Electron. Control 2016, 14, 655–664. [Google Scholar] [CrossRef] [Green Version]
  11. Nora, S.; Tschichold-Gurmann, N. Exact Cell Decomposition of Arrangements Used for Path Planning in Robotics; Technical Report; ETH Zürich, Department of Computer Science: Zürich, Switzerland, 1999. [Google Scholar]
  12. Zhang, L.; Kim, Y.J.; Manocha, D. A hybrid approach for complete motion planning. In Proceedings of the International Conference on Intelligent Robots and Systems, San Diego, CA, USA, 29 October–2 November 2007. [Google Scholar]
  13. Kim, J.-T.; Kim, D.-J. New Path Planning Algorithm based on the Visibility Checking using a Quad-tree on a Quantized Space, and its improvements. J. Inst. Control Robot. Syst. 2010, 16, 48. [Google Scholar] [CrossRef]
  14. Arney, T. An efficient solution to autonomous path planning by Approximate Cell Decomposition. In Proceedings of the 3rd International Conference on Information and Automation for Sustainability, Melbourne, Australia, 4–6 December 2007. [Google Scholar]
  15. Rosell, J.; Iniguez, P. Path planning using Harmonic Functions and Probabilistic Cell Decomposition. In Proceedings of the IEEE International Conference on Robotics and Automation, Barcelona, Spain, 18–22 April 2005. [Google Scholar]
  16. Cowlagi, R.V.; Tsiotras, P. Beyond quadtrees: Cell decompositions for path planning using wavelet transforms. In Proceedings of the 46th IEEE Conference on Decision and Control, New Orleans, LA, USA, 12–14 December 2007. [Google Scholar]
  17. Ghita, N.; Kloetzer, M. Cell Decomposition-Based Strategy for Planning and Controlling a Car-like Robot. In Proceedings of the 14th International Conference on System Theory and Control, Sinaia, Romania, 17–19 October 2010. [Google Scholar]
  18. So, B.-C.; Jung, J.-W. Mobile Robot Path Planning with Opposite Angle-Based Exact Cell Decomposition. Adv. Sci. Lett. 2012, 15, 144–148. [Google Scholar] [CrossRef]
  19. Ramer, U. An iterative procedure for the polygonal approximation of plane curves. Comput. Graph. Image Process. 1972, 1, 244–256. [Google Scholar] [CrossRef]
  20. Hwang, Y.-S.; Lee, J. Robust 3D map building for a mobile robot moving on the floor. In Proceedings of the 2015 IEEE International Conference on Advanced Intelligent Mechatronics (AIM), Busan, Korea, 7–11 July 2015; pp. 1388–1393. [Google Scholar]
  21. Gao, H.; Hu, M.; Gao, T. Robust detection of median filtering based on combined features of difference image. Signal Process. Image Commun. 2017, 72, 126–133. [Google Scholar] [CrossRef]
  22. Douglas, D.; Peucker, T. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature. Can. Cartogr. 1973, 10, 112–122. [Google Scholar] [CrossRef]
  23. Chazelle, B.; Edelsbrunner, H. An optimal algorithm for intersecting line segments in the plane. In Proceedings of the 29th Annual Symposium on Foundations of Computer Science, White Plains, NY, USA, 24–26 October 1988. [Google Scholar]
  24. Ravankar, A.; Ravankar, A.; Kobauashi, Y.; Hishino, Y.; Peng, C.-C. Path smoothing techniques in robot navigation: State-of-the-art, current and future challenges. Sensors 2018, 18, 3170. [Google Scholar] [CrossRef] [PubMed]
Figure 1. An example of Vertical Cell Decomposition (VCD) and its path.
Figure 1. An example of Vertical Cell Decomposition (VCD) and its path.
Applsci 09 00638 g001
Figure 2. Douglas–Peucker (DP) process between P1 and P2: (a) If distmaxε, then (b) lb2 between P1 and distmax point P3 is used for the next base line; (c) If distmax < ε, then (d) lb3 between P3 and P2 is used for the next base line.
Figure 2. Douglas–Peucker (DP) process between P1 and P2: (a) If distmaxε, then (b) lb2 between P1 and distmax point P3 is used for the next base line; (c) If distmax < ε, then (d) lb3 between P3 and P2 is used for the next base line.
Applsci 09 00638 g002
Figure 3. Abstract process of Expanded Douglas–Peucker (EDP) algorithm: (a) Before applying EDP for a convex corner; (b) After applying EDP for a convex corner; (c) Before applying EDP for a concave corner; (d) Overall appearance after applying EDP for a concave corner.
Figure 3. Abstract process of Expanded Douglas–Peucker (EDP) algorithm: (a) Before applying EDP for a convex corner; (b) After applying EDP for a convex corner; (c) Before applying EDP for a concave corner; (d) Overall appearance after applying EDP for a concave corner.
Applsci 09 00638 g003
Figure 4. Detailed process of the EDP: (a) Convex; (b) Concave.
Figure 4. Detailed process of the EDP: (a) Convex; (b) Concave.
Applsci 09 00638 g004
Figure 5. Circumscription of EDP: (a) Convex; (b) Concave.
Figure 5. Circumscription of EDP: (a) Convex; (b) Concave.
Applsci 09 00638 g005
Figure 6. Decomposition results of each step in the modified Opposite Angle-Based Exact Cell Decomposition (OAECD) algorithm after the EDP algorithm: (a) Environment; (b) Result of step 1; (c) Result of step 2; (d) Result of step 3.
Figure 6. Decomposition results of each step in the modified Opposite Angle-Based Exact Cell Decomposition (OAECD) algorithm after the EDP algorithm: (a) Environment; (b) Result of step 1; (c) Result of step 2; (d) Result of step 3.
Applsci 09 00638 g006
Figure 7. Performance comparison between EDP and DP for various ε values: (a) Ratio of the inner space of the approximated polygons outside the obstacle region (IA); (b) Ratio of the outer space of the approximated polygons inside the obstacle region (OA); (c) Sum of IA and OA (SA); (d) Average number of vertices created by EDP and DP (The numbers of obstacles and vertices of each obstacle were fixed as 15, and θrot for EDP was fixed as 30°).
Figure 7. Performance comparison between EDP and DP for various ε values: (a) Ratio of the inner space of the approximated polygons outside the obstacle region (IA); (b) Ratio of the outer space of the approximated polygons inside the obstacle region (OA); (c) Sum of IA and OA (SA); (d) Average number of vertices created by EDP and DP (The numbers of obstacles and vertices of each obstacle were fixed as 15, and θrot for EDP was fixed as 30°).
Applsci 09 00638 g007
Figure 8. Comparison between OAECD with EDP and VCD with DP (ε = 0.05 m): (a) Path planning using EDP and OAECD; (b) Path planning using DP and VCD (The numbers of obstacles and vertices of each obstacle were fixed as 15, and θrot for EDP was fixed as 30°).
Figure 8. Comparison between OAECD with EDP and VCD with DP (ε = 0.05 m): (a) Path planning using EDP and OAECD; (b) Path planning using DP and VCD (The numbers of obstacles and vertices of each obstacle were fixed as 15, and θrot for EDP was fixed as 30°).
Applsci 09 00638 g008
Table 1. Performance comparison between Expanded Douglas–Peucker (EDP) algorithm and Douglas–Peucker (DP) alogrithm for various ε values (The number of obstacles and vertices of each obstacle were fixed as 15, and θrot for EDP was fixed as 30°).
Table 1. Performance comparison between Expanded Douglas–Peucker (EDP) algorithm and Douglas–Peucker (DP) alogrithm for various ε values (The number of obstacles and vertices of each obstacle were fixed as 15, and θrot for EDP was fixed as 30°).
ε (m)EDP (%)DP (%)
IAOASAIAOASA
0.0519.050.0019.052.450.703.15
0.0828.460.0028.464.891.176.06
0.1137.950.0037.957.191.548.73
0.1447.630.0047.639.261.8311.08
0.1757.340.0057.3411.502.0813.58
0.2067.170.0067.1713.382.4815.86
0.2377.110.0077.1115.522.7618.28
0.2687.010.0087.0117.233.2020.43
0.2996.910.0096.9119.553.5623.10
0.32106.70.00106.722.003.8625.85
0.35116.70.00116.723.904.4028.30
0.38127.30.00127.326.914.8331.74
0.41137.90.00137.927.995.2733.26
0.44148.00.00148.030.575.6236.19
0.47158.80.00158.832.135.8637.99
0.50169.50.00169.533.116.6039.72
AVG92.720.0092.7215.532.9918.52
Table 2. Average number of vertices created by EDP and DP (The numbers of obstacles and vertices of each obstacle were fixed as 15, and θrot for EDP was fixed as 30°).
Table 2. Average number of vertices created by EDP and DP (The numbers of obstacles and vertices of each obstacle were fixed as 15, and θrot for EDP was fixed as 30°).
ε (m)Average Number of Vertices
EDPDP
0.0531.0815.92
0.0827.8711.92
0.1125.8910.19
0.1424.689.18
0.1723.678.33
0.2022.857.66
0.2322.137.32
0.2621.556.83
0.2920.976.56
0.3220.156.20
0.3519.325.91
0.3818.975.58
0.4118.635.40
0.4418.065.06
0.4717.655.00
0.5017.164.78
AVG21.917.65
Table 3. Performance comparison between modified Opposite Angle-Based Exact Cell Decomposition (OAECD) and Vertical Cell Decomposition (VCD) (The numbers of obstacles and vertices of each obstacle were fixed as 15).
Table 3. Performance comparison between modified Opposite Angle-Based Exact Cell Decomposition (OAECD) and Vertical Cell Decomposition (VCD) (The numbers of obstacles and vertices of each obstacle were fixed as 15).
(NO, NV)OAECDVCD
NV (ea)VV (ea)PL (m)NV (ea)VV (ea)PL (m)
(1,10)7.604.3028.4312.007.0029.27
(3,10)19.806.0029.1636.6016.5033.43
(5,10)31.7010.2029.8561.8024.7037.84
(7,10)44.1010.6030.3788.2029.9045.89
(9,10)56.8011.9029.68111.8034.6047.90
(11,10)68.5013.4030.88139.0036.8053.64
(13,10)79.2014.9030.62164.7043.8056.38
(15,10)92.5017.6030.92192.0045.7048.31
(15,3)40.709.8028.8876.6028.9057.03
(15,5)54.9011.1029.72108.0029.8051.94
(15,7)69.2013.8029.83141.2037.7059.94
(15,9)84.7015.7030.48174.6043.5054.79
(15,11)100.6017.6030.82207.8043.0053.86
(15,13)116.1021.4031.26249.5046.9058.88
(15,15)130.6020.3031.32279.2043.3055.28
AVG66.4713.2430.15136.2034.1449.63

Share and Cite

MDPI and ACS Style

Jung, J.-W.; So, B.-C.; Kang, J.-G.; Lim, D.-W.; Son, Y. Expanded Douglas–Peucker Polygonal Approximation and Opposite Angle-Based Exact Cell Decomposition for Path Planning with Curvilinear Obstacles. Appl. Sci. 2019, 9, 638. https://doi.org/10.3390/app9040638

AMA Style

Jung J-W, So B-C, Kang J-G, Lim D-W, Son Y. Expanded Douglas–Peucker Polygonal Approximation and Opposite Angle-Based Exact Cell Decomposition for Path Planning with Curvilinear Obstacles. Applied Sciences. 2019; 9(4):638. https://doi.org/10.3390/app9040638

Chicago/Turabian Style

Jung, Jin-Woo, Byung-Chul So, Jin-Gu Kang, Dong-Woo Lim, and Yunsik Son. 2019. "Expanded Douglas–Peucker Polygonal Approximation and Opposite Angle-Based Exact Cell Decomposition for Path Planning with Curvilinear Obstacles" Applied Sciences 9, no. 4: 638. https://doi.org/10.3390/app9040638

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop