From c5d08bac5b39569f829eba03bfc7057baee6a790 Mon Sep 17 00:00:00 2001 From: Nitay4 Date: Sun, 5 Jul 2026 21:06:30 +0300 Subject: [PATCH 1/3] vision vison --- .../vision/cameras/limelight/Limelight.java | 8 +-- .../inputs/ColorDetectionInputs.java | 2 +- .../inputs/NeuralDetectionInputs.java | 3 +- .../frc/utils/limelight/LimelightHelpers.java | 59 ++++++++++--------- 4 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/main/java/frc/robot/vision/cameras/limelight/Limelight.java b/src/main/java/frc/robot/vision/cameras/limelight/Limelight.java index ab97024894..0957f795d1 100644 --- a/src/main/java/frc/robot/vision/cameras/limelight/Limelight.java +++ b/src/main/java/frc/robot/vision/cameras/limelight/Limelight.java @@ -83,7 +83,7 @@ public void updateNeuralDetection() { neuralDetections.clear(); inputs.neuralDetectionInputs().target2dValues = LimelightTarget2dValues.fromArray(LimelightHelpers.getT2DArray(name)); - inputs.neuralDetectionInputs().rawDetections = LimelightHelpers.getRawDetections(name); +// inputs.neuralDetectionInputs().rawDetections = LimelightHelpers.getRawDetections(name); Logger.processInputs(logPath + "/neuralDetectionInputs", inputs.neuralDetectionInputs()); if (getTarget2dValues().isValid()) { @@ -114,7 +114,7 @@ public void updateColorDetection() { colorDetections.clear(); inputs.colorDetectionInputs().target2dValues = LimelightTarget2dValues.fromArray(LimelightHelpers.getT2DArray(name)); - inputs.colorDetectionInputs().rawTargets = LimelightHelpers.getRawTargets(name); +// inputs.colorDetectionInputs().rawTargets = LimelightHelpers.getRawTargets(name); Logger.processInputs(logPath + "/colorDetectionInputs", inputs.colorDetectionInputs()); if (getTarget2dValues().isValid()) { @@ -300,11 +300,11 @@ protected LimelightTarget2dValues getTarget2dValues() { } protected LimelightHelpers.RawDetection[] getRawDetections() { - return inputs.neuralDetectionInputs().rawDetections; + return LimelightHelpers.getRawDetections(name); } protected LimelightHelpers.RawTarget[] getRawTargets() { - return inputs.colorDetectionInputs().rawTargets; + return LimelightHelpers.getRawTargets(name); } protected Pose3d getMT1PrimaryTagPoseInCameraSpace() { diff --git a/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java b/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java index 92477b5c6e..4cc9c3e5a3 100644 --- a/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java +++ b/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java @@ -9,6 +9,6 @@ public class ColorDetectionInputs { public LimelightTarget2dValues target2dValues = new LimelightTarget2dValues(); - public LimelightHelpers.RawTarget[] rawTargets = new LimelightHelpers.RawTarget[0]; +// public LimelightHelpers.RawTarget[] rawTargets = new LimelightHelpers.RawTarget[0]; } diff --git a/src/main/java/frc/robot/vision/cameras/limelight/inputs/NeuralDetectionInputs.java b/src/main/java/frc/robot/vision/cameras/limelight/inputs/NeuralDetectionInputs.java index 479e88df1a..22c3721acc 100644 --- a/src/main/java/frc/robot/vision/cameras/limelight/inputs/NeuralDetectionInputs.java +++ b/src/main/java/frc/robot/vision/cameras/limelight/inputs/NeuralDetectionInputs.java @@ -1,7 +1,6 @@ package frc.robot.vision.cameras.limelight.inputs; import frc.robot.vision.cameras.limelight.LimelightTarget2dValues; -import frc.utils.limelight.LimelightHelpers; import org.littletonrobotics.junction.AutoLog; @AutoLog @@ -9,6 +8,6 @@ public class NeuralDetectionInputs { public LimelightTarget2dValues target2dValues = new LimelightTarget2dValues(); - public LimelightHelpers.RawDetection[] rawDetections = new LimelightHelpers.RawDetection[] {}; +// public LimelightHelpers.RawDetection[] rawDetections = new LimelightHelpers.RawDetection[] {}; } diff --git a/src/main/java/frc/utils/limelight/LimelightHelpers.java b/src/main/java/frc/utils/limelight/LimelightHelpers.java index 61c7cccd9b..e736a9bb80 100644 --- a/src/main/java/frc/utils/limelight/LimelightHelpers.java +++ b/src/main/java/frc/utils/limelight/LimelightHelpers.java @@ -694,7 +694,7 @@ public record PoseEstimate( double tagSpan, double avgTagDist, double avgTagArea, - RawFiducial[] rawFiducials, +// RawFiducial[] rawFiducials, boolean isMegaTag2 ) { @@ -702,7 +702,9 @@ public record PoseEstimate( * Instantiates a PoseEstimate object with default values */ public PoseEstimate() { - this(new Pose2d(), 0, 0, 0, 0, 0, 0, new RawFiducial[] {}, false); + this(new Pose2d(), 0, 0, 0, 0, 0, 0, +// new RawFiducial[] {}, + false); } @Override @@ -720,7 +722,8 @@ public boolean equals(Object obj) { && Double.compare(that.avgTagDist, avgTagDist) == 0 && Double.compare(that.avgTagArea, avgTagArea) == 0 && pose.equals(that.pose) - && Arrays.equals(rawFiducials, that.rawFiducials); +// && Arrays.equals(rawFiducials, that.rawFiducials) + ; } } @@ -897,7 +900,9 @@ private static PoseEstimate getBotPoseEstimate(String limelightName, String entr } } - return new PoseEstimate(pose, adjustedTimestamp, latency, tagCount, tagSpan, tagDist, tagArea, rawFiducials, isMegaTag2); + return new PoseEstimate(pose, adjustedTimestamp, latency, tagCount, tagSpan, tagDist, tagArea, +// rawFiducials, + isMegaTag2); } /** @@ -1045,29 +1050,29 @@ public static void printPoseEstimate(PoseEstimate pose) { System.out.printf("Is MegaTag2: %b%n", pose.isMegaTag2); System.out.println(); - if (pose.rawFiducials == null || pose.rawFiducials.length == 0) { - System.out.println("No RawFiducials data available."); - return; - } - - System.out.println("Raw Fiducials Details:"); - for (int i = 0; i < pose.rawFiducials.length; i++) { - RawFiducial fiducial = pose.rawFiducials[i]; - System.out.printf(" Fiducial #%d:%n", i + 1); - System.out.printf(" ID: %d%n", fiducial.id); - System.out.printf(" TXNC: %.2f%n", fiducial.txnc); - System.out.printf(" TYNC: %.2f%n", fiducial.tync); - System.out.printf(" TA: %.2f%n", fiducial.ta); - System.out.printf(" Distance to Camera: %.2f meters%n", fiducial.distToCamera); - System.out.printf(" Distance to Robot: %.2f meters%n", fiducial.distToRobot); - System.out.printf(" Ambiguity: %.2f%n", fiducial.ambiguity); - System.out.println(); - } - } - - public static Boolean validPoseEstimate(PoseEstimate pose) { - return pose != null && pose.rawFiducials != null && pose.rawFiducials.length != 0; - } +// if (pose.rawFiducials == null || pose.rawFiducials.length == 0) { +// System.out.println("No RawFiducials data available."); +// return; +// } + +// System.out.println("Raw Fiducials Details:"); +// for (int i = 0; i < pose.rawFiducials.length; i++) { +// RawFiducial fiducial = pose.rawFiducials[i]; +// System.out.printf(" Fiducial #%d:%n", i + 1); +// System.out.printf(" ID: %d%n", fiducial.id); +// System.out.printf(" TXNC: %.2f%n", fiducial.txnc); +// System.out.printf(" TYNC: %.2f%n", fiducial.tync); +// System.out.printf(" TA: %.2f%n", fiducial.ta); +// System.out.printf(" Distance to Camera: %.2f meters%n", fiducial.distToCamera); +// System.out.printf(" Distance to Robot: %.2f meters%n", fiducial.distToRobot); +// System.out.printf(" Ambiguity: %.2f%n", fiducial.ambiguity); +// System.out.println(); +// } + } + +// public static Boolean validPoseEstimate(PoseEstimate pose) { +// return pose != null && pose.rawFiducials != null && pose.rawFiducials.length != 0; +// } public static NetworkTable getLimelightNTTable(String tableName) { return NetworkTableInstance.getDefault().getTable(sanitizeName(tableName)); From 43e5ac0e7a9ea1439c2ef0d4e15bc57933120c58 Mon Sep 17 00:00:00 2001 From: itamaroryan Date: Sun, 5 Jul 2026 21:13:50 +0300 Subject: [PATCH 2/3] sA --- .../cameras/limelight/inputs/ColorDetectionInputs.java | 1 - src/main/java/frc/utils/limelight/LimelightHelpers.java | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java b/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java index 4cc9c3e5a3..0f31d47364 100644 --- a/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java +++ b/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java @@ -1,7 +1,6 @@ package frc.robot.vision.cameras.limelight.inputs; import frc.robot.vision.cameras.limelight.LimelightTarget2dValues; -import frc.utils.limelight.LimelightHelpers; import org.littletonrobotics.junction.AutoLog; @AutoLog diff --git a/src/main/java/frc/utils/limelight/LimelightHelpers.java b/src/main/java/frc/utils/limelight/LimelightHelpers.java index e736a9bb80..2830362bce 100644 --- a/src/main/java/frc/utils/limelight/LimelightHelpers.java +++ b/src/main/java/frc/utils/limelight/LimelightHelpers.java @@ -15,7 +15,6 @@ import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.math.geometry.Translation2d; -import java.util.Arrays; import java.util.Map; import com.fasterxml.jackson.annotation.JsonFormat; @@ -704,7 +703,8 @@ public record PoseEstimate( public PoseEstimate() { this(new Pose2d(), 0, 0, 0, 0, 0, 0, // new RawFiducial[] {}, - false); + false + ); } @Override @@ -723,7 +723,7 @@ public boolean equals(Object obj) { && Double.compare(that.avgTagArea, avgTagArea) == 0 && pose.equals(that.pose) // && Arrays.equals(rawFiducials, that.rawFiducials) - ; + ; } } @@ -902,7 +902,8 @@ private static PoseEstimate getBotPoseEstimate(String limelightName, String entr return new PoseEstimate(pose, adjustedTimestamp, latency, tagCount, tagSpan, tagDist, tagArea, // rawFiducials, - isMegaTag2); + isMegaTag2 + ); } /** From a04557c7c3ca5e63170761de76432e2d36ad70f7 Mon Sep 17 00:00:00 2001 From: itamaroryan Date: Sun, 5 Jul 2026 21:24:36 +0300 Subject: [PATCH 3/3] deleted changes --- .../frc/robot/vision/cameras/limelight/Limelight.java | 8 ++++---- .../cameras/limelight/inputs/ColorDetectionInputs.java | 3 ++- .../cameras/limelight/inputs/NeuralDetectionInputs.java | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/frc/robot/vision/cameras/limelight/Limelight.java b/src/main/java/frc/robot/vision/cameras/limelight/Limelight.java index 0957f795d1..ab97024894 100644 --- a/src/main/java/frc/robot/vision/cameras/limelight/Limelight.java +++ b/src/main/java/frc/robot/vision/cameras/limelight/Limelight.java @@ -83,7 +83,7 @@ public void updateNeuralDetection() { neuralDetections.clear(); inputs.neuralDetectionInputs().target2dValues = LimelightTarget2dValues.fromArray(LimelightHelpers.getT2DArray(name)); -// inputs.neuralDetectionInputs().rawDetections = LimelightHelpers.getRawDetections(name); + inputs.neuralDetectionInputs().rawDetections = LimelightHelpers.getRawDetections(name); Logger.processInputs(logPath + "/neuralDetectionInputs", inputs.neuralDetectionInputs()); if (getTarget2dValues().isValid()) { @@ -114,7 +114,7 @@ public void updateColorDetection() { colorDetections.clear(); inputs.colorDetectionInputs().target2dValues = LimelightTarget2dValues.fromArray(LimelightHelpers.getT2DArray(name)); -// inputs.colorDetectionInputs().rawTargets = LimelightHelpers.getRawTargets(name); + inputs.colorDetectionInputs().rawTargets = LimelightHelpers.getRawTargets(name); Logger.processInputs(logPath + "/colorDetectionInputs", inputs.colorDetectionInputs()); if (getTarget2dValues().isValid()) { @@ -300,11 +300,11 @@ protected LimelightTarget2dValues getTarget2dValues() { } protected LimelightHelpers.RawDetection[] getRawDetections() { - return LimelightHelpers.getRawDetections(name); + return inputs.neuralDetectionInputs().rawDetections; } protected LimelightHelpers.RawTarget[] getRawTargets() { - return LimelightHelpers.getRawTargets(name); + return inputs.colorDetectionInputs().rawTargets; } protected Pose3d getMT1PrimaryTagPoseInCameraSpace() { diff --git a/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java b/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java index 0f31d47364..92477b5c6e 100644 --- a/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java +++ b/src/main/java/frc/robot/vision/cameras/limelight/inputs/ColorDetectionInputs.java @@ -1,6 +1,7 @@ package frc.robot.vision.cameras.limelight.inputs; import frc.robot.vision.cameras.limelight.LimelightTarget2dValues; +import frc.utils.limelight.LimelightHelpers; import org.littletonrobotics.junction.AutoLog; @AutoLog @@ -8,6 +9,6 @@ public class ColorDetectionInputs { public LimelightTarget2dValues target2dValues = new LimelightTarget2dValues(); -// public LimelightHelpers.RawTarget[] rawTargets = new LimelightHelpers.RawTarget[0]; + public LimelightHelpers.RawTarget[] rawTargets = new LimelightHelpers.RawTarget[0]; } diff --git a/src/main/java/frc/robot/vision/cameras/limelight/inputs/NeuralDetectionInputs.java b/src/main/java/frc/robot/vision/cameras/limelight/inputs/NeuralDetectionInputs.java index 22c3721acc..479e88df1a 100644 --- a/src/main/java/frc/robot/vision/cameras/limelight/inputs/NeuralDetectionInputs.java +++ b/src/main/java/frc/robot/vision/cameras/limelight/inputs/NeuralDetectionInputs.java @@ -1,6 +1,7 @@ package frc.robot.vision.cameras.limelight.inputs; import frc.robot.vision.cameras.limelight.LimelightTarget2dValues; +import frc.utils.limelight.LimelightHelpers; import org.littletonrobotics.junction.AutoLog; @AutoLog @@ -8,6 +9,6 @@ public class NeuralDetectionInputs { public LimelightTarget2dValues target2dValues = new LimelightTarget2dValues(); -// public LimelightHelpers.RawDetection[] rawDetections = new LimelightHelpers.RawDetection[] {}; + public LimelightHelpers.RawDetection[] rawDetections = new LimelightHelpers.RawDetection[] {}; }