UAV Path Planning for Wireless Data Harvesting: A Deep Reinforcement Learning Approach

Harald Bayerlein, Mirco Theile, Marco Caccamo, David Gesbert
7/1/2020
cs.LGcs.ITcs.RO

Official code: hbayerlein/uav_data_harvesting (221 stars, BSD-3-Clause, last commit 2022-01-13).

Abstract

Autonomous deployment of unmanned aerial vehicles (UAVs) supporting next-generation communication networks requires efficient trajectory planning methods. We propose a new end-to-end reinforcement learning (RL) approach to UAV-enabled data collection from Internet of Things (IoT) devices in an urban environment. An autonomous drone is tasked with gathering data from distributed sensor nodes subject to limited flying time and obstacle avoidance. While previous approaches, learning and non-learning based, must perform expensive recomputations or relearn a behavior when important scenario parameters such as the number of sensors, sensor positions, or maximum flying time, change, we train a double deep Q-network (DDQN) with combined experience replay to learn a UAV control policy that generalizes over changing scenario parameters. By exploiting a multi-layer map of the environment fed through convolutional network layers to the agent, we show that our proposed network architecture enables the agent to make movement decisions for a variety of scenario parameters that balance the data collection goal with flight time efficiency and safety constraints. Considerable advantages in learning efficiency from using a map centered on the UAV's position over a non-centered map are also illustrated.

View on arXivView PDF

Code Implementations(1)

BSD-3-Clause

Python implementation of DDQN multi-UAV data harvesting

22148PythonOct 21, 20204 years agoBSD-3-Clause

Similar Papers

Cite this paper

@article{bayerlein2020path,
  title  = {UAV Path Planning for Wireless Data Harvesting: A Deep Reinforcement Learning Approach},
  author = {Harald Bayerlein and Mirco Theile and Marco Caccamo and David Gesbert},
  year   = {2020},
  eprint = {2007.00544},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2007.00544}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2007.00544.svg)](https://codeofpaper.com/paper/2007.00544)

Discussion