Difference between revisions of "S23: X Æ A-13"
(→Schedule) |
(→DBC File) |
||
Line 389: | Line 389: | ||
[https://gitlab.com/cmpe243_group_1_rc-car/sjtwo-c-cmpe-group-1-rc-car/-/blob/master/dbc/project.dbc Gitlab link to the X Æ A-13 DBC file] | [https://gitlab.com/cmpe243_group_1_rc-car/sjtwo-c-cmpe-group-1-rc-car/-/blob/master/dbc/project.dbc Gitlab link to the X Æ A-13 DBC file] | ||
<pre> | <pre> | ||
− | VERSION " | + | VERSION "2.5" |
NS_ : | NS_ : | ||
Line 423: | Line 423: | ||
BS_: | BS_: | ||
− | BU_: DRIVER MOTOR | + | BU_: GEOLOGICAL SENSOR DRIVER MOTOR |
− | BO_ 101 | + | BO_ 101 CHKPT_GPS_POSITION: 8 GEOLOGICAL |
− | SG_ | + | SG_ CHKPT_GPS_LATITUDE_SCALED : 0|32@1- (1,0) [-90000000|90000000] "degree" DRIVER |
− | SG_ | + | SG_ CHKPT_GPS_LONGITUDE_SCALED : 32|32@1- (1,0) [-180000000|180000000] "degree" DRIVER |
− | BO_ 102 | + | BO_ 102 CURRENT_GPS_POSITION: 8 GEOLOGICAL |
− | SG_ | + | SG_ CURRENT_GPS_LATITUDE_SCALED : 0|32@1- (1,0) [-90000000|90000000] "degree" DRIVER |
− | SG_ | + | SG_ CURRENT_GPS_LONGITUDE_SCALED : 32|32@1- (1,0) [-180000000|180000000] "degree" DRIVER |
− | BO_ | + | BO_ 103 GEO_STATUS: 8 GEOLOGICAL |
− | SG_ | + | SG_ GEO_STATUS_COMPASS_ANGLE : 0|10@1+ (1,0) [0|359] "degree" DRIVER |
− | SG_ | + | SG_ GEO_STATUS_BEARING_ANGLE_TO_DESTINATION : 10|10@1+ (1,0) [0|359] "degree" DRIVER |
− | SG_ | + | SG_ GEO_STATUS_DISTANCE_TO_DESTINATION : 20|16@1+ (1,0) [0|2000] "meter" DRIVER |
− | SG_ | + | SG_ GEO_STATUS_BEARING_ANGLE_TO_CHKPT : 36|10@1+ (1,0) [0|359] "degree" DRIVER |
+ | SG_ GEO_STATUS_DISTANCE_TO_CHKPT : 46|16@1+ (1,0) [0|2000] "metre" DRIVER | ||
− | BO_ 202 MOTOR_CMD: 3 DRIVER | + | BO_ 104 GEO_ANGLE_DELTA: 4 GEOLOGICAL |
+ | SG_ GEO_ANGLE_DIFF_TO_DEST : 0|16@1- (1,0) [-359|359] "degree" DRIVER | ||
+ | SG_ GEO_ANGLE_DIFF_TO_CHKPT : 16|16@1- (1,0) [-359|359] "degree" DRIVER | ||
+ | |||
+ | BO_ 105 GEO_LOCK: 1 GEOLOGICAL | ||
+ | SG_ GEO_LOCK_TO_DESTINATION : 0|8@1+ (1,0) [0|1] "boolean" DRIVER | ||
+ | |||
+ | BO_ 201 SENSOR_SONARS: 5 SENSOR | ||
+ | SG_ SENSOR_SONARS_left : 0|10@1+ (1,0) [0|1000] "cm" DRIVER | ||
+ | SG_ SENSOR_SONARS_right : 10|10@1+ (1,0) [0|1000] "cm" DRIVER | ||
+ | SG_ SENSOR_SONARS_middle : 20|10@1+ (1,0) [0|1000] "cm" DRIVER | ||
+ | SG_ SENSOR_SONARS_rear : 30|10@1+ (1,0) [0|1000] "cm" DRIVER | ||
+ | |||
+ | BO_ 202 DEST_GPS_POSITION: 8 SENSOR | ||
+ | SG_ DEST_GPS_LATITUDE_SCALED : 0|32@1- (1,0) [-90000000|90000000] "degree" GEOLOGICAL,DRIVER | ||
+ | SG_ DEST_GPS_LONGITUDE_SCALED : 32|32@1- (1,0) [-180000000|180000000] "degree" GEOLOGICAL,DRIVER | ||
+ | |||
+ | BO_ 203 CAR_HEARTBEAT: 1 SENSOR | ||
+ | SG_ HEARTBEAT_DATA : 0|8@1+ (1,0) [0|1] "boolean" DRIVER | ||
+ | |||
+ | BO_ 302 MOTOR_CMD: 3 DRIVER | ||
SG_ MOTOR_CMD_steer: 0|8@1- (1,-5) [-5|5] "" MOTOR | SG_ MOTOR_CMD_steer: 0|8@1- (1,-5) [-5|5] "" MOTOR | ||
− | SG_ MOTOR_CMD_drive : 8|16@1- ( | + | SG_ MOTOR_CMD_drive : 8|16@1- (1,-9) [-9|9] "kph" MOTOR |
+ | |||
+ | BO_ 401 LCD_DATA_FROM_MOTOR_NODE: 3 MOTOR | ||
+ | SG_ RPM_SENSOR_SPEED: 0|6@1+ (1,0) [0|50] "kph" DRIVER | ||
+ | SG_ SERVO_PWM: 6|7@1+ (1,0) [0|100] "percent" DRIVER | ||
+ | SG_ MOTOR_PWM: 13|7@1+ (1,0) [0|100] "percent" DRIVER | ||
+ | |||
+ | BO_ 901 DEBUG_CHK: 8 GEOLOGICAL | ||
+ | SG_ GPS_PASS_COUNTER: 0|16@1+ (1,0) [0|64000] "count" DRIVER | ||
+ | SG_ GPS_FAIL_COUNTER: 16|16@1+ (1,0) [0|64000] "count" DRIVER | ||
+ | SG_ CMPS_PASS_COUNTER: 32|16@1+ (1,0) [0|64000] "count" DRIVER | ||
+ | SG_ CMPS_FAIL_COUNTER: 48|16@1+ (1,0) [0|64000] "count" DRIVER | ||
− | CM_ BU_ DRIVER "The driver | + | CM_ BU_ DRIVER "The driver node of the car"; |
− | CM_ BU_ MOTOR "The motor controller of the car"; | + | CM_ BU_ MOTOR "The motor controller node of the car"; |
− | CM_ BU_ SENSOR "The sensor controller of the car"; | + | CM_ BU_ SENSOR "The sensor controller node of the car"; |
CM_ BU_ GEOLOGICAL "The geoposition and geodirection 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_ 101 "Sync message used to synchronize the controllers from driver node"; |
Revision as of 04:23, 26 May 2023
Contents
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 | ||
---|---|---|---|---|
| ||||
| ||||
| ||||
| ||||
|
Schedule
Task# | Start Date | End Date | Task | Status | Point of Contact |
---|---|---|---|---|---|
1 | 02/13/2023 | 02/18/2023 |
|
Completed | Team |
2 | 02/19/2023 | 02/22/2023 |
|
Completed | Iftiza |
3 | 03/03/2023 | 03/10/2023 |
|
Completed | Sharan, Prabhat, Tushara |
4 | 03/11/2023 | 03/17/2023 |
|
Completed | Team |
5 | 03/18/2023 | 03/21/2023 |
Work on the RC Car Infrastructure Task
|
Completed |
|
6 | 03/22/2023 | 04/04/2023 |
Work on the Geo Controller Task
|
Completed |
|
7 | 04/05/2023 | 04/18/2023 |
Work towards the Prototype 1 Task
|
Completed |
|
8 | 04/19/2023 | 04/25/2023 | Work towards the Prototype 2 Task
|
Completed |
|
9 | 04/20/2023 | 05/02/2023 | Work towards the Prototype 3 Task
|
Completed |
|
10 | 05/03/2023 | 05/09/2023 | Work towards the Prototype 4 Task
|
Completed |
|
11 | 05/10/2023 | 05/24/2023 | Work towards the final demo
|
Completed |
|
12 | 05/10/2023 | 05/24/2023 | Project Wrap-up
|
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 "2.5" 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_: GEOLOGICAL SENSOR DRIVER MOTOR BO_ 101 CHKPT_GPS_POSITION: 8 GEOLOGICAL SG_ CHKPT_GPS_LATITUDE_SCALED : 0|32@1- (1,0) [-90000000|90000000] "degree" DRIVER SG_ CHKPT_GPS_LONGITUDE_SCALED : 32|32@1- (1,0) [-180000000|180000000] "degree" DRIVER BO_ 102 CURRENT_GPS_POSITION: 8 GEOLOGICAL SG_ CURRENT_GPS_LATITUDE_SCALED : 0|32@1- (1,0) [-90000000|90000000] "degree" DRIVER SG_ CURRENT_GPS_LONGITUDE_SCALED : 32|32@1- (1,0) [-180000000|180000000] "degree" DRIVER BO_ 103 GEO_STATUS: 8 GEOLOGICAL SG_ GEO_STATUS_COMPASS_ANGLE : 0|10@1+ (1,0) [0|359] "degree" DRIVER SG_ GEO_STATUS_BEARING_ANGLE_TO_DESTINATION : 10|10@1+ (1,0) [0|359] "degree" DRIVER SG_ GEO_STATUS_DISTANCE_TO_DESTINATION : 20|16@1+ (1,0) [0|2000] "meter" DRIVER SG_ GEO_STATUS_BEARING_ANGLE_TO_CHKPT : 36|10@1+ (1,0) [0|359] "degree" DRIVER SG_ GEO_STATUS_DISTANCE_TO_CHKPT : 46|16@1+ (1,0) [0|2000] "metre" DRIVER BO_ 104 GEO_ANGLE_DELTA: 4 GEOLOGICAL SG_ GEO_ANGLE_DIFF_TO_DEST : 0|16@1- (1,0) [-359|359] "degree" DRIVER SG_ GEO_ANGLE_DIFF_TO_CHKPT : 16|16@1- (1,0) [-359|359] "degree" DRIVER BO_ 105 GEO_LOCK: 1 GEOLOGICAL SG_ GEO_LOCK_TO_DESTINATION : 0|8@1+ (1,0) [0|1] "boolean" DRIVER BO_ 201 SENSOR_SONARS: 5 SENSOR SG_ SENSOR_SONARS_left : 0|10@1+ (1,0) [0|1000] "cm" DRIVER SG_ SENSOR_SONARS_right : 10|10@1+ (1,0) [0|1000] "cm" DRIVER SG_ SENSOR_SONARS_middle : 20|10@1+ (1,0) [0|1000] "cm" DRIVER SG_ SENSOR_SONARS_rear : 30|10@1+ (1,0) [0|1000] "cm" DRIVER BO_ 202 DEST_GPS_POSITION: 8 SENSOR SG_ DEST_GPS_LATITUDE_SCALED : 0|32@1- (1,0) [-90000000|90000000] "degree" GEOLOGICAL,DRIVER SG_ DEST_GPS_LONGITUDE_SCALED : 32|32@1- (1,0) [-180000000|180000000] "degree" GEOLOGICAL,DRIVER BO_ 203 CAR_HEARTBEAT: 1 SENSOR SG_ HEARTBEAT_DATA : 0|8@1+ (1,0) [0|1] "boolean" DRIVER BO_ 302 MOTOR_CMD: 3 DRIVER SG_ MOTOR_CMD_steer: 0|8@1- (1,-5) [-5|5] "" MOTOR SG_ MOTOR_CMD_drive : 8|16@1- (1,-9) [-9|9] "kph" MOTOR BO_ 401 LCD_DATA_FROM_MOTOR_NODE: 3 MOTOR SG_ RPM_SENSOR_SPEED: 0|6@1+ (1,0) [0|50] "kph" DRIVER SG_ SERVO_PWM: 6|7@1+ (1,0) [0|100] "percent" DRIVER SG_ MOTOR_PWM: 13|7@1+ (1,0) [0|100] "percent" DRIVER BO_ 901 DEBUG_CHK: 8 GEOLOGICAL SG_ GPS_PASS_COUNTER: 0|16@1+ (1,0) [0|64000] "count" DRIVER SG_ GPS_FAIL_COUNTER: 16|16@1+ (1,0) [0|64000] "count" DRIVER SG_ CMPS_PASS_COUNTER: 32|16@1+ (1,0) [0|64000] "count" DRIVER SG_ CMPS_FAIL_COUNTER: 48|16@1+ (1,0) [0|64000] "count" DRIVER CM_ BU_ DRIVER "The driver node of the car"; CM_ BU_ MOTOR "The motor controller node of the car"; CM_ BU_ SENSOR "The sensor controller node 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 ===