Coder Social home page Coder Social logo

jdatpnw / qplane Goto Github PK

View Code? Open in Web Editor NEW
46.0 4.0 8.0 1.44 MB

Fixed Wing Flight Simulation Environment for Reinforcement Learning

Python 99.79% Shell 0.21%
xplane jsbsim reinforcement-learning q-learning deep-reinforcement-learning machine-learning deep-learning deep-neural-networks fixed-wing flight-simulator

qplane's Introduction


Logo

QPlane

Fixed Wing Flight Simulation Environment for Reinforcement Learning

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. License
  6. Contact
  7. Acknowledgements

About The Project

This repository is being written as part of my masters thesis. I am trying to develop a fixed wing attitude control system using Reinforcement Learning algorithms. As of right now this code works with XPlane 11 and QLearning as well as Deep QLearning.

Built With

This project is built with these frameworks, libraries, repositories and software:

Getting Started

Simple clone this repository to your local filesystem:

git clone https://github.com/JDatPNW/QPlane

Prerequisites

Tested and running with:

Software Version
XPlane11 Version: 11.50r3 (build 115033 64-bit, OpenGL)
JSBSim Version: 1.1.5 (GitHub build 277)
Flightgear Version: 2020.3.6
XPlaneConnect Version: 1.3-rc.2
Python Version: 3.8.2
numpy Version: 1.19.4
tensorflow Version: 2.3.0
Anaconda Version: 4.9.2
Windows Version: 1909

Installation

  1. Clone the repo
    git clone https://github.com/JDatPNW/QPlane
  2. Install the above listed software (other versions might work)
    • For JSBSim clone the JSBsim repo into src/environments/jsbsim
    • For visualizing JSBSim download the c172r plane model in the Flightgear Menu

Usage

Once downloaded and installed, simply execute the QPlane.py file to run and test the code.

  • For the XPlane Environment, XPlane (the game) needs to run.
  • For JSBSim with rendering, Flightgear needs to run with the following flags --fdm=null --native-fdm=socket,in,60,localhost,5550,udp --aircraft=c172r --airport=RKJJ

Proof

This gif shows an attitude agent (using Q-Learning) in action and compares it to the baseline random agent.

Logo

Full Video in HD

Roadmap

Planned future features are:

  • Double Deep Q Learning

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See misc/LICENSE for more information.

Contact

Github Pages: JDatPNW

Publications

Citation

Please cite QPlane if you use it in your research.

@inproceedings{richter2021qplane,
  title={QPlane: An Open-Source Reinforcement Learning Toolkit for Autonomous Fixed Wing Aircraft Simulation},
  author={Richter, David J and Calix, Ricardo A},
  booktitle={Proceedings of the 12th ACM Multimedia Systems Conference},
  pages={261--266},
  year={2021}
}

or

Richter, D. J., & Calix, R. A. (2021, June). QPlane: An Open-Source Reinforcement Learning Toolkit for Autonomous Fixed Wing Aircraft Simulation. In Proceedings of the 12th ACM Multimedia Systems Conference (pp. 261-266).

Acknowledgements

qplane's People

Contributors

jdatpnw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.