PEDROPATHING SOFTWARE
We use PedroPathing for our autonomous code. To determine our robot’s position on the field, we use the GoBuilda V2 pinpoint odometry pods, which count rotations to navigate and track the distance our robot has traveled.
Read obelisk for color pattern
Shoot 3 preloaded artifacts in correct order close to the depot
Cycle first two rows of artifacts in the correct order close to the depot
If we have three seconds or more left, park next to chute lever
If not, we stay parked in our score pose, which is off the line
MAX TOTAL POINTS: 48
Read obelisk for color pattern
Shoot 3 preloaded artifacts in correct order from the far scoring zone
Load the far row of artifacts
Score from far scoring zone
Park off triangle out of the way facing human player zone
MAX TOTAL POINTS: 33
AUTO IMPROVEMENTS
At first, our autonomous was very inconsistent and overshot a lot. We found that sparcFun’s OTOS odometry was the issue and switched to GoBilda V2 pinpoint odometry increasing reliability with minimal impact to our original chassis design. We create path chains using PedroPathing with Bezier curves and use a finite state machine to increment path states. This allows us to move more smoothly and accurately, preventing overshoot.
We also fixed a bug in our code from our Whitewater Qualifier. Our code was occasionally pulling null values from Pedro Pathing, causing disconnect. We changed our code to now pull the values straight from the localizer, fixing the issue.
Since our second comp, we’ve added code to improve our auto for state. To avoid picking up 3 balls, the code checks the sensors to detect if there is a ball in the hopper. If there is, when picking up from the line, the posing is closer to the center to ensure we don’t possess 4 balls.
OBELISK SOFTWARE
We use a Limelight 3A for 3 tasks! At the beginning of auto the Limelight reads the obelisk, and converts the ID into a color order. It stores the pattern and uses the sorter logic to call the colors in the right order to lauch. The ID is added into the initialized telemetry so we know it sees it before we run auto (see above). Tag Saved!
Looking for fiducial, correcting with PIDF, and powering up the flywheel
Indicates to driver it’s ready to launch!
RPM CALCULATION SOFTWARE
How far the ball goes depends on the RPM of the flywheel. The limelight looks for the distance between the center of the camera to the center of the goal fiducial. We have a LUT that covers the distance input space to RPM space. To get output RPM we take a linear interpolation between the two closest points of the current distance.
This chart shows how the RPM correlates with the distance from the fiducial
This code sets the RPM based on the distance from the April Tag
AIMING SOFTWARE
We have a “launch mode” triggered by the gamepad that tells the Limelight to look for the AprilTag. The Eye PIDF converts angle error in x from AprilTag to joystick steering input [-1.0,1.0]. The PIDF output is added to the driver input and may be overridden. The robot can also shoot while moving. The robot first takes the velocity from the odometry pods and calculates the magnitude. The direction from the velocity is based off of the robots original starting point, so we grab the robot orientation from the joystick while aiming at the AprilTag. The x-value from the joystick becomes a delta angle that offsets left/right velocity, and the y-value becomes a delta RPM that changes the RPM of the flywheel to adjust to movement closer/farther from the board.
Automatic Hopper Rotation: Our robot uses a distance sensor to determine when to rotate the hopper in order to leave an empty space for the artifact that is being taken in. This prevents artifacts from getting jammed.
Automated Color Switching: By pressing a button, the tool driver is able to automatically move an artifact of their chosen color into the launch space of the hopper. We do this by using sorter software.
RPM Adjusting: Our tool driver has the ability to micro-adjust launch RPM based on previous launch feedback. For example, if an artifact falls short on a launch, they can press a button to increase the RPM.
Automatic Aim: With our eye software, the driver is able to press a button that automatically centers the robot with the depot. This feature makes our launching more consistent and efficient. When the robot is lined up, a light visible to the driver turns on, indicating the launcher motor is at the appropriate speed for the current distance, the sorter is not spinning, the lifter is ready and the robot is lined up.
Automatic Shooting: After our first competition in Whitewater, we decided to implement automatic shooting, where the robot’s hopper and launcher work together to shoot three balls in a motif with just one button click.
We use logic to see what color artifacts are in the hopper. Each hopper slot sensor grabs distance and color to determines the slot state. We also use a quarter second rotation stop to help if the sensor ends up on a hole. This enables the sorter to queue up the correct color artifact for auto or tele-op. This process works 98% of the time and shows success at State, taking us to the finals as the 6th Alliance Partner! See you soon for 2026-27!
Now a Hamsterz Alumni, Anya comes in occasionally on Tuesdays as a Software Mentor for the team, and is always a member in our hearts <333