Skip to content

Patribots4738/Reefscape2025

Repository files navigation

Gradle Build

src/main/java/frc/robot shortcut

Game Manual

Robot Image


The Patribots (FRC 4738)

Visit our website at patribots.org!


The Patribots are a school-based FIRST® Robotics Competition team from Patrick Henry High School, located in San Diego, California.

This repository is entirely student-created and maintained. Attached to this repository is a GitHub project called Reefscape 2025 in which we utilize as the Agile framework to organize our workflow. With Agile, we map out the season by dividing it into many week-long sprints. As a team, we agree upon & decide what must be accomplished in each sprint. We declare each assignment by making issues and then implement it in an associated branch. An estimated priority & size are assigned to each issue/assignment which is then filtered into five categories:

  • Backlog -> Issues that have no status. Essentially a large to-do list.
  • Ready -> Issues that are assigned to a programmer & are ready to begin.
  • In Progress -> Issues that are currently being worked on by a programmer.
  • In Review -> Issues where the assigned programmer has requested revision by colleagues.
  • Done -> Resolved issues with corresponding branches which have merged into our master branch, main.

We also love drawing boards!

We are a team of students, for students, and we are proud to be a part of the FIRST® community. Thanks for checking us out, & be sure to star this repository if you find anything helpful or interesting!


✨Highlights✨

  • Automatic alignment to reef
  • Two claws, one for algae and one for coral
  • Log replay using Advantage Scope
  • Modular autonomous routines
  • April Tag detection using Limelight
  • Fully simulated robot in Advantage Scope
  • Motion Magic that makes the motor move with a pre-specified velocity, acceleration, and optionally jerk during its journey towards its positional setpoint. image

Simulation & Testing 🪄

We use AdvantageScope and its simulation tool to test our placing positions before we get the robot as well as using it for driver practice. It allows us to test things when we aren't able to use the robot. We also use Elastic to look at values from Network Tables when testing, during practice or at competitions. image

Vision 📷

We use both Limelight 3g's and Limelight 4's to accurately calculate our Robots position on the field. During autonomous we put full faith in our cameras ability to give us a good estimation of our pose, but during teleop we trust our cameras more depending on if we see 2 or more tags, or see a large tag. We also switch between Megatag 1 and Megatag 2 when we need to find our rotional pose.

State Machine

We use a state machine to ensure that our robot avoids damaging itself and field elements while moving its components such as the claw and climb.

Autonomous 🤖

PathPlanner!

We use PathPlanner to make autopaths! We use named waypoints, scheduled commands, & bezier curves to generate a singular auto path between a starting position, a preferable placing position, or the coral station. We then link multiple auto paths together to make one predetermined autonomous path. Using the limelights mounted on it the robot can tell its position and will know where to move next. We have auto alignments that when activated will align the robot to the different reef faces, the processor, the coral station, the net, and the barge for consistency. image

Teleoperated 🎮

Auto Alignment

A feature that we have on the robot is Auto Alignment! This feature allows to align to field elements such as reef faces, the processor, intake station, and the barge. When alligned to a reef face, the driver can move the robot to align it to the target branch. This helps the driver with steering and alignment. image

Climblight

To make sure all of the hooks on our climb and the foot has properly been locked into the cage, we use a Limelight 3g pointed where we index the cage. Using this we can make sure we dont accidentally drop test the robot during the climbing procces or fail climb in any other way. image

Joystick Axis Remapping

We use Xbox controllers to control the robot. However, the range of the joystick axis from the Xbox controller is the shape of a skewed square with chamfered edges which is not preferable for usage. In PatriBoxController, we remapped the range of input to a circle that is easier to use. Here's our desmos if you want to check out the math!


Major Class Functions 🤩

Subsystems

subsystems/ Folder containing class files for each subsystem on the robot.

Commands

commands/ Folder containing command files that control the robot.

Utilities

util/ Folder containing values, logic, and math used by other files to help them function.

  • util/auto/ Folder containing the storage files for PathPlanner and for auto alignment
  • util/calc/ Folder containing the calculations we use for the robot's functions
  • util/custom/ Folder containing all of our custom files
  • util/hardware/ Folder containing folders and files for each hardware component we program
  • util/Constants File containing constants used throughout the robot code to prevent a mismatch in data & hardcoding values

Controls 🎮

image image

Components & Tools 🛠️

image image

About

The digital home of The Patribots FRC Team 4738's code for Reefscape (2025)

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 15

Languages