Difference between revisions of "S20: Nimble"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Created page with "== Project Title == <Nimble> <HR> <BR/> == Abstract == <2-3 sentence abstract> === Introduction === The project was divided into N modules: * Sensor ... * Motor.. * ... *...")
 
(Schedule)
Line 57: Line 57:
 
<BR/>
 
<BR/>
  
== Schedule ==
+
== '''Team Deliverables Schedule''' ==
 
 
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! scope="col"| Week#
+
! scope="col" style="text-align: left;" style="background:#7acee2;" | <span style="color:#FFFFFF"> WEEK</span>
! scope="col"| Start Date
+
! scope="col" style="text-align: left;" style="background:#7acee2;" | <span style="color:#FFFFFF">
! scope="col"| End Date
+
START DATE </span>
! scope="col"| Task
+
! scope="col" style="text-align: left;" style="background:#7acee2;" | <span style="color:#FFFFFF">
! scope="col"| Status
+
END DATE </span>
 +
! scope="col" style="text-align: left;" style="background:#7acee2;" | <span style="color:#FFFFFF">
 +
TASK DETAILS </span>
 +
! scope="col" style="text-align: left;" style="background:#7acee2;" | <span style="color:#FFFFFF">
 +
STATUS </span>
 
|-
 
|-
! scope="row"| 1
+
| '''1''' || ''' Feb 2020''' || '''4 March 2020''' ||  
| 09/15/2017
 
| 09/16/2017
 
|
 
* Read previous projects, gather information and discuss among the group members.
 
* Distribute modules to each team member.
 
  
| Completed
+
*<font color="#808080">'''Create and establish GitLab repository'''</font>
 +
*<font color="#808080">'''Establish slack channel and invite Preet'''</font>
 +
*<font color="#808080">'''Look through previous years projects and study it'''</font>
 +
*<font color="#808080">'''Distribute major roles among team members'''</font>
 +
|| Completed <br> Completed <br> Completed <br>Completed <br>
 +
|-
 +
| '''2''' || '''05 March 2020''' || '''12 March 2020''' ||
 +
*<font color="#808080">'''Create a Bill of Materials.'''</font>
 +
*<font color="#808080">'''Select and order an RC car.'''</font>
 +
*<font color="#808080">'''Make Repo on Gitlab for all modules - Follow Naming Convention.'''</font>
 +
|| In Progress <br> Completed <br> In Progress
 +
|-
 +
| '''3''' || '''13 March 2020'''|| '''19 March 2020''' ||
 +
*<font color="#808080">'''Select Part Number for Sensors (Tanmay, Ellis)'''</font>
 +
*<font color="#808080">'''Designing and deciding PCB tool(Lawrence)'''</font>
 +
*<font color="#808080">'''Finalizing GPS module by doing some research (Yuming)'''</font>
 +
*<font color="#808080">'''Finalize and order LCD ()'''</font>
 +
*<font color="#808080">'''Finalize Motor and Order it (Lawrence , Yuming )'''</font>
 +
*<font color="#808080">'''Environmental setup of Android ( )'''</font>
 +
|| In Progress <br> Not Started Yet <br> Completed <br> In Progress <br> In Progress <br>In Progress <br>
 +
|-
 +
| '''4''' || '''20 March 2020'''|| '''26 March 2020'''||
 +
*<font color="purple">'''Understand DBC and implement the DBC file compatible with all the controllers.'''</font>
 +
*<font color="green">'''Test motor driving in different situations, begin to listen to CAN for controls.'''</font>
 +
*<font color="purple">'''Establish communication across all the CAN controllers over CAN bus based on the DBC file.'''</font>
 +
*<font color="#148F77">'''Verify the power-up interactions and configurations between Master and the other controllers.'''</font>
 +
*<font color="purple">'''03/26/2020 DBC File'''</font>
 +
*<font color="purple">'''03/26/2020 DEMO: CAN communication between controllers.'''</font>
 +
|| In Progress <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br>Not Started Yet <br>
 +
|-
 +
| '''5''' || '''27 March 2019'''|| '''09 April 2019'''||
 +
* // Temporary schedule below
 +
*<font color="#148F77">'''Check and Resolve power issue for RC Car.'''</font>
 +
*<font color="#148F77">'''Finalize high-level system block diagram and control scheme.'''</font>
 +
*<font color="#148F77">'''Circuit Simulation in Diptrace Tool.'''</font>
 +
*<font color="#148F77">'''PCB Layout Design in Diptrace Tool.'''</font>
 +
*<font color="#148F77">'''Finalize Components placement on PCB.'''</font>
 +
*<font color="brown">'''Establish a connection over Bluetooth and Android app.'''</font>
 +
*<font color="brown">'''Establish a communication between Bluetooth devices.'''</font>
 +
*<font color="FUCHSIA">'''Interfacing of ultrasonic sensors to the SJOne board and check for basic functionality.'''</font>
 +
*<font color="FUCHSIA">'''Interface and get the reading of Lidar sensor with SJOne over UART.'''</font>
 +
*<font color="purple">'''Chalk out the Message IDs based on the priority of the messages and the data to be sent across nodes.'''</font>
 +
*<font color="green">'''Interface of Servo & DC motor to the SJOne board and check for basic functionality.'''</font>
 +
*<font color="orange">'''Interface Compass module with SJOne board using I2C serial bus.'''</font>
 +
*<font color="MAROON">'''Interface bluetooth HC-05 module with SJOne board using serial Communication.'''</font>
 +
*<font color="MAROON">'''Configure bluetooth HC-05 module name as Tech Savy using HC-05 Communication Mode.'''</font>
 +
*<font color="fire">'''Explore UI designing of LCD.'''</font>
 +
*<font color="green">'''Finish motor controller API. Test motor driving in different situations, begin to listen to CAN for controls.'''</font>
 +
*<font color="brown">'''Add a TextView for displaying the Bluetooth connection status in Android App.'''</font>
 +
|| Not Started Yet <br> Not Started Yet  <br> Not Started Yet <br> Not Started Yet  <br> Not Started Yet  <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br> Not Started Yet <br>
 +
|-
 +
| '''6''' || '''10 April 2020'''|| '''16 April 2020'''||
 +
*<font color="FUCHSIA">'''Parse data of Lidar Sensor depending on distance and angle and send it to master using dbc.'''</font>
 +
*<font color="FUCHSIA">'''Implement basic obstacle avoidance algorithm based on sensor data and test the same.'''</font>
 +
*<font color="green">'''Continue testing motor driver via commands from CAN bus.'''</font>
 +
*<font color="green">'''Build in speed steps to reverse motor for reverse to work correctly.'''</font>
 +
*<font color="FUCHSIA">'''Mount all the sensors and test for any dead band and modify their positions for maximum coverage.'''</font>
 +
*<font color="FUCHSIA">'''Integrate the fusion of LIDAR and Ultrasound sensor to get overall feedback from all the directions.'''</font>
 +
*<font color="green">'''Develop algorithm to avoid obstacles and plan the car's further navigation path.'''</font>
 +
*<font color="FUCHSIA">'''Complete final prototype of the obstacle avoidance feature.'''</font>
 +
*<font color="orange">'''Calibrate Compass Module. Develop code for Compass module communication over CAN.'''</font>
 +
*<font color="green">'''16 April 2019 DEMO: Motors driven by wheel feedback and sensors, Basic obstacle avoidance.'''</font>
 +
*<font color="#808080">'''Final Wiki Schedule.'''</font>
 +
||Completed <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br>Completed <br> Completed <br> Completed <br> Completed <br>
 +
|-
 +
| '''7''' || '''17 April 2020'''|| '''23 April 2020'''||
 +
*<font color="orange">'''Configure GPS device baud rate and interface it with SJOne board using UART.'''</font>
 +
*<font color="orange">'''Send and receive current location, destination and checkpoint coordinates to and from App and Geo module via BRIDGE.'''</font>
 +
*<font color="FUCHSIA">'''Calibrate sensors readings and work on filtering algorithm with Master & Sensor'''</font>
 +
*<font color="fire">'''Begin work on LCD to show vehicle live status(speed, fuel-status, obstacles, distance to destination etc.) in a GUI.'''</font>
 +
*<font color="FUCHSIA">'''Finish implementing speed control on motor (to make sure requested speed is met based on RPM read).'''</font>
 +
*<font color="green">'''Work on Car reversing using Motor Controllers.'''</font>
 +
*<font color="purple">'''Integrate all modules with the Master to test the data flow.'''</font>
 +
*<font color="green">'''Validation & Verification of obstacle avoidance, steering logic with rear sensor inputs and reversing.'''</font>
 +
*<font color="orange">'''Start incorporating GEO Controller information to Master module Steering logic.'''</font>
 +
*<font color="maroon">'''Decide, implement and test data exchange between Geo Controller and BRIDGE.'''</font>
 +
*<font color="orange">'''Calculate and send simple bearing angle and destination status on CAN to figure out initial challenges.'''</font>
 +
*<font color="brown">'''Add a Google Map for setting the car's destination.'''</font>
 +
*<font color="brown">'''Send car location to app and check points received to Geo module.'''</font>
 +
*<font color="maroon">'''Verify the stringent requirement of Start-up Sync, Periodic heart-beat messages.'''</font>
 +
*<font color="#808080">'''Update Wiki Schedule with Test Reports.'''</font>
 +
|| Completed <br> Completed <br> Completed <br> Completed  <br> Completed  <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br>In Progress <br> Completed <br> Completed <br>
 +
|-
 +
| '''8''' || '''24 April 2020'''|| '''30 April 2020'''||
 +
*<font color="fire">'''Testing & Validation of the LCD UI and display run time vehicle status and looking forward for feedback from team if any.'''</font>
 +
*<font color="orange">'''Improve & Validate Navigation logic with multiple checkpoints, bearing angle and destination information.'''</font>
 +
*<font color="orange">'''Identify and mitigate GPS locking, Location Accuracy and Number of Satellite-In-View coming.'''</font>
 +
*<font color="orange">'''Validate Accuracy of Compass Calibration with iPhone Compass.'''</font>
 +
*<font color="purple">'''Determine and add DBC Changes and finalized.'''</font>
 +
*<font color="orange">'''Implement the steering logic with bearing angle and status provided by GEO-Module.'''</font>
 +
*<font color="brown">'''Consistently Communicate current car location to App, get check points from App and relay them to Geo module.'''</font>
 +
*<font color="MAROON">'''Send additional vehicle status information from can bus to the App for display.'''</font>
 +
*<font color="brown">'''Send the request to Google for getting the checkpoints(use the Google Maps Directions API).'''</font>
 +
*<font color="green">'''Field test and check for obvious issues in obstacle avoidance, navigation, maintaining speed (up/down hill).'''</font>
 +
*<font color="black">'''Provide feed backs to each team on identified short comings.'''</font>
 +
*<font color="#808080">'''Update Wiki with new details and information.'''</font>
 +
*<font color="orange">'''DEMO: GPS driving'''</font>
 +
|| Completed <br> Completed <br> Completed <br> Completed  <br> Completed  <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br> Completed <br>
 +
|-
 +
| '''9''' || '''1 May 2020'''|| '''7 May 2020'''||
 +
*<font color="black">'''FIELD TESTING - CRITICAL WEEK '''</font>
 +
*<font color="blue">'''Implement turning indicators, break lights and head light.'''</font>
 +
*<font color="green">'''Check for Corner cases for steering logic under various conditions and locations.'''</font>
 +
*<font color="orange">'''Analyse field test results for GPS and CMPS and work on it if required.'''</font>
 +
*<font color="blue">'''Test the accuracy of check-points from the Blue-tooth controller, location data from the Geo-controller sensor and Navigation Algorithm.'''</font>
 +
*<font color="black">'''Check overall robustness of the complete system.'''</font>
 +
*<font color="black">'''Establish complete connection on PCB'''</font>
 +
*<font color="#808080">'''Update wiki with details.'''</font>
 +
||Completed <br> Completed <br> Completed  <br> Completed  <br> Completed <br> Completed <br> Completed <br>
 
|-
 
|-
! scope="row"| 2
+
| '''10''' || '''8 May 2020'''|| '''21 May 2020'''||
| 09/17/2017
+
*<font color="black">'''All hands on testing and final bug fixes.'''</font>
| 10/03/2017
+
*<font color="black">'''Check for tuning or calibration of modules if required.'''</font>
|
+
*<font color="black">'''Complete end-to-end testing for various scenarios and conditions.'''</font>
|
+
*<font color="black">'''Create the semester long project activity video and upload to YouTube.'''</font>
 +
*<font color="#808080">'''Update and finalize wiki.'''</font>
 +
||Completed <br> Completed <br> Completed  <br> Completed  <br> Completed <br>
 
|-
 
|-
 +
| '''11''' || '''22 May 2020'''||  ||
 +
*<font color="black">'''DEMO: Final Project '''</font>
 +
*<font color="black">'''SUBMISSION: Final Project Wiki'''</font>
 +
||Completed <br> Completed <br>
 
|}
 
|}
  
<HR>
 
<BR/>
 
 
== Parts List & Cost ==
 
== Parts List & Cost ==
 
{| class="wikitable"
 
{| class="wikitable"

Revision as of 20:58, 6 March 2020

Project Title

<Nimble>



Abstract

<2-3 sentence abstract>

Introduction

The project was divided into N modules:

  • Sensor ...
  • Motor..
  • ...
  • Android

Team Members & Responsibilities

<Team Picture>

Gitlab Project Link - [1]

<Provide ECU names and members responsible>

  1. Tanmay Chandavarkar <To be determined>
  2. Yuming Cheng <To be determined>
  3. Ellis Makwana <To be determined>
  4. Naeem Mannan <Mobile Application, To be determined>
  5. Francesco Vescio <To be determined>
  6. Lawrence Wan <To be determined>
  • Sensor
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Motor
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Geographical
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Communication Bridge Controller & LCD
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Android Application
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Testing Team
    • Link to Gitlab user1
    • Link to Gitlab user2


Team Deliverables Schedule

WEEK

START DATE

END DATE

TASK DETAILS

STATUS

1 Feb 2020 4 March 2020
  • Create and establish GitLab repository
  • Establish slack channel and invite Preet
  • Look through previous years projects and study it
  • Distribute major roles among team members
Completed
Completed
Completed
Completed
2 05 March 2020 12 March 2020
  • Create a Bill of Materials.
  • Select and order an RC car.
  • Make Repo on Gitlab for all modules - Follow Naming Convention.
In Progress
Completed
In Progress
3 13 March 2020 19 March 2020
  • Select Part Number for Sensors (Tanmay, Ellis)
  • Designing and deciding PCB tool(Lawrence)
  • Finalizing GPS module by doing some research (Yuming)
  • Finalize and order LCD ()
  • Finalize Motor and Order it (Lawrence , Yuming )
  • Environmental setup of Android ( )
In Progress
Not Started Yet
Completed
In Progress
In Progress
In Progress
4 20 March 2020 26 March 2020
  • Understand DBC and implement the DBC file compatible with all the controllers.
  • Test motor driving in different situations, begin to listen to CAN for controls.
  • 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.
  • 03/26/2020 DBC File
  • 03/26/2020 DEMO: CAN communication between controllers.
In Progress
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
5 27 March 2019 09 April 2019
  • // Temporary schedule below
  • Check and Resolve power issue for RC Car.
  • Finalize high-level system block diagram and control scheme.
  • Circuit Simulation in Diptrace Tool.
  • PCB Layout Design in Diptrace Tool.
  • Finalize Components placement on PCB.
  • Establish a connection over Bluetooth and Android app.
  • Establish a communication between Bluetooth devices.
  • Interfacing of ultrasonic sensors to the SJOne board and check for basic functionality.
  • Interface and get the reading of Lidar sensor with SJOne over UART.
  • Chalk out the Message IDs based on the priority of the messages and the data to be sent across nodes.
  • Interface of Servo & DC motor to the SJOne board and check for basic functionality.
  • Interface Compass module with SJOne board using I2C serial bus.
  • Interface bluetooth HC-05 module with SJOne board using serial Communication.
  • Configure bluetooth HC-05 module name as Tech Savy using HC-05 Communication Mode.
  • Explore UI designing of LCD.
  • Finish motor controller API. Test motor driving in different situations, begin to listen to CAN for controls.
  • Add a TextView for displaying the Bluetooth connection status in Android App.
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
Not Started Yet
6 10 April 2020 16 April 2020
  • Parse data of Lidar Sensor depending on distance and angle and send it to master using dbc.
  • Implement basic obstacle avoidance algorithm based on sensor data and test the same.
  • Continue testing motor driver via commands from CAN bus.
  • Build in speed steps to reverse motor for reverse to work correctly.
  • Mount all the sensors and test for any dead band and modify their positions for maximum coverage.
  • Integrate the fusion of LIDAR and Ultrasound sensor to get overall feedback from all the directions.
  • Develop algorithm to avoid obstacles and plan the car's further navigation path.
  • Complete final prototype of the obstacle avoidance feature.
  • Calibrate Compass Module. Develop code for Compass module communication over CAN.
  • 16 April 2019 DEMO: Motors driven by wheel feedback and sensors, Basic obstacle avoidance.
  • Final Wiki Schedule.
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
7 17 April 2020 23 April 2020
  • Configure GPS device baud rate and interface it with SJOne board using UART.
  • Send and receive current location, destination and checkpoint coordinates to and from App and Geo module via BRIDGE.
  • Calibrate sensors readings and work on filtering algorithm with Master & Sensor
  • Begin work on LCD to show vehicle live status(speed, fuel-status, obstacles, distance to destination etc.) in a GUI.
  • Finish implementing speed control on motor (to make sure requested speed is met based on RPM read).
  • Work on Car reversing using Motor Controllers.
  • Integrate all modules with the Master to test the data flow.
  • Validation & Verification of obstacle avoidance, steering logic with rear sensor inputs and reversing.
  • Start incorporating GEO Controller information to Master module Steering logic.
  • Decide, implement and test data exchange between Geo Controller and BRIDGE.
  • Calculate and send simple bearing angle and destination status on CAN to figure out initial challenges.
  • Add a Google Map for setting the car's destination.
  • Send car location to app and check points received to Geo module.
  • Verify the stringent requirement of Start-up Sync, Periodic heart-beat messages.
  • Update Wiki Schedule with Test Reports.
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
In Progress
Completed
Completed
8 24 April 2020 30 April 2020
  • Testing & Validation of the LCD UI and display run time vehicle status and looking forward for feedback from team if any.
  • Improve & Validate Navigation logic with multiple checkpoints, bearing angle and destination information.
  • Identify and mitigate GPS locking, Location Accuracy and Number of Satellite-In-View coming.
  • Validate Accuracy of Compass Calibration with iPhone Compass.
  • Determine and add DBC Changes and finalized.
  • Implement the steering logic with bearing angle and status provided by GEO-Module.
  • Consistently 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.
  • Send the request to Google for getting the checkpoints(use the Google Maps Directions API).
  • 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.
  • Update Wiki with new details and information.
  • DEMO: GPS driving
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
9 1 May 2020 7 May 2020
  • FIELD TESTING - CRITICAL WEEK
  • Implement turning indicators, break lights and head light.
  • Check for Corner cases for steering logic under various conditions and locations.
  • Analyse field test results for GPS and CMPS and work on it if required.
  • Test the accuracy of check-points from the Blue-tooth controller, location data from the Geo-controller sensor and Navigation Algorithm.
  • Check overall robustness of the complete system.
  • Establish complete connection on PCB
  • Update wiki with details.
Completed
Completed
Completed
Completed
Completed
Completed
Completed
10 8 May 2020 21 May 2020
  • All hands on testing and final bug fixes.
  • Check for tuning or calibration of modules if required.
  • Complete end-to-end testing for various scenarios and conditions.
  • Create the semester long project activity video and upload to YouTube.
  • Update and finalize wiki.
Completed
Completed
Completed
Completed
Completed
11 22 May 2020
  • DEMO: Final Project
  • SUBMISSION: Final Project Wiki
Completed
Completed

Parts List & Cost

Item# Part Desciption Vendor Qty Cost
1 RC Car Traxxas 1 $250.00
2 CAN Transceivers MCP2551-I/P Microchip [2] 8 Free Samples


Printed Circuit Board

<Picture and information, including links to your PCB>



CAN Communication

<Talk about your message IDs or communication strategy, such as periodic transmission, MIA management etc.>

Hardware Design

<Show your CAN bus hardware design>

DBC File

<Gitlab link to your DBC file> <You can optionally use an inline image>




Sensor ECU

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>



Motor ECU

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>



Geographical Controller

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>





Communication Bridge Controller & LCD

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>



Master Module

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>



Mobile Application

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>






Conclusion

<Organized summary of the project>

<What did you learn?>

Project Video

Project Source Code

Advise for Future Students

<Bullet points and discussion>

Acknowledgement

References