F14: Team4-Self Driving Car - AUG

From Embedded Systems Learning Academy
Revision as of 21:44, 28 October 2014 by Proj user16 (talk | contribs) (Schedule)

Jump to: navigation, search

Self Driving Car

Abstract

Objective and Scope

Team Members & Responsibilities

  • Sensor Controller:
    • Chinmay Vaidya
    • Manuj Shinkar
  • Motor Controller:
    • Viral Agrawal
    • Mitesh Sanghvi
  • I/O Unit:
    • Tej Kogekar
    • Mayur Salve
  • Communication Bridge + Android:
    • Jayanth Nallapothula
    • Manish Mandalik
    • Kwun Fung Ng (Daniel)
  • Geographical Controller:
    • Ishan Bhavsar
    • Tanuj Chirimar
    • Sushant Potdar
  • Master Controller:
    • Dhaval Parikh
    • Harita Dhiren Parekh
    • Rutwik Kulkarni

Introduction

Schedule

Sensor Team Schedule

Sl. No Start Date End Date Task Status Actual Completion Date
1 09/14/2014 09/20/2014 Understanding the logic of sensors to be used Completed 09/20/2014
2 09/21/2014 10/04/2014 Writing the codes for the different types of sensors Completed 10/04/2014
3 10/05/2014 10/11/2014 Testing the different sensors for accuracy and placing the order for the one we have selected. Completed 10/11/2014
4 10/12/2014 10/25/2014 Build CAN transceiver and send data to the Master Board Completed 10/25/2014
5 10/26/2014 11/01/2014 Place all the sensors on car and test for obstacle avoidance Completed 10/28/2014
6 11/02/2014 11/14/2014 Work on light and tilt sensors Scheduled YTD
7 11/15/2014 12/09/2014 Final testing and debugging Scheduled YTD

Motor Team Schedule

Sl. No Start Date End Date Task Status Actual Completion Date
1 09/14/2014 09/20/2014 Understand the logic of Motor Controller present in the RC Car Completed 09/20/2014
2 09/21/2014 09/27/2014 Replace on-board controller with SJSU One board Completed 09/22/2014
3 09/28/2014 10/04/2014 Drive the DC motor with SJSU One board at different Duty Cycles Completed 09/30/2014
4 10/05/2014 10/11/2014 Test the Servo and DC motor together for moving forward and taking turns Completed 10/09/2014
5 10/12/2014 10/18/2014 Build CAN Transceiver and move the car as per the CAN message received Completed 10/13/2014
6 10/19/2014 10/25/2014 Make arrangement for CAN subscription task Completed 10/25/2014
7 10/26/2014 11/01/2014 Interface encoder and calculate the actual speed at which car is running Completed 10/28/2014
8 11/02/2014 11/08/2014 Make compensation algorithm and make car to move at desired speed Scheduled YTD
9 11/09/2014 12/09/2014 Final testing and debugging Scheduled YTD

I/O Team Schedule

Sl. No Start Date End Date Task Status Actual Completion Date
1 09/14/2014 09/20/2014 Search and order GLCD module with touch screen, LEDs for headlights Completed 09/20/2014
2 09/21/2014 10/04/2014 Study of GLCD data frame formats and design GUI Completed 10/03/2014
3 10/05/2014 10/11/2014 Development of GLCD functions including touchscreen handler Completed 10/11/2014
4 10/12/2014 10/25/2014 Setup CAN subscription tasks for communication with Master controller In Progress 10/22/2014
5 10/26/2014 11/01/2014 Develop hardware and code for automatic headlight control, battery health indication Scheduled YTD
6 11/02/2014 11/14/2014 Build hardware for switches and write interrupt handlers for the same Scheduled YTD
7 11/15/2014 12/09/2014 Mount GLCD, headlights, switches on car and final testing Scheduled YTD

Communication Bridge + Android Team Schedule

Sl. No Start Date End Date Task Status Actual Completion Date
1 09/14/2014 09/20/2014 Google maps API research Completed 09/20/2014
2 09/21/2014 10/04/2014 Mock locations on Google maps and simulate co-ordinates w/o gps Completed 10/04/2014
3 10/05/2014 10/11/2014 Two way Bluetooth communication and setup RTOS tasks Completed 10/11/2014
4 10/12/2014 10/25/2014 Raw GUI for app and setup CAN tasks for Start and Stop commands Completed 10/25/2014
5 10/26/2014 11/01/2014 Integration with GEO module and queue for each subscribed service Ongoing TBD
6 11/02/2014 11/09/2014 Incorporate all essential services into Android app and test for response Scheduled TBD
7 11/10/2014 11/16/2014 Final setup and changes for all the CAN tasks along with XBee interfacing Scheduled TBD
8 11/17/2014 11/23/2014 Testing with GEO module with real-time co-ordinates and plotting way points onto Maps Scheduled TBD
9 11/23/2014 12/09/2014 Final Testing and verification of all components on the main field Scheduled TBD

GEO Team Schedule

Sl. No Start Date End Date Task Status Actual Completion Date
1 09/7/2014 09/14/2014 Market research for GPS and Compass Modules Completed 09/14/2014
2 09/14/2014 09/21/2014 Place order / receive the modules Completed 09/20/2014
3 09/21/2014 09/28/2014 Interface GPS with SJ -One board via UART Completed 09/26/2014
4 09/28/2014 10/05/2014 Interface Compass with SJ-One Board via I2C Completed 10/03/2014
5 10/05/2014 10/12/2014 Parsing the GPS data stream Completed 10/11/2014
6 10/12/2014 10/19/2014 Calibration and testing of compass Completed 10/13/2014
7 10/12/2014 10/19/2014 Decide CAN message ID’s and message formats Completed 10/28/2014
8 10/19/2014 10/26/2014 Combining UART and GPS parsing. Create task for GPS Completed 10/25/2014
9 10/19/2014 10/26/2014 Combining compass calibration and i2c interface. Create task for Compass Completed 10/25/2014
10 10/26/2014 11/02/2014 Inter Task Communication (Queues/Shared Objects) In-Progress TBD
11 11/03/2014 11/10/2014 Synchronization and Data Integrity (Semaphores/Mutex/Critical Section) Scheduled TBD
12 11/11/2014 11/25/2014 Final Integration of CAN Framework and Implementation of CAN communication with other modules Scheduled TBD
13 11/26/2014 12/09/2014 Testing and debugging on car (Re-Calibration/Bug Fixes) Scheduled TBD

Master Team Schedule

Sl. No Start Date End Date Task Status Actual Completion Date
1 09/7/2014 09/13/2014 Understanding CAN Bus and API's Completed 09/13/2014
2 09/14/2014 09/20/2014 Deciding System Flow Completed 09/20/2014
3 09/21/2014 09/27/2014 Deciding MSG id's for all devices Completed 10/27/2014
4 09/28/2014 10/11/2014 Testing Subscription between 2 devices Completed 10/4/2014
5 09/28/2014 10/11/2014 Making CAN bus hardware to interface all SJOne boards Completed 10/11/2014
6 09/28/2014 10/11/2014 Testing subscription and time sync between all devices Completed 10/11/2014
7 10/12/2014 10/18/2014 Reading sensor data from boards at the subscription rate Completed 10/26/2014
8 10/19/2014 11/1/2014 Algorithm for obstacle avoidance Completed 10/27/2014
9 11/2/2014 11/15/2014 Algorithm for GPS based navigation Scheduled TBD
10 11/16/2014 11/22/2014 Initial testing and tweaking of the car Scheduled TBD
11 11/23/2014 12/9/2014 Final Testing! Showdown time! Scheduled TBD

Parts List & Cost

Qty Description Manufacturer Part Number Total Cost
1 RC Car - - $$$
10 CAN transceivers - - Free
1 GPS module - - $$
1 Magnetometer Module - - $
1 Ultrasonic Sensor - - $$
1 Misc Components - - $
Total Cost INCREASING!!

Backup Parts & cost

Qty Description Manufacturer Part Number Total Cost

Design & Implementation

CAN 11-bit ID Format

MSG DST SRC
5 bits (11-6) 3 bits (5-3) 3 bits (2-0)

Controller ID Table

Controller ID Controller Type
001 Motor Controller
010 Master Controller
011 Sensor Controller
100 GEO Controller
110 Communication Bridge + Android Controller
111 I/O Controller

Controller Communication Table

Master Controller Communication Table
Message Number Purpose Data layout
0x040 Heartbeat
0x14A Motor Speed and Direction
byte [0] : (uint8_t) Speed
byte [1] : (uint8_t) Direction
0x3E2 Destination Change, Kill or Crash
0x402 Update Time
Motor Controller Communication Table
Message Number Purpose Data layout
0x091 Heartbeat Ack (Response to 0x040)
0x379 Speed Data
byte [0] : (uint8_t) Speed of Car
0x371 Speed Data
byte [0] : (uint8_t) Speed of Car
0x451 Power Up, Boot Status and Version
byte [0] : (uint8_t) Power Up
byte [1] : (uint8_t) Boot Status
byte [2] : (uint8_t) Version
GEO Controller Communication Table
Message Number Purpose Data layout
0x094 Heartbeat Ack (Response to 0x040)
0x454 Power Up, Boot Status and Version
byte [0] : (uint8_t) Power Up
byte [1] : (uint8_t) Boot Status
byte [2] : (uint8_t) Version
0x1D4 Compass Heading and Desired Heading
byte [0] : (uint8_t) Compass Heading
byte [1] : (uint8_t) Desired Heading
0x234 Request next Checkpoint
0x294 Distance from Destination
byte [0] : (uint8_t) Distance
0x2B4 Distance from Destination
byte [0] : (string) Distance
0x2BC Distance from Destination
byte [0] : (string) Distance
0x2F4 Current Location of GPS
byte [0-2] : (string) Longitude and Latitude
Communication Bridge + Android Controller Communication Table
Message Number Purpose Data layout
0x096 Heartbeat Ack (Response to 0x040)
0x456 Power Up, Boot Status and Version
byte [0] : (uint8_t) Power Up
byte [1] : (uint8_t) Boot Status
byte [2] : (uint8_t) Version
0x116 On/Off Command
0x266 Checkpoints from Android
byte [0-7] : (string) Longitude, Latitude, Distance between two co-ordinates, Number of Checkpoints.
Sensor Controller Communication Table
Message Number Purpose Data layout
0x093 Heartbeat Ack (Response to 0x040)
0x453 Power Up, Boot Status and Version
byte [0] : (uint8_t) Power Up
byte [1] : (uint8_t) Boot Status
byte [2] : (uint8_t) Version
0x1B3 Front/Rear Sensor Data
byte [0] : (uint8_t) Sensor Data
0x194 Front/Rear Sensor Data
byte [0] : (uint8_t) Sensor Data
0x1BB Front/Rear Sensor Data
byte [0] : (uint8_t) Sensor Data
0x333 Data from Sensors like Tilt, Light etc.
byte [0] : (uint8_t) Sensor Data
0x33B Data from Sensors like Tilt, Light etc.
byte [0] : (uint8_t) Sensor Data
0x3B1 Error and Communication Status
byte [0] : (uint8_t) Error Data
0x3B9 Error and Communication Status
byte [0] : (uint8_t) Error Data
I/O Controller Communication Table
Message Number Purpose Data layout
0x097 Heartbeat Ack (Response to 0x040)
0x457 Power Up, Boot Status and Version
byte [0] : (uint8_t) Power Up
byte [1] : (uint8_t) Boot Status
byte [2] : (uint8_t) Version
0x117 Front/Rear Sensor Data
byte [0] : (uint8_t) Sensor Data
0x4D7 Battery Status and Key Press
byte [0] : (uint8_t) Battery Status

Testing & Technical Challenges

Sl. No Test Case Test Description Result

Challenges and Learning

Future Enhancement

Conclusion

Project Video

Project Source Code

References

Acknowledgement

References Used

  1. Preetpal Kang, Lecture notes of CMPE 243, Computer Engineering, Charles W. Davidson College of Engineering, San Jose State University, Aug-Dec 2014.
  2. en.wikipedia.org/