Difference between revisions of "S22: Testla"

From Embedded Systems Learning Academy
Jump to: navigation, search
(DBC File)
(Schedule)
Line 57: Line 57:
  
  
{| class="wikitable"
+
{| class="wikitable"  
 
|-
 
|-
! scope="col"| Week#
+
! Week #
! scope="col"| Start Date
+
! Start Date
! scope="col"| End Date
+
! End Date
! scope="col"| Task
+
! Task
! scope="col"| Status
+
! Status
 
|-
 
|-
! scope="row"| 1
+
| 1
| 02/15/2022
+
| 2/15/2022
| 02/21/2022
+
| 2/21/2022
|
+
| Read previous projects, gather information and discuss among the group members.
* Read previous projects, gather information and discuss among the group members.
+
| Complete
 
 
| style="background-color:#0F0;" | Completed
 
 
|-
 
|-
! scope="row"| 2
+
| 2
| 02/22/2022
+
| 2/22/2022
| 02/28/2022
+
| 2/28/2022
|
+
| style="background-color:#F9F9F9;" | Distribute modules to each team member.
* Distribute modules to each team member.
+
| Complete
 
 
| style="background-color:#0F0;" | Completed
 
 
|-
 
|-
! scope="row"| 3
+
| 3
| 03/01/2022
+
| 3/1/2022
| 03/07/2022
+
| 3/7/2022
|
+
| Purchase the RC Car<br />Purchase sensors
* Purchased the RC Car
+
| Complete
* Purchase sensors
 
 
 
| style="background-color:#0F0;" | Completed
 
 
|-
 
|-
! scope="row"| 4
+
| 4
| 03/08/2022
+
| 3/8/2022
| 03/14/2022
+
| 3/14/2022
|
+
| style="background-color:#F9F9F9;" | Learning to use CAN BUSMASTER
* Learning to use CAN BUSMASTER
+
| Complete
| style="background-color:#0F0;" | Completed
 
 
|-
 
|-
 
+
| 5
! scope="row"| 5
+
| 3/15/2022
| 03/15/2022
+
| 3/21/2022
| 03/21/2022
+
| style="background-color:#F9F9F9;" | DBC file discussed and implemented
|
+
| Complete
* DBC file discussed and implemented
 
 
 
| style="background-color:#0F0;" | Completed
 
 
|-
 
|-
 
+
| 6
! scope="row"| 6
+
| 3/22/2022
| 03/22/2022
+
| 3/28/2022
| 03/28/2022
+
| style="background-color:#F9F9F9;" | Discuss modules needed for PCB, any feature requests
|
+
| Complete
* Discuss modules needed for PCB, any feature requests
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
 
|-
 
|-
 
+
| 7
! scope="row"| 7
+
| 3/29/2022
| 03/29/2022
+
| 4/4/2022
| 04/04/2022
+
| Finalize preparations and research
|
+
| Complete
* tbd
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
 
|-
 
|-
 
+
| 8
! scope="row"| 8
+
| 4/5/2022
| 04/05/2022
+
| 4/11/2022
| 04/11/2022
+
| Interface with RC car and hack steering and motor<br />Integrate the GEO sensor with the GEO controller<br />Complete the Driver sensor using analog readings<br />Write a basic implementation of the sensor controller<br />Interface ESP8266 for bridge controller<br />Begin testing with single vs dual power supplies
|
+
| Complete
* tbd
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
 
|-
 
|-
 
+
| 9
! scope="row"| 9
+
| 4/12/2022
| 04/12/2022
+
| 4/18/2022
| 04/18/2022
+
| Install wheel encoder, implement, implement PID into velocity processing, and establish collaboration between the Motor and Sensor Controllers<br />Test alternate sonar sensor (I2C)<br />Configure GPS to run at 10Hz, 115200 baud and only parse $GPGGA strings on startup<br />Integrate compass<br />Setup NodeJS server to communicate with the Bridge controller via TCP/IP<br />Start Mobile Application development.<br />Finalize power supply choice<br />Finish PCB designs for each subsystem
|
+
| In Progress
* tbd
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
 
|-
 
|-
 
+
| 10
! scope="row"| 10
+
| 4/19/2022
| 04/19/2022
+
| 4/25/2022
| 04/25/2022
+
| Finish 1st vehicle prototype - include PCBs if possible<br />Complete basic mobile application<br />Write various motor test routines to define in mobile application<br />Verify timing and correctness of GEO controller messages. Produce debug messages for Geo controller<br />Generate debug messages for all controllers.<br />Finalize sensor choice and complete integration of all three sensors.
|
+
| Incomplete
* tbd
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
 
|-
 
|-
 
+
| 11
! scope="row"| 11
+
| 4/26/2022
| 04/26/2022
+
| 5/2/2022
| 05/02/2022
+
| Identify first PCB design inefficiencies/failures and submit the second and final draft for production<br />Thoroughly test the motor's performance on sloped terrain and refine PID controller<br />Test message timing and propagation with Bus Master<br />Improve existing navigation algorithm with state estimation and localization<br />Integration testing Driver controller with Mobile App
|
+
| Incomplete
* tbd
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
 
|-
 
|-
 
+
| 12
! scope="row"| 12
+
| 5/3/2022
| 05/03/2022
+
| 5/9/2022
| 05/09/2022
+
| Finished mobile application<br />More testing, update schedule as needed
|
+
| Incomplete
* tbd
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
 
|-
 
|-
 
+
| 13
! scope="row"| 13
+
| 5/10/2022
| 05/10/2022
+
| 5/16/2022
| 05/16/2022
+
| Final prototype complete
|
+
| Incomplete
* tbd
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
 
|-
 
|-
 
+
| 14
! scope="row"| 14
+
| 5/17/2022
| 05/17/2022
+
| 5/25/2022
| 05/25/2022
+
| Last tests
|
+
| Incomplete
* Final working car
 
 
 
| style="background-color:#FFFF00;" | Incomplete
 
|-
 
 
 
 
|}
 
|}
  

Revision as of 01:59, 13 April 2022

Testla

<Group Pic>



Abstract

The Testla project is the culmination of our efforts to create an autonomously operated RC Car by pooling together our experience in software design, hardware design, power systems, and mobile application development. Project development started in February of 2022 and ended in May. (NOTE: One more sentence probably)

Introduction

The project was divided into 5 modules:

  • Bridge and Sensor Information
  • Motor Operation
  • Geological Information
  • Driver and LCD Manager
  • Android Application

Team Members & Responsibilities

Gitlab Project Link

<Provide ECU names and members responsible> <One member may participate in more than one ECU>

  • Sensor
    • Bang Nguyen --couldn't find your gitlab
  • Testing Team
    • Link to Gitlab user1
    • Link to Gitlab user2

(not sure exactly which role Bang is doing...)



Schedule

Week # Start Date End Date Task Status
1 2/15/2022 2/21/2022 Read previous projects, gather information and discuss among the group members. Complete
2 2/22/2022 2/28/2022 Distribute modules to each team member. Complete
3 3/1/2022 3/7/2022 Purchase the RC Car
Purchase sensors
Complete
4 3/8/2022 3/14/2022 Learning to use CAN BUSMASTER Complete
5 3/15/2022 3/21/2022 DBC file discussed and implemented Complete
6 3/22/2022 3/28/2022 Discuss modules needed for PCB, any feature requests Complete
7 3/29/2022 4/4/2022 Finalize preparations and research Complete
8 4/5/2022 4/11/2022 Interface with RC car and hack steering and motor
Integrate the GEO sensor with the GEO controller
Complete the Driver sensor using analog readings
Write a basic implementation of the sensor controller
Interface ESP8266 for bridge controller
Begin testing with single vs dual power supplies
Complete
9 4/12/2022 4/18/2022 Install wheel encoder, implement, implement PID into velocity processing, and establish collaboration between the Motor and Sensor Controllers
Test alternate sonar sensor (I2C)
Configure GPS to run at 10Hz, 115200 baud and only parse $GPGGA strings on startup
Integrate compass
Setup NodeJS server to communicate with the Bridge controller via TCP/IP
Start Mobile Application development.
Finalize power supply choice
Finish PCB designs for each subsystem
In Progress
10 4/19/2022 4/25/2022 Finish 1st vehicle prototype - include PCBs if possible
Complete basic mobile application
Write various motor test routines to define in mobile application
Verify timing and correctness of GEO controller messages. Produce debug messages for Geo controller
Generate debug messages for all controllers.
Finalize sensor choice and complete integration of all three sensors.
Incomplete
11 4/26/2022 5/2/2022 Identify first PCB design inefficiencies/failures and submit the second and final draft for production
Thoroughly test the motor's performance on sloped terrain and refine PID controller
Test message timing and propagation with Bus Master
Improve existing navigation algorithm with state estimation and localization
Integration testing Driver controller with Mobile App
Incomplete
12 5/3/2022 5/9/2022 Finished mobile application
More testing, update schedule as needed
Incomplete
13 5/10/2022 5/16/2022 Final prototype complete Incomplete
14 5/17/2022 5/25/2022 Last tests Incomplete


Parts List & Cost

Item# Part Desciption Vendor Qty Cost
1 Unassembled RC Car Traxxas [1] 1 $279.99
2 CAN Transceivers Amazon [2] 1 $8.99
2 CAN Transceivers Amazon [3] 1 $8.99
2 CAN Transceivers Amazon [4] 1 $8.99
2 CAN Transceivers Amazon [5] 1 $8.99
2 CAN Transceivers Amazon [6] 1 $8.99


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> DBC Link

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 MOTOR SENSOR


BO_ 100 DRIVER_HEARTBEAT: 3 DRIVER
 SG_ DRIVER_HEARTBEAT_cmd : 0|8@1+ (1,0) [0|0] "" DBG

BO_ 110 DRIVER_STEERING: 3 DRIVER
 SG_ DRIVER_STEERING_yaw : 0|12@1+ (0.001,-2) [-2|2] "radians" MOTOR
 SG_ DRIVER_STEERING_velocity : 12|12@1+ (0.01,0) [0|40] "kph" MOTOR

BO_ 120 MOTOR_HEARTBEAT: 2 MOTOR
 SG_ MOTOR_HEARTBEAT_cmd : 0|8@1+ (1,0) [0|0] "" DBG
 SG_ MOTOR_HEARTBEAT_encoder : 8|8@1+ (1,0) [0|0] "" DBG

BO_ 130 MOTOR_ACK: 1 MOTOR
 SG_ MOTOR_ACK_cmd : 0|8@1+ (1,0) [0|0] "" DRIVER

BO_ 200 SENSOR_SONARS: 8 SENSOR
 SG_ SENSOR_SONARS_left : 0|10@1+ (1,0) [0|800] "inch" DRIVER
 SG_ SENSOR_SONARS_right : 10|10@1+ (1,0) [0|0] "inch" DRIVER
 SG_ SENSOR_SONARS_middle : 20|10@1+ (1,0) [0|0] "inch" DRIVER
 SG_ SENSOR_SONARS_back : 30|10@1+ (1,0) [0|0] "inch" DRIVER
 SG_ SENSOR_SONARS_frame_id : 42|16@1+ (1,0) [0|0] "" DRIVER

BO_ 210 GPS_DESTINATION_LOCATION: 8 SENSOR
 SG_ GPS_DEST_LATITUDE : 0|28@1+ (0.000001,-90.000000) [-90|90] "Degrees" GEO
 SG_ GPS_DEST_LONGITUDE : 28|28@1+ (0.000001,-180.000000) [-180|180] "Degrees" GEO

BO_ 220 GEO_STATUS: 8 GEO
  SG_ GEO_STATUS_COMPASS_HEADING : 0|12@1+ (1,0) [0|359] "Degrees" DRIVER
  SG_ GEO_STATUS_COMPASS_BEARING : 12|12@1+ (1,0) [0|359] "Degrees" DRIVER
  SG_ GEO_STATUS_DISTANCE_TO_DESTINATION : 24|16@1+ (0.1,0) [0|0] "Meters" DRIVER

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

The Geographical controller is responsible for determining the position of the vehicle as well as the distance and bearing to desired destination.

Adafruit gps.jpg

Hardware Design

An Adafruit Ultimate GPS breakout module using the MTK3339 chipset is interfaced over UART to the Geographical controller to provide latitude and longitude updates.

TODO: interface and explain compass

Software Design

On startup the GPS module is initialized to provide updates at 10Hz with a 115200 baud rate. Additionally, the Bridge and Sensor controller sends a desired latitude and longitude to the Geo controller over the CAN bus.

The desired and current position are used to calculate a distance and bearing using the haversine formula shown below.

Haversine.PNG

Moveable Type Scripts: Calculate distance, bearing and more between Latitude/Longitude points

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