Difference between revisions of "S20: Nimble"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Team Members & Responsibilities)
(Team Deliverables Schedule)
Line 117: Line 117:
 
*<font color="purple">'''Establish communication across all the CAN controllers over CAN bus based on the DBC file.'''</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="#148F77">'''Verify the power-up interactions and configurations between Master and the other controllers.'''</font>
*<font color="brown">'''Establish a connection over Bluetooth and Android app.(Naeem) '''</font>
+
*<font color="brown">'''Establish a connection over Bluetooth and mobile app.(Naeem) '''</font>
 
*<font color="red">''' 3/24/2020 -> Project Lab - GPS & Compass Node  '''</font>
 
*<font color="red">''' 3/24/2020 -> Project Lab - GPS & Compass Node  '''</font>
 
*<font color="red">''' 3/24/2020 -> Anonymous Reviews  '''</font>
 
*<font color="red">''' 3/24/2020 -> Anonymous Reviews  '''</font>
Line 125: Line 125:
 
*<font color="red">'''3/24/2020 -> Finish deciding the Pins that will be used in each nodes. '''</font>
 
*<font color="red">'''3/24/2020 -> Finish deciding the Pins that will be used in each nodes. '''</font>
 
*<font color="red">'''3/30/2020 -> Completed the rough draft of block digram and Flow chart for each node logics. '''</font>  
 
*<font color="red">'''3/30/2020 -> Completed the rough draft of block digram and Flow chart for each node logics. '''</font>  
 +
*<font color="brown">'''Establish a communication between Bluetooth devices.(Naeem)'''</font>
 +
*<font color="FUCHSIA">'''Interfacing of ultrasonic sensors to the SJTwo board and check for basic functionality. (Tanmay, Ellis)'''</font>
 +
*<font color="green">'''Interface of Servo & DC motor to the SJTwo board and check for basic functionality. (Yuming)'''</font>
 +
*<font color="orange">'''Interface Compass module with SJTwo board using I2C serial bus. (Lawrence)'''</font>
 +
*<font color="orange">'''Interface GPS module with SJTwo board. (Lawrence)'''</font>
 +
*<font color="brown">'''Interface bluetooth module with SJtwo board using serial Communication. (Naeem)'''</font>
 +
*<font color="brown">'''Configure bluetooth module name as Nimble using Communication Mode. (Naeem)'''</font>
 +
*<font color="brown">'''Add a TextView for displaying the Bluetooth connection status in mobile App.(Naeem)'''</font>
 +
*<font color="fire">'''Explore UI designing of LCD. (Francesco)'''</font>
 
*<font color="red">'''4/04/2020 -> Completed the Circuit designs for the PCB. '''</font>  
 
*<font color="red">'''4/04/2020 -> Completed the Circuit designs for the PCB. '''</font>  
 
*<font color="red">'''4/04/2020 -> Finalized the components for PCB. '''</font>  
 
*<font color="red">'''4/04/2020 -> Finalized the components for PCB. '''</font>  
* // Temporary schedule below
+
||  In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br> In Progress <br>
*<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'''||  
 
| '''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="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">'''Continue testing motor driver via commands from CAN bus.'''</font>

Revision as of 17:13, 30 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>

  • [ Yuming Cheng]
    • GPS Module
    • Master Module
    • Motor Module
  • [ Ellis Makwana]
    • Sensor Module
    • Master Module
  • [ Naeem Mannan]
    • Master Module
    • Mobile Application
    • LCD display
  • [ Francesco Vescio]
    • Sensor Module
    • Master Module
  • [ Lawrence Wan]
    • Master Module
    • GPS Module
    • Motor Controller


  • 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.
  • Making the Wiki schedule.
In Progress
Completed
In Progress
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 ( )
  • 3/17/2020 -> Project Lab - RC Car Infrastructure
Completed
Completed
Completed
In Progress
In Progress
In Progress
Completed
4 20 March 2020 26 March 2020
  • Understand DBC and implement the DBC file compatible with all the controllers. (Updating the DBC files from all nodes)
  • Finish purchasing the Sensor (Tanmay)
  • 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.
  • Establish a connection over Bluetooth and mobile app.(Naeem)
  • 3/24/2020 -> Project Lab - GPS & Compass Node
  • 3/24/2020 -> Anonymous Reviews
In Progress
Completed
In Progress
In Progress
Completed
Completed
Completed
5 27 March 2019 09 April 2019
  • 3/24/2020 -> Finish deciding the Pins that will be used in each nodes.
  • 3/30/2020 -> Completed the rough draft of block digram and Flow chart for each node logics.
  • Establish a communication between Bluetooth devices.(Naeem)
  • Interfacing of ultrasonic sensors to the SJTwo board and check for basic functionality. (Tanmay, Ellis)
  • Interface of Servo & DC motor to the SJTwo board and check for basic functionality. (Yuming)
  • Interface Compass module with SJTwo board using I2C serial bus. (Lawrence)
  • Interface GPS module with SJTwo board. (Lawrence)
  • Interface bluetooth module with SJtwo board using serial Communication. (Naeem)
  • Configure bluetooth module name as Nimble using Communication Mode. (Naeem)
  • Add a TextView for displaying the Bluetooth connection status in mobile App.(Naeem)
  • Explore UI designing of LCD. (Francesco)
  • 4/04/2020 -> Completed the Circuit designs for the PCB.
  • 4/04/2020 -> Finalized the components for PCB.
In Progress
In Progress
In Progress
In Progress
In Progress
In Progress
In Progress
In Progress
In Progress
In Progress
In Progress
In Progress
In Progress
6 10 April 2020 16 April 2020
  • 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.











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.















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













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.







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.





11 22 May 2020
  • DEMO: Final Project
  • SUBMISSION: Final Project Wiki


Parts List & Cost

Item# Part Desciption Vendor Qty Cost
1 RC Car Traxxas - Amazon [1] 1 $168.84
2 CAN Transceivers MCP2551-I/P Robotshop [2] 6 $ 6.00 per unit including shipping fee
3 GPS Amazon [] 1 $ .00 per unit including shipping fee
4 Compass Amazon [] 1 $ .00 per unit including shipping fee
5 Ultrasonic sensors(LV-MaxSonar-EZ0) SparkFun [] 1 $ 29.95
6 Ultrasonic sensors (LV-MaxSonar-EZ1) SparkFun [] 2 $ 51.90
7 IR sensors (GP2Y0A21YK) SparkFun [] 1 $ 34.23 including shipping fee and tax


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

Gitlab Project Link - [3]

Advise for Future Students

<Bullet points and discussion>

Acknowledgement

References