Calibrated camera offset.

Change-Id: I10113c9b80695c0b2407cd1df6fd3fe40d6390ca
diff --git a/y2017/constants.cc b/y2017/constants.cc
index 5ddb464..536a072 100644
--- a/y2017/constants.cc
+++ b/y2017/constants.cc
@@ -104,6 +104,7 @@
 
       r->down_error = 0;
       r->vision_name = "test";
+      r->vision_error = 0.0;
       break;
 
     case kCompTeamNumber:
@@ -120,6 +121,7 @@
 
       r->down_error = 0;
       r->vision_name = "competition";
+      r->vision_error = 0.015;
       break;
 
     case kPracticeTeamNumber:
@@ -136,9 +138,9 @@
 
       r->down_error = 0;
       r->vision_name = "practice";
+      r->vision_error = 0.0;
       break;
 
-
     default:
       LOG(FATAL, "unknown team #%" PRIu16 "\n", team);
   }
diff --git a/y2017/constants.h b/y2017/constants.h
index 829af88..1d6eede 100644
--- a/y2017/constants.h
+++ b/y2017/constants.h
@@ -123,6 +123,8 @@
 
   double down_error;
   const char *vision_name;
+
+  double vision_error;
 };
 
 // Creates (once) a Values instance for ::aos::network::GetTeamNumber() and
diff --git a/y2017/control_loops/superstructure/column/column.cc b/y2017/control_loops/superstructure/column/column.cc
index e57a646..e248739 100644
--- a/y2017/control_loops/superstructure/column/column.cc
+++ b/y2017/control_loops/superstructure/column/column.cc
@@ -375,7 +375,8 @@
               new ::frc971::control_loops::SimpleCappedStateFeedbackLoop<
                   6, 2, 2>(MakeIntegralColumnLoop())),
           constants::GetValues().column, constants::Values::kTurretRange, 7.0,
-          50.0) {}
+          50.0),
+      vision_error_(constants::GetValues().vision_error) {}
 
 void Column::Reset() {
   state_ = State::UNINITIALIZED;
@@ -531,7 +532,7 @@
           if (vision_time_adjuster_.valid()) {
             LOG(INFO, "Vision aligning to %f\n", vision_time_adjuster_.goal());
             profiled_subsystem_.set_turret_unprofiled_goal(
-                vision_time_adjuster_.goal());
+                vision_time_adjuster_.goal() + vision_error_);
           }
         }
 
diff --git a/y2017/control_loops/superstructure/column/column.h b/y2017/control_loops/superstructure/column/column.h
index b952a78..092e253 100644
--- a/y2017/control_loops/superstructure/column/column.h
+++ b/y2017/control_loops/superstructure/column/column.h
@@ -222,6 +222,8 @@
       ::aos::monotonic_clock::min_time;
 
   ColumnProfiledSubsystem profiled_subsystem_;
+
+  const double vision_error_;
 };
 
 }  // namespace column