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