Autonomous-Vehicles-Adaptive-Cruise-Control
                                
                                
                                
                                    Autonomous-Vehicles-Adaptive-Cruise-Control copied to clipboard
                            
                            
                            
                        An implementation of an Autonomous Vehicle Agent in CARLA simulator, using TF-Agents
New version of Adaptive-Cruise Controller using DRL:
https://github.com/kochlisGit/Noise-Adaptive-Driving-Assistance-System
Self Driving Vehicles Using Deep Reinforcement Learning
** Description **
This is the project of my thesis. I've implemented an agent in CARLA Simulator, which is capable of navigating a vehicle safe & fast, using only 2 front cameras. More info about the simulator can be found here: https://carla.org/ . The agent has learnt to navigate in a lane using deep reinforcement learning algorithms. The development of the agent was made in Python.
Demonstration
This directory contains 8 video files (mp4) that demonstrate how the vehicle is moving in the simulator https://github.com/kochlisGit/autonomous-vehicles-agent/tree/main/videos
The validation of the vehicle was done in a pre-defined route, that was new to the agent. The results are astonishing!
Python Libraries
- Carla API
 - Numpy
 - Matplotlib
 - Tensorflow
 - Keras
 - TF-Agents
 - Tensorflow-Addons
 
Sensors
- Collision Detector: https://carla.readthedocs.io/en/latest/ref_sensors/#collision-detector
 - RGB Camera with Semantic Segmentation: https://carla.readthedocs.io/en/latest/ref_sensors/#semantic-segmentation-camera
 - Depth Camera: https://carla.readthedocs.io/en/latest/ref_sensors/#depth-camera
 
Algorithms:
- DQN: https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf
 - N-Step DQN: https://arxiv.org/pdf/1901.07510.pdf
 - DDQN: https://arxiv.org/pdf/1509.06461.pdf
 - C51: https://arxiv.org/pdf/1707.06887.pdf
 - Decaying Epsilon Greedy: http://tokic.com/www/tokicm/publikationen/papers/AdaptiveEpsilonGreedyExploration.pdf
 - Convolutional Neural Network CNN: https://iopscience.iop.org/article/10.1088/1742-6596/1004/1/012028/pdf
 - Yogi Optimizer: https://papers.nips.cc/paper/2018/file/90365351ccc7437a1309dc64e4db32a3-Paper.pdf
 - GELU: https://arxiv.org/pdf/1606.08415.pdf
 
Execution
First, You have to download carla and all the libraries above. Then, download my "code" directory and paste it into "Carla/PythonAPI/". Run "agent/straight_lane_agent_c51_training.py" to start the training.
IMPORTANT The simulator window should be open, in order for the training to occur. Check https://carla.readthedocs.io/en/latest/start_introduction/ for more information of how to setup carla.
Libraries
- Python 3.7
 - Carla <= 0.12
 - Numpy >= 1.15
 - Matplotlib
 - Tensorflow >= 2.0
 - TF-Agents >= 0.13
 - Tensorflow-Addons >= 0.13 1 Opencv >= 4.0