Calibrated superstructure limits.
Change-Id: I5bb72dc008f081bffb28b28fee993b0e422b5975
diff --git a/y2016/control_loops/superstructure/superstructure.cc b/y2016/control_loops/superstructure/superstructure.cc
index 140bf28..2dbf8d7 100644
--- a/y2016/control_loops/superstructure/superstructure.cc
+++ b/y2016/control_loops/superstructure/superstructure.cc
@@ -14,9 +14,9 @@
namespace superstructure {
namespace {
-constexpr double kZeroingVoltage = 4.0;
-constexpr double kOperatingVoltage = 12.0;
-constexpr double kLandingShoulderDownVoltage = -2.0;
+constexpr double kZeroingVoltage = 6.0;
+constexpr double kOperatingVoltage = 6.0;
+constexpr double kLandingShoulderDownVoltage = -1.5;
// The maximum voltage the intake roller will be allowed to use.
constexpr float kMaxIntakeTopVoltage = 8.0;
constexpr float kMaxIntakeBottomVoltage = 8.0;
diff --git a/y2016/control_loops/superstructure/superstructure.h b/y2016/control_loops/superstructure/superstructure.h
index 0b72c77..05998c0 100644
--- a/y2016/control_loops/superstructure/superstructure.h
+++ b/y2016/control_loops/superstructure/superstructure.h
@@ -71,23 +71,23 @@
// The shoulder angle (in radians) below which the arm as a whole has the
// potential to interfere with the intake.
- static constexpr double kMinShoulderAngleForIntakeInterference = M_PI / 3.0;
+ static constexpr double kMinShoulderAngleForIntakeInterference = 0.8;
// The intake angle (in radians) above which the intake can interfere (i.e.
// collide) with the arm and/or shooter.
- static constexpr double kMaxIntakeAngleBeforeArmInterference = M_PI / 2.0;
+ static constexpr double kMaxIntakeAngleBeforeArmInterference = 1.2;
// The maximum absolute angle (in radians) that the wrist must be below in
// order for the shouler to be allowed to move below
// kMinShoulderAngleForHorizontalShooter. In other words, only allow the arm
// to move down into the belly pan if the shooter is horizontal, ready to
// also be placed into the belly pan.
- static constexpr double kMaxWristAngleForSafeArmStowing = 0.01;
+ static constexpr double kMaxWristAngleForSafeArmStowing = 0.05;
// The shoulder angle (in radians) below which the intake can safely move
// into the collision zone. This is necessary when the robot wants to fold up
// completely (i.e. stow the arm, shooter, and intake).
- static constexpr double kMaxShoulderAngleUntilSafeIntakeStowing = 0.01;
+ static constexpr double kMaxShoulderAngleUntilSafeIntakeStowing = 0.2;
private:
Intake *intake_;
@@ -112,10 +112,10 @@
// This is the angle such that the intake will clear the arm when the shooter
// is level.
- static constexpr double kIntakeUpperClear = 1.1;
+ static constexpr double kIntakeUpperClear = 1.2;
// This is the angle such that the intake will clear the arm when the shooter
// is at almost any position.
- static constexpr double kIntakeLowerClear = 0.5;
+ static constexpr double kIntakeLowerClear = 0.4;
// This is the angle that the shoulder will go to when doing the
// HIGH_ARM_ZERO.