Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 2.36 KB

File metadata and controls

72 lines (53 loc) · 2.36 KB

Self-driving car - based on reinforcement learning

Overview

alt text

Building a self-driving car based reinforcement learning and deep learning

The strategy applied in this project allows to avoid objects in the road (this can be: when the car goes out of road and overtake the lane, or even others cars ...) This doesn't classify which type of objects are in front of the car. It only avoids them.

  • If it succeeds => positive reward(+1), negative reward otherwise. And we repeat the action until the agent learn by itself how to avoid these objects (RL magic !)
  • Some applications of this project
    • Autonomous shuttles
    • Delivery robots(in factory, production lines )
    • Autonomous racing cars ...

Requirements

Get conda here => conda based on your OS, then you can install the requirements pkg

Kivy=2.1.0
matplotlib=3.6.2
numpy=1.23.3
torch=1.13.0

Linux

conda install -r requirements.txt

Windows

conda install -r requirements.txt

Files/modules :

  • ai.py : the brain module. It provides 3 Classes

    • Network() : Feed Forward Neural Network architecture definition
    • ReplayMemory() : provides the definition of ReplayMemory
    • Dqn() : Deep Q-Network classifier and learning strategy
  • map.py : provides the environment interface

  • car.kv : configuration file for the GUI of the car

Usage

python main.py

Contribution and pull requests

Below some few features/tasks to add up. So feel free to pull request

@TODO :
- classify objects in the road 
  - On kivy UI env we can add/draw new objects, then classify them 
    - passenger crossing the road
    - another car parked in the road
    - other objects
    - signals (too ambitious but why not ? )
- add log file for reinforment learning visualization and debugging

References