All Projects → fvalka → atc-reinforcement-learning

fvalka / atc-reinforcement-learning

Licence: other
Reinforcement learning for an air traffic control task. OpenAI gym based simulation.

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to atc-reinforcement-learning

c172p
A high detailed version of the Cessna 172P aircraft for FlightGear
Stars: ✭ 64 (+72.97%)
Mutual labels:  aviation, aircraft
Gym Ignition
Framework for developing OpenAI Gym robotics environments simulated with Ignition Gazebo
Stars: ✭ 97 (+162.16%)
Mutual labels:  simulation, openai-gym
Gym Miniworld
Simple 3D interior simulator for RL & robotics research
Stars: ✭ 338 (+813.51%)
Mutual labels:  simulation, openai-gym
descent-app
Top of descent path calculator. Let's calculate your descent!
Stars: ✭ 28 (-24.32%)
Mutual labels:  aviation, aircraft
Fluid-Solver
Rust based marker and cell fluid solver
Stars: ✭ 21 (-43.24%)
Mutual labels:  simulation
HSTPNSim
Using for petri nets simulations
Stars: ✭ 37 (+0%)
Mutual labels:  simulation
hoomd-examples
HOOMD-blue example scripts.
Stars: ✭ 15 (-59.46%)
Mutual labels:  simulation
toy code
No description or website provided.
Stars: ✭ 78 (+110.81%)
Mutual labels:  simulation
ROS-TCP-Connector
No description or website provided.
Stars: ✭ 123 (+232.43%)
Mutual labels:  simulation
megaverse
High-throughput simulation platform for Artificial Intelligence reseach
Stars: ✭ 148 (+300%)
Mutual labels:  simulation
differential-growth
adrianton3.github.io/differential-growth/
Stars: ✭ 27 (-27.03%)
Mutual labels:  simulation
TriangleMeshDistance
Header only, single file, simple and efficient C++11 library to compute the signed distance function (SDF) to a triangle mesh
Stars: ✭ 55 (+48.65%)
Mutual labels:  simulation
docker
Scripts to build and use docker images including GHDL
Stars: ✭ 27 (-27.03%)
Mutual labels:  simulation
TaichiGAME
GPU Accelerated Motion Engine based on Taichi Lang.
Stars: ✭ 35 (-5.41%)
Mutual labels:  simulation
robotic-warehouse
Multi-Robot Warehouse (RWARE): A multi-agent reinforcement learning environment
Stars: ✭ 62 (+67.57%)
Mutual labels:  simulation
FinRL
FinRL: The first open-source project for financial reinforcement learning. Please star. 🔥
Stars: ✭ 3,497 (+9351.35%)
Mutual labels:  openai-gym
fluid-simulator
Real-time 2D fluid simulator with lots of visualization options.
Stars: ✭ 24 (-35.14%)
Mutual labels:  simulation
ORBITM
🌏 📡 🌏 📡 ORBITM - Orbit maintenance, propulsion sizing, and life-time estimation of space objects!
Stars: ✭ 28 (-24.32%)
Mutual labels:  simulation
nuplan-devkit
The devkit of the nuPlan dataset.
Stars: ✭ 107 (+189.19%)
Mutual labels:  simulation
Omega2D
Two-dimensional flow solver with GUI using vortex particle and boundary element methods
Stars: ✭ 17 (-54.05%)
Mutual labels:  simulation

DOI Codacy Badge codecov

Reinforcement Learning of Air Traffic Control Tasks

Project Proposition

The goal is to train a neural network to perform basic Air Traffic Control Tasks through reinforcement learning.

This approach could improve throughput of a sector, noise abatement and increase efficiency through continuous climb and descend profiles, which for example could save 1-2% of fuel.2

Presentation

A presentation was held about this project, the presentation and a demo video of the results can be downloaded and cited here: DOI

Approach ATC Task

Air traffic control (ATC) is a service provided by ground-based air traffic controllers who direct aircraft on the ground and through controlled airspace, and can provide advisory services to aircraft in non-controlled airspace. 1

One ATC task is approach control, which is the job of directing aircraft which are approaching an airport onto the final approach course at the correct altitude and within a 45 degree arc of the final approach course.

Once the aircraft is established on the final approach it is handed over to the tower controller.

Basic Simulation Requirements

The task can be simulated in a simple fashion and later further complexities can be added to the simulation, the basic features for a minimal viable simulation would be as follows.

Environment

  • Simulate a minimum vectoring altitude. This is basically a coarse approximation of the terrain
  • At least one aircraft. Initially a single aircraft could be simulated
  • Runway with a final approach course
  • Final approach fix. This would be the target point to which the plane should move at or below a specific altitude
  • Basic aircraft model with fixed turn rate and descend/climb rate

Actions

  • Assign a heading to the airplane
  • Assign an altitude to the airplane

Reward

  • Bringing the aircraft to the Final Approach Fix (FAF) at the correct altitude and within the correct angle, wins the simulation
  • Every time step in which the airplane has not reached the FAF yet carries a small penalty
  • Descending the airplane below the Minimum Vectoring Altitude carries a heavy penalty
  • Not maintaining sufficient separation (e.g. 3nm and 1000ft) between two aircraft carries a heavy penalty
  • Having the aircraft leave the sector carries a heavy penalty

All heavy penalties could also be simulation end/game over state.

Ideas for the Possible Extension of the Simulation

This problem allows for much more realism than described in the basic model above.

Environment

  • Multiple aircraft, all controlled by the neural network
  • Restricted and danger areas which can not be used, through which no aircraft might be vectored
  • Noise abatement areas which should be avoided, especially at low altitudes
  • Realistic aircraft model, with realistic climb rate, descend rate, turn rate
  • Variable Wind
  • Weather/Thunderstorms through which aircraft can not be vectored which are moving on the map
  • Multiple runways
  • Departing aircraft

Actions

  • Assign a specific airspeed

Reward

  • Realistic fuel usage and penalties for higher fuel usage
  • Aircraft performance and altitude based noise immission model with penalties for higher noise levels, especially over noise sensitive areas
  • Penalties for flight through or close to thunderstorms

A complex scenario could look like this:

Implementation

The implementation consists of a simulation of the air traffic control task, with models for the airplane, minimum vectoring altitudes, airspace, and runway.

A second part is implemented for applying different reinforcement learning algorithms for optimizing the implemented simulation.

This approach provides a defined interface, based upon the OpenAI Gym implementation which can be plugged into different RL algorithms for evaluating the performance of different RL algorithms on this task.

Structure

OpenAIs Gym Env is used as the interface between the simulation and RL algorithms.

Graphics Rendering

The 2D rendering of the current simulation state is based upon the OpenAI Gyms' rendering library which used pyglet as its graphics backend.

Units of Measure

Aviation typical imperial units of measure are used throughout the environment.

Parameter Unit
Altitude Feet
Vertical Speed Feet per minute
Distance Nautical miles
Speed Knots
Heading Degrees

Original Implementation Ideas

The implementation can be split into two major parts: The simulation and the neural network.

Simulations can for example be implemented using the OpenAI gym. This implementation could also be reused in the future by other researchers.

The neural network could for example be implemented based upon a Deep-Q architecture, which is readily available for the OpenAI gym in various ML frameworks, for example PyTorch.

Air Traffic Simulation

Implementation of the simulator could either be done by ourselves or based upon the integration of already available air traffic control packages.

Aircraft Performance Model

For simulating the aircraft performance multiple approaches appear viable. There is a performance model written and maintained by Eurocontrol called BADA. This seems very comprehensive, is available under free but complicated licensing terms, which would make collaboration more difficult. BADA 3 available on request at: https://badaext.eurocontrol.fr/

There is also a free kinematics simulation based upon ADS-B recordings: https://github.com/junzis/wrap But it doesn't contain very detailed fuel usage models. Which would necessitate a more comprehensive fuel modeling.

A physical model for the fuel usage at certain altitudes and thrust settings is available at: http://www.mit.edu/~hamsa/pubs/ICRAT_2014_YSC_HB_final.pdf

This would probably also require at least a rudimentary modeling of the engine thrust based upon the current speed and acceleration/deceleration. For a more basic model only an approximation of the altitude dependency of the function will be necessary.

The bluesky simulator already supports both BADA 3 and the open kinetics model.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].