Refactor of apriltag detector to send out tags

Split into app in y2024, and libs in frc971

Added in calibration constants to y2024, including single basic camera

Modified team number parsing to work with orins

Pulled out year-by-year calibration call to a single FindCameraCalibration
call, and rest (extrinsics, intrinsics) are year-agnostic

Moving camera calibration files into constants/calib_files directory, instead
of vision/calib_files

Change-Id: Ic485086aad9665d2b571551a5afb337c9254d690
Signed-off-by: Jim Ostrowski <yimmy13@gmail.com>
diff --git a/y2024/vision/vision_util.cc b/y2024/vision/vision_util.cc
new file mode 100644
index 0000000..4c196ce
--- /dev/null
+++ b/y2024/vision/vision_util.cc
@@ -0,0 +1,21 @@
+#include "y2024/vision/vision_util.h"
+
+#include "glog/logging.h"
+
+namespace y2024::vision {
+
+const frc971::vision::calibration::CameraCalibration *FindCameraCalibration(
+    const y2024::Constants &calibration_data, std::string_view node_name) {
+  CHECK(calibration_data.has_cameras());
+  for (const y2024::CameraConfiguration *candidate :
+       *calibration_data.cameras()) {
+    CHECK(candidate->has_calibration());
+    if (candidate->calibration()->node_name()->string_view() != node_name) {
+      continue;
+    }
+    return candidate->calibration();
+  }
+  LOG(FATAL) << ": Failed to find camera calibration for " << node_name;
+}
+
+}  // namespace y2024::vision