Difference between revisions of "F17: Rolling Thunder"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Schedule)
(Schedule)
Line 125: Line 125:
 
* <font color="blue"> Test ultrasonic sensors (maxbotix and parallax ping) and identify the suitable one for front and rear. </font color>  
 
* <font color="blue"> Test ultrasonic sensors (maxbotix and parallax ping) and identify the suitable one for front and rear. </font color>  
 
* <font color="green"> Verify basic commands to Traxxas motor, send basic commands (e.g. forward) to RC car from SJOne board. </font color>
 
* <font color="green"> Verify basic commands to Traxxas motor, send basic commands (e.g. forward) to RC car from SJOne board. </font color>
* <font color="red">Configure GPS device baud rate and interface it with SJOne board using UART.</font color>
+
* <font color="red"> Configure GPS device baud rate and interface it with SJOne board using UART.</font color>
* <font color="red">Parse data received from GPS device to transmittable format.</font color>  
+
* <font color="red"> Parse data received from GPS device to transmittable format.</font color>  
 
* <font color="orange"> Analyse the communication required across the controllers. </font color>
 
* <font color="orange"> Analyse the communication required across the controllers. </font color>
 
* <font color="orange"> Chalk out the Message IDs based on the priority of the messages and the data to be sent across nodes. </font color>
 
* <font color="orange"> Chalk out the Message IDs based on the priority of the messages and the data to be sent across nodes. </font color>
Line 142: Line 142:
 
* <font color="green"> Finish motor controller API.  Test motor driving in different situations, begin to listen to CAN for controls. </font color>  
 
* <font color="green"> Finish motor controller API.  Test motor driving in different situations, begin to listen to CAN for controls. </font color>  
 
* <font color="green">Interface motor to the SJOne board and check for basic functionality.</font color>
 
* <font color="green">Interface motor to the SJOne board and check for basic functionality.</font color>
* <font color="red">Interface Compass module with SJOne board using I2C serial bus. </font color>
+
* <font color="red"> Interface Compass and GPS module with SJOne board using I2C serial bus. </font color>
* <font color="red">Interface Geo controller module with CAN Bus.</font color>
+
* <font color="red"> Interface Geo controller module with CAN Bus.</font color>
 
* <font color="orange"> Establish communication across all the CAN controllers over CAN bus based on the DBC file. </font color>
 
* <font color="orange"> Establish communication across all the CAN controllers over CAN bus based on the DBC file. </font color>
 
* <font color="orange"> Verify the power-up interactions and configurations between Master and the other controllers </font color>
 
* <font color="orange"> Verify the power-up interactions and configurations between Master and the other controllers </font color>
Line 165: Line 165:
 
! scope="row"| 9
 
! scope="row"| 9
 
| 10/25/2017
 
| 10/25/2017
| 11/14/2017
+
| 11/28/2017
 
|  
 
|  
 
* <font color="indigo">Add an activity to the app for monitoring the CAN bus wirelessly.</font color>
 
* <font color="indigo">Add an activity to the app for monitoring the CAN bus wirelessly.</font color>
Line 178: Line 178:
 
* <font color="green"> Continue testing motor driver via commands from CAN bus. </font color>  
 
* <font color="green"> Continue testing motor driver via commands from CAN bus. </font color>  
 
* <font color="green"> Build in speed steps to reverse motor for reverse to work correctly. </font color>  
 
* <font color="green"> Build in speed steps to reverse motor for reverse to work correctly. </font color>  
* <font color="red">Calibrate GPS and Compass Module.Develop code for GPS and Compass module communication over CAN .</font color>
+
* <font color="red"> Calibrate GPS and Compass Module.Develop code for GPS and Compass module communication over CAN .</font color>
 
* <font color="indigo">Add an activity to the app for navigating the vehicle manually.</font color>
 
* <font color="indigo">Add an activity to the app for navigating the vehicle manually.</font color>
 
* <font color="indigo">Send and recieve current location, destination and checkpoint coordinates to and from App and Ggeo module via Bridge.</font color>
 
* <font color="indigo">Send and recieve current location, destination and checkpoint coordinates to and from App and Ggeo module via Bridge.</font color>
Line 196: Line 196:
 
|  
 
|  
 
* <font color="blue"> Implement obstacle avoidance algorithm based on filtered sensor data </font color>  
 
* <font color="blue"> Implement obstacle avoidance algorithm based on filtered sensor data </font color>  
* <font color="green"> Begin work on LCD to show vehicle status in an intuitive GUI.  </font color>  
+
* <font color="green"> Begin work on LCD to show vehicle status (speed, fuel status, obstacles, distance to destination etc.) in an intuitive GUI.  </font color>  
* <font color="green"> Finish implementing speed control on motor (to make sure requested speed is met based on RPM read).  </font color>  
+
* <font color="green"> Finish implementing speed control on motor (to make sure requested speed is met based on RPM read).  </font color>
 +
* <font color="green"> Fine tune motor reversing.  </font color>  
 
* <font color="orange"> Integrate all modules with the Master to test the data flow. </font color>
 
* <font color="orange"> Integrate all modules with the Master to test the data flow. </font color>
 +
* <font color="orange"> Fine tune obstacle avoidance steering logic with rear sensor input and reversing. </font color>
 
* <font color="orange"> Start incorporating Geo module information to master module steering logic. </font color>
 
* <font color="orange"> Start incorporating Geo module information to master module steering logic. </font color>
* <font color="indigo">Add Google Earth/Maps to the Android app for selecting the car's destination.</font color>
+
* <font color="red"> Decide implement and test data exchange between Geo module and Bridge.</font color>
* <font color="indigo">Send car information status to app.</font color>
+
* <font color="red"> Calculate and send simple bearing angle and destination status on CAN to figure out initial challenges.</font color>
* Test each module individually
+
* <font color="indigo"> Add Google Earth/Maps to the Android app for selecting the car's destination.</font color>
* Verify the stringent requirement of Start-up Sync, Periodic heart-beat messages.  
+
* <font color="indigo"> Send car information status to app.</font color>
| Not started
+
* <font color="brown"> Test each module individually  
 +
* <font color="brown"> Verify the stringent requirement of Start-up Sync, Periodic heart-beat messages.
 +
* Start adding contents to the relevent sections of wiki.
 +
| In progress
 
|  
 
|  
 
|-
 
|-
Line 210: Line 215:
 
| style="text-align:center;" colspan="2"| 11/14/2017
 
| style="text-align:center;" colspan="2"| 11/14/2017
 
| DEMO: Basic obstacle avoidance
 
| DEMO: Basic obstacle avoidance
| Not started
+
| In progress
 
|  
 
|  
 
|-
 
|-
Line 217: Line 222:
 
| 11/21/2017
 
| 11/21/2017
 
|
 
|
* <font color="blue"> Test obstacle avoidance algorithm and fine tune sensor readings </font color>  
+
* <font color="blue"> Test obstacle avoidance algorithm and fine tune sensor readings </font color>
* <font color="orange"> Interface all the controllers each with additional implemented features. </font color>
+
* <font color="green"> Test the LCD at run time for vehicle status and decide on improvements if any.  </font color> 
* <font color="orange"> Verify the rest of the communication over the CAN bus across the five controllers. </font color>
+
* <font color="red"> Stabilize navigation logic with multiple checkpoints, bearing angle and destination status info.</font color>
* Implement motor feedback and IO display.
+
* <font color="red"> Identify and mitigate GPS locking, offset and other issues.</font color>
 +
* <font color="red"> Assure correctness of compass calibration.</font color>
 +
* <font color="orange"> Determine if any more changes to DBC are required and lock it down. </font color>
 +
* <font color="orange"> Implement the steering logic with bearing angle and status provided by geo-module. </font color>
 +
* <font color="indigo"> Consistantly communicate current car location to App, get check points from App and relay them to Geo module.</font color>
 +
* <font color="indigo"> Send additional vehicle status information from can bus to the app for display.</font color>
 +
* <font color="brown"> Field test and check for obvious issues in obstacle avoidance, navigation, maintaining speed (up/down hill).
 +
* <font color="brown"> Provide feed backs to each team on identified short comings.
 
| Not started
 
| Not started
 
|  
 
|  
Line 234: Line 246:
 
| 11/28/2017
 
| 11/28/2017
 
|  
 
|  
* <font color="orange"> Verify the correct response of each module. </font color>
+
* Analyse area lagging behind and redeploy team where additional resources are required.
* <font color="brown"> Test the accuracy of check-points from the Bluetooth controller, location data from the Geo-controller sensor and Navigation Algorithm
+
* <font color="green"> Implement turning indicators, break lights and head light.  </font color> 
 +
* <font color="orange"> Improvise steering logic based on field tests under various conditions and locations. </font color>
 +
* <font color="red"> Analyse field test results to re-calberate GPS offset values if required.</font color>
 +
* <font color="indigo"> Complete the CAN information isplay activity of App.</font color>
 +
* <font color="brown"> Test the accuracy of check-points from the Bluetooth controller, location data from the Geo-controller sensor and Navigation Algorithm.
 +
* <font color="brown"> Check overall robustness of the complete system.
 
| Not started
 
| Not started
 
|  
 
|  
Line 241: Line 258:
 
! scope="row"| 17
 
! scope="row"| 17
 
| 11/29/2017
 
| 11/29/2017
| 12/05/2017
+
| 12/19/2017
 
|  
 
|  
 
* <font color="brown"> Check for tuning or calibration of components if required. </font color>
 
* <font color="brown"> Check for tuning or calibration of components if required. </font color>
Line 249: Line 266:
 
|-
 
|-
 
! scope="row"| 18
 
! scope="row"| 18
| 12/06/2017
 
| 12/19/2017
 
|
 
|Not started
 
|
 
|-
 
! scope="row"| 19
 
 
| style="text-align:center;" colspan="2"| 12/20/2017
 
| style="text-align:center;" colspan="2"| 12/20/2017
 
|
 
|
Line 262: Line 272:
 
|  
 
|  
 
|-
 
|-
! scope="row"| 20
+
! scope="row"| 19
 
|style="text-align:center;" colspan="2"| 12/20/2017
 
|style="text-align:center;" colspan="2"| 12/20/2017
 
|  
 
|  

Revision as of 07:07, 6 November 2017

Grading Criteria

  • How well is Software & Hardware Design described?
  • How well can this report be used to reproduce this project?
  • Code Quality
  • Overall Report Quality:
    • Software Block Diagrams
    • Hardware Block Diagrams
      Schematic Quality
    • Quality of technical challenges and solutions adopted.

Rolling Thunder

Abstract

This section should be a couple lines to describe what your project does.

Objectives & Introduction

Team Members & Responsibilities

  • Central Controller
    • Akil Khan
    • Jerry John
  • Geographical Controller
    • Abhilash Tuse
    • Vishal Rajendra Shrivastava
  • Communication Bridge + Android Application
    • Akinfemi Akin-Aluko
    • Johnny Nigh
  • Motor and I/O Controller
    • Saurabh Ravindra Badenkal
    • Joshua Skow
  • Sensor Controller
    • Sona Bhasin
    • Thrishna Palissery
  • QA Team
    • Akil Khan
    • Saurabh Ravindra Badenkal

Legend

Color Component

Blue

Sensor Controller

Green

Motor/IO Controller

Red

Geographical Controller

Orange

Central Controller

Indigo

Communication Bridge + Android Application

Brown

QA

Schedule

Start Date End Date Task Status Date of Completion
1 09/20/2017 09/26/2017
  • Order components and distribute project modules.
  • Research on project requirements.
  • Research on different sensors to be used.
Completed 09/26/2017
2 09/27/2017 10/03/2017
  • Set up project Git and Wiki page.
  • Understand the hardware specifications of each component.
  • Study the datasheet of each component and the hardware interfacing.
  • Test the compatibility of each module.
Completed 10/03/2017
3 10/04/2017 10/10/2017
  • Establish a connection over Bluetooth between the Android app and the BRIDGE.
Completed 10/10/2017
4 10/10/2017 Wiki Schedule Completed 10/10/2017
5 10/11/2017 10/17/2017
  • Test ultrasonic sensors (maxbotix and parallax ping) and identify the suitable one for front and rear.
  • Verify basic commands to Traxxas motor, send basic commands (e.g. forward) to RC car from SJOne board.
  • Configure GPS device baud rate and interface it with SJOne board using UART.
  • Parse data received from GPS device to transmittable format.
  • Analyse the communication required across the controllers.
  • Chalk out the Message IDs based on the priority of the messages and the data to be sent across nodes.
  • Understand DBC and implement the DBC file compatible with all the controllers.
  • Transfer data from the Android app to the BRIDGE.
Completed 10/17/2017
6 10/18/2017 10/24/2017
  • Implement sensor code and perform standalone testing.
  • Finish motor controller API. Test motor driving in different situations, begin to listen to CAN for controls.
  • Interface motor to the SJOne board and check for basic functionality.
  • Interface Compass and GPS module with SJOne board using I2C serial bus.
  • Interface Geo controller module with CAN Bus.
  • Establish communication across all the CAN controllers over CAN bus based on the DBC file.
  • Verify the power-up interactions and configurations between Master and the other controllers
  • Receive data in the Android app from the BRIDGE.
Completed 10/24/2017
7 10/24/2017 DBC File Completed 10/24/2017
8 10/24/2017 DEMO: CAN communication between controllers Completed 10/24/2017
9 10/25/2017 11/28/2017
  • Add an activity to the app for monitoring the CAN bus wirelessly.
In progress
10 11/01/2017 11/07/2017
  • Filter sensor value readings and decide on incorporating the algorithm either in master controller or sensor controller based on performance testing
  • Continue testing motor driver via commands from CAN bus.
  • Build in speed steps to reverse motor for reverse to work correctly.
  • Calibrate GPS and Compass Module.Develop code for GPS and Compass module communication over CAN .
  • Add an activity to the app for navigating the vehicle manually.
  • Send and recieve current location, destination and checkpoint coordinates to and from App and Ggeo module via Bridge.
In Progress
11 11/07/2017 DEMO: Motors driven by wheel feedback and sensors

Final Wiki Schedule

In Progress
12 11/08/2017 11/14/2017
  • Implement obstacle avoidance algorithm based on filtered sensor data
  • Begin work on LCD to show vehicle status (speed, fuel status, obstacles, distance to destination etc.) in an intuitive GUI.
  • Finish implementing speed control on motor (to make sure requested speed is met based on RPM read).
  • Fine tune motor reversing.
  • Integrate all modules with the Master to test the data flow.
  • Fine tune obstacle avoidance steering logic with rear sensor input and reversing.
  • Start incorporating Geo module information to master module steering logic.
  • Decide implement and test data exchange between Geo module and Bridge.
  • Calculate and send simple bearing angle and destination status on CAN to figure out initial challenges.
  • Add Google Earth/Maps to the Android app for selecting the car's destination.
  • Send car information status to app.
  • Test each module individually
  • Verify the stringent requirement of Start-up Sync, Periodic heart-beat messages.
  • Start adding contents to the relevent sections of wiki.
In progress
13 11/14/2017 DEMO: Basic obstacle avoidance In progress
14 11/15/2017 11/21/2017
  • Test obstacle avoidance algorithm and fine tune sensor readings
  • Test the LCD at run time for vehicle status and decide on improvements if any.
  • Stabilize navigation logic with multiple checkpoints, bearing angle and destination status info.
  • Identify and mitigate GPS locking, offset and other issues.
  • Assure correctness of compass calibration.
  • Determine if any more changes to DBC are required and lock it down.
  • Implement the steering logic with bearing angle and status provided by geo-module.
  • Consistantly communicate current car location to App, get check points from App and relay them to Geo module.
  • Send additional vehicle status information from can bus to the app for display.
  • Field test and check for obvious issues in obstacle avoidance, navigation, maintaining speed (up/down hill).
  • Provide feed backs to each team on identified short comings.
Not started
15 11/21/2017 DEMO: GPS driving Not started
16 11/22/2017 11/28/2017
  • Analyse area lagging behind and redeploy team where additional resources are required.
  • Implement turning indicators, break lights and head light.
  • Improvise steering logic based on field tests under various conditions and locations.
  • Analyse field test results to re-calberate GPS offset values if required.
  • Complete the CAN information isplay activity of App.
  • Test the accuracy of check-points from the Bluetooth controller, location data from the Geo-controller sensor and Navigation Algorithm.
  • Check overall robustness of the complete system.
Not started
17 11/29/2017 12/19/2017
  • Check for tuning or calibration of components if required.
  • Complete end-to-end testing for various scenarios and conditions.
Not started
18 12/20/2017

DEMO: Final Project

Not started
19 12/20/2017

SUBMISSION: Project Report

Not started

Parts List & Cost

Item # Description Distributor Qty Cost
1 SJOne Board Provided by Preet 5 $400
2 RC Car - Traxxas 1/10 Slash 2WD Amazon 1 $189.95
3 Bluetooth Bee BLE 4.0 Module ebay 1 $15
4 GPS Module Amazon 1 $28.99
5 Compass (CMPS11) Acroname 1 $45.95
6 Traxxas 6520 RPM Sensor Amazon 1 $10.82
7 Traxxas 2991 LiPo Battery and Charger Amazon 1 $199.95
8 Breadboard Jumper Wires Amazon 1 $6.99
9 MIFFLIN Acrylic Plexiglass Clear Plastic Sheet Amazon 1 $9.89
10 Printed Circuit Board Amazon 1 $16.83
11 PCB Mounting Feet Set Amazon 1 $11.99
12 Traxxas 6538 Telemetry Trigger Magnet Holder Amazon 1 $4.63
13 MB1240 XL-MaxSonar EZ4 Ultrasonic Sensor Amazon 2 $73.90
14 Parallax Ping Ultrasonic Range Sensor Amazon 2 $69.98
15 CAN Transceiver Microchip 10 $10.00
16 4D systems 32u LCD 4D Systems 1 $79.00

Design & Implementation

The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.

Hardware Design

Discuss your hardware design here. Show detailed schematics, and the interface here.

Hardware Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Implementation

This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.

Testing & Technical Challenges

Describe the challenges of your project. What advise would you give yourself or someone else if your project can be started from scratch again? Make a smooth transition to testing section and described what it took to test your project.

Include sub-sections that list out a problem and solution, such as:

<Bug/issue name>

Discuss the issue and resolution.

Conclusion

Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?

Project Video

Upload a video of your project and post the link here.

Project Source Code

References

Acknowledgement

Any acknowledgement that you may wish to provide can be included here.

References Used

List any references used in project.

Appendix

You can list the references you used.