Do multi camera extrinsic calibration from image or TargetMap logs

Based on flag, either run from full image logs (collected from each pi)
or from Logger log that contains just TargetMap (AprilTag) results

Changed some remapping to make it work with current logging

Added a python-based test to do a hard check against log data

Change-Id: I3928d5d2551d4c63832ab60a12542946cb45b38f
Signed-off-by: Jim Ostrowski <yimmy13@gmail.com>
diff --git a/y2023/vision/BUILD b/y2023/vision/BUILD
index 6a67316..7ccd53d 100644
--- a/y2023/vision/BUILD
+++ b/y2023/vision/BUILD
@@ -241,6 +241,7 @@
         "//frc971/control_loops:pose",
         "//frc971/vision:calibration_fbs",
         "//frc971/vision:charuco_lib",
+        "//frc971/vision:extrinsics_calibration",
         "//frc971/vision:target_mapper",
         "//third_party:opencv",
         "//y2023/constants:constants_fbs",
@@ -249,6 +250,23 @@
     ],
 )
 
+py_test(
+    name = "calibrate_multi_cameras_test",
+    srcs = ["calibrate_multi_cameras_test.py"],
+    args = [
+        "--calibrate_binary",
+        "$(location :calibrate_multi_cameras)",
+        "--logfile",
+        "external/calibrate_multi_cameras_data/fbs_log-268",
+    ],
+    data = [
+        ":calibrate_multi_cameras",
+        "//y2023/vision/calib_files",
+        "@calibrate_multi_cameras_data",
+    ],
+    target_compatible_with = ["@platforms//cpu:x86_64"],
+)
+
 cc_binary(
     name = "game_pieces_detector",
     srcs = [