Difference between revisions of "S20: Nimble"

From Embedded Systems Learning Academy
Jump to: navigation, search
(DBC File)
(DBC File)
Line 411: Line 411:
 
BS_:
 
BS_:
  
BU_: MASTER BRIDGE MOTOR SENSOR GPS DBG
+
BU_: DBG DRIVER IO MOTOR SENSOR BRIDGE GPS COMPASS CMP
  
 +
BO_ 150 MOTOR_CMD: 3 DRIVER
 +
SG_ MOTOR_CMD_STEERING : 0|8@1+ (1,-2) [-2|2] "" MOTOR
 +
SG_ MOTOR_CMD_SPEED : 8|8@1+ (0.1,-25.6) [-25.6|25.5] "" MOTOR
  
BO_ 103 BRIDGE_NODE: 1 BRIDGE
+
BO_ 200 SENSOR_DATA: 4 SENSOR
  SG_ BRIDGE_START_cmd : 0|1@1+ (1,0) [0|1] "" MASTER,MOTOR
+
  SG_ SENSOR_SONARS_left : 0|8@1+ (1,0) [0|0] "inch" DRIVER
 +
SG_ SENSOR_SONARS_right : 8|8@1+ (1,0) [0|0] "inch" DRIVER
 +
SG_ SENSOR_SONARS_front : 16|8@1+ (1,0) [0|0] "inch" DRIVER
 +
SG_ SENSOR_IR_rear : 24|8@1+ (1,0) [0|0] "inch" DRIVER
  
BO_ 104 CAR_CONTROL: 4 MASTER
+
BO_ 300 GPS_DESTINATION_INFO: 8 BRIDGE
SG_ MOTOR_DRIVE_cmd : 0|2@1+ (1,0) [0|0] "" MOTOR,BRIDGE
+
SG_ GPS_DESTINATION_LAT : 0|28@1+ (0.000001,-90.000000) [-90|90] "degrees" DRIVER,GPS,MOTOR
SG_ MOTOR_STEER_cmd : 2|15@1+ (0.1,-90.0) [-90|90] "" MOTOR,BRIDGE
+
SG_ GPS_DESTINATION_LONG : 28|29@1+ (0.000001,-180.000000) [-180|180] "degrees" DRIVER,GPS,MOTOR
SG_ MOTOR_kph : 17|12@1+ (0.01,0) [0.00|20.00] "kph" MOTOR,BRIDGE
+
 
+
BO_ 301 GPS_CURRENT_INFO: 8 GPS
BO_ 105 SENSOR_NODE: 5 SENSOR
+
SG_ GPS_CURRENT_LAT : 0|28@1+ (0.000001,-90.000000) [-90|90] "degrees" DRIVER,BRIDGE,MOTOR
SG_ SENSOR_FRONT_cm : 0|10@1+ (1,0) [0|645] "cm" MASTER,MOTOR,BRIDGE
+
SG_ GPS_CURRENT_LONG : 28|29@1+ (0.000001,-180.000000) [-180|180] "degrees" DRIVER,BRIDGE,MOTOR
SG_ LIDAR_Obstacle_FRONT : 10|3@1+ (1,0) [0|0] "" MASTER,MOTOR,BRIDGE
 
SG_ LIDAR_Obstacle_RIGHT : 13|3@1+ (1,0) [0|0] "" MASTER,MOTOR,BRIDGE
 
SG_ LIDAR_Obstacle_LEFT : 16|3@1+ (1,0) [0|0] "" MASTER,MOTOR,BRIDGE
 
SG_ LIDAR_Obstacle_BACK : 19|3@1+ (1,0) [0|0] "" MASTER,MOTOR,BRIDGE
 
SG_ LIDAR_Obstacle_BACK_RIGHT : 22|3@1+ (1,0) [0|0] "" MASTER,MOTOR,BRIDGE
 
SG_ LIDAR_Obstacle_BACK_LEFT : 25|3@1+ (1,0) [0|0] "" MASTER,MOTOR,BRIDGE
 
  
BO_ 106 MOTOR_NODE: 2 MOTOR
+
BO_ 302 COMPASS: 6 GPS  
SG_ MOTOR_SPEED_kph : 0|12@1+ (0.01,0) [0.00|20.00] "kph" MASTER,BRIDGE
+
  SG_ CMP_DEST_BEARING : 0|16@1+ (0.1,0) [0|359.9] "degrees" DRIVER,BRIDGE,MOTOR
+
  SG_ CMP_CURRENT_HEADING : 16|16@1+ (0.1,0) [0|359.9] "degrees" DRIVER,BRIDGE,MOTOR
BO_ 107 BRIDGE_CHECKPOINTS: 8 BRIDGE
+
  SG_ CMP_DISTANCE : 32|16@1+ (0.01,0) [0|0] "meters" DRIVER,BRIDGE  
SG_ CHECKPOINT_LAT_deg : 0|28@1+ (0.000001,-90.000000) [-90|90] "Degrees" MASTER,GPS,MOTOR
 
SG_ CHECKPOINT_LONG_deg : 28|29@1+ (0.000001,-180.000000) [-180|180] "Degrees" MASTER,GPS,MOTOR
 
 
BO_ 108 GPS_LOCATION: 8 GPS
 
SG_ CURRENT_LAT_deg : 0|28@1+ (0.000001,-90.000000) [-90|90] "Degrees" MASTER,BRIDGE,MOTOR
 
SG_ CURRENT_LONG_deg : 28|29@1+ (0.000001,-180.000000) [-180|180] "Degrees" MASTER,BRIDGE,MOTOR
 
 
BO_ 109 COMPASS: 8 GPS
 
  SG_ CMP_HEADING_deg : 0|12@1+ (0.1,0) [0|359.9] "Degrees" MASTER,BRIDGE,MOTOR
 
  SG_ CMP_BEARING_deg : 12|12@1+ (0.1,0) [0|359.9] "Degrees" MASTER,BRIDGE,MOTOR
 
  SG_ CMP_DISTANCE_meters : 24|17@1+ (0.01,0) [0|0] "Meters" MASTER,MOTOR,BRIDGE
 
 
BO_ 110 MASTER_HEARTBEAT: 1 MASTER
 
SG_ MASTER_hbt : 0|1@1+ (1,0) [0|1] "" SENSOR,MOTOR,BRIDGE,GPS
 
 
    
 
    
BO_ 111 SENSOR_HEARTBEAT: 1 SENSOR
+
BO_ 100 DRIVER_HEARTBEAT: 1 DRIVER
  SG_ SENSOR_hbt : 0|1@1+ (1,0) [0|1] "" MASTER
+
SG_ DRIVER_HEARTBEAT_cmd : 0|8@1+ (1,0) [0|0] "" SENSOR,MOTOR,GPS,BRIDGE
 +
 
 +
BO_ 101 SENSOR_HEARTBEAT: 1 SENSOR
 +
  SG_ SENSOR_heartbeat : 0|1@1+ (1,0) [0|1] "" DRIVER
 
    
 
    
BO_ 112 MOTOR_HEARTBEAT: 1 MOTOR
+
BO_ 102 MOTOR_HEARTBEAT: 1 MOTOR
  SG_ MOTOR_hbt : 0|1@1+ (1,0) [0|1] "" MASTER
+
  SG_ MOTOR_SENSOR_heartbeat : 0|1@1+ (1,0) [0|1] "" DRIVER
 
        
 
        
BO_ 113 GPS_HEARTBEAT: 1 GPS
+
BO_ 103 GPS_HEARTBEAT: 1 GPS
  SG_ GPS_hbt : 0|1@1+ (1,0) [0|1] "" MASTER
+
  SG_ GPS_SENSOR_heartbeat : 0|1@1+ (1,0) [0|1] "" DRIVER
 
      
 
      
BO_ 114 BRIDGE_HEARTBEAT: 1 BRIDGE
+
BO_ 104 BRIDGE_HEARTBEAT: 1 BRIDGE
  SG_ BRIDGE_hbt : 0|1@1+ (1,0) [0|1] "" MASTER
+
  SG_ BRIDGE_SENSOR_heartbeat : 0|1@1+ (1,0) [0|1] "" DRIVER
  
BO_ 115 SENSOR_DEBUG: 1 SENSOR
+
BO_ 105 SENSOR_DEBUG: 1 SENSOR
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_sensor_init : 1|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_sensor_init : 1|1@1+ (1,0) [0|0] "" DBG
  SG_ IO_DEBUG_CAN_TX : 2|1@1+ (1,0) [0|0] "" DBG
+
  SG_ IO_DEBUG_sensor_data : 2|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_bus_off : 3|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_bus_off : 3|1@1+ (1,0) [0|0] "" DBG
 
   
 
   
BO_ 116 MOTOR_DEBUG: 2 MOTOR
+
BO_ 106 MOTOR_DEBUG: 3 MOTOR
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_bus_off : 1|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_bus_off : 1|1@1+ (1,0) [0|0] "" DBG
  SG_ IO_DEBUG_RPM_kph : 2|12@1+ (0.01,0) [0.00|20.00] "kph" DBG
+
  SG_ IO_DEBUG_RPM_kph : 2|8@1+ (0.1,-25.6) [-25.6|25.5] "" DBG
 +
SG_ IO_DEBUG_Steering : 10|8@1+ (1,-2) [-2|2] "" DBG
 
   
 
   
BO_ 117 MASTER_DEBUG: 1 MASTER
+
BO_ 107 DRIVER_DEBUG: 1 DRIVER
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_bus_off : 1|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_bus_off : 1|1@1+ (1,0) [0|0] "" DBG
  SG_ IO_DEBUG_drive_mode : 2|1@1+ (1,0) [0|0] "" DBG
+
  SG_ IO_DEBUG_DRIVER : 3|1@1+ (1,0) [0|0] "" DBG
SG_ IO_DEBUG_HBT_FROM_ALL_CONTR : 3|1@1+ (1,0) [0|0] "" DBG
 
  
BO_ 118 GPS_DEBUG: 1 GPS
+
BO_ 108 GPS_DEBUG: 1 GPS
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
SG_ IO_DEBUG_HBT_Transmit : 1|1@1+ (1,0) [0|0] "" DBG
 
 
  SG_ IO_DEBUG_bus_off : 2|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_bus_off : 2|1@1+ (1,0) [0|0] "" DBG
  SG_ IO_DEBUG_GPS_rx : 3|1@1+ (1,0) [0|0] "" DBG
+
  SG_ IO_DEBUG_GPS : 3|1@1+ (1,0) [0|0] "" DBG
  SG_ IO_DEBUG_GPS_Fix : 4|1@1+ (1,0) [0|0] "" DBG
+
  SG_ IO_DEBUG_Compass : 5|1@1+ (1,0) [0|0] "" DBG
SG_ IO_DEBUG_Compass_Rx : 5|1@1+ (1,0) [0|0] "" DBG
 
  
BO_ 119 BRIDGE_DEBUG: 1 BRIDGE
+
BO_ 109 BRIDGE_DEBUG: 1 BRIDGE
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
SG_ IO_DEBUG_HBT_Transmit : 1|1@1+ (1,0) [0|0] "" DBG
 
 
  SG_ IO_DEBUG_bus_off : 2|1@1+ (1,0) [0|0] "" DBG
 
  SG_ IO_DEBUG_bus_off : 2|1@1+ (1,0) [0|0] "" DBG
  SG_ IO_DEBUG_Connected : 3|1@1+ (1,0) [0|0] "" DBG
+
  SG_ IO_DEBUG_Bridge : 4|1@1+ (1,0) [0|0] "" DBG  
SG_ IO_DEBUG_Bridge_rx : 4|1@1+ (1,0) [0|0] "" DBG  
 
  
CM_ BU_ MASTER "The master controller driving the car";
+
CM_ BU_ DRIVER "The driver controller driving the car";
 
CM_ BU_ MOTOR "The motor controller of the car";
 
CM_ BU_ MOTOR "The motor controller of the car";
 
CM_ BU_ SENSOR "The sensor controller of the car";
 
CM_ BU_ SENSOR "The sensor controller of the car";
 
CM_ BU_ BRIDGE "The bridge controller of the car";
 
CM_ BU_ BRIDGE "The bridge controller of the car";
CM_ BU_ GPS "The gps controller of the car";
+
CM_ BU_ GPS   "The GPS controller of the car";
CM_ BU_ DBG "The debug node of the car";
 
 
CM_ BO_ 100 "Sync message used to synchronize the controllers";
 
CM_ BO_ 100 "Sync message used to synchronize the controllers";
 +
CM_ SG_ 100 DRIVER_HEARTBEAT_cmd "Heartbeat command from the driver";
  
 
BA_DEF_ "BusType" STRING ;
 
BA_DEF_ "BusType" STRING ;
Line 510: Line 495:
 
BA_DEF_DEF_ "GenMsgCycleTime" 0;
 
BA_DEF_DEF_ "GenMsgCycleTime" 0;
  
BA_ "GenMsgCycleTime" BO_ 103 100;
+
BA_ "GenMsgCycleTime" BO_ 100 1000;
BA_ "GenMsgCycleTime" BO_ 104 100;
+
BA_ "GenMsgCycleTime" BO_ 200 50;
BA_ "GenMsgCycleTime" BO_ 105 100;
+
BA_ "FieldType" SG_ 100 DRIVER_HEARTBEAT_cmd "DRIVER_HEARTBEAT_cmd";
BA_ "GenMsgCycleTime" BO_ 106 100;
 
BA_ "GenMsgCycleTime" BO_ 107 100;
 
BA_ "GenMsgCycleTime" BO_ 108 100;
 
BA_ "GenMsgCycleTime" BO_ 109 100;
 
BA_ "GenMsgCycleTime" BO_ 110 100;
 
BA_ "GenMsgCycleTime" BO_ 111 100;
 
BA_ "GenMsgCycleTime" BO_ 112 100;
 
BA_ "GenMsgCycleTime" BO_ 113 100;
 
BA_ "GenMsgCycleTime" BO_ 114 100;
 
BA_ "GenMsgCycleTime" BO_ 115 100;
 
BA_ "GenMsgCycleTime" BO_ 116 100;
 
BA_ "GenMsgCycleTime" BO_ 117 100;
 
BA_ "FieldType" SG_ 104 MOTOR_DRIVE_cmd "MOTOR_DRIVE_cmd";
 
  
 +
VAL_ 100 DRIVER_HEARTBEAT_cmd 2 "DRIVER_HEARTBEAT_cmd_REBOOT" 1 "DRIVER_HEARTBEAT_cmd_SYNC" 0 "DRIVER_HEARTBEAT_cmd_NOOP" ;
  
VAL_ 104 MOTOR_DRIVE_cmd 2 "MOTOR_STOP" 1 "MOTOR_REV" 0 "MOTOR_FORWARD" ;
 
  
  

Revision as of 00:32, 1 April 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
  • Complete
  • Complete
  • Complete
  • Complete
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.
  • Complete
  • Complete
  • Complete
  • Complete
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 (Francesco )
  • Finalize Motor and Order it (Lawrence , Yuming )
  • Environmental setup of mobile app (Naeem )
  • 3/17/2020 -> Project Lab - RC Car Infrastructure
  • Complete
  • Complete
  • Complete
  • In Progress
  • In Progress
  • In Progress
  • Complete
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
  • Complete
  • In Progress
  • In Progress
  • Complete
  • Complete
  • Complete
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/01/2020 -> Updated Overall DBC file.
  • 4/01/2020 -> Update the wiki schedule.
  • 4/04/2020 -> Completed the Circuit designs for the PCB.
  • 4/04/2020 -> Finalized the components for PCB.
  • Complete
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • Complete
  • Complete
  • 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.
  • Test Run the Motors driven by wheel feedback and sensors, Basic obstacle avoidance.
  • 4/16/2020 -> Update the wiki schedule.
  • 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
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.
  • 4/23/2020 -> Update the wiki schedule and the git repo.
  • 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
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
  • 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
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.
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
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.
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
  • Not Started Yet
11 22 May 2020
  • DEMO: Final Project
  • SUBMISSION: Final Project Wiki
  • Not Started Yet
  • Not Started Yet

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>


Shown below is the DBC implementation for this project.

VERSION ""

NS_ :
	BA_
	BA_DEF_
	BA_DEF_DEF_
	BA_DEF_DEF_REL_
	BA_DEF_REL_
	BA_DEF_SGTYPE_
	BA_REL_
	BA_SGTYPE_
	BO_TX_BU_
	BU_BO_REL_
	BU_EV_REL_
	BU_SG_REL_
	CAT_
	CAT_DEF_
	CM_
	ENVVAR_DATA_
	EV_DATA_
	FILTER
	NS_DESC_
	SGTYPE_
	SGTYPE_VAL_
	SG_MUL_VAL_
	SIGTYPE_VALTYPE_
	SIG_GROUP_
	SIG_TYPE_REF_
	SIG_VALTYPE_
	VAL_
	VAL_TABLE_

BS_:

BU_: DBG DRIVER IO MOTOR SENSOR BRIDGE GPS COMPASS CMP

BO_ 150 MOTOR_CMD: 3 DRIVER
 SG_ MOTOR_CMD_STEERING : 0|8@1+ (1,-2) [-2|2] "" MOTOR 
 SG_ MOTOR_CMD_SPEED : 8|8@1+ (0.1,-25.6) [-25.6|25.5] "" MOTOR

BO_ 200 SENSOR_DATA: 4 SENSOR
 SG_ SENSOR_SONARS_left : 0|8@1+ (1,0) [0|0] "inch" DRIVER
 SG_ SENSOR_SONARS_right : 8|8@1+ (1,0) [0|0] "inch" DRIVER
 SG_ SENSOR_SONARS_front : 16|8@1+ (1,0) [0|0] "inch" DRIVER
 SG_ SENSOR_IR_rear : 24|8@1+ (1,0) [0|0] "inch" DRIVER

BO_ 300 GPS_DESTINATION_INFO: 8 BRIDGE
SG_ GPS_DESTINATION_LAT : 0|28@1+ (0.000001,-90.000000) [-90|90] "degrees" DRIVER,GPS,MOTOR
SG_ GPS_DESTINATION_LONG : 28|29@1+ (0.000001,-180.000000) [-180|180] "degrees" DRIVER,GPS,MOTOR

BO_ 301 GPS_CURRENT_INFO: 8 GPS
SG_ GPS_CURRENT_LAT : 0|28@1+ (0.000001,-90.000000) [-90|90] "degrees" DRIVER,BRIDGE,MOTOR
SG_ GPS_CURRENT_LONG : 28|29@1+ (0.000001,-180.000000) [-180|180] "degrees" DRIVER,BRIDGE,MOTOR

BO_ 302 COMPASS: 6 GPS 
 SG_ CMP_DEST_BEARING : 0|16@1+ (0.1,0) [0|359.9] "degrees" DRIVER,BRIDGE,MOTOR
 SG_ CMP_CURRENT_HEADING : 16|16@1+ (0.1,0) [0|359.9] "degrees" DRIVER,BRIDGE,MOTOR
 SG_ CMP_DISTANCE : 32|16@1+ (0.01,0) [0|0] "meters" DRIVER,BRIDGE 
   
BO_ 100 DRIVER_HEARTBEAT: 1 DRIVER
 SG_ DRIVER_HEARTBEAT_cmd : 0|8@1+ (1,0) [0|0] "" SENSOR,MOTOR,GPS,BRIDGE

BO_ 101 SENSOR_HEARTBEAT: 1 SENSOR
 SG_ SENSOR_heartbeat : 0|1@1+ (1,0) [0|1] "" DRIVER
  
BO_ 102 MOTOR_HEARTBEAT: 1 MOTOR
 SG_ MOTOR_SENSOR_heartbeat : 0|1@1+ (1,0) [0|1] "" DRIVER
       
BO_ 103 GPS_HEARTBEAT: 1 GPS
 SG_ GPS_SENSOR_heartbeat : 0|1@1+ (1,0) [0|1] "" DRIVER
    
BO_ 104 BRIDGE_HEARTBEAT: 1 BRIDGE
 SG_ BRIDGE_SENSOR_heartbeat : 0|1@1+ (1,0) [0|1] "" DRIVER

BO_ 105 SENSOR_DEBUG: 1 SENSOR
 SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_sensor_init : 1|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_sensor_data : 2|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_bus_off : 3|1@1+ (1,0) [0|0] "" DBG
 
BO_ 106 MOTOR_DEBUG: 3 MOTOR
 SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_bus_off : 1|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_RPM_kph : 2|8@1+ (0.1,-25.6) [-25.6|25.5] "" DBG
 SG_ IO_DEBUG_Steering : 10|8@1+ (1,-2) [-2|2] "" DBG
 
BO_ 107 DRIVER_DEBUG: 1 DRIVER
 SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_bus_off : 1|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_DRIVER : 3|1@1+ (1,0) [0|0] "" DBG

BO_ 108 GPS_DEBUG: 1 GPS
 SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_bus_off : 2|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_GPS : 3|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_Compass : 5|1@1+ (1,0) [0|0] "" DBG

BO_ 109 BRIDGE_DEBUG: 1 BRIDGE
 SG_ IO_DEBUG_CAN_init : 0|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_bus_off : 2|1@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_Bridge : 4|1@1+ (1,0) [0|0] "" DBG 

CM_ BU_ DRIVER "The driver controller driving the car";
CM_ BU_ MOTOR "The motor controller of the car";
CM_ BU_ SENSOR "The sensor controller of the car";
CM_ BU_ BRIDGE "The bridge controller of the car";
CM_ BU_ GPS    "The GPS controller of the car";
CM_ BO_ 100 "Sync message used to synchronize the controllers";
CM_ SG_ 100 DRIVER_HEARTBEAT_cmd "Heartbeat command from the driver";

BA_DEF_ "BusType" STRING ;
BA_DEF_ BO_ "GenMsgCycleTime" INT 0 0;
BA_DEF_ SG_ "FieldType" STRING ;

BA_DEF_DEF_ "BusType" "CAN";
BA_DEF_DEF_ "FieldType" "";
BA_DEF_DEF_ "GenMsgCycleTime" 0;

BA_ "GenMsgCycleTime" BO_ 100 1000;
BA_ "GenMsgCycleTime" BO_ 200 50;
BA_ "FieldType" SG_ 100 DRIVER_HEARTBEAT_cmd "DRIVER_HEARTBEAT_cmd";

VAL_ 100 DRIVER_HEARTBEAT_cmd 2 "DRIVER_HEARTBEAT_cmd_REBOOT" 1 "DRIVER_HEARTBEAT_cmd_SYNC" 0 "DRIVER_HEARTBEAT_cmd_NOOP" ;






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