diff --git a/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java b/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java index 3823ab6d7..0f7c3caa6 100644 --- a/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java +++ b/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java @@ -180,10 +180,16 @@ public class NTDataPublisher implements CVPipelineResultConsumer { ts.bestTargetPosY.set(0); } - var fsp = result.inputAndOutputFrame.frameStaticProperties; - if (fsp.cameraCalibration != null) { - ts.cameraIntrinsicsPublisher.accept(fsp.cameraCalibration.getIntrinsicsArr()); - ts.cameraDistortionPublisher.accept(fsp.cameraCalibration.getExtrinsicsArr()); + // Something in the result can sometimes be null -- so check probably too many things + if (result != null + && result.inputAndOutputFrame != null + && result.inputAndOutputFrame.frameStaticProperties != null + && result.inputAndOutputFrame.frameStaticProperties.cameraCalibration != null) { + var fsp = result.inputAndOutputFrame.frameStaticProperties; + if (fsp.cameraCalibration != null) { + ts.cameraIntrinsicsPublisher.accept(fsp.cameraCalibration.getIntrinsicsArr()); + ts.cameraDistortionPublisher.accept(fsp.cameraCalibration.getExtrinsicsArr()); + } } else { ts.cameraIntrinsicsPublisher.accept(new double[] {}); ts.cameraDistortionPublisher.accept(new double[] {});