Add y2023 camera definition

For now, just adding box of pis calibration from 2022.
We'll add the robots later.

Signed-off-by: milind-u <milind.upadhyay@gmail.com>
Change-Id: I71a80ef4a25e6181a2263e25670e7f7297a233ae
diff --git a/y2023/vision/BUILD b/y2023/vision/BUILD
index 2f93b16..e51ed0b 100644
--- a/y2023/vision/BUILD
+++ b/y2023/vision/BUILD
@@ -1,3 +1,46 @@
+py_binary(
+    name = "create_calib_file",
+    srcs = [
+        "create_calib_file.py",
+    ],
+    args = [
+        "calibration_data.h",
+    ],
+    data = glob(["calib_files/*.json"]),
+    target_compatible_with = ["@platforms//os:linux"],
+    visibility = ["//visibility:public"],
+    deps = [
+        "//frc971/vision:create_calib_file",
+    ],
+)
+
+genrule(
+    name = "run_calibration_data",
+    outs = [
+        "calibration_data.h",
+    ],
+    cmd = " ".join([
+        "$(location :create_calib_file)",
+        "$(location calibration_data.h)",
+    ]),
+    target_compatible_with = ["@platforms//os:linux"],
+    tools = [
+        ":create_calib_file",
+    ],
+)
+
+cc_library(
+    name = "calibration_data",
+    hdrs = [
+        "calibration_data.h",
+    ],
+    target_compatible_with = ["@platforms//os:linux"],
+    visibility = ["//visibility:public"],
+    deps = [
+        "@com_google_absl//absl/types:span",
+    ],
+)
+
 cc_binary(
     name = "camera_reader",
     srcs = [
diff --git a/y2023/vision/calib_files/calibration_pi-7971-1_2021-06-12_15-35-39.636386620.json b/y2023/vision/calib_files/calibration_pi-7971-1_2021-06-12_15-35-39.636386620.json
new file mode 100755
index 0000000..a8d8816
--- /dev/null
+++ b/y2023/vision/calib_files/calibration_pi-7971-1_2021-06-12_15-35-39.636386620.json
@@ -0,0 +1,41 @@
+{
+ "node_name": "pi1",
+ "team_number": 7971,
+ "intrinsics": [
+  388.369812,
+  0.0,
+  292.325653,
+  0.0,
+  388.513733,
+  224.371063,
+  0.0,
+  0.0,
+  1.0
+ ],
+ "dist_coeffs": [
+  0.126935,
+  -0.218447,
+  -0.000152,
+  0.001158,
+  0.06266
+ ],
+ "fixed_extrinsics": [
+  -1.0,
+  -1.57586107256918e-16,
+  5.0158596452676243e-17,
+  -0.15239999999999998,
+  1.3147519464173305e-16,
+  -0.5735764363510459,
+  0.8191520442889919,
+  -0.2032,
+  -1.0031719290535249e-16,
+  0.8191520442889919,
+  0.5735764363510459,
+  0.0127,
+  0.0,
+  0.0,
+  0.0,
+  1.0
+ ],
+ "calibration_timestamp": 1623537339636386620
+}
diff --git a/y2023/vision/calib_files/calibration_pi-7971-2_2021-06-12_15-30-20.325393444.json b/y2023/vision/calib_files/calibration_pi-7971-2_2021-06-12_15-30-20.325393444.json
new file mode 100755
index 0000000..d994a07
--- /dev/null
+++ b/y2023/vision/calib_files/calibration_pi-7971-2_2021-06-12_15-30-20.325393444.json
@@ -0,0 +1,41 @@
+{
+ "node_name": "pi2",
+ "team_number": 7971,
+ "intrinsics": [
+  388.7565,
+  0.0,
+  285.024506,
+  0.0,
+  388.915039,
+  222.227539,
+  0.0,
+  0.0,
+  1.0
+ ],
+ "dist_coeffs": [
+  0.128415,
+  -0.212528,
+  0.001165,
+  0.000579,
+  0.054853
+ ],
+ "fixed_extrinsics": [
+  7.02428546843654e-17,
+  -0.5735764363510459,
+  0.8191520442889919,
+  0.09525,
+  1.0,
+  1.2246467991473532e-16,
+  0.0,
+  0.1905,
+  -1.0031719290535249e-16,
+  0.8191520442889919,
+  0.5735764363510459,
+  0.0127,
+  0.0,
+  0.0,
+  0.0,
+  1.0
+ ],
+ "calibration_timestamp": 1623537020325393444
+}
diff --git a/y2023/vision/calib_files/calibration_pi-7971-3_2021-06-12_15-33-31.977365877.json b/y2023/vision/calib_files/calibration_pi-7971-3_2021-06-12_15-33-31.977365877.json
new file mode 100755
index 0000000..241957e
--- /dev/null
+++ b/y2023/vision/calib_files/calibration_pi-7971-3_2021-06-12_15-33-31.977365877.json
@@ -0,0 +1,41 @@
+{
+ "node_name": "pi3",
+ "team_number": 7971,
+ "intrinsics": [
+  389.35611,
+  0.0,
+  339.345673,
+  0.0,
+  389.516235,
+  240.247787,
+  0.0,
+  0.0,
+  1.0
+ ],
+ "dist_coeffs": [
+  0.122511,
+  -0.209383,
+  -0.001212,
+  0.000041,
+  0.05674
+ ],
+ "fixed_extrinsics": [
+  7.02428546843654e-17,
+  -0.5735764363510459,
+  0.8191520442889919,
+  0.09525,
+  1.0,
+  1.2246467991473532e-16,
+  0.0,
+  -0.10794999999999999,
+  -1.0031719290535249e-16,
+  0.8191520442889919,
+  0.5735764363510459,
+  0.0127,
+  0.0,
+  0.0,
+  0.0,
+  1.0
+ ],
+ "calibration_timestamp": 1623537211977365877
+}
diff --git a/y2023/vision/calib_files/calibration_pi-7971-4_2021-06-12_15-37-25.706564865.json b/y2023/vision/calib_files/calibration_pi-7971-4_2021-06-12_15-37-25.706564865.json
new file mode 100755
index 0000000..6e04089
--- /dev/null
+++ b/y2023/vision/calib_files/calibration_pi-7971-4_2021-06-12_15-37-25.706564865.json
@@ -0,0 +1,41 @@
+{
+ "node_name": "pi4",
+ "team_number": 7971,
+ "intrinsics": [
+  390.301514,
+  0.0,
+  356.104095,
+  0.0,
+  389.884491,
+  231.157303,
+  0.0,
+  0.0,
+  1.0
+ ],
+ "dist_coeffs": [
+  0.128595,
+  -0.229324,
+  -0.001145,
+  0.001602,
+  0.079774
+ ],
+ "fixed_extrinsics": [
+  7.02428546843654e-17,
+  -0.5735764363510459,
+  0.8191520442889919,
+  -0.15239999999999998,
+  1.0,
+  1.2246467991473532e-16,
+  0.0,
+  -0.17779999999999999,
+  -1.0031719290535249e-16,
+  0.8191520442889919,
+  0.5735764363510459,
+  0.0127,
+  0.0,
+  0.0,
+  0.0,
+  1.0
+ ],
+ "calibration_timestamp": 1623537445706564865
+}
diff --git a/y2023/vision/create_calib_file.py b/y2023/vision/create_calib_file.py
new file mode 100644
index 0000000..b5e620d
--- /dev/null
+++ b/y2023/vision/create_calib_file.py
@@ -0,0 +1,4 @@
+import frc971.vision.create_calib_file
+
+if __name__ == "__main__":
+    frc971.vision.create_calib_file.generate_header("2023")