Self Driving Car Optimus

Optimus - An Android app controlled Self Navigating Car powered by SJOne(LPC1758) microcontroller. Optimus manuevers through the selected Routes using LIDAR and GPS Sensors. This wiki page covers the detailed report on how Optimus is built by Team Optimus.
​
Abstract
​
Embedded Systems are omnipresent and one of its unique, yet powerful application is Self Driving Car. In this project we to build a Self-Navigating Car named Optimus, that navigates from a source location to a selected destination by avoiding obstacles in its path.
The key features the system supports are
​
1. Android Application with Customized map and Dashboard Information.
2. LIDAR powered obstacle avoidance.
3. Route Calculation and Manuvering to the selected destination
4. Self- Adjusting the speed of the car on Ramp.
​
The system is built on FreeRTOS running on LPC1758 SJOne controller and Android application. The building block of Optimus are the five controllers communicating through High Speed CAN network designed to handle dedicated tasks. The controllers integrates various sensors that is used for navigation of the car.
​
1. Master Controller - handles the Route Manuevering and Obstacle Avoidance
2. Sensor Controller - detects the surrounding objects
3. Geo Controller - provides current location
4. Drive Controller - controls the ESC
5. Bridge controller - Interfaces the system to Android app


Introduction and Objective
​
Our Objective is to build and integrate the functionality of these five controllers to develop fully functioning self-driving system.
Sensor Controller: Sensor controller uses RPLIDAR to scan its 360-degree environment within 6-meter range. It sends the scanned obstacle data to master controller and bridge controller.
​
Geo Controller: Geo controller uses NAZA GPS module that provides car current GPS location and compass angle. It calculates heading and bearing angle that helps the car to turn with respect to destination direction.
Drive Controller: Drive controller drives the motor based on the commands it receives from the Master.
Bridge Controller: Bridge controller works as a gateway between the Android application and Self-driving car and passes information to/from between them.
​
Master Controller: Master controller controls all other controllers and takes decision of drive.
Android Application: Android application communicates with the car through Bridge controller. It sends the destination location to be reached to the Geo controller and also provides all the Debugging information of the Car like
​
1. Obstacles information around the car
2. Car's turning angle
3. Compass value
4. Bearing angle
5. Car's GPS location
6. Destination reached status
7. Total checkpoints in the route
8. Current checkpoint indication
​
​
PCB Design

