Updated constants and wpilib_interface.

Updated wpilib_interface and the constants files to have the
superstructure components.

Updated the linear_system codegen to output free speed in radians.
Updated the intake python file with the correct gear ratio.
Created the superstructure plants.

Change-Id: I5a2b54fe3de8d9ae9b0f79820465a2f97baed22d
diff --git a/y2019/constants.cc b/y2019/constants.cc
index 0851577..e91a49c 100644
--- a/y2019/constants.cc
+++ b/y2019/constants.cc
@@ -26,19 +26,99 @@
 
 const uint16_t kCompTeamNumber = 971;
 const uint16_t kPracticeTeamNumber = 9971;
+const uint16_t kCodingRobotTeamNumber = 7971;
 
 const Values *DoGetValuesForTeam(uint16_t team) {
   Values *const r = new Values();
+  Values::PotAndAbsConstants *const elevator = &r->elevator;
+  Values::Intake *const intake = &r->intake;
+  Values::PotAndAbsConstants *const stilts = &r->stilts;
+  Values::PotAndAbsConstants *const wrist = &r->wrist;
+
+  elevator->zeroing.average_filter_size = Values::kZeroingSampleSize;
+  elevator->zeroing.one_revolution_distance =
+      M_PI * 2.0 * constants::Values::kElevatorEncoderRatio();
+  elevator->zeroing.zeroing_threshold = 0.0005;
+  elevator->zeroing.moving_buffer_size = 20;
+  elevator->zeroing.allowable_encoder_error = 0.9;
+
+  intake->zeroing.average_filter_size = Values::kZeroingSampleSize;
+  intake->zeroing.one_revolution_distance =
+      M_PI * 2.0 * constants::Values::kIntakeEncoderRatio();
+  intake->zeroing.zeroing_threshold = 0.0005;
+  intake->zeroing.moving_buffer_size = 20;
+  intake->zeroing.allowable_encoder_error = 0.9;
+
+  stilts->zeroing.average_filter_size = Values::kZeroingSampleSize;
+  stilts->zeroing.one_revolution_distance =
+      M_PI * 2.0 * constants::Values::kStiltsEncoderRatio();
+  stilts->zeroing.zeroing_threshold = 0.0005;
+  stilts->zeroing.moving_buffer_size = 20;
+  stilts->zeroing.allowable_encoder_error = 0.9;
+
+  wrist->zeroing.average_filter_size = Values::kZeroingSampleSize;
+  wrist->zeroing.one_revolution_distance =
+      M_PI * 2.0 * constants::Values::kWristEncoderRatio();
+  wrist->zeroing.zeroing_threshold = 0.0005;
+  wrist->zeroing.moving_buffer_size = 20;
+  wrist->zeroing.allowable_encoder_error = 0.9;
 
   switch (team) {
     // A set of constants for tests.
     case 1:
+      elevator->zeroing.measured_absolute_position = 0.0;
+      elevator->potentiometer_offset = 0.0;
+
+      intake->zeroing.measured_absolute_position = 0.0;
+      intake->zeroing.middle_position = 0.0;
+
+      stilts->zeroing.measured_absolute_position = 0.0;
+      stilts->potentiometer_offset = 0.0;
+
+      wrist->zeroing.measured_absolute_position = 0.0;
+      wrist->potentiometer_offset = 0.0;
       break;
 
     case kCompTeamNumber:
+      elevator->zeroing.measured_absolute_position = 0.0;
+      elevator->potentiometer_offset = 0.0;
+
+      intake->zeroing.measured_absolute_position = 0.0;
+      intake->zeroing.middle_position = 0.0;
+
+      stilts->zeroing.measured_absolute_position = 0.0;
+      stilts->potentiometer_offset = 0.0;
+
+      wrist->zeroing.measured_absolute_position = 0.0;
+      wrist->potentiometer_offset = 0.0;
       break;
 
     case kPracticeTeamNumber:
+      elevator->zeroing.measured_absolute_position = 0.0;
+      elevator->potentiometer_offset = 0.0;
+
+      intake->zeroing.measured_absolute_position = 0.0;
+      intake->zeroing.middle_position = 0.0;
+
+      stilts->zeroing.measured_absolute_position = 0.0;
+      stilts->potentiometer_offset = 0.0;
+
+      wrist->zeroing.measured_absolute_position = 0.0;
+      wrist->potentiometer_offset = 0.0;
+      break;
+
+    case kCodingRobotTeamNumber:
+      elevator->zeroing.measured_absolute_position = 0.0;
+      elevator->potentiometer_offset = 0.0;
+
+      intake->zeroing.measured_absolute_position = 0.0;
+      intake->zeroing.middle_position = 0.0;
+
+      stilts->zeroing.measured_absolute_position = 0.0;
+      stilts->potentiometer_offset = 0.0;
+
+      wrist->zeroing.measured_absolute_position = 0.0;
+      wrist->potentiometer_offset = 0.0;
       break;
 
     default:
@@ -78,6 +158,5 @@
   return *values[team_number];
 }
 
-
 }  // namespace constants
 }  // namespace y2019