S22: Road Runner
Contents
Road Runner
Abstract
Road Runner is a self navigating car built with the ability to drive to a specified geo-location within its battery range, while avoiding any physical obstacles that come on its way and successfully reaching its destination, with no human intervention apart from commanding the destination location . The car’s infrastructure has four important nodes (Driver, Sensor and Bridge, Geo and Motor) communicating within themselves over internal CAN Bus and with the end user over a mobile application. The car always strives to stay on and maintain its path to the destination by periodically sensing and processing all the relevant information from the nodes to arrive at an informed decision. It is built on top of a hobby grade RC car chassis with all the necessary adjustments and components to achieve its intended objective of self navigating and object avoidance, one of the basic requirements and functionality of an autonomous vehicle.
Introduction
The project was divided into 5 modules:
- Bridge and Sensor Controller
- Motor Controller
- Geo Controller
- Driver / LCD Controller
- Android app interface
Team Members & Responsibilities
<Team Picture>
Road Runner Firmware: GitLab Repo
Team Members:
- Dhruv Choksi
- Jonathan Doctolero
- Tudor Donca
- Hisaam Hashim
- Saicharan Kadari
- Kyle Kwong
Project Subteams:
- Bridge and Sensor Controller:
- Tudor Donca
- Saicharan Kadari
- Motor Controller:
- Dhruv Choksi
- Hisaam Hashim
- Geological Controller:
- Kyle Kwong
- Jonathan Doctolero
- Saicharan Kadari
- Bridge and LCD Controller:
- Hisaam Hashim
- Kyle Kwong
- Android Application:
- Jonathan Doctolero
- Tudor Donca
- Integration Testing:
- Tudor Donca
- Dhruv Choksi
- Hisaam Hashim
- Saicharan Kadari
- Kyle Kwong
- Jonathan Doctolero
Schedule
Week# | Start Date | End Date | Task | Status |
---|---|---|---|---|
1 | 03/06/2022 | 03/12/2022 |
|
|
2 | 03/13/2022 | 03/19/2022 |
|
|
3 | 03/20/2022 | 03/26/2022 |
|
|
4 | 03/27/2022 | 04/02/2022 |
|
|
5 | 04/03/2022 | 04/09/2022 |
|
|
6 | 04/10/2022 | 04/16/2022 |
|
In Progress |
7 | 04/17/2022 | 04/23/2022 |
|
|
8 | 04/24/2022 | 04/30/2022 |
|
|
9 | 05/01/2022 | 05/07/2022 |
|
|
10 | 05/08/2022 | 05/15/2022 |
|
Parts List & Cost
Item# | Part Description | Vendor | Qty | Cost |
---|---|---|---|---|
1 | RC Car | Redcat [1] | 1 | $153.00 |
2 | CAN Transceivers | Various | 6 | $55 |
3 | Ultrasonic Sensors | Max Botix[2] | 2 | $87.00 |
4 | Adafruit Bluetooth UART Tranceiver | Adafruit[3] | 1 | $33.90 |
5 | GPS Module and Antenna | Adafruit[4][5] | 1 | $59.50 |
6 | Compass Module | Adafruit[6] | 1 | $29.00 |
7 | Traxxas RPM Sensor | Traxxas[7] | 1 | $12 |
8 | Discrete Electronic Components | Generic[8] | 1 | $ |
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 RoadRunner DBC file
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_BRIDGE GEOLOGICAL BO_ 100 MOTOR_CMD: 4 DRIVER SG_ MOTOR_steer_degrees : 0|9@1- (1,-45) [-45|45] "degrees" MOTOR SG_ MOTOR_speed_kph : 9|9@1- (0.1,-40.5) [-40.5|40.5] "kph" MOTOR BO_ 101 MOTOR_STATUS: 4 MOTOR SG_ MOTOR_STATUS_steer_degrees : 0|9@1- (1,-45) [-45|45] "degrees" DRIVER SG_ MOTOR_STATUS_speed_kph : 9|9@1- (0.1,-40.5) [-40.5|40.5] "kph" DRIVER BO_ 200 SENSOR_SONARS: 8 SENSOR_BRIDGE SG_ SENSOR_SONARS_left : 0|10@1+ (1,0) [0|500] "cm" DRIVER SG_ SENSOR_SONARS_right : 10|10@1+ (1,0) [0|500] "cm" DRIVER SG_ SENSOR_SONARS_middle : 20|10@1+ (1,0) [0|500] "cm" DRIVER SG_ SENSOR_SONARS_back : 30|10@1+ (1,0) [0|500] "cm" DRIVER BO_ 201 GPS_DESTINATION: 8 SENSOR_BRIDGE SG_ GPS_DESTINATION_latitude : 0|28@1- (0.000001,-90.000000) [-90|90] "Degrees" GEOLOGICAL SG_ GPS_DESTINATION_longitude : 28|28@1- (0.000001,-180.000000) [-180|180] "Degrees" GEOLOGICAL BO_ 350 GEO_STATUS: 8 GEOLOGICAL SG_ GEO_STATUS_COMPASS_HEADING : 0|12@1+ (1,0) [0|359] "Degrees" DRIVER,SENSOR_BRIDGE SG_ GEO_STATUS_COMPASS_BEARING : 12|12@1+ (1,0) [0|359] "Degrees" DRIVER,SENSOR_BRIDGE SG_ GEO_STATUS_DISTANCE_TO_DESTINATION : 24|24@1+ (1,0) [0|0] "Meters" DRIVER,SENSOR_BRIDGE BO_ 360 GEO_CURRENT_POSITION: 8 GEOLOGICAL SG_ GEO_CURRENT_POSITION_latitude : 0|28@1- (0.000001,-90.000000) [-90|90] "Degrees" DRIVER,SENSOR_BRIDGE SG_ GEO_CURRENT_POSITION_longitude : 28|28@1- (0.000001,-180.000000) [-180|180] "Degrees" DRIVER,SENSOR_BRIDGE CM_ BU_ DRIVER "The driver controller driving the car"; CM_ BU_ MOTOR "The motor controller of the car"; CM_ BU_ SENSOR_BRIDGE "The sensor and bluetooth bridge controller of the car"; CM_ BU_ GEOLOGICAL "The GPS and compass controller of the car"; CM_ BO_ 100 "Sync message used to synchronize the controllers"; 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
Advise for Future Students
<Bullet points and discussion>
Acknowledgement
=== References ===