Programmable Engine for Drone Reinforcement Applications

GitHub Repo

Managed By Aqeel Anwar
ICSRL Lab Georgia Tech
Governed by Creative Commons license

slider image

What is PEDRA?

PEDRA is a programmable engine for Drone Reinforcement Learning (RL) applications. The engine is developed in Python and is module-wise programmable. PEDRA is targeted mainly at goal-oriented RL problems for drones, but can also be extended to other problems. The engine interfaces with Unreal gaming engine using AirSim to create the complete platform. PEDRA comes equip with a list of rich 3D realistic environments created using Unreal Gaming Engine that can be used for the underlying drone problem. Different level of details are added to make the environments look as realistic as possible. Once the environment is selected, it is interfaced with PEDRA using AirSim. AirSim is an open source plugin developed by Microsoft that interfaces Unreal Engine with Python. It provides basic python functionalities controlling the sensory inputs and control signals of the drone. PEDRA is built onto the low level python modules provided by AirSim creating higher level python modules for the purpose of drone RL applications.


Rich set of 3D realistic environments

PEDRA comes equip with a library of 3D realistic environments that can be used for drone applications. The environments fall into two categories. Indoor environments, and Outdoor environments

More info

Support for Drone Modelling

PEDRA comes equip with three different drone models. The action space of these drones can be defined by user

More info

Tensorflow as ML Platform

PEDRA uses Tensorflow as it's ML platform. Other ML platforms can be used by editing specific python modules

Config file support for user input

PEDRA comes equip with three different drone models. The action space of these drones can be defined by user

More info

Monitor system statistics

During training PEDRA displays GPU and system stats such as utilzation, memory etc using tensorboard

More info

Example ML code as templates

PEDRA supports DeepQLearning and REINFORCE. More algorithms are being added.

More info



This version of PEDRA supports single drone. This is particularly useful for those who are not concerned about distributed algorithms and want simple things to be carried out on single drone



This version of PEDRA supports multiple drones in the same environement. The number of drones is a user defined parameter. This version is helpful for those looking into distributed algorithms



If you find this repository useful for your research please use the following bibtex citations

@ARTICLE{2019arXiv191005547A, author = {Anwar, Aqeel and Raychowdhury, Arijit},
title = "{Autonomous Navigation via Deep Reinforcement Learning for Resource Constraint Edge Nodes using Transfer Learning}",
journal = {arXiv e-prints},
keywords = {Computer Science - Machine Learning, Statistics - Machine Learning},
year = "2019",
month = "Oct",
eid = {arXiv:1910.05547},
pages = {arXiv:1910.05547},
archivePrefix = {arXiv},
eprint = {1910.05547},
primaryClass = {cs.LG},
adsurl = {},
adsnote = {Provided by the SAO/NASA Astrophysics Data System} }


This work was supported in part by C-BRIC, one of six centers in JUMP, a Semiconductor Research Corporation(SRC) program sponsored by DARPA