This repository is for self driving car project developed as a part of Software Engineering project at NIIT University
Shivank Shekhar |
Sudhanshu Gupta |
Dhruv Parashar |
Tanmay Ekanath Patil |
Yash Vaidya |
---|
This repository is for self driving car project developed by undergraduate Computer Science and Engineering students at NIIT University
For a better reader experience here is the list how this repository is arranged:
Folder | Content |
---|---|
Android | Contains All the adnroid app code and all the dependencies for Android app |
Arduino | Contains all the Embedded code for running the vehicle remotely |
Code Metrics | Contains all the documents related to code metrics and code quality |
File | Contains extra files/supportive docs required for other documents |
Images | Contains all the images/illustrations used across various documents |
Machine Learning | This folder contains all the AI/ML code for the project and the python dependencies for running the files. |
Project Docs | It contains all the important project related documents for the readers to view and study in order ot get a better understanding about this project |
Raspberry Pi | This folder contains all the code and files required ti run the micro-controller which is also the central node for this project |
Test Plan | It contains all the testing related documents and test cases which we used across various platforms of this project. |
LICENCE | Contains information about the open source licence for this project |
README.md | This file is the default red mode enabled file to get all the basic informations about the repository. You are currently reading README.md only (duh!) |
The purpose of this document is to provide a debriefed view of requirements and specifications of the project called Volante
.
The goal of this project is to make an autonomous self-driving car, capable of maneuvering around bends, avoiding obstacles and following traffic signals and road signs.
The tools used in this project and described in this document are:
The hardware used in this project and described in this document are:
This document also includes:
Anyone with some programming experience, with familiarity in Python and C, can understand this document. The document is intended for developers, software architects, testers, project managers and documentation writers, auto enthusiast and AI/ML developers.
Road safety has been an issue for as long as cars have been in existence. Over 1.3 million people die of road accidents every year across the globe, most of which are preventable. Ever-rising road traffic has led to an exponential increase in commute time. This has a direct impact not only on people's productivity but also on the environment.
Recent developments in machine learning and artificial intelligence along with the ever-increasing performance of modern day computers have enabled the use of these technologies in developing self-driving cars. These cars have several advantages, as described below:
Our project was squarely aimed at developing a simple RC self-driving car. This involved developing code for a cloud-based machine learning solution, an Android application for data collection and an embedded system to actuate the car's motors. This project, thus, represents a complete self-driving car solution, instead of forming a part of a complete system.
The entire concept of self-driving cars is alien to the general Indian population. Not much research is being done in India right now on this. This car represents a small, albeit significant, step towards the development of a full-sized, fully-functional self-driving car. Ours is a scalable solution, i.e. with minor modifications, it can be scaled up to a full network of self-driving cars. Communication between such a network is a future research topic that can be looked into.
Please refer this doc for extended reading on: Novelty of Project Idea
Term | Description |
---|---|
User | Any living being who is interacting with the software is a user. |
System | The package of all the components which takes input and gives output to demonstrate the features of the software is called a system. |
Database | Collection of information on different topics related to each other. |
Library | The collection of tracks inside a directory or across multiple directories forms up a library. |
Store | This is the persistence layer of the whole system. |
Classifier | An algorithm that implements classification, especially in a concrete implementation. |
Tags | A label attached to track which gives extra information about it. |
GCP | Google Cloud Platform for running the machine learning algorithm |
This system consists of following components:
Refer to our Software Requirements Specification document which explains the following aspects about the project:
The document sheds a light over the above mentioned topics and gives the reader a prespective to know the project outline completely
To get a complete overview of the software design and principles used in the project please refer to Software Design Document
This document is divided into several sections (see Table of Contents) with intended readers being developers and software managers. Sections have, however, been written in a manner that it can be understood by anyone having some knowledge about software.
This Software Design Specification also includes:
The design has been made clear using class diagrams and sequence diagrams.
Please refer to the document given here, which gives readers details about what are the major tools required to build this project under various catagories like
Here, we are going to discuss what all parameters we have considered while building our product and how many parameters we have been able to cover actually.
We promised our customers that we will be building a prototype of a self driving car which can be scaled for production.
According to whatever has been mentioned above, we have been successfully able to build our software, which meets all the requirements.
To get the complete report refer our Sophistication Document
We have also compiled a report which tells the readers about the prespective of this project and the customer base and UX that one should target while developing such projects.
Technology is bringing us tools and solutions that will help make businesses more productive, save them money, make them money, and, perhaps most importantly, positively impact the customer experience. And, this is just the beginning. What used to be something we would only see in the movies is becoming our reality. We are living in the future
Here is the screenshot of the navigation app that we have built
It depicts the start and the end point for the navigation of the vehicle.
Here is the app that we have built
Here are some images of the model that we have developed.
Visit this link for the working Video of the project : Link