Move arm constants to constants.h

Change-Id: I0fe6de83a62adc9e330ba55025cb88920a8e43e2
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/y2023/constants.h b/y2023/constants.h
index 059a3f0..de665d9 100644
--- a/y2023/constants.h
+++ b/y2023/constants.h
@@ -154,6 +154,32 @@
     return std::chrono::seconds(2);
   }
 
+  // if true, tune down all the arm constants for testing.
+  static constexpr bool kArmGrannyMode() { return false; }
+
+  // the operating voltage.
+  static constexpr double kArmOperatingVoltage() {
+    return kArmGrannyMode() ? 6.0 : 12.0;
+  }
+  static constexpr double kArmDt() { return 0.00505; }
+  static constexpr std::chrono::nanoseconds kArmDtDuration() {
+    return std::chrono::duration_cast<std::chrono::nanoseconds>(
+        std::chrono::duration<double>(kArmDt()));
+  }
+  static constexpr double kArmAlpha0Max() {
+    return kArmGrannyMode() ? 15.0 : 15.0;
+  }
+  static constexpr double kArmAlpha1Max() {
+    return kArmGrannyMode() ? 10.0 : 10.0;
+  }
+  static constexpr double kArmAlpha2Max() {
+    return kArmGrannyMode() ? 90.0 : 90.0;
+  }
+
+  static constexpr double kArmVMax() { return kArmGrannyMode() ? 4.0 : 9.5; }
+  static constexpr double kArmPathlessVMax() { return 4.5; }
+  static constexpr double kArmGotoPathVMax() { return 4.5; }
+
   struct PotConstants {
     ::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
         ::frc971::zeroing::RelativeEncoderZeroingEstimator>