From Embedded Systems Learning Academy
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:
- 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 communication with GPS, sensor etc.
|
In Progress
|
10/25/2014
|
5
|
10/26/2014
|
11/01/2014
|
Establish reliable communication and setup all fanout and subscription tasks
|
Scheduled
|
YTD
|
6
|
11/02/2014
|
11/14/2014
|
Improve GUI and add additional features
|
Scheduled
|
YTD
|
7
|
11/15/2014
|
12/09/2014
|
Final testing and verification
|
Scheduled
|
YTD
|
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
|
nterface 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
|
In-Progress
|
TBD
|
8
|
10/19/2014
|
10/26/2014
|
Combining UART and GPS parsing. Create task for GPS
|
Scheduled
|
TBD
|
9
|
10/19/2014
|
10/26/2014
|
Combining compass calibration and i2c interface. Create task for Compass
|
Scheduled
|
TBD
|
10
|
10/26/2014
|
11/02/2014
|
Final CAN subscription and Implementation of CAN communication with other modules
|
Scheduled
|
TBD
|
11
|
11/02/2014
|
12/09/2014
|
Testing and debugging on car
|
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
|
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
- Preetpal Kang, Lecture notes of CMPE 243, Computer Engineering, Charles W. Davidson College of Engineering, San Jose State University, Aug-Dec 2014.
- en.wikipedia.org/