Keywords

1 Introduction

Unmanned Aerial Vehicles (UAVs) have a wide range of applications. Multicopters, in particular, have found great popularity due to their maneuverability and relative low cost (Cai et al. 2014). However, the state of the art only provides solutions for point-to-point navigation in free space: therefore their application in cluttered environments still depends heavily on remote control by a human operator.

In most cases, UAV missions consist of a sequence of movements interleaved with operations that involve the payload, such as taking photographs or dropping a package. To increase the degree of automation in such missions, systems are needed that can adapt the flight plan to newly-discovered information about the environment.

Many strategies found in the literature (see Goerzen et al. 2010 for a broad classification; Kendoul 2012 for a more recent and comprehensive review) rely on the creation and periodic update of a detailed model of the drone surroundings. For concrete examples of this approach, see Nieuwenhuisen and Behnke (2014), Hrabar (2011).

Qualitative approaches, on the other hand, could mimic the adaptability of human operators without storing such a great amount of information.

To this effect, we propose an algorithm that can guide a multicopter UAV towards a destination waypoint, adapting the route as new obstacles are detected. Both obstacle detection and path replanning are based on the evaluation of GPS information together with a depth map, i.e. raster data acquired from an on- board depth camera. The algorithm is reactive: no model of the environment is stored in memory, and decisions only rely on the currently available sensor data.

2 Assessing Visibility Relationships

We can use our knowledge of both the UAV and the target’s GPS coordinates to point the depth camera towards the target and then “project” the latter on a pixel p of the depth map.

We can then compute the waypoint-UAV visibility relation according to the qualitative framework presented in Fogliaroni and Clementini (2014). This is achieved by evaluating a neighborhood of p whose size depends on the distance between the UAV and the target.

3 Wayfinding

When an obstacle occludes the target, we need to find an escape waypoint. This is an intermediate position that is already visible from the current position of the UAV, and from which the original target should be visible unless more obstacles are detected along the way.

Wayfinding is a two-step process: first we have to rule out points that are visible but too close to obstacles. This can be done by applying a “depth-aware” dilation filter to the depth map.

We then choose the candidate that minimizes the overall distance from the target, and apply a transformation to obtain the GPS coordinates of the escape waypoint.

4 Simulation

Currently the algorithm is implemented as a set of Python 3 scripts that communicate with a simulated quadcopter inside the Coppelia V-REP robotic platform (Rohmer et al. 2013).

The tests show good performance even with lower depth map resolutions, as the effective path taken by the UAV is well below 1.1x the distance between the start position and the target waypoint.