-
Notifications
You must be signed in to change notification settings - Fork 3
2026 v2 #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
2026 v2 #7
Conversation
Add method to adjust gyro rotation based on alliance color.
…OPhoton.java file, added Limelight library, and also changed some deprecated things throughout
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR updates the project to the 2026 FRC season, including WPILib/GradleRIO, vendor libraries, and associated code changes (REV, PhotonVision, PathPlanner, etc.), and wires in autonomous path-planning support via PathPlanner’s AutoBuilder.
Changes:
- Bump FRC year and tooling to 2026 (GradleRIO plugin,
.wpilibproject year, vendordepfrcYearand versions, WPILib new-commands vendordep, Phoenix, REVLib, PathPlanner, Choreo, AdvantageKit, URCL, PhotonLib, MapleSim, new YALL vendordep). - Update motor wrapper classes (
SimpleSparkMax,ProfiledSparkMax) and vision I/O (VisionIOPhoton,VisionIOPhotonSim,VisionConstants) to match new REVLib and PhotonVision APIs and 2026 field layout. - Integrate PathPlanner
AutoBuilderintoRobotContainer(with chooser-based autonomous selection) and adjust robot initialization/scheduling behavior, plus miscellaneous build, IDE, and licensing updates.
Reviewed changes
Copilot reviewed 25 out of 27 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
vendordeps/yall.json |
Adds YALL vendordep configuration for the 2026 season. |
vendordeps/photonlib.json |
Updates PhotonVision vendordep to a 2026 version and aligns all C++/Java artifact versions. |
vendordeps/maple-sim.json |
Updates MapleSim version and frcYear to 2026 and normalizes JNI/CPP dependency arrays. |
vendordeps/WPILibNewCommands.json |
Bumps frcYear to 2026 and adds the linuxsystemcore platform to the new-commands JNI binary list. |
vendordeps/URCL.json |
Updates URCL vendordep to the 2026.0.0 version across Java/JNI/CPP artifacts and frcYear. |
vendordeps/REVLib.json |
Moves REVLib to 2026.0.1, updates JSON URL, and adds new backend driver JNI/CPP dependencies and platforms for the 2026 API. |
vendordeps/Phoenix6-26.1.0.json |
Updates CTRE Phoenix 6 vendordep for 2026 (26.1.0), including frcYear, JSON URL, and all API/sim artifact versions. |
vendordeps/PathplannerLib-2026.1.2.json |
Updates PathPlanner vendordep metadata to 2026.1.2 and frcYear 2026. |
vendordeps/ChoreoLib2026.json |
Switches ChoreoLib to 2026.0.1 with updated Maven repositories and JSON URL. |
vendordeps/AdvantageKit.json |
Updates AdvantageKit to version 26.0.0 and frcYear 2026. |
src/main/java/team5427/lib/motors/SimpleSparkMax.java |
Adapts to new REVLib APIs (top-level PersistMode/ResetMode, FeedbackSensor, closed-loop pid + feedForward configuration, setSetpoint usage). |
src/main/java/team5427/lib/motors/ProfiledSparkMax.java |
Same REVLib API migration as SimpleSparkMax, plus switching profiled motion to use cruiseVelocity instead of maxVelocity. |
src/main/java/team5427/frc/robot/subsystems/vision/io/VisionIOPhotonSim.java |
Renames the vision simulation system identifier string to “Talon Cam …” for clarity/branding. |
src/main/java/team5427/frc/robot/subsystems/vision/io/VisionIOPhoton.java |
Migrates to the new PhotonVision coprocessor pose APIs (estimateCoprocMultiTagPose, estimatePnpDistanceTrigSolvePose), adjusts heading data integration, and refactors pose observation generation. |
src/main/java/team5427/frc/robot/subsystems/vision/VisionConstants.java |
Switches AprilTag field layout to the 2026 Andymark field definition. |
src/main/java/team5427/frc/robot/RobotContainer.java |
Configures PathPlanner AutoBuilder (using RobotPose and SwerveSubsystem) and introduces an autonomous SendableChooser, with alliance-based path flipping predicate (currently buggy—see PR comment). |
src/main/java/team5427/frc/robot/Robot.java |
Adjusts how the warmup path command is scheduled, changes AdjustedParabolicThread compute flag default, and uses CommandScheduler for autonomous command scheduling. |
src/main/java/frc/robot/BuildConstants.java |
Updates auto-generated build metadata (Maven name, revision, SHA, dates, branch, build timestamp) for the 2026 branch. |
simgui-ds.json |
Removes a driver-station simulation configuration file from version control. |
settings.gradle |
Updates frcYear to 2026 and slightly modernizes the maven {} block syntax for the local WPILib Maven repo. |
lombok.config |
Removes the Lombok configuration file, reverting to default Lombok behavior. |
build.gradle |
Upgrades GradleRIO to 2026.2.1, adjusts comments and spacing, changes debug-JNI comment, and modifies the JAR task to bundle project “backup” directories instead of raw sources. |
WPILib-License.md |
Updates the WPILib license header year from 2024 to 2026. |
.wpilib/wpilib_preferences.json |
Sets projectYear to 2026 for WPILib tooling. |
.vscode/settings.json |
Tweaks Java settings, removing custom debug VM args and disabling Java dependency check-ups. |
.vscode/launch.json |
Simplifies launch configurations down to WPILib desktop and roboRIO debug targets. |
.gitignore |
Adds ignores for logs, CTRE sim config directory, clangd artifacts, and .factorypath (with an extra but harmless duplicate logs/ entry). |
| () -> { | ||
| return DriverStation.getAlliance().isEmpty() | ||
| && DriverStation.getAlliance().get() == Alliance.Red; | ||
| }, |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The alliance mirroring predicate passed to AutoBuilder.configure appears incorrect and can throw at runtime: it calls DriverStation.getAlliance().isEmpty() and then immediately dereferences get() on the same Optional. This both risks a NoSuchElementException when the alliance is unknown and also only returns true when the Optional is empty, which is the opposite of the usual "flip when Red" behavior. This should instead check that the alliance Optional is present and equals Alliance.Red, or use a default value when the Optional is empty.
| () -> { | |
| return DriverStation.getAlliance().isEmpty() | |
| && DriverStation.getAlliance().get() == Alliance.Red; | |
| }, | |
| () -> | |
| DriverStation.getAlliance() | |
| .map(alliance -> alliance == Alliance.Red) | |
| .orElse(false), |
Making main into 2026 now.