/Fixedwing-Airsim

Combines JSBSim and Airsim with a python module to simulate a fixedwing

Primary LanguagePythonMIT LicenseMIT

Fixedwing-Airsim

Combines JSBSim and Airsim within a python module to simulate a fixedwing aircraft for Reinforcement Learning (RL)

Installation

  • Install Airsim
  • Install JSBSim
  • Clone this repository onto your system
  • Move the x8 dir into your JSBSim aircraft dir
  • Move the electric800w.xml file into the x8 dir into the engine dir

Usage

Fixedwing-Airsim has several modules that can be used to control a fixedwing aircraft:

  • main.py is the main module that uses the aircraft's autopilot top fly a simple flight profile. This would be a good place to start with the program.
  • Autopilot.py contains the basic and path planning autopilots for a default JSBSim C172 and an x8 UAV. The x8 UAV is validated against real flight data and based on an FDM developed in a wind tunnel.
  • baisc_ic.xml is the default starting conditions for the vehicle 1pixel in UE4 equals 1cm for reference.
  • image_processing.py is still in development and takes images from simulation for use with computer vision algorithms.
  • environment.py is an abstract class of an openAI gym environment.
  • tasks.py is another abstract class that defines state, space, action, reward functions for specific RL tasks.
  • jsbsim_properties.py defines properties available from the JSBSim module and controls possible I/O.
  • jsbsim_simulator.py links JSBSim to AirSim and allows for I/O out of the 2 programmes.

Attribution

If you find our work useful we'd love to hear from you. If you use this repositorty as part of your research can you please cite the repository in your work:

@misc{FW-AirSim,
  author = {Quessy, Alexander},
  title = {Fixedwing-Airsim},
  year = {2021},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/AOS55/Fixedwing-Airsim}}
}

Thank you!