Added indexer support, with stall detection.

Re-tuned some other loops while I was learning more about the indexer.

Change-Id: I893f1f273b31357ae9137601ca27322fc3b09d98
diff --git a/y2017/control_loops/superstructure/superstructure.q b/y2017/control_loops/superstructure/superstructure.q
index 4a5edd8..49f93e5 100644
--- a/y2017/control_loops/superstructure/superstructure.q
+++ b/y2017/control_loops/superstructure/superstructure.q
@@ -64,8 +64,23 @@
   // directly so there isn't confusion on if the goal is up to date.
   bool ready;
 
-  // If true, we have aborted.
-  bool estopped;
+  // True if the indexer is stuck.
+  bool stuck;
+  float stuck_ratio;
+
+  // The state of the indexer state machine.
+  int32_t state;
+
+  // The estimated voltage error from the kalman filter in volts.
+  double voltage_error;
+  // The estimated voltage error from the stuck indexer kalman filter.
+  double stuck_voltage_error;
+
+  // The current velocity measured as delta x / delta t in radians/sec.
+  double instantaneous_velocity;
+
+  // The error between our measurement and expected measurement in radians.
+  double position_error;
 };
 
 struct ShooterStatus {
@@ -79,9 +94,6 @@
   // directly so there isn't confusion on if the goal is up to date.
   bool ready;
 
-  // If true, we have aborted.
-  bool estopped;
-
   // The estimated voltage error from the kalman filter in volts.
   double voltage_error;