/autonomous-vehicles

Reinforcement Learning Implementation using tensorflow, zeromq, and opengl

Primary LanguageC++

Introduction

This is the project to see if Reinforcement Learning can be used in Drone management system.

Video : There are 22 vehicles driving on the world. Although the application runs so slowly, it definitely shows that they can make the rule to avoid collision with each other after only less 5 minutes training. :)

How to use

  1. Run mq-server.py or tcp-server.py in dnn-core directory first
  2. Run autonomous_vehicle in opengl-env directroy after build
  3. Push "space bar" if you want to train one vehicle, otherwise push "a" key to train all.
  4. Push "a" or "space" to stop trainig mode again

To-do List

  1. Save and load a trained model
  2. Convolutional Neural Network
  3. Unity3D based environment(application)
  4. Multi-Drone management system with dronekit and Qgroundcontrol

Open source list

  1. OpenGL and Wrapper tools
  2. boost/asio
  3. ZeroMQ
  4. Anaconda
  5. Tensorflow
  6. Keras
  7. CMake
  8. MinGW (nuwen.net)
  9. Git

Reference

  1. Self Driving Car Application by Dr.Hong in Dongguk University
  2. OpenGL Tutorial
  3. A3C Theory & Implementation --> Source Codes

License

MIT