
Self Driving Car
​This project makes use of a machine learning model to train an AI car into finding the best racing line possible around a circuit - or simply the fastest route around the circuit. To achieve this a neural network was implemented that biases the cars throttle, break and steering.
​
Github

Neural Network
Cars make use of a nerual network to learn the fastest way around the track. Distance-to-wall data is taken from several ray casts around the car and inputted into the neural network. Throttle and steering direction are outputted for the cars use.
Training
After each simulation cycle the best performing cars networks are mutated to create the next generation. A high performing car is determined by its lap time and number of check points passed. Check points are optional but can be placed generally along a presumed racing line to reduce the number of generation to find the route. With this system cars gradually improve until the optimal path is found.


Limitations
While the system is effective some areas for improvement can be identified. Currently it is assumed that any track this system is used in will be completely surrounded by walls. If this system was used in a field or a track with common feautures like a run-off or gravel trap it would perform significantly worse.
Due to a low number of neurons cars arent very adaptable.
There is no real time adpation, cars only learn post generation.