Early Build Season Programming
This year’s game is amazing for programmers. There are AprilTags absolutely everywhere (which will hopefully make full-field localization easy), plenty of opportunities for automating scoring processes, and maybe even some fun flight trajectory math to do with algae. My programmers and I are super excited to try and automate as much of the scoring process as we can, and here’s how we plan on doing it.
Camera Placement
This year, we’re planning on having 5 cameras on our robot, which is almost double what we had last year. To help determine where to put these cameras on our robot, I made a Desmos sim that shows where the AprilTag viewing dead spots are on the field based on our cameras’ sight range.

As you can see, even with just a 3.5-meter camera range there’s practically nowhere on the field out of range of cameras. As a result, we decided to keep the swerve-mounted cameras we’ve been using on our testing chassis, albeit with one minor change.

Because we want to align our robot with the AprilTags for coral placement, we decided to have our forwards-facing cameras criss-crossing each other to make sure we can see the reef AprilTags while aligned with either the left or right branch. Right now, we’re probably going to use our high-FPS OV9281s in the front (for faster positioning data) and our high-resolution OV2311s in the back (for extra range when at the reef). As for our fifth camera, we hope to an OV9782 for AI algae detection to assist with floor pickups. It’ll probably sit just in front of our claw and in between the two criss-crossed cameras, but we might not implement that until just before champs (fingers crossed) as we aren’t planning on picking up algae off the floor until then.
Custom Branch Targeting Controller

To control the robot, we’re planning on making a custom arcade-style controller that has a button for each branch. During matches, the mech driver will use it to change which branch the robot is currently “targeting” based on callouts from the coach, and the robot will use these targeting inputs to auto-align and place coral. This way, the driver (me) won’t have to waste cycle time manually aligning with the reef, and I won’t have to assign half the buttons on my controller to alignment controls. It’ll be using these microcontrollers and these buttons, and we’ll post a link to the CAD once we test out the prototype pictured above. Behind the glass, we’ll also be using the NATO phonetic alphabet for branch callouts both to prevent similar-sounding letters from being misinterpreted (namely B, C, D, E, and G) and to adhere to our Top Gun branding.
New Swerve Template
As mentioned in a previous post, this year we’ll be switching to Team 5712 - Hemlock’s Gray Matter’s custom swerve template. It combines the Phoenix 6 Swerve Template, AdvantageKit, and the PathPlanner Setpoint Generator for top-of-the-line drivetrain responsiveness and features full-robot simulation, log replay, and anti-skid software that are sure to boost our programming team’s potential. We’re extremely thankful for 5712’s help in guiding our switch to this template, and we’d like to give an extra-special thanks to @joeojazz for helping us get the template to run on RoboRIO 1.0s and for his patience in answering all our setup questions!
We took our alpha chassis home over the winter to practice swerve calibration and SysID tuning with the new framework, and we’re now ready to use it this season. We’re currently working on implementing drivetrain alignment via AprilTags, setting up our full-field localization system, and pre-writing the different subsystems we plan to have on our robot. Once we get a drivetrain with a few subsystems, I’m planning on testing if the new anti-skid software can be adjusted based on the height of the elevator to prevent tipping.