Bringup progress

Here's how far I got bringing the robot up.  Turret needs to be
re-calibrated again, it keeps slipping.

Change-Id: Idf8cb73973434cf9c64fd737852f1b3092b79c75
Signed-off-by: milind-u <milind.upadhyay@gmail.com>
diff --git a/y2022/constants.cc b/y2022/constants.cc
index cab73e2..7162dfa 100644
--- a/y2022/constants.cc
+++ b/y2022/constants.cc
@@ -68,7 +68,7 @@
   auto *const turret_params = &turret->subsystem_params;
 
   turret_params->zeroing_voltage = 4.0;
-  turret_params->operating_voltage = 8.0;
+  turret_params->operating_voltage = 4.0;
   turret_params->zeroing_profile_params = {0.5, 2.0};
   turret_params->default_profile_params = {15.0, 40.0};
   turret_params->range = Values::kTurretRange();
@@ -161,9 +161,9 @@
       intake_back->subsystem_params.zeroing_constants
           .measured_absolute_position = 0.280099007470002;
 
-      turret->potentiometer_offset = -9.99970387166721;
+      turret->potentiometer_offset = -9.99970387166721 + 0.06415943;
       turret->subsystem_params.zeroing_constants.measured_absolute_position =
-          0.638321248163561;
+          0.587661064668491;
 
       flipper_arm_left->potentiometer_offset = -6.4;
       flipper_arm_right->potentiometer_offset = 5.66;
diff --git a/y2022/constants.h b/y2022/constants.h
index 6d91083..494ca3d 100644
--- a/y2022/constants.h
+++ b/y2022/constants.h
@@ -152,8 +152,8 @@
   }
 
   // Flipper arms
-  static constexpr double kFlipperArmSupplyCurrentLimit() { return 30.0; }
-  static constexpr double kFlipperArmStatorCurrentLimit() { return 40.0; }
+  static constexpr double kFlipperArmSupplyCurrentLimit() { return 40.0; }
+  static constexpr double kFlipperArmStatorCurrentLimit() { return 60.0; }
 
   // Voltage to open the flippers for firing
   static constexpr double kFlipperOpenVoltage() { return 3.0; }
@@ -175,7 +175,7 @@
   // If the flippers took more than this amount of time to open for firing,
   // reseat the ball
   static constexpr std::chrono::milliseconds kFlipperOpeningTimeout() {
-    return std::chrono::milliseconds(250);
+    return std::chrono::milliseconds(1000);
   }
   // Don't use flipper velocity readings more than this amount of time in the
   // past
@@ -220,7 +220,7 @@
     return ::frc971::constants::Range{
         .lower_hard = -1.0,
         .upper_hard = 2.0,
-        .lower = -0.90,
+        .lower = -0.91,
         .upper = 1.57,
     };
   }
diff --git a/y2022/control_loops/python/catapult.py b/y2022/control_loops/python/catapult.py
index ce7496a..ad0e25a 100755
--- a/y2022/control_loops/python/catapult.py
+++ b/y2022/control_loops/python/catapult.py
@@ -41,8 +41,8 @@
 J_cup = M_cup * lever**2.0 + M_cup * (ball_diameter / 2.)**2.0
 
 
-J = (J_ball + J_bar + J_cup * 1.5)
-JEmpty = (J_bar + J_cup * 1.5)
+J = (0.6 * J_ball + J_bar + J_cup * 0.0)
+JEmpty = (J_bar + J_cup * 0.0)
 
 kCatapultWithBall = catapult_lib.CatapultParams(
     name='Catapult',
@@ -52,14 +52,14 @@
     radius=lever,
     q_pos=2.8,
     q_vel=20.0,
-    kalman_q_pos=0.12,
+    kalman_q_pos=0.01,
     kalman_q_vel=1.0,
     kalman_q_voltage=1.5,
-    kalman_r_position=0.05)
+    kalman_r_position=0.001)
 
 kCatapultEmpty = catapult_lib.CatapultParams(
     name='Catapult',
-    motor=AddResistance(control_loop.NMotor(control_loop.Falcon(), 2), 0.03),
+    motor=AddResistance(control_loop.NMotor(control_loop.Falcon(), 2), 0.02),
     G=G,
     J=JEmpty,
     radius=lever,
diff --git a/y2022/control_loops/superstructure/catapult/catapult.cc b/y2022/control_loops/superstructure/catapult/catapult.cc
index adc13c7..b99f59b 100644
--- a/y2022/control_loops/superstructure/catapult/catapult.cc
+++ b/y2022/control_loops/superstructure/catapult/catapult.cc
@@ -392,7 +392,7 @@
 
     case CatapultState::RESETTING:
       if (catapult_.controller().R(1, 0) > 0.0) {
-        catapult_.AdjustProfile(7.0, 500.0);
+        catapult_.AdjustProfile(7.0, 1000.0);
       } else {
         catapult_state_ = CatapultState::PROFILE;
       }
diff --git a/y2022/control_loops/superstructure/superstructure.cc b/y2022/control_loops/superstructure/superstructure.cc
index b9e0698..c93165d 100644
--- a/y2022/control_loops/superstructure/superstructure.cc
+++ b/y2022/control_loops/superstructure/superstructure.cc
@@ -253,8 +253,9 @@
       const double flipper_open_position =
           (flippers_open_ ? constants::Values::kReseatFlipperPosition()
                           : constants::Values::kFlipperOpenPosition());
+
+      // TODO(milind): add left arm back once it's fixed
       flippers_open_ =
-          position->flipper_arm_left()->encoder() >= flipper_open_position &&
           position->flipper_arm_right()->encoder() >= flipper_open_position;
 
       if (flippers_open_) {
diff --git a/y2022/control_loops/superstructure/superstructure_lib_test.cc b/y2022/control_loops/superstructure/superstructure_lib_test.cc
index cd5929b..c5eb110 100644
--- a/y2022/control_loops/superstructure/superstructure_lib_test.cc
+++ b/y2022/control_loops/superstructure/superstructure_lib_test.cc
@@ -818,7 +818,7 @@
   EXPECT_EQ(superstructure_output_fetcher_->roller_voltage_front(), 0.0);
   EXPECT_EQ(superstructure_output_fetcher_->roller_voltage_back(), 0.0);
 
-  RunFor(chrono::seconds(1));
+  RunFor(chrono::seconds(2));
 
   // Make sure that we are still transferring and the front transfer rollers
   // still have a ball. The turret should now be at the loading position and the
@@ -1179,8 +1179,7 @@
 
     goal_builder.add_auto_aim(true);
 
-    ASSERT_EQ(builder.Send(goal_builder.Finish()),
-              aos::RawSender::Error::kOk);
+    ASSERT_EQ(builder.Send(goal_builder.Finish()), aos::RawSender::Error::kOk);
   }
 
   // Give it time to stabilize.
diff --git a/y2022/joystick_reader.cc b/y2022/joystick_reader.cc
index 3126150..0065db7 100644
--- a/y2022/joystick_reader.cc
+++ b/y2022/joystick_reader.cc
@@ -39,9 +39,10 @@
 
 // TODO(henry) put actually button locations here
 // TODO(milind): integrate with shooting statemachine and aimer
+#if 0
 const ButtonLocation kCatapultPos(4, 3);
 const ButtonLocation kFire(3, 4);
-const ButtonLocation kFixedTurret(3, 1);
+const ButtonLocation kTurret(4, 15);
 
 const ButtonLocation kIntakeFrontOut(4, 10);
 const ButtonLocation kIntakeBackOut(4, 9);
@@ -49,6 +50,19 @@
 const ButtonLocation kRedLocalizerReset(3, 13);
 const ButtonLocation kBlueLocalizerReset(3, 14);
 const ButtonLocation kLocalizerReset(3, 8);
+#else
+
+const ButtonLocation kCatapultPos(4, 3);
+const ButtonLocation kFire(4, 1);
+const ButtonLocation kTurret(4, 15);
+
+const ButtonLocation kIntakeFrontOut(4, 10);
+const ButtonLocation kIntakeBackOut(4, 9);
+
+const ButtonLocation kRedLocalizerReset(3, 13);
+const ButtonLocation kBlueLocalizerReset(3, 14);
+const ButtonLocation kLocalizerReset(3, 8);
+#endif
 
 class Reader : public ::frc971::input::ActionJoystickInput {
  public:
@@ -141,17 +155,17 @@
     setpoint_fetcher_.Fetch();
 
     // Default to the intakes in
-    double intake_front_pos = 1.57;
-    double intake_back_pos = 1.57;
+    double intake_front_pos = 1.47;
+    double intake_back_pos = 1.47;
     double transfer_roller_speed = 0.0;
 
     double roller_front_speed = 0.0;
     double roller_back_speed = 0.0;
 
-    double turret_pos = 1.5;
+    double turret_pos = 0.0;
 
-    double catapult_pos = 0.3;
-    double catapult_speed = 10.0;
+    double catapult_pos = 0.03;
+    double catapult_speed = 18.0;
     double catapult_return_pos = 0.0;
     bool fire = false;
 
@@ -166,12 +180,18 @@
       BlueResetLocalizer();
     }
 
+    if (data.IsPressed(kTurret)) {
+      turret_pos = -1.5;
+    } else {
+      turret_pos = 0.0;
+    }
+
     // Keep the catapult return position at the shot one if kCatapultPos is
     // pressed
     if (data.IsPressed(kCatapultPos)) {
       catapult_return_pos = 0.3;
     } else {
-      catapult_return_pos = -0.90;
+      catapult_return_pos = -0.908;
     }
 
     // Extend the intakes and spin the rollers
@@ -212,7 +232,7 @@
           catapult_return_offset =
               CreateStaticZeroingSingleDOFProfiledSubsystemGoal(
                   *builder.fbb(), catapult_return_pos,
-                  frc971::CreateProfileParameters(*builder.fbb(), 9.0, 40.0));
+                  frc971::CreateProfileParameters(*builder.fbb(), 9.0, 50.0));
 
       superstructure::CatapultGoal::Builder catapult_builder =
           builder.MakeBuilder<superstructure::CatapultGoal>();