L2F has been developed by an engineering student team of ISAE-Supaero, one of the best European aerospace engineering school. The team designed L2F as an open-source software, well documented and easy to adapt to any needs of soaring simulations. For now, it is used by the LearningToFly project as a proof of concept for the autonomous glider controlled by a machine learning algorithm.
The L2F code is divided in four main classes. These classes represent the major elements of a soaring flight (the aircraft, the pilot and the flight zone) and the stepper (representation of time in the simulation). This construction of code allows any users to put his models with his parameters and run simulations adapted to his need.
For now, L2F includes at least one model for each class and can be run properly.
Here a quick description of the classes :
- Class AIRCRAFT
Aircraft implements the aircraft models. An aircraft holds three important concepts : his current configuration, an observation of the current state and a dynamic function which defines the next state given a command instruction. For now, the Beeler Glider model is implemented. This model has been defined by Beeler, Moerder and Cox, in the A Flight Dynamics Model for a Small Glider paper. It defines all the flight mechanical equations of a small glider.More information about the Beeler Glider model : https://ntrs.nasa.gov/search.jsp?R=20040031358.
- Class PILOT
Pilot implements the pilot models. A pilot holds two important concepts : an observation of the current state and a command instruction. Two models are implemented for the moment : a passive pilot defined by a set command and an autonomous pilot controlled with a Q-learning algorithm.
- Class FLIGHT ZONE
Flight Zone defines the flight zone in which the aircraft and its pilot move. A flight zone holds two important concepts : the wind and the ground geography. For now, the implemented model is a flat zone with thermals. The implemented thermal models are the Allen’s model, the Childress’s model, the Lenschow’s model and the Lawrance’s model. The thermals are randomly generated in the flight zone during the simulation.
More information about the thermal models in the Publication page.
- Class STEPPER
Stepper manages the temporal evolution of the system. Given a set delta_t, it moves the current state of the classes Aircraft, Pilot and Flight Zone to the next state. The Euler integrator method and the Runge Kutta method are implemented for now.
L2F is available below for downloading. Any user is free to study, change the code for his purpose and share it. The source code is based on the C++ language and works with Linux, Windows and MacOS operating systems.
The L2F source code is documented with the Doxygen standard. It generates a HTML documentation of the code which provides information on all functions, variables and interfaces. A “readme.txt” file is also provided and informs the user of how to run the simulation.
More informations about Doxygen : www.doxygen.org/
Here you can download the L2F software : SOON
Here you can download the L2F tutorial :