From f2f0ff8e761e8a4e0d2d771a863f129315e0191e Mon Sep 17 00:00:00 2001 From: Arnav495 Date: Sat, 7 Feb 2026 10:17:34 -0800 Subject: [PATCH] More bugfixes. --- src/main/java/frc/robot/util/ShooterPhysics.java | 2 ++ src/test/java/frc/robot/util/ShooterPhysicsTest.java | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/frc/robot/util/ShooterPhysics.java b/src/main/java/frc/robot/util/ShooterPhysics.java index dad2995..9f6b30e 100644 --- a/src/main/java/frc/robot/util/ShooterPhysics.java +++ b/src/main/java/frc/robot/util/ShooterPhysics.java @@ -66,6 +66,8 @@ public class ShooterPhysics { // now we need to satisfy the speed constraint TurretState withMinSpeed = withMinimumSpeed(robotVelocity, robotToTarget); + if (withMinSpeed.exitVel() > constraints.maxVel()) + return Optional.empty(); // ordered such that the first element is valid and the second is not Pair newRange; diff --git a/src/test/java/frc/robot/util/ShooterPhysicsTest.java b/src/test/java/frc/robot/util/ShooterPhysicsTest.java index 552e5b4..046004c 100644 --- a/src/test/java/frc/robot/util/ShooterPhysicsTest.java +++ b/src/test/java/frc/robot/util/ShooterPhysicsTest.java @@ -237,6 +237,11 @@ class ShooterPhysicsTest { var val2 = ShooterPhysics.getConstrainedParams(Translation2d.kZero, new Translation3d(10, 10, 3), constraints2); assertTrue(val2.isPresent()); assertEquals(45, Units.radiansToDegrees(val2.get().pitch()), .1); + + // something impossible + Constraints constraints3 = new Constraints(3, 3, Units.degreesToRadians(45), Math.PI / 2 - .1); + var val3 = ShooterPhysics.getConstrainedParams(Translation2d.kZero, new Translation3d(10, 10, 3), constraints3); + assertTrue(val3.isEmpty(), val3.toString()); } // test using a simple physics simulation -- 2.39.5