Obstacle Avoidance using Behaviour Cloning

 Status : Completed

Tags: featured opencv python ML



AIM

A nitro engine based RC car modified to run on BLDC motor and LiPo battery capable of avoiding obstacles using Behaviour Cloning


COMPONENTS AND TECHNOLOGIES USED

  • Pygame

  • CNN

  • OpenCV


OVERVIEW

In this project, we made a self-driving car with RC Car using Behaviour Cloning, which is one of the methods by which human sub cognitive skills can be captured and reproduced in a computer program.


Self Driving Car is a vehicle capable of sensing its environment and operating without human involvement. A human passenger is not required to take control of the vehicle at any time, nor is a human passenger required to be present in the vehicle at all. An autonomous car can go anywhere a traditional car goes and do everything that an experienced human driver does.  

Self Driving Cars are the future and we have to update with new technologies, So we started this project which is just a start to get the idea of how self-driving cars work. In this project, we converted a small RC car to a self-driving car that can run autonomously in corridors without human help.

Methodology:

First, we converted RC car to electric car by replacing its engine with an electric motor, batteries, and microcontroller Arduino.

The second step in this project is to collect data to train our CNN model by controlling the car manually using the joystick. To control the car manually using a joystick we use jetson nano with realsense depth camera. We create a python code using pygame library in python to control the car.

At the time of data collection, we save the RGB and depth image from the camera with the steering value and speed value of the car at that time.

In the final dataset, we have 5173 images of (210*600) with steering and speed value of the car for model training

The third step is to train our ML model with the help of a colletected dataset. We build a CNN model to predict the steering value and speed value. The CNN model takes the image and predicts the speed and steering value.

The last layer of our model is the predicted value of speed and steering. In our CNN model, we used Conv layers, Dropout layers, Flatten layers, and some dense layers.

Project by: 

Gaurav Bansal(20165142), Anuj Tiwari(20176032)