Difference between revisions of "F14: Team4-Self Driving Car - AUG"
From Embedded Systems Learning Academy
Proj user16 (talk | contribs) (→Controller Communication Table) |
Proj user16 (talk | contribs) (→Controller Communication Table) |
||
Line 551: | Line 551: | ||
== Design & Implementation == | == Design & Implementation == | ||
− | === Controller | + | === Controller ID Table === |
{| class="wikitable" | {| class="wikitable" | ||
Line 576: | Line 576: | ||
| 111 | | 111 | ||
| I/O Controller | | I/O Controller | ||
+ | |} | ||
+ | |||
+ | '''Controller Communication Table''' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="4"| Incoming Messages | ||
+ | ! colspan="1"| | ||
+ | ! colspan="4"| Outgoing Messages | ||
+ | |- | ||
+ | |- | ||
+ | ! scope="col"| Sl. No | ||
+ | ! scope="col"| Message ID | ||
+ | ! scope="col"| Message Description | ||
+ | ! scope="col"| Message Data | ||
+ | ! scope="col"| | ||
+ | ! scope="col"| Message ID | ||
+ | ! scope="col"| Message Description | ||
+ | ! scope="col"| Message Data | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| 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 | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| 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 | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| 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 | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| 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 | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| 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 | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| | ||
+ | |- | ||
+ | |- | ||
+ | ! colspan="8"| I/O | ||
+ | |- | ||
+ | |- | ||
+ | |- | ||
+ | |- | ||
+ | |24 | ||
+ | |0x3BA | ||
+ | |Sensor Value & Status | ||
+ | |Sensor Reading & Status of each Module | ||
+ | | | ||
+ | |N/A | ||
+ | |N/A | ||
+ | |N/A | ||
+ | |- | ||
+ | |- | ||
|} | |} | ||
Revision as of 23:35, 21 October 2014
Contents
- 1 Self Driving Car
- 2 Abstract
- 3 Objective and Scope
- 4 Team Members & Responsibilities
- 5 Introduction
- 6 Schedule
- 7 Parts List & Cost
- 8 Backup Parts & cost
- 9 Design & Implementation
- 10 Testing & Technical Challenges
- 11 Challenges and Learning
- 12 Future Enhancement
- 13 Conclusion
- 14 Project Video
- 15 Project Source Code
- 16 References
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 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
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/