Software Weekly Update
Robot Code:
Here is our official Robot code for the 2026 season. Note: the specific branch is 2026-Robot-Code. Also, our README is STILL not up-to-date… might be done for 2027 🙃
Over the past two days, Team 135 has worked on developing our 2026 robot code. First, we merged three branches from our original codebase that brought together our entire software: the Cameras_PhotonVision_&_Limelight-CORE branch integrated full vision capabilities, including AprilTag detection, AI-powered game piece tracking, and support for up to four bot-pose cameras with sophisticated filtering algorithms, using any source of camera, PhotonVision, Limelight, or our custom solution. The Advanced_Mechanisms-CORE branch added state-space controlled mechanisms with PID and feedforward implementations for complex subsystems like turrets and flywheels, and the Simple_Mechanisms-CORE branch provided things like our roller systems and basic subsystem templates. There were only three merge conflict files throughout the process, just as designed! Still a lot of reading though…

Following this setup, we focused on maintenance and modernization efforts. This included updating AprilTag integration, refreshing drivetrain configurations, updating vendor dependencies from CTRE, REV, and PhotonVision, and removing deprecated code to align the project with current best practices.
We then shifted focus to our autonomous capabilities, where we identified and resolved several auto-driving issues through rapid iteration. The autopilot system was broken due to inconsistent coordinate frame usage across the codebase, where different methods mixed robot-relative chassis speeds (relative to the robot’s orientation) with field-relative chassis speeds (relative to the field coordinate system). This caused navigation errors and unpredictable behavior.

With these fixes, the autopilot calculation now correctly receives chassis speeds, converting them properly throughout the logic. We also optimized the autopilot lookahead distance in PathFinder from 4 meters to 2 meters, reducing computational overhead while maintaining accurate trajectory following.
These coordinate frame corrections had effects throughout the drivetrain subsystem, requiring updates to look-ahead pose calculations and ensuring DriveToTranslation properly requests field-relative speeds when initializing its controller for smooth transitions between autonomous and manual control. After verification with execution time monitoring, the corrected system now properly masks rotation for translation-only navigation, applies the theta controller for orientation control, and combines outputs into clean, robot-relative commands for the motor controllers without error.