Skip to content
/ L2F-sim Public

The Learning to fly project's flight simulator

Notifications You must be signed in to change notification settings

SuReLI/L2F-sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

l2f-sim

Stand-alone simulator for the "Learning To Fly" project

This project was developed at ISAE-Supaero by a team of the DISC department (Complex System Engineering Department). The goal is to provide a simple, efficient, stand-alone library, for the simulation of the flight dynamics of an autonomous glider within convective soaring conditions and the development of Reinforcement Learning control algorithms. The code hosted here contains the library and a few demonstration tools allowing to simulate different controls strategies.

The project website can be found at [Learning to Fly] (http://websites.isae.fr/learning-to-fly/).

Makefile commands:

Clean: -make clean (remove executables and data files) -make clean_exe (remove executables) -make clean_dat (remove data files)

Compile and run:

  • make compile (compile “demo/main.cpp)
  • make all (clean, compile and run)

Exploit the results after the simulation:

  • make 2d_trajectory (plot the 2D trajectory)
  • make 3d_trajectory (plot the 3D trajectory)
  • make variables (plot the online collected variables)

Help:

  • make help (shows the help section)

Principle (design patterns) of the L2F simulator

  • L2F simulations A L2F simulation is primarily defined via the 'L2F::simulation' class. This class is defined in the src directory '/L2Fsim'. It comprises pointers to a 'L2F::flight_zone', a 'L2F::aircraft', a 'L2F::pilot' and a 'L2F::stepper'. Each of these classes is defined in the homonym respective directories. These classes are interface classes: they define the basic attributes and methods that are called by the simulation. In practice, they need to be refined by inheritance in order to define instantiable classes, such as, for example :
  • L2F::beeler_glider for L2F::aircraft
  • L2F::flat_thermal_soaring_zone for L2F::flight_zone
  • L2F::euler_integrator for L2F::stepper
  • L2F::passive_pilot for L2F::pilot
  • Using the library Example provided in the 'demo/main.cpp' file

  • Extending the library The library can be extended by defining new aircrafts, new steppers, new pilots or new flight zones. To do so, create your own classes that inherits from the L2F::aircraft, L2F::stepper, L2F::pilot or L2F::flight_zone basic classes (or any of the already defined classes in the respective directories). Afterwards one can start ones implementation with the constraint that the pure virtual inherited methods necessarily have to be implemented.

Releases

No releases published

Packages

No packages published