/ME5406-Project2

A project to investigate different DRL methods for a self-driving car policy

Primary LanguagePython

ME5406

Group 60

  • Ng Wei Jie, Brandon (A0184893L)
  • Mohamad Haikal Bin Mohamad Yusuf (A0182446B)
  • Dennis Goh Wen Qin (A0096927L)

Setup

  • Develop and test on Python3.6 in Ubuntu 18
sudo apt install python3-pip
python3 -m pip install --upgrade pip
python3 -m pip install virtualenv
  • Setup virtualenv
python3 -m virtualenv env
source env/bin/activate
  • Install python3 libraries
pip3 install -r requirements.txt

Train RL Models

  • Train DQN
is_eval=0 python3 main_dqn.py
  • Train DDQN
is_eval=0 python3 main_ddqn.py
  • Train A2C
is_eval=0 python3 main_a2c.py

NOTE: Rerun the program if the convergence is not as good as reported in the performance section


Evaluate RL Models

  • Evaluate DQN (model is stored as models/best_dqn.pt)
is_eval=1 python3 main_dqn.py
  • Evaluate DDQN (model is stored as models/best_ddqn.pt)
is_eval=1 python3 main_ddqn.py
  • Evaluate A2C (model is stored as models/best_a2c.pt)
is_eval=1 python3 main_a2c.py

PID Controller

  • Control with PID
python3 main_pid.py

Simulator

  • Control simulator with keyboard
python3 demo.py
  • Observation Space

screen_debug screen

- Game Engine

obs_space obs_space

Performance

  • DQN

screen_debug screen screen

  • DDQN

screen_debug screen screen

  • A2C

screen_debug screen

screen screen screen