Difference between revisions of "F14: Team5-Self Driving Car - AUG"
From Embedded Systems Learning Academy
Proj user12 (talk | contribs) m (→Schedule) |
Proj user12 (talk | contribs) m (→Schedule) |
||
Line 356: | Line 356: | ||
|11/14/2014 | |11/14/2014 | ||
|Research on RPM sensor. Interface the RPM sensor to calculate the Speed. Test the RPM sensor by running the car at different speed | |Research on RPM sensor. Interface the RPM sensor to calculate the Speed. Test the RPM sensor by running the car at different speed | ||
− | | | + | |Code completed, but rpm task needs to be tested in the car. |
| | | | ||
|- | |- |
Revision as of 04:39, 27 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 (2 Members) - [Bailey Wu, Rishabh Sareen]
- Motor Controller (2 Members) - [Abraham Ruiz, Sree Harsha, Arpit Amin]
- I/O Unit (2 Members) - [Yoni Klein, Tejeswar]
- Communication Bridge + Android (3 Members) - [Shaw Ken Chang, Arnold Bajet Jr., Thomas Pantels]
- Geographical Controller (3 Members) - [Himanshu Saini, Divya Kamath, Sree Harsha]
- Master Controller (3 Members) - [Akash Ayare, Sree Harsha, Karthik Vadiraja]
Introduction
Schedule
Geographical Controller
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 1-Oct-2014 | 14-Oct-2014 | Order Components and Make a schedule | Completed | 14-Oct-2014 |
2 | 8-Oct-2014 | 14-Oct-2014 | Decide commands that Geographical Controller will support | Completed | 14-Oct-2014 |
3 | 7-Oct-2014 | 14-Oct-2014 | Complete CAN RX task and subscription handling. Verify communication with other controllers | Completed | 21-Oct-2014 |
4 | 14-Oct-2014 | 24-Oct-2014 | Interface GPS module and Compass and develop drivers if needed | GPS - In Progress | |
5 | 24-Oct-2014 | 30-Oct-2014 | Design and develop algorithm to calculate heading and bearing from GPS coordinates | In Progress | |
6 | 24-Oct-2014 | 5-Nov-2014 | Work on calibration of compass | ||
7 | 1-Nov-2014 | 10-Nov-2014 | Test with the central and Bluetooth controller | ||
8 | 10-Nov-2014 | 25-Nov-2014 | Begin testing with fully assembled car |
Sensor Controller
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 10/3/2014 | 10/10/2014 | Order ultrasonic sensor parts and develop simple test code for the sensors | Done | 10/10/2014 |
2 | 10/10/2014 | 10/17/2014 | Wire the ultrasonic sensors, develop and implement the sensors using analog to digital converter | Done | 10/17/2014 |
3 | 10/17/2014 | 10/24/2014 | Collaborate with the other sub teams to finish the CAN bus communication and allow the self driving car to drive autonomously | Scheduled | |
4 | 10/24/2014 | 11/1/2014 | Develop, implement and test the ultrasonic sensors using the pulse width modulation and universal asynchronous receiver/transmitter | Scheduled | |
5 | 11/2/2014 | 11/9/2014 | Develop, implement and test the front and back infrared sensors using analog to digital converter | Scheduled | |
6 | 11/10/2014 | 11/17/2014 | Develop, implement and test the current/voltage sensor for the battery packs of the self driving car using I2C | Scheduled | |
7 | 11/18/2014 | 11/25/2014 | Collaborate with the other sub teams to make sure that the sensors are in working condition | Scheduled | |
8 | 11/26/2014 | 12/5/2014 | Collaborate with the other sub teams to debug any problems that may encountered | Scheduled | |
9 | 12/6/2014 | 12/13/2014 | Prepare for Demo | Scheduled |
IO Controller
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 10/7/2014 | 10/14/2014 | Research and order LCD appropriate for this project | Finished | 10/11/2014 |
2 | 10/7/2014 | 10/17/2014 | Implement CAN RX/Subscription task | Finished | 10/13/2014 |
3 | 10/7/2014 | 10/17/2014 | Finalize Task Architecture | In Progress | |
4 | 10/18/2014 | 10/21/2014 | Interface and test LCD | Finished | 10/20/2014 |
5 | 10/21/2014 | 10/28/2014 | Implement special button features | ||
6 | 10/21/2014 | 10/28/2014 | Implement auto scrolling feature | ||
7 | 10/28/2014 | 11/4/2014 | Design LCD UI with buttons |
Communication Bridge + Android
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 16-Sep-2014 | 23-Sep-2014 | Test bluetooth module using computer serial port and an android app(simple bluetooth terminal app downloaded from google play). Test the real life range and stability of the bluetooth module (HC-06). Modify the bluetooth chat example to work with the bluetooth module. | Done | 20-Sep-2014 |
2 | 28-Sep-2014 | 12-Oct-2014 | Draw UI design layouts for a basic android application that can view Google map as well as send GPS data through bluetooth by clicking on the map. Study google maps API and make a simple app that will post a short toast that shows the GPS location after a long press event. | Done | 12-Oct-2014 |
3 | 7-Oct-2014 | 11-Oct-2014 | Interface bluetooth module with SJSUOne board and able to verify that the connection is stable and that transaction via the bluetooth is accurate. This is done by adding a test button where if you press the button it send a command to the board. After receiving the command, the board should react with a response (LED light and/or text response to the android phone) | Done | 19-Oct-2014 |
4 | 11-Oct-2014 | 19-Oct-2014 | Integrate Google Maps and Bluetooth component together in Android app. After a long press on the map, the user should be prompted to start the car and set the location as the places the user selected. Add manual set location edit text boxes to set manual location without pressing on the map. Add a button for stoping and a button for starting the car. | In Progress (was able to work as separate app but having issue combinging them.) | |
5 | 19-Oct-2014 | 26-Oct-2014 | CAN infrastructure implmentation: Use our team's common CAN infrasturcture code and modify it specifically for our controller. First created the CAN communication table and then modify the infracturacture code to implement the broacasting as well as filtering of neccessary data. This only focuses on broadcasting a stop message or start message and the destination GPS data (set by android) as well as the filtering of car's current location data from the geological controller. | In Progress (created the CAN communication table and discussed with other controller teams about how our data should be transmitted and received. Added the common CAN infrastructure code and still in the process of modifying and testing the CAN code.) | |
6 | 26-Oct-2014 | 1-Nov-2014 | Test and implement car information reading as well as other functions of Android app | ||
7 | 2-Nov-2014 | 4-Nov-2014 | Iterate UI design | ||
8 | 5-Nov-2014 | 16-Nov-2014 | Implement 2nd UI design |
Motor Controller
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 10/1/2014 | 10/8/2014 | PWM2 (used to control motors) and PWM3 (used to control servo) interface with the car servo and motor. Write a test code to operate the servo and motor from the terminal command. | Completed and Tested | 10/11/2014 |
2 | 10/9/2014 | 10/18/2014 | Design and code CAN receive task for subscription. Check for basic CAN message commands for throttle and steer control. | Completed and tested | 10/26/14 |
3 | 10/19/2014 | 10/28/2014 | Design the CAN message table for motor control and servo control | Completed and tested | 10/26/14 |
4 | 10/29/2014 | 11/07/2014 | Design acceleration Vs steer control function for smooth run. Check for other factors involved. | Planned | |
5 | 11/08/2014 | 11/14/2014 | Research on RPM sensor. Interface the RPM sensor to calculate the Speed. Test the RPM sensor by running the car at different speed | Code completed, but rpm task needs to be tested in the car. | |
6 | 11/15/2014 | 11/21/2014 | Fine tune motor control code and integrate with all the controllers for proper working. | In Progress. Servo is working with the same behavior using the can_rx and terminal task; however, motors needs more testing. | |
7 | 11/22/2014 | 11/28/2014 | Test and check if more features can be added to improve performance. | In Progress. | |
8 | 11/29/2014 | 12/05/2014 | Final Testing and Debugging before the Demo day | Planned |
Central Controller
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 16-Sep-2014 | 23-Sep-2014 | Develop API for CAN bus communication. | Done | 23-Sep-2014 |
2 | 11-Oct-2014 | 15-Oct-2014 | Develop communication table for all controllers. | In Progress | |
3 | 15-Oct-2014 | 20-Oct-2014 | Broadcast message and target message setup. | In Progress | |
4 | 21-Oct-2014 | 28-Oct-2014 | Co-ordinate all controllers and take major decisions. | Planned | |
5 | 28-Oct-2014 | 11-Nov-2014 | Complete Building and fine-tuning of RC car. | Planned | |
6 | 21-Oct-2014 | 11-Nov-2014 | Develop coordination mechanism to ensure controllers are initialized and ready | In Progress | |
7 | 21-Oct-2014 | 28-Oct-2014 | Develop kill switch | In Progress | |
8 | 14-Oct-2014 | 21-Oct-2014 | Build external power distribution circuit | Done | 21-Oct-2014 |
9 | 28-Oct-2014 | 04-Nov-2014 | Coordination algorithm between steering and throttle for smooth turns | Planned | |
10 | 04-Nov-2014 | 11-Nov-2014 | Collision avoidance and cliff detection algorithms | Planned | |
11 | 04-Nov-2014 | 11-Nov-2014 | Intermediate unit and functional tests | Planned | |
12 | 21-Oct-2014 | 4-Nov-2014 | Initialize all boards with GPS-time | Planned | |
13 | 11-Nov-2014 | 25-Nov-2014 | Functional tests and algorithm adjustments | Planned | |
14 | 25-Nov-2014 | 02-Dec-2014 | Fine tuning and stretch goals (headlights, parallel parking, etc.) | Planned | |
15 | 02-Dec-2014 | 09-Dec-2014 | Prepare for demo | Planned |
Parts List & Cost
Qty | Description | Manufacturer | Part Number | Total Cost |
---|
Backup Parts & cost
Qty | Description | Manufacturer | Part Number | Total Cost |
---|
Design & Implementation
Controller Communication Table
Controller ID | Controller |
---|---|
0x01 | Master Controller |
0x02 | Geographical Controller |
0x03 | Motor Controller |
0x04 | Sensor Controller |
0x05 | IO Controller |
0x06 | Communication (Bluetooth Bridge/Android App) Controller |
Sl. No | Message Number | Purpose | Data layout |
---|---|---|---|
1 | 0x401 | Broadcast Start command | |
2 | 0x402 | Broadcast Stop command | |
3 | 0x403 | Broadcast GPS destination set by Android | byte [0-3] : (float), Longitude
byte [4-7] : (float), Latitude |
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/