Research Article

Efficient Energy Flight Path Planning Algorithm Using 3-D Visibility Roadmap for Small Unmanned Aerial Vehicle

Algorithm 1. RoadmapCreate

Input: Elevation matrix M in R3.
Output:
1.   FOR (each cut layer in the map; )
2.     cutPlane = Slice(M, Hmin, Hmax, k); //the parametric equation of the cut plane.
3.     FOR (each obstacle; )
4.       IF Obstacle -> highestNode(Z) < k Dcut //check if the obstacle highest node is lower than the cut plane
5.       THEN
6.         For (each edge of the obstacle)
7.         tentativeNode = FindIntersection (cutPlane, edge);
8.         newNode = enlarge(tentativeNode, Dsafe);
9.         N = Add(newNode,obstacleIndex, facetIndex);
10.     ELSE
11.       newNode = [Obstacle -> highestNode(X)
12.             Obstacle -> highestNode(X)
13.             kDcut]
14.       N = Add(newNode,obstacleIndex, facetIndex1, facetIndex2);
15.       BREAK;
16. FOR (Each pair of Node in set N; i = 1,NumberOfNode; j = i + 1,NumberOfNode)
17.   IF (LOScheck() is TRUE)
18.   THEN
19.     P = Add(N(i), N(j));
20.     P = Add(N(j), N(i));
21.  R = (N,P);
22.  SaveToFile(R);
Algorithm 1. RoadmapCreate