Path planning is a major problem in autonomous vehicles. In recent years, with the increase in applications of Unmanned Aerial Vehicles (UAVs), one of the main challenges is path planning, particularly in adversarial environments. In this paper, we consider the problem of planning a collision-free path for a UAV in a polygonal domain from a source point to a target point. Based on the characteristics of UAVs, we assume two basic limitations on the generated paths: an upper bound on the turning angle at each turning point (maximum turning angle) and a lower bound on the distance between two consecutive turns (minimum route leg length).
We describe an algorithm that runs in O(n2 log n) time and finds a feasible path in accordance with the above limitations, where $n$ is the number of obstacle vertices. As shown by experiments, the output of the algorithm is much close to the shortest path with this requirement (always below about 10% of the shortest path), in a much smaller time (up to 10000 quicker, in our experiments). We further demonstrate how to decompose the algorithm into two phases, a preprocessing and a query phase. In this way, given a fixed start point and a set of obstacles, we can preprocess a data structure of size O(n2) in O(n2 log n) time, such that for any query target point we can find a path with the given requirements in O(n log n) time. Finally, we modify the algorithm to find a feasible (almost shortest) path that reaches the target point within a given range of directions.