|
1 | | -# drone-x {work in progress} |
| 1 | +# drone-x - NeuroEvolution self learning drone |
| 2 | +[](https://github.com/bokonist/drone-x/releases) |
| 3 | + |
| 4 | +## Contents |
| 5 | + |
| 6 | +- [About](#about) |
| 7 | +- [Requirements](#requirements) |
| 8 | +- [Installation](#installation) |
| 9 | +- [Frequently Asked Questions](#frequently-asked-questions) |
| 10 | + |
| 11 | +## About |
| 12 | +[](https://www.youtube.com/watch?v=gq39JeI6yxo "Drone-demo") |
| 13 | + |
| 14 | +A self learning AI drone to evade obstacles. The simulation is made using Opengl & neural network using C++ |
| 15 | + |
| 16 | +## Requirements |
| 17 | +### Runtime & Development |
| 18 | + |
| 19 | +- C++ Compiler >= GCC 4.8.1 |
| 20 | +- Freeglut-dev >= Freeglut 3.0.0 |
| 21 | +- SOIL image loader library >= SOIL 1.16 |
| 22 | + |
| 23 | +## Installation |
| 24 | +To download the repo & Run the simulation: |
| 25 | + |
| 26 | + git clone https://github.com/bokonist/drone-x |
| 27 | + cd drone-x/simulation/drone-window |
| 28 | + make |
| 29 | + ./drone |
| 30 | + |
| 31 | +To uninstall & delete generation files: |
| 32 | + |
| 33 | + make clean |
| 34 | + rm -r gen* |
| 35 | + rm drone |
| 36 | + |
| 37 | +## Frequently Asked Questions |
| 38 | +### Which part of the source code is the graphics simulation part? |
| 39 | +src/drone.cpp , main.cpp & include/drone.h are the Opengl part of the code. These parts can be changed to change the simulation speed, obstacle type, menu system. |
| 40 | + |
| 41 | +### Experiencing stutter and performance lose? |
| 42 | +Check to make sure you have a supported graphics card & install its latest driver. Run with vblank_mode=1 to enable v-sync. If you still experience stutter, then comment out the gamemode part in main.cpp and run the game in gamemode instead of window. |
| 43 | + |
| 44 | +### Is it possible to port this to windows / getting error for to_string() function? |
| 45 | +Yes, the freeglut & soil are cross platform libraries, when compiling make sure the latest version of gcc is installed using Mingw-w64 for the latest version of g++ compiler otherwise you may get an error for to_string() function or alternatively you can add a patch for it yourself. |
| 46 | + |
| 47 | +### How fast can the simulation run/ How to speed up simulation? |
| 48 | +In main.cpp change fps parameter value & run the game with the flag vblank_mode=0 to disable vsync. maximum framerate depends on your system configuration. Alternatively you can change the the obstacle speed parameter in drone.cpp to achieve the same effect. |
| 49 | + |
| 50 | +### Why is my system getting loud/ single core cpu usage 100%? |
| 51 | +This is a single threaded application for ease of understanding. The graphics part and neural code is run on an infinite loop, therefore the cpu usage will be maximum 100% for a single core even if that loop is not doing anything. |
| 52 | + |
| 53 | + |
2 | 54 |
|
3 | | -1. **in progress**: |
4 | | - 1. making the simulation of a drone in openGL |
5 | 55 |
|
6 | | -2. **to do**: |
7 | | - 1. implement NEAT |
8 | | - 2. train and evolve the neural network |
|
0 commit comments