1 Introduction

Finding a cost-efficient trajectory to cover a given area of interest is called the area coverage problem [9] and it can be found in several tasks such as lawn-mowing [4], vacuum cleaning [13], search and rescue [19], demining [8], car parts painting [3], or area mapping [20]. The herein proposed solution of the problem is motivated by information gathering missions with a fixed-wing Unmanned Aerial Vehicle (UAV) where it is necessary to satisfy the vehicle motion constraints such as the minimum turning radius and maximum climb/dive ratios. Besides, we are specifically focused on scenarios where the area to be covered is surrounded by nearby obstacles because existing coverage planning approaches address obstacles in the area by its decomposition into multiple obstacle-free cells.

In particular, cellular decomposition methods identify the obstacles first, and based on the particular method used; the area is split into cells without any obstacle. Individual cells can have various shapes and the mostly used decomposition methods [6] are the boustrophedon decomposition [5], trapezoidal decomposition [12], Morse decomposition [1], topological decomposition [21], and polygonal decomposition [11]. Besides, grid-based methods represent the area to be covered as a discrete uniform grid of cells that can be rectangular [15], triangular [17], or hexagonal [19]. Then, each cell is examined for a possible collision with obstacles, and a path to visit all obstacle-free cells is determined. Therefore, regardless of the decomposition method, the obstacles can surround the determined obstacle-free cells.

The most efficient way for covering an obstacle-free cell is to use so-called zigzag covering pattern [22], which is also called boustrophedon pattern [5] that is visualized in Fig. 1. The pattern covers the area by repetitive movement from one side to another until the whole area is covered. The important parameter of the zigzag pattern is the coverage direction of the straight covering segments since it influences the final length significantly. The favorable direction can be determined according to the shape of the given area [14, 22].

Fig. 1.
figure 1

An example of the zigzag pattern.

Since an efficient solution to the area coverage problem has been already developed [22], we consider the existing solution in our specific variant of the area coverage problem with nearby obstacles and fixed-wing vehicle. We propose to model the vehicle as Dubins Airplane model [18] in 3D to address the vehicle motion constraints and obstacles surrounding the coverage area by adjusting the vehicle altitude and thus avoid collision with the nearby obstacles. Moreover, if a collision-free solution for the complete coverage is not found, the complete coverage is relaxed in a benefit of a feasible solution with partial coverage.

2 Problem Statement

The studied problem is to find a feasible, shortest collision-free trajectory for a fixed-wing UAV to completely cover a given convex area. It is assumed that the area to be covered has a polygonal shape with the dominant orientation, and it is obstacle-free, e.g., the area can be an obstacle-free cell provided by one of the existing approaches to the area coverage problem. For this setup with the pre-selected dominant orientation, the straight covering maneuvers are determined as the zigzag pattern [22], and thus the covering maneuvers are collinear. Hence, the area coverage problem is transformed to the problem how to connect the straight covering maneuvers such that the motion constraints of the vehicle are satisfied and the final trajectory avoids nearby obstacles by adjusting altitude of the vehicle. An example of the covering and connecting maneuvers is in Fig. 2.

Fig. 2.
figure 2

A solution of the addressed area coverage problem with zigzag pattern, where the covering maneuvers (shown in the blue) are concatenated by the connecting maneuvers (in the red) into the final curvature-constrained path. (Color figure online)

The transformed problem is to determine the most suitable connecting maneuvers and order of visits to the covering maneuvers such that the length of the final collision-free trajectory is minimized and the motion constraints of Dubins Airplane model [18] are satisfied. The used model limits a curvature of the trajectory by the minimum turning radius \(\rho \), as for Dubins vehicle [7]. In addition, the model considers the vehicle altitude, and thus the state of the vehicle is represented by its position (xyz), heading angle \(\theta \), and the pitch angle \(\psi \) for which the vehicle motion can be expressed as

$$\begin{aligned} \begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{z} \\ \dot{\theta } \end{bmatrix}&= v \begin{bmatrix} \cos \theta \cos \psi \\ \sin \theta \cos \psi \\ \sin \psi \\ u_{\theta } \rho ^{-1} \end{bmatrix}, \end{aligned}$$
(1)

where v is the fixed forward velocity of the vehicle, \(u_{\theta } \in [-1,1]\) is the control input, \(\rho \) is the minimum turning radius, and the pitch angle \(\psi \) is constrained by the allowed range (2) to model the real properties of the vehicle.

$$\begin{aligned} \psi \in \langle \psi _{min}, \psi _{max}\rangle \end{aligned}$$
(2)

The coverage problem can be then formulated as a variant of the Traveling Salesman Problem (TSP) [2] which stands to find a sequence of the covering maneuvers such that the whole area is covered, the length of the final path is minimized, and the final trajectory is feasible and collision-free. The covering maneuvers are straight line segments that satisfy the motion constraints (1) and (2) of Dubins Airplane model, and they are collision-free because the area is obstacle free. Besides, the complete coverage is satisfied by traveling along all the covering maneuvers. However, we still need to address the combinatorial part of the TSP and determine the most suitable connecting maneuvers, and thus the problem is formally defined as follows.

Let has a set of n collinear covering maneuvers located at the specific height above the terrain to provide complete coverage using a particular sensor attached to the vehicle. Each covering maneuver can be accomplished from two opposite directions that correspond to the covering trajectories \(s_{\sigma _i}^1\) and \(s_{\sigma _i}^2\) for the i-th covering maneuver. The covering trajectories are connected into the final trajectory consisting of 2n segments \(\{m_1, m_2, \ldots , m_{2n}\}\) because two covering trajectories are connected by the connecting trajectory (maneuver). Every trajectory segment \(m_i\) is defined by a projection function \(m_i: \mathbb {R} \rightarrow \mathbb {R}^3 \times \mathbb {S}^1\) where the initial and final states of \(m_i\) are \(m_{i}(0)\) and \(m_{i}(1)\), respectively. Then, the final trajectory can be represented by the permutation \(\varSigma \) of the covering maneuvers accompanied by the sequence of directions D defining how the individual maneuvers are traveled.

$$\begin{aligned} \varSigma&=(\sigma _1,\ldots ,\sigma _n)&1\le \sigma _i \le \sigma _n, \end{aligned}$$
(3)
$$\begin{aligned} D&=(d_{\sigma _1}, \ldots , d_{\sigma _n})&d_{\sigma _i}\in \{1, 2\}. \end{aligned}$$
(4)

Based on these preliminaries, the coverage problem can be formulated as the optimization problem to minimize the total length of the covering trajectory consisting of 2n trajectory segments, each with the length \(\mathcal {L}(m_i)\):

$$\begin{aligned} {\text {minimize}}_{\varSigma ,D}~&\sum _{i=1}^{2n} \mathcal {L}\left( m_i\right) , \end{aligned}$$
(5)
$$\begin{aligned} \text {subject to }&\nonumber \\&m_i(1) = m_{i+1}(0)&\forall i \in {1,\ldots , 2n},\end{aligned}$$
(6)
$$\begin{aligned}&m_{2i-1} = s_{\sigma _i}^{d_i}&\forall i \in {1,\ldots , 2n},\end{aligned}$$
(7)
$$\begin{aligned}&m_{2n}(1) = m_1(0), \end{aligned}$$
(8)
$$\begin{aligned}&\varSigma =(\sigma _1,\ldots , \sigma _n)&1\le \sigma _i \le \sigma _n, \end{aligned}$$
(9)
$$\begin{aligned}&D=(d_{\sigma _1}, \ldots , d_{\sigma _n})&d_{\sigma _i}\in \{1, 2\}. \end{aligned}$$
(10)

The sum of the coverage maneuver lengths is fixed because all covering maneuvers have to be traveled and their lengths do not depend on the orientation. Therefore, the optimization is performed over the connecting maneuvers, the order of visits to the covering maneuvers \(\varSigma \), and directions D. Moreover, the nearby obstacles around the coverage area may block simple connecting maneuvers, and therefore, they have to be adjusted to provide a collision-free solution, which is addressed in the proposed method described in the following section.

3 Proposed Method

The proposed solution of the addressed area coverage problem with Dubins Airplane model leverages on the existing zigzag pattern approach [22]. Hence, the collinear covering maneuvers are determined according to the zigzag pattern in the direction defined by the longest edge of the given polygonal area [14] and the determined covering maneuvers have to be connected into the final covering trajectory. Note the direction may significantly impact the solution, see Fig. 3.

Fig. 3.
figure 3

An influence of various coverage directions on the final path length using the zigzag pattern on the square area of \(500 \times 500\) m.

Although covering maneuvers are selected at the fixed height above the terrain, and the maximum slope is assumed to be small enough for the used fixed-wing UAV, the collision-free connecting maneuvers satisfying the motion constraints (1) have to be determined. The construction of the connecting maneuvers can be based on 2D Dubins maneuvers [7] generalized to 3D maneuvers [18]. Since it is necessary to avoid possible collisions only with the nearby obstacles, we can avoid a possible collision by adjusting the connecting maneuver. The only possible way to avoid the collision is to adjust the trajectory altitude such that the vehicle would fly over the obstacles. Therefore, the minimum necessary altitude increase is determined by sampling the terrain height beneath the trajectory and estimating the minimum non-collision altitude profile for the vehicle according to the pitch angle limitation (2). The result is always convex envelop of the altitude with the highest point at the place of the most upper part of the specific obstacle, and thus the process is computationally effective.

Fig. 4.
figure 4

Nearby obstacle (in the red) forces the vehicle to increase its altitude during the connecting maneuver. If the required altitude is too high, two neighboring covering maneuvers cannot be connected (left) and the altitude has to be gain on the covering maneuver (right), which may decrease the area coverage. (Color figure online)

If the altitude change has to be significant, it may happen that the connecting maneuver cannot be directly linked to the specific covering maneuver, because an altitude discontinuity would occur. In such a case, the connection of two covering maneuvers is not possible, or we need to adjust the altitude of the covering maneuver at the cost of possible loss of the complete coverage. For the latter case, we utilize the maximal pitch angle to gain the altitude and minimize the uncovered area. An adjustment of the covering maneuver is depicted in Fig. 4.

After determination of the all connecting maneuvers and necessary updates of the covering maneuvers, the coverage problem is transformed into the Generalized Asymmetric TSP (GATSP). The transformation is provided by calculating all possible connecting maneuvers which can be bounded by \(\mathcal {O}(n^2)\). The covering maneuvers are considered as the nodes in the GATSP, as their lengths change only slightly, and the connecting maneuvers define the cost of the edges between the respective nodes (covering maneuvers). If a specific connecting maneuver needs altitude change for the respective covering maneuver (i.e., shortening the covering maneuver), the length change is considered in the connecting maneuver because the change is related only to that connecting maneuver.

The altitude change of the covering maneuver may result in the coverage loss, and therefore, an additive penalization p to the length of the connecting maneuver is introduced to trade-off the solution length and possible coverage loss. The penalization p is defined as

$$\begin{aligned} p&= k \left( x_n - x_o \right) , \end{aligned}$$
(11)

where \(x_o\) stands for the original length of the covering maneuver and \(x_n\) is the extended length because of the altitude change. The parameter k sets the power of the penalization, and for \(k=1\), only the length of the connecting maneuvers is considered. For \(k>1\), trajectories with small uncovered parts are favored.

Fig. 5.
figure 5

Example of the area coverage with and without nearby obstacles.

After applying the penalization, the GATSP is transformed to the TSP using Noon-Bean transformation [16] that is solved by Lin-Kernighan heuristic algorithm [10] to find a high-quality solution in a reasonable time. An example of the final trajectories for a polygonal coverage area both with and without obstacles is depicted in Fig. 5. Evaluation results of the proposed method are reported in the next section.

4 Results

The proposed method has been evaluated in five scenarios designed to verify specific properties of the proposed approach including comparison with the reference approach [22] which, however, does not explicitly consider nearby obstacles. In all scenarios, the parameters of the used fixed-wing UAV are as follows. The coverage altitude is 20 m, the minimum turning radius is \(\rho =40\) m, the maximum climb and dive angles are \(30^{\circ }\), and the sensor field-of-view is 70\(^{\circ }\).

Fig. 6.
figure 6

First scenario with the basic setup of the equal sides 500 m long.

Fig. 7.
figure 7

Influence of the shape of area to the trajectory length. The colors denote the particular numbers of the covering segments in the found solutions. (Color figure online)

In the first scenario, we study the influence of the ratio of the side lengths for a rectangular area 0.25 km\(^2\) large, see Fig. 6. The length of the side a is selected from the range [100, 500] in meters with the step one meter and the second side is computed to keep the same total area. We split the results with the even and odd numbers of covering segments, because for the odd number of segments, one connecting maneuver has to cross the area, and thus it significantly prolongs the total trajectory length. The resulting trajectory lengths are presented in Fig. 7.

Fig. 8.
figure 8

Influence of the minimum turning radius \(\rho \) to the total trajectory length (left); and influence of the obstacle height to the area coverage (right).

In the second scenario, we examine the influence of the minimum turning radius of the total trajectory length. The same setup as in the previous case is used but with the equal sides of the rectangular area and no obstacles for simplicity. The value of \(\rho \) is selected from the range \(\rho \in [20,100]\) in meters with the step one meter and the length of the found solutions are depicted in Fig. 8a. Discontinuities can be observed for \(\rho \) equal to an integer multiple of the distance between the covering maneuvers because the respective connecting maneuvers are selected between farther covering maneuvers.

A similar setup is also used for the third scenario, where we study the influence of the height of the surrounding obstacles that are considered to be up to 400 m tall above the terrain located around the area that is \(475\times 500\) m large. The surrounding obstacles with the height above 300 m require too high altitude to be avoided, and the area is not covered at all, see Fig. 8b.

In the fourth scenario, we examine the penalization for the uncovered area. The size of the area is set to \(475\times 950\) m, and the height of the obstacles at the shorter side of the area is 20 m. The trajectory length depends on the covering direction. If the direction is in the unblocked side, there is no collision; however, the final trajectory is significantly longer than for the blocked direction, because the final trajectory contains more connecting maneuvers. On the other hand, for the blocked direction, the trajectory length depends on the penalization weight k, see (11), and for a high value of k, the unblocked direction can be preferable, e.g., for \(k>20\) as it is shown in Fig. 9a.

In the last evaluation scenario, the proposed method is compared with the reference approach [22], which does not explicitly address the surrounding obstacles. Therefore, the reference method has been slightly modified, and the covering maneuvers are shortened such that the corresponding connecting maneuvers are collision-free. Since for the connecting maneuvers, the vehicle is tilted in the roll angle, and the sensor is not heading towards the coverage area, the coverage of the area is not considered for the connecting maneuvers. The evaluation of the methods is based on the amount of the covered area according to the ratio of the sides of the rectangular area to be covered. The results are shown in Fig. 9b and they support the feasibility of the proposed approach to explicitly consider obstacles surrounding the coverage area as the proposed method provides noticeably higher coverage. Because both methods provide complete coverage for setups without the surrounding obstacles, the main advantage of the proposed method is to address nearby obstacles while satisfying the vehicle motion constraints.

Fig. 9.
figure 9

Results for the fourth and fifth scenarios: influence of the penalization of uncovered area and choice of the covering direction (left); and a comparison with the reference method [22] (right).

5 Conclusion

In this paper, we propose a novel method to the area coverage problem with motion constraints of a fixed-wing UAV and presence of nearby obstacles. The proposed method transforms the problem into a variant of the TSP that can be solved by existing combinatorial solvers. The final covering trajectory respects the motion constraints of Dubins Airplane model and avoids possible collisions with the obstacles. The results support the feasibility of the proposed solution with the explicit consideration of the surrounding obstacles and coverage planning for non-holonomic vehicles with the minimum turning radius and limited pitch angle.