Skip to content

self-driving car based reinforcement learning and deep learning

Notifications You must be signed in to change notification settings

diesimo-ai/reinforced-self-driving-car

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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