Calibrate cameras 7-9

Change-Id: Ie2fc1c2c565fabddcefa9b52dca257caba2ed196
diff --git a/y2019/vision/calibrate.sh b/y2019/vision/calibrate.sh
new file mode 100755
index 0000000..24118ed
--- /dev/null
+++ b/y2019/vision/calibrate.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+set -e
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+# We need to rebuild to save the old constants since the .cc file is baked into
+# the executable.
+calibration() {
+  bazel build -c opt //y2019/vision:global_calibration
+
+  ../../bazel-bin/y2019/vision/global_calibration "$@"
+}
+
+# Calibrate the comp robot.  This is assuming the data file captured has been
+# extracted into the data folder in //y2019/vision/
+calibration \
+    --camera_id 10 \
+    --tape_start_x=-12.5 \
+    --tape_start_y=0.0 \
+    --tape_direction_x=-1.0 \
+    --tape_direction_y=0.0 \
+    --beginning_tape_measure_reading=11 \
+    --image_count=75 \
+    --constants=constants.cc \
+    --prefix data/cam10_0/debug_viewer_jpeg_
+
+calibration \
+    --camera_id 6 \
+    --tape_start_x=12.5 \
+    --tape_start_y=0.0 \
+    --tape_direction_x=1.0 \
+    --tape_direction_y=0.0 \
+    --beginning_tape_measure_reading=11 \
+    --image_count=75 \
+    --constants=constants.cc \
+    --prefix data/cam6_0/debug_viewer_jpeg_
+
+calibration \
+    --camera_id 7 \
+    --tape_start_x=12.5 \
+    --tape_start_y=0.0 \
+    --tape_direction_x=1.0 \
+    --tape_direction_y=0.0 \
+    --beginning_tape_measure_reading=21 \
+    --image_count=65 \
+    --constants=constants.cc \
+    --prefix data/cam7_0/debug_viewer_jpeg_
+
+calibration \
+    --camera_id 9 \
+    --tape_start_x=-6.5 \
+    --tape_start_y=11.0 \
+    --tape_direction_x=0.0 \
+    --tape_direction_y=-1.0 \
+    --beginning_tape_measure_reading=30 \
+    --image_count=56 \
+    --constants=constants.cc \
+    --prefix data/cam9_0/debug_viewer_jpeg_
+
+calibration \
+    --camera_id 8 \
+    --tape_start_x=6.5 \
+    --tape_start_y=-11.0 \
+    --tape_direction_x=0.0 \
+    --tape_direction_y=1.0 \
+    --beginning_tape_measure_reading=25 \
+    --image_count=61 \
+    --constants=constants.cc \
+    --prefix data/cam8_0/debug_viewer_jpeg_
diff --git a/y2019/vision/constants.cc b/y2019/vision/constants.cc
index ef99521..44a143c 100644
--- a/y2019/vision/constants.cc
+++ b/y2019/vision/constants.cc
@@ -59,6 +59,60 @@
         75,
     }};
 
+CameraCalibration camera_7 = {
+    {
+        -2.30729 / 180.0 * M_PI, 339.894, 1.16684 / 180.0 * M_PI,
+    },
+    {
+        {{3.62399 * kInchesToMeters, 3.94792 * kInchesToMeters,
+          33.3196 * kInchesToMeters}},
+        18.5828 / 180.0 * M_PI,
+    },
+    {
+        7,
+        {{12.5 * kInchesToMeters, 0.0}},
+        {{1 * kInchesToMeters, 0.0}},
+        21,
+        "data/cam7_0/debug_viewer_jpeg_",
+        65,
+    }};
+
+CameraCalibration camera_8 = {
+    {
+        37.0966 / 180.0 * M_PI, 339.997, 0.265968 / 180.0 * M_PI,
+    },
+    {
+        {{3.53674 * kInchesToMeters, 5.25891 * kInchesToMeters,
+          12.6869 * kInchesToMeters}},
+        92.4773 / 180.0 * M_PI,
+    },
+    {
+        8,
+        {{6.5 * kInchesToMeters, -11 * kInchesToMeters}},
+        {{0.0, 1 * kInchesToMeters}},
+        25,
+        "data/cam8_0/debug_viewer_jpeg_",
+        61,
+    }};
+
+CameraCalibration camera_9 = {
+    {
+        35.3461 / 180.0 * M_PI, 337.599, 3.34351 / 180.0 * M_PI,
+    },
+    {
+        {{4.24216 * kInchesToMeters, -2.97032 * kInchesToMeters,
+          11.323 * kInchesToMeters}},
+        -93.3026 / 180.0 * M_PI,
+    },
+    {
+        9,
+        {{-6.5 * kInchesToMeters, 11 * kInchesToMeters}},
+        {{0.0, -1 * kInchesToMeters}},
+        30,
+        "data/cam9_0/debug_viewer_jpeg_",
+        56,
+    }};
+
 CameraCalibration camera_10 = {
     {
         -0.165199 / 180.0 * M_PI, 340.666, 0.596842 / 180.0 * M_PI,
@@ -121,6 +175,12 @@
       return &camera_5;
     case 6:
       return &camera_6;
+    case 7:
+      return &camera_7;
+    case 8:
+      return &camera_8;
+    case 9:
+      return &camera_9;
     case 10:
       return &camera_10;
     case 16: