Difference between revisions of "S23: X Æ A-13"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Schedule)
(Schedule)
Line 176: Line 176:
 
'''Work towards the Prototype 1 Task'''
 
'''Work towards the Prototype 1 Task'''
 
* <font color = "green"> Upgrade obstacle avoidance algorithm
 
* <font color = "green"> Upgrade obstacle avoidance algorithm
* <font color = "red"> Test obstacle avoidance practically (Sensor Node -> Driver -> Motor Node -> Tire movement)
+
* <font color = "green"> Test obstacle avoidance practically (Sensor Node -> Driver -> Motor Node -> Tire movement)
 
* <font color = "green"> Integrate compass module
 
* <font color = "green"> Integrate compass module
* <font color = "red"> Integrate RPM sensor
+
* <font color = "green"> Integrate RPM sensor
* <font color = "red"> Integrate LCD module
+
* <font color = "green"> Integrate LCD module
* <font color = "red"> Integrate ESP8266 module
+
* <font color = "green"> Integrate ESP8266 module
* <font color = "red"> Integrate three other ultrasonic sensors
+
* <font color = "green"> Integrate three other ultrasonic sensors
* <font color = "red"> Basic mobile app (Transmit data and display on LCD)
+
* <font color = "green"> Basic mobile app (Transmit data and display on LCD)
* <font color = "red"> Simple hardware setup {Power supply, robust CAN wiring, layout, wiring}
+
* <font color = "green"> Simple hardware setup {Power supply, robust CAN wiring, layout, wiring}
* <font color = "red"> Validate inter-node communication via CAN over the protoboard
+
* <font color = "green"> Validate inter-node communication via CAN over the protoboard
* <font color = "red"> Thorough Code Review (MIA, Unit Tests, Dead Code,...)
+
* <font color = "green"> Thorough Code Review (MIA, Unit Tests, Dead Code,...)
* <font color = "red"> Vist J.J. Customs shop to fix the battery charging issue
+
* <font color = "green"> Vist J.J. Customs shop to fix the battery charging issue
 
|
 
|
 
<font color = "red"> Ongoing
 
<font color = "red"> Ongoing
Line 192: Line 192:
 
* Team
 
* Team
 
* <font color = "green">Sharan
 
* <font color = "green">Sharan
* <font color = "red">Ninaad, Sharan, Prabhat
+
* <font color = "green">Ninaad, Sharan, Prabhat
 
* <font color = "green">Sharan
 
* <font color = "green">Sharan
* <font color = "red">Prabhat
+
* <font color = "green">Prabhat
* <font color = "red">Tushara
+
* <font color = "green">Tushara
* <font color = "red">Tushara
+
* <font color = "green">Tushara
* <font color = "red">Prabhat
+
* <font color = "green">Prabhat
* <font color = "red">Tushara
+
* <font color = "green">Tushara
* <font color = "red">Iftiza
+
* <font color = "green">Iftiza
* <font color = "red">Team
+
* <font color = "green">Team
* <font color = "red">Team
+
* <font color = "green">Team
* <font color = "red">Sharan, Ninaad
+
* <font color = "green">Sharan, Ninaad
 
|-
 
|-
 
! scope="row"|8
 
! scope="row"|8
Line 215: Line 215:
 
* Display compass heading on LCD/mobile app
 
* Display compass heading on LCD/mobile app
 
* Video recording of above
 
* Video recording of above
| TBD
+
| Completed
 
|
 
|
 
* Team
 
* Team
Line 237: Line 237:
 
* Add emergency stop button in HW and mobile app
 
* Add emergency stop button in HW and mobile app
 
* Video recording of above
 
* Video recording of above
| TBD
+
| Completed
 
|
 
|
 
* Team
 
* Team
Line 261: Line 261:
 
* Team demo at Engineering Building: Run the car from point A to point B
 
* Team demo at Engineering Building: Run the car from point A to point B
 
* Video recording of above
 
* Video recording of above
| TBD
+
| Completed
 
|
 
|
 
* Team
 
* Team
Line 285: Line 285:
 
* Checkpoint navigation
 
* Checkpoint navigation
 
* Video recording of above
 
* Video recording of above
| TBD
+
| Completed
 
|
 
|
 
* Sharan
 
* Sharan
Line 304: Line 304:
 
* Decide on future car ownership and settle finances
 
* Decide on future car ownership and settle finances
 
* Team picture
 
* Team picture
| TBD
+
| Completed
 
|
 
|
 
Team
 
Team

Revision as of 04:20, 26 May 2023

Project Title

<Team Name>



Abstract

<2-3 sentence abstract>

Introduction

The project was divided into N modules:

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

Team Members & Responsibilities

<Team Picture>

The source code of our car can be found here: X Æ A-13 Gitlab Repository

Team Members

Administrative Roles

Technical Roles

  • Driver Node Owner
  • Motor Node Owner
  • Sensor Node Owner
  • Geological Node Owner
  • Mobile App Owner
  • System Integration
  • Driver Node




Schedule

Task# Start Date End Date Task Status Point of Contact
1 02/13/2023 02/18/2023
  • Read previous years' projects, gather information, and discuss among the team members.
  • Create a private git fork for the RC car repository.
  • Decide and conclude a recurring team meeting schedule
Completed Team
2 02/19/2023 02/22/2023
  • Order CAN transceiver modules
Completed Iftiza
3 03/03/2023 03/10/2023
  • Research several RC Car for the target application
  • Purchase RC Car
Completed Sharan, Prabhat, Tushara
4 03/11/2023 03/17/2023
  • Create a fork for our project repository.
  • Create a git flow process. Establish a process for merging into the master code repository.
  • Finalize the sensors and other hardware we need for the project.
  • Finalize the best available hardware based on the data collected.
  • To validate communication between CAN nodes via BUSMASTER.
Completed Team
5 03/18/2023 03/21/2023

Work on the RC Car Infrastructure Task

  • Interface ultrasonic sensors for sensor node
  • Set up the driver node and build the ecosystem for receiving/transmitting CAN messages
  • Develop a base obstacle avoidance logic
  • Set up the motor node and create a fake indication for left/right turn and forward/backward movement to the motor
Completed
  • Team
  • Iftiza
  • Prabhat, Sharan
  • Sharan
  • Ninaad, Sharan
6 03/22/2023 04/04/2023

Work on the Geo Controller Task

  • Integrate and test the GPS parsing algorithm
  • Validate cross-communication on CAN bus across nodes
  • Hack the PWM signals from the remote to RF receiver
  • Generate the PWM sequence from SJTwo to make the servo and motor move left/right/forward/backward
  • Replace the fake motor actions with actual motor movements which are received from Driver node
  • Try decoding the RF data packets from the remote to RF receiver

Completed

  • Iftiza
  • Team
  • Sharan, Prabhat
  • Sharan, Prabhat
  • Ninaad
  • Tushara
7 04/05/2023 04/18/2023

Work towards the Prototype 1 Task

  • Upgrade obstacle avoidance algorithm
  • Test obstacle avoidance practically (Sensor Node -> Driver -> Motor Node -> Tire movement)
  • Integrate compass module
  • Integrate RPM sensor
  • Integrate LCD module
  • Integrate ESP8266 module
  • Integrate three other ultrasonic sensors
  • Basic mobile app (Transmit data and display on LCD)
  • Simple hardware setup {Power supply, robust CAN wiring, layout, wiring}
  • Validate inter-node communication via CAN over the protoboard
  • Thorough Code Review (MIA, Unit Tests, Dead Code,...)
  • Vist J.J. Customs shop to fix the battery charging issue

Ongoing

  • Team
  • Sharan
  • Ninaad, Sharan, Prabhat
  • Sharan
  • Prabhat
  • Tushara
  • Tushara
  • Prabhat
  • Tushara
  • Iftiza
  • Team
  • Team
  • Sharan, Ninaad
8 04/19/2023 04/25/2023 Work towards the Prototype 2 Task
  • Order components ahead for the next task
  • Fine tune obstacle avoidance algorithm to make smoother transitions
  • Add GPS lock LED indicator
  • Implement PID controller and ramp testing
  • Design navigation algorithm
  • Display compass heading on LCD/mobile app
  • Video recording of above
Completed
  • Team
  • Sharan
  • Anyone
  • Ninaad, Prabhat
  • Iftiza
  • Tushara
  • Anyone
9 04/20/2023 05/02/2023 Work towards the Prototype 3 Task
  • Order components ahead for the next task
  • Fine tune obstacle avoidance
  • Display debug information on LCD (GPS, Sonar, Compass, Distance, Speed,...)
  • Integrate Google Maps API on Mobile App
  • Upgrade the navigation algorithm
  • Setup critical LEDs for displaying MIA faults, GPS lock, sensor o/p
  • Add emergency stop button in HW and mobile app
  • Video recording of above
Completed
  • Team
  • Sharan
  • Sharan, Tushara
  • Tushara
  • Iftiza
  • Iftiza, Sharan
  • Prabhat, Ninaad
  • Anyone
10 05/03/2023 05/09/2023 Work towards the Prototype 4 Task
  • Order components ahead for the next task
  • Fine-tune obstacle avoidance
  • Mobile application to display destination, and start/stop buttons. Display real-time GPS, compass, and sensor values.
  • Upgrade the navigation algorithm for running in a straight line
  • Design PCB layout
  • Fine-tune PID controller
  • PCB printing and assembly
  • Team demo at Engineering Building: Run the car from point A to point B
  • Video recording of above
Completed
  • Team
  • Sharan
  • Tushara
  • Iftiza
  • Prabhat, Sharan
  • Ninaad, Prabhat
  • Team
  • Team
  • Anyone
11 05/10/2023 05/24/2023 Work towards the final demo
  • Fine-tune obstacle avoidance
  • Fine-tune mobile app
  • Fine-tune LCD display
  • 3D print and build the car body, painting, beautification,...
  • Features to indicate reverse, obstacle detection, headlights, turn indicator
  • Display ETA to destination
  • Checkpoint navigation
  • Video recording of above
Completed
  • Sharan
  • Tushara
  • Sharan
  • Prabhat
  • Ninaad
  • Iftiza
  • Team
  • Anyone
12 05/10/2023 05/24/2023 Project Wrap-up
  • Finalize and complete missing document pieces in Wiki
  • Decide on future car ownership and settle finances
  • Team picture
Completed

Team



Parts List & Cost

Item# Part Desciption Vendor Qty Cost
1 RC Car Maverick Quantum MT [1] 1 $180.00
2 RC Car Battery Lithium Polymer Two-Cell 1 $20.0
3 CAN Transceiver Modules SN65HVD230 4 $43.56
4 SJTwo Microcontroller Development Board SJSU 5 $250
5 Ultrasonic Sensor Adafruit SR 100[2] 4 $48.69
6 GPS Module Adafruit PA1616S [3] 1 $32
7 Compass Module CMPS12 - RobotShop [4] 1 $39.77
8 LCD Module LCD1602 [5] 2 $12.02


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 the X Æ A-13 DBC file

VERSION "1.0"

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_: DRIVER MOTOR SENSOR GEOLOGICAL

BO_ 101 GPS_POSITION: 8 GEOLOGICAL
 SG_ GPS_DEST_LATITUDE_SCALED : 0|32@1- (1,0) [-90000000|90000000] "Degrees" SENSOR,DRIVER
 SG_ GPS_DEST_LONGITUDE_SCALED : 32|32@1- (1,0) [-180000000|180000000] "Degrees" SENSOR,DRIVER

BO_ 102 GEO_STATUS: 8 GEOLOGICAL
 SG_ GEO_STATUS_COMPASS_HEADING : 0|32@1+ (1,0) [0|359] "Degrees" SENSOR,DRIVER
 SG_ GEO_STATUS_DISTANCE_TO_DESTINATION : 32|32@1+ (1,0) [0|65535] "Meters" SENSOR,DRIVER

BO_ 201 SENSOR_SONARS: 4 SENSOR
 SG_ SENSOR_SONARS_left : 0|8@1+ (1,0) [0|250] "cm" DRIVER
 SG_ SENSOR_SONARS_right : 8|8@1+ (1,0) [0|250] "cm" DRIVER
 SG_ SENSOR_SONARS_middle : 16|8@1+ (1,0) [0|250] "cm" DRIVER
 SG_ SENSOR_SONARS_rear : 0|8@1+ (1,0) [0|250] "cm" DRIVER

BO_ 202 MOTOR_CMD: 3 DRIVER
 SG_ MOTOR_CMD_steer: 0|8@1- (1,-5) [-5|5] "" MOTOR
 SG_ MOTOR_CMD_drive : 8|16@1- (0.1,-9) [-9|9] "kph" MOTOR

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_ GEOLOGICAL "The geoposition and geodirection controller of the car";
CM_ BO_ 101 "Sync message used to synchronize the controllers from driver node";
CM_ BO_ 102 "Sync message used to synchronize the controllers from sensor node";
CM_ SG_ 101 DRIVER_HEARTBEAT_cmd "Heartbeat command from the driver";


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.>

Hacking the RF Module

In order to make the RC car autonomous, we had to get rid of the remote control that the car is equipped with. Our car - Maverick Quantum MT does not have its PWM sequence open-sourced. So, we had to get our hands dirty in detecting the PWM signals sent by the RC receiver to the ESC module. Using an oscilloscope, we could identify the duty cycle and frequency corresponding to the servo and motor actions.

TODO: Insert picture of the oscilloscope with signals. Add the duty cycles for various speeds and degrees of servo movement.

Control Unit Direction Frequency (Hz) Duty Cycle (%)
Servo Motor Right Max 61.02 5.9
Left Max 61.02 12.62
Motor Forward Max Speed 61.02 12.65
Idling (Zero) Speed 61.02 9.27
Reverse Max Speed 61.02 5.66

The duty cycle for crawling the car at the slowest speed = 9.47%.

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 ===