From Embedded Systems Learning Academy
Self Driving Car
Abstract
Objective and Scope
Team Members & Responsibilities
- Sensor Controller
- Amey Patil
- Sujith Durgad
- Arvind Allawadi
- Motor Controller and Power
- Digvijay Patil
- Rohan Jani
- Mahesh Chudasama
- Display
- Mradula Nayak
- Karthik Govindaswamy
- Communication Bridge + Android
- Siddhata Patil
- Mohammed Raashid Kheruwala
- Geographical Controller
- Yash Parulekar
- Ajinkya Khasnis
- Harsh Lavingia
- Anand Dumbre
- Master Controller
- Pradyumna Upadhya
- Huzefa Siyamwala
Introduction
Schedule
Common Schedule
Sl. No
|
Start Date
|
End Date
|
Task
|
Status
|
Actual Completion Date
|
1
|
9/16/2014
|
10/7/2014
|
Finish Ordering project hardware parts
|
Ongoing. Few sensors are yet to be ordered.
|
TBD
|
2
|
10/5/2014
|
10/21/2014
|
Fine tune subscriber code
|
Ongoing
|
TBD
|
3
|
10/7/2014
|
10/21/2014
|
Finish Development of CAN Transceiver boards
|
Ongoing
|
TBD
|
4
|
10/5/2014
|
11/4/2014
|
Sub teams finalize and implement dependency code(atleast single API per team)
|
Ongoing
|
TBD
|
5
|
10/5/2014
|
10/28/2014
|
Finish hardware
|
Ongoing
|
TBD
|
6
|
10/28/2014
|
TBD
|
Start testing and finish it
|
Scheduled
|
TBD
|
Master Team Schedule
Sl. No
|
Start Date
|
End Date
|
Task
|
Status
|
Actual Completion Date
|
1
|
9/30/2014
|
10/21/2014
|
Fine tune subscriber code and finalize CAN apis required from other boards
|
Completed
|
Completed on 10/21/2014
|
2
|
10/5/2014
|
10/21/2014
|
Fine tune subscriber code
|
Completed
|
Completed on 10/27/2014
|
3
|
10/5/2014
|
10/21/2014
|
Develop CAN Transceiver Board
|
Completed
|
Completed by 10/19/2014
|
4
|
10/5/2014
|
11/4/2014
|
Implement API co-ordination logic and test with other boards APIs
|
Ongoing
|
Master - motor/sensor communication apis has been completed. Integration of these three modules going on
|
5
|
10/21/2014
|
10/28/2014
|
Test hardware with master code and motor code.
|
10/26/2014
|
Master and motor has been integrated.
|
6
|
10/21/2014
|
11/4/2014
|
Integrate master with motor and sensor.
|
Ongoing
|
Integration is not fully complete. It is going on.
|
6
|
10/28/2014
|
11/11/2014
|
Integrate master ,motor,sensor with andriod.
|
Scheduled
|
TBD
|
7
|
10/28/2014
|
11/11/2014
|
Integrate master with display.
|
Scheduled
|
TBD
|
7
|
11/4/2014
|
11/18/2014
|
Fix integration bugs and fine tune boards initialization and communication.
|
Scheduled
|
TBD
|
8
|
11/11/2014
|
11/28/2014
|
Implement car movement logic as per GPR/COMPASS/Sensor data.
|
Scheduled
|
TBD
|
9
|
11/28/2014
|
12/09/2014
|
Test hardware/software to remove bugs and fine tune algorithm.
|
Scheduled
|
TBD
|
GEO Team Schedule
Sl. No
|
Start Date
|
End Date
|
Task
|
Status
|
Actual Completion Date
|
1
|
9/16/2014
|
9/23/2014
|
Decided and then ordered GPS modem Received Compass module
|
Completed
|
9/23/2014
|
2
|
9/23/2014
|
9/30/2014
|
Acquired GPS modem Interface Compass with SJOne Board via I2C
|
Completed
|
9/30/2014
|
3
|
9/30/2014
|
10/7/2014
|
Designing GPS driver Test code to get compass heading information
|
OnGoing Completed
|
TBD
|
4
|
10/7/2014
|
10/21/2014
|
Integration of GPS with the main board CAN RX task and subscription handling
|
In Progress
|
TBD
|
5
|
10/21/2014
|
11/04/2014
|
Test communication with the Master Determine final heading using GPS location and compass reading
|
Scheduled
|
TBD
|
6
|
11/04/2014
|
11/18/2014
|
Test and debug, Make necessary changes in the driver Compass Calibration
|
Scheduled
|
TBD
|
Motor Team Schedule
Sl. No
|
Start Date
|
End Date
|
Task
|
Status
|
Actual Completion Date
|
1
|
9/30/2014
|
10/7/2014
|
Understand the SERVO and DC motor controller signals
|
Completed
|
10/4/2014
|
2
|
10/4/2014
|
10/11/2014
|
Interface SJSU one board to SERVO and DC motor controller
|
Completed
|
10/10/2014
|
3
|
10/7/2014
|
10/18/2014
|
Develop CAN transceiver boards
|
Completed
|
10/12/2014
|
4
|
10/12/2014
|
10/26/2014
|
Design and Develop unified power distribution circuit and hardware structure for RC car
|
Scheduled
|
TBD
|
5
|
10/19/2014
|
TBD
|
Interface motor SJSU board with master SJSU board for motion tuning
|
Scheduled
|
TBD
|
I/O Team Schedule
Sl. No
|
Start Date
|
End Date
|
Task
|
Status
|
Actual Completion Date
|
1
|
9/16/2014
|
9/23/2014
|
Decided and then ordered display module
|
Completed
|
9/23/2014
|
2
|
9/24/2014
|
10/7/2014
|
Setting up the GIT
|
Completed
|
10/14/2014
|
3
|
10/7/2014
|
10/14/2014
|
Basic display on LCD with UART interface
|
Completed
|
10/23/2014
|
4
|
10/14/2014
|
10/28/2014
|
CAN communication between Master and I/O
|
On Going
|
TBD
|
5
|
10/28/2014
|
10/31/2014
|
CAN communication between I/O and sensor
|
Scheduled
|
TBD
|
6
|
10/31/2014
|
11/4/2014
|
CAN communication between I/O and GPS,Hardware for headlights and interface with the board
|
Scheduled
|
TBD
|
7
|
11/5/2014
|
11/9/2014
|
Button for start and stop on I/O
|
Scheduled
|
TBD
|
8
|
11/9/2014
|
11/15/2014
|
Mount LCD, headlights, board on CAR and Final testing
|
Scheduled
|
TBD
|
Communication Bridge + Android Team Schedule
Sl. No
|
Start Date
|
End Date
|
Task
|
Status
|
Actual Completion Date
|
1
|
9/16/2014
|
9/23/2014
|
Design UI of the Android App
|
Completed
|
9/23/2014
|
2
|
9/23/2014
|
9/30/2014
|
Interface and pairing the Android App with Bluetooth module
|
Completed
|
9/30/2014
|
3
|
9/30/2014
|
10/7/2014
|
Implementation of first stage of Android App (Frame 1: Sending data via Bluetooth to give directions for the car)
|
Completed
|
10/4/2014
|
4
|
10/7/2014
|
10/14/2014
|
Implementation of second stage of Android App (Bridge between Android, UART and Master)
|
Completed
|
10/16/2014
|
5
|
10/14/2014
|
10/28/2014
|
Implementation of second stage of Android App (Frame 2: collecting reliable sensor data(8 ultrasonic, gps coordinates, speed ) )
|
Ongoing
|
TBD
|
6
|
10/28/2014
|
11/18/2014
|
Implementation of third stage of Android App (Frame 3: Navigation using markers and CLL coordinate system)
|
Scheduled
|
TBD
|
7
|
11/18/2014
|
11/25/2014
|
Testing and improving the UI of to the App
|
Scheduled
|
TBD
|
Sensor Controller
Sl. No
|
Start Date
|
End Date
|
Task
|
Status
|
Actual Completion Date
|
1
|
10/3/2014
|
10/10/2014
|
Developing a Test code for sensors
|
Completed
|
10/14/2014
|
2
|
10/10/2014
|
10/17/2014
|
Finalizing on the sensors
|
Completed
|
10/14/2014
|
3
|
10/17/2014
|
10/24/2014
|
Transfer of sensor data via can bus to master
|
Completed
|
10/21/2014
|
4
|
10/24/2014
|
10/30/2014
|
Implementation with multiple sensors
|
Ongoing
|
TBD
|
5
|
10/30/2014
|
11/6/2014
|
Implementation of Light Sensors and Tilt Sensor
|
Scheduled
|
TBD
|
Parts List & Cost
Qty
|
Description
|
Manufacturer
|
Part Number
|
Total Cost
|
6
|
Ultra Sonic Sensor
|
Arduino
|
HC-SR04
|
12.58
|
1
|
Compass Module
|
Honeywell
|
HMC6352
|
Provided By Preet
|
1
|
GPS Receiver
|
MediaTek
|
LS20031 5Hz (66 Channel)
|
$59.95
|
1
|
RC car
|
Traxxas
|
1/10
|
$272
|
1
|
Bluetooth module
|
SunFounder
|
HC-06
|
$7.99
|
Backup Parts & cost
Qty
|
Description
|
Manufacturer
|
Part Number
|
Total Cost
|
Design & Implementation
Controller Communication Table
Controller ID Table
Controller ID
|
Controller
|
0x050
|
Master Controller
|
0x051
|
Geographical Controller
|
0x052
|
Motor Controller
|
0x053
|
Sensor Controller
|
0x054
|
IO Controller
|
0x055
|
App/Bridge Controller
|
Common MessageID Table
MessageID
|
Description
|
ResponseID
|
Description
|
0x110
|
Get Board Status
|
0x52A
|
Send Board Status (Response of 0x42A )
|
0x111
|
Get Board Time
|
0x211
|
Present Board Time (Response of 0x111)
|
|
|
0x213
|
Board's New Data (Response of 0x313)
|
Master Controller MessageID Table
SubscribeID
|
Description
|
PublishID
|
Description
|
0x42A
|
Subscribe to new motor data to be set
|
0x52A
|
Publish motor data (Response of 0x42A )
|
0x42B
|
Subscribe to new motor speed to be set
|
0x52B
|
Publish motor data (Response of 0x42B )
|
0x42C
|
Subscribe to new motor direction to be set
|
0x52C
|
Publish motor direction (Response of 0x42C )
|
0x44A
|
Subscribe to new input/output data
|
0x54A
|
Publish data to be displayed (Response of 0x44A )
|
0x45C
|
Subscribe to reliable sensor value (sensor data from sensor through master)
|
0x55C
|
Publish reliable sensor value (Response of 0x45C)
|
0x45D
|
Subscribe to current location data (GPS data from Master through GPS)
|
0x55D
|
Publish current location data (Response of 0x55D)
|
0x310
|
Reset (master specific command)
|
|
|
0x311
|
SetTime (master specific command)
|
|
|
0x312
|
Start (master specific command)
|
|
|
0x313
|
Get Board Data (master specific command)
|
|
|
Geographical Controller MessageID Table
SubscribeID
|
Description
|
PublishID
|
Description
|
0x40C
|
Subscribe to Compass Data
|
0x50C
|
Publish Compass Data (Response of 0x40C )
|
0x40B
|
Subscribe to GPS Data
|
0x50B
|
Publish GPS Data (Response of 0x40B )
|
0x40A
|
Subscribe to Geographical Data
|
0x50A
|
Publish Geographical Data (Response of 0x40A )
|
Motor Controller MessageID Table
SubscribeID
|
Description
|
PublishID
|
Description
|
0x40A
|
Subscribe to Motor Data
|
0x50A
|
Publish Motor Data (Response of 0x40A)
|
0x40B
|
Subscribe to Motor Speed
|
0x50B
|
Publish Motor Speed (Response of 0x40B)
|
0x40C
|
Subscribe to Motor Direction
|
0x50C
|
Publish Motor Direction (Response of 0x40C)
|
Sensor Controller MessageID Table
SubscribeID
|
Description
|
PublishID
|
Description
|
0x40A
|
Subscribe to Sensor Data
|
0x50A
|
Publish Sensor Data (Response of 0x40A)
|
0x44A
|
Subscribe to Sensor Data(I/O unit subscribes
|
0x54A
|
Publish Sensor Data (Sends data to I/O unit)
|
IO Controller
SubscribeID
|
Description
|
PublishID
|
Description
|
0x40A
|
Subscribe to IO Data
|
0x50A
|
Publish IO Data (Response of 0x40A)
|
Android and Bridge
SubscribeID
|
Description
|
PublishID
|
Description
|
0x40A
|
Subscribe Start/Stop command
|
0x50A
|
Publish "start/stop" message (response of 0x40A)
|
0x40B
|
Subscribe GPS longitude (GPS data to Master)
|
0x50B
|
Publish GPS longitude (response of 0x40B)
|
0x40C
|
Subscribe GPS latitude (GPS data to Master)
|
0x50C
|
Publish GPS longitude (response of 0x40C)
|
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/