Update Hood to use AbsoluteAndAbsolute position

Change-Id: I3e88718560a6e3983681a3430dc31b5431c1a743
diff --git a/y2020/constants.cc b/y2020/constants.cc
index d39e1cd..0e36f0f 100644
--- a/y2020/constants.cc
+++ b/y2020/constants.cc
@@ -31,8 +31,8 @@
 const Values *DoGetValuesForTeam(uint16_t team) {
   Values *const r = new Values();
   ::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
-      ::frc971::zeroing::AbsoluteEncoderZeroingEstimator> *const hood =
-      &r->hood;
+      ::frc971::zeroing::AbsoluteAndAbsoluteEncoderZeroingEstimator>
+      *const hood = &r->hood;
 
   // Hood constants.
   hood->zeroing_voltage = 3.0;
@@ -43,12 +43,17 @@
   hood->make_integral_loop =
       control_loops::superstructure::hood::MakeIntegralHoodLoop;
   hood->zeroing_constants.average_filter_size = Values::kZeroingSampleSize;
-  hood->zeroing_constants.one_revolution_distance =
-      M_PI * 2.0 * constants::Values::kHoodEncoderRatio();
   hood->zeroing_constants.zeroing_threshold = 0.0005;
   hood->zeroing_constants.moving_buffer_size = 20;
   hood->zeroing_constants.allowable_encoder_error = 0.9;
-  hood->zeroing_constants.middle_position = Values::kHoodRange().middle();
+  hood->zeroing_constants.one_revolution_distance =
+      M_PI * 2.0 * constants::Values::kHoodEncoderRatio();
+  hood->zeroing_constants.single_turn_middle_position =
+      Values::kHoodRange().middle();
+  hood->zeroing_constants.single_turn_one_revolution_distance =
+      M_PI * 2.0 * constants::Values::kHoodSingleTurnEncoderRatio();
+  hood->zeroing_constants.measured_absolute_position = 0;
+  hood->zeroing_constants.single_turn_measured_absolute_position = 0;
 
   ::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
       ::frc971::zeroing::AbsoluteEncoderZeroingEstimator> *const intake =
@@ -93,7 +98,7 @@
   turret_params->zeroing_constants.allowable_encoder_error = 0.9;
 
   CHECK_LE(hood->range.range(),
-           hood->zeroing_constants.one_revolution_distance);
+           hood->zeroing_constants.single_turn_one_revolution_distance);
   CHECK_LE(intake->range.range(),
            intake->zeroing_constants.one_revolution_distance);
 
@@ -113,6 +118,9 @@
                                      0.0109413725126625 - 0.223719825811759;
       turret_params->zeroing_constants.measured_absolute_position =
           0.547478339799516;
+
+      hood->zeroing_constants.measured_absolute_position = 0.03207;
+      hood->zeroing_constants.single_turn_measured_absolute_position = 0.31055;
       break;
 
     case kPracticeTeamNumber: