F14: Team4-Self Driving Car - AUG

From Embedded Systems Learning Academy
Revision as of 21:29, 28 October 2014 by Proj user16 (talk | contribs) (Controller Communication Table)

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 Ongoing YTD
5 10/26/2014 11/01/2014 Place all the sensors on car and test for obstacle avoidance Scheduled YTD
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 Scheduled YTD
7 10/26/2014 11/01/2014 Interface encoder and calculate the actual speed at which car is running Scheduled YTD
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 In Progress 10/25/2014
5 10/26/2014 11/01/2014 Integration with GEO module and queue for each subscribed service Scheduled 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 In-Progress TBD
3 09/21/2014 09/27/2014 Deciding MSG id's for all devices In-Progress TBD
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 On-going TBD
8 10/19/2014 11/1/2014 Algorithm for obstacle avoidance Scheduled TBD
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

Incoming Messages Outgoing Messages
Sl. No Message ID Message Description Message Data Message ID Message Description Message Data
Master
1 0x090 Heartbeat Response / Acknowledgement N/A N/A N/A N/A
2 0x116 Power On/Off Command On/Off byte N/A N/A N/A
3 0x117 Power On/Off Command On/Off Byte N/A N/A N/A
4 0x213 Front/Read Sensor Data Sensor Data N/A N/A N/A
5 0x294 Current Location & Direction of Car Location Co-ordinates, Orientation, Direction for Motor N/A N/A N/A
6 0x316 Next Checkpoint Co-ordinates of Next Location N/A N/A N/A
7 0x3D3 Other Sensor Data Light & Tilt Sensor Data N/A N/A N/A
8 0x411 Encoder Data Speed Sensor Data N/A N/A N/A
9 N/A N/A N/A 0x14A Motor Speed & Direction Motor Speed and Angle
10 N/A N/A N/A 0x372 Current Location of Car from GPS Location
11 N/A N/A N/A 0x3B2 Sensor Value and Status Sensor Readings
12 N/A N/A N/A 0x3BA Sensor Value and Status Sensor Readings
Motor
13 0x14A Motor Speed & Direction Motor Speed & Angle N/A N/A N/A
14 0x44A Subscription Message from Master N/A 0x411 Speed Sensor Data Speed Sensor Data
15 0x44B Subscription Message from I/O N/A 0x419 Motor Speed & Direction Motor Speed and Angle
16 0x44E Subscription Message from Android N/A 0x431 Motor Speed & Direction Motor Speed and Angle
Sensor
17 0x19A Subscription Message from Master for Front Sensor N/A 0x213 Sensor Data Front Sensor Data
18 0x1DA Subscription Message from Master for Rear Sensor N/A 0x213 Sensor Data Rear Sensor Data
GEO
19 0x322 Message to send Next Checkpoint N/A 0x316 Next Checkpoint Co-ordinates of Next Checkpoint
20 0x462 Subscription Message from Master N/A 0x294 Current Location & Direction Co-ordinates, Orientation & Direction
Communication Bridge + Android
21 0x2F2 Message to send intermediate checkpoints N/A 0x316 Next Checkpoint Co-ordinates of Next Checkpoint
22 0x372 Current Location of car from GPS Co-ordinates of Current Location N/A N/A N/A
23 0x3B2 Sensor Value & Status Sensor Reading & Status of each Module N/A N/A N/A
I/O
24 0x3BA Sensor Value & Status Sensor Reading & Status of each Module N/A N/A N/A


Controller Communication Table

Master Communication Table
Message Number Purpose / Data layout
0x101 Get version and boot info (0x201 will be sent)
0x102 Get general info (0x202 will be sent)
0x103 Synchronize (set) time:
byte [0-3] : System time
0x201
byte [0-3] : Version Info
byte [4-7] : boot timestamp
0x202
byte [0-3] : Current time
byte [4]   : CPU usage %
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/