Project Tasklist - Razorbotz/RMC-Code-20-21 GitHub Wiki
Below are the completed and incomplete tasks for the project. Wherever possible, categorize your tasks in a meaningful way, e.g. "Autonomy," "Manual Control," etc.
General Tasks
- Update ROS1 code to ROS2
- Trim Current Modules
- Study Current Code to understand functionality
- Remove code that is no longer applicable to the current project
- Communicate these specifics/changes with design teams
- Create/Update Documentation and Comments
- Ensure documentation is structured to be maintained across project generations
- Add details wherever appropriate
- Win the NASA RMC
- Note: the 2020-2021 competition was moved to be virutal due to COVID-19 (or canceled? Either way, I don't think we're really competing this year)
Manual Control / UI
- Create a more User-Friendly UI Design
- Consult with Project Lead on recommendations
- Look into GTK Project for relevant UI widgets
- Update Talon/Victor code in the communication node for this year's hardware
- Prior year had 3 Talon / 2 Victor interfaces, now we have 4 Talon / 1 Victor
- Simplify functions/callbacks where applicable to use more object-oriented practices (currently there's an overabundance of copy/pasted code with only one or two things different; update to pass in the necessary parameters/objects as part of the function call)
Autonomy
Long-Term Goal: Implement Full Autonomy
Autonomy Documentation here
- Autonomy Core
- Explore potential datasets for a computer vision-based object recognition model
- May be implemented using YOLO or similar real-time object recognition neural network
- Build dataset using photos/video from the camera to predict where rocks, obstacles, and the mining base are in the given environment
- Note: the Jetson Nano we're using as of 04/03/2021 is cabable of 36 FPS on ResNet-50
- Explore potential datasets for a computer vision-based object recognition model
- Travel Autonomy
- Implement Object Recognition to recognize rocks and hazards
- Implement analysis algorithm that can construct an optimal path across the field while avoiding hazards (hope you've taken AI/Algorithms)
- Excavation Autonomy
- Note: At time of writing, the robot doesn't have the excavation components actually built. The Excavation Node itself will likely need to be updated for the current iteration of the robot.
- Dump Autonomy
- Object recognition to recognize the dump site
- Algorithm for pathing to and dumping into the dump site
- Failure Management
- Detect component failures such as camera or accelerometer loss
- Implement backup features for detectable losses