Worked through the shooter loop and fixed a bunch of bugs.  Switched the internal state in the loop to use the 0 point of the spring, fixed problems with the shooter, and pushed calibratoin into the loop.  Lots better now.
diff --git a/frc971/constants.h b/frc971/constants.h
index 3952642..81c7887 100755
--- a/frc971/constants.h
+++ b/frc971/constants.h
@@ -49,6 +49,11 @@
   struct Shooter {
     double lower_limit;
     double upper_limit;
+    double lower_hard_limit;
+    double upper_hard_limit;
+    // If the plunger is further back than this position, it is safe for the
+    // latch to be down.  Anything else would be considered a collision.
+    double latch_max_safe_position;
     AnglePair plunger_back;
     AnglePair pusher_distal;
     AnglePair pusher_proximal;