This project is a part of my bachelor's thesis, where we tackled the complex problem of building autonomous vehicles by creating a small-scale solution. Utilizing Convolutional Neural Networks (CNNs), we predicted the car's directional movement based on real-time track images. We captured these images using a Raspberry Pi and a Pi camera module and communicated with a local server through TCP/IP socket programming.
MAC0460 Self driving dataset available on Kaggle is used for training the classifier.
The training involves multiple steps:
- time_stamps_match: To synchronize Image_Stamps and Direction_Stamps, generating
Image_Command.csv
. - training_file_gen.ipynb: To create
Training_Data
andTraining_Labels
fromImage_Command.csv
.
- ANN: neural_network_simulation from scratch.
- CNN: RC_CNN.py (Training accuracy up to 97.64%)
- Driving with Arduino and Keyboard: rc_car_controller
- Driving with Raspberry Pi and Keyboard: rpi-car-controller
- rc_rpi_controller: Arduino-based socket connection for car commands.
- drive.py: RPI program to actuate car based on model's predictions.
For in-depth information and model training/testing results, please refer to our project report.