Changed butterknife's constants to fix drivetrain.
Fixed test.
Change-Id: I1474ea42e2b613a9e87438a472159e7087669001
diff --git a/frc971/control_loops/drivetrain/drivetrain_config.h b/frc971/control_loops/drivetrain/drivetrain_config.h
index 24cc628..efb5f59 100644
--- a/frc971/control_loops/drivetrain/drivetrain_config.h
+++ b/frc971/control_loops/drivetrain/drivetrain_config.h
@@ -51,6 +51,10 @@
bool default_high_gear;
double down_offset;
+
+ double wheel_non_linearity;
+
+ double quickturn_wheel_multiplier;
};
} // namespace drivetrain
diff --git a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
index aa18aec..8c739cd 100644
--- a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
+++ b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
@@ -49,7 +49,13 @@
::y2016::control_loops::drivetrain::kHighGearRatio,
::y2016::control_loops::drivetrain::kLowGearRatio,
- kThreeStateDriveShifter, kThreeStateDriveShifter, false, 0};
+ kThreeStateDriveShifter,
+ kThreeStateDriveShifter,
+ false,
+ 0,
+
+ 0.25,
+ 1.00};
return kDrivetrainConfig;
};
@@ -88,8 +94,7 @@
// Constructs a motor simulation.
// TODO(aschuh) Do we want to test the clutch one too?
DrivetrainSimulation()
- : drivetrain_plant_(
- new DrivetrainPlant(MakeDrivetrainPlant())),
+ : drivetrain_plant_(new DrivetrainPlant(MakeDrivetrainPlant())),
my_drivetrain_queue_(".frc971.control_loops.drivetrain", 0x8a8dde77,
".frc971.control_loops.drivetrain.goal",
".frc971.control_loops.drivetrain.position",
diff --git a/frc971/control_loops/drivetrain/polydrivetrain.cc b/frc971/control_loops/drivetrain/polydrivetrain.cc
index 121a231..407c23b 100644
--- a/frc971/control_loops/drivetrain/polydrivetrain.cc
+++ b/frc971/control_loops/drivetrain/polydrivetrain.cc
@@ -112,15 +112,18 @@
const bool quickturn = goal.quickturn;
const bool highgear = goal.highgear;
- const double kWheelNonLinearity = 0.25;
// Apply a sin function that's scaled to make it feel better.
- const double angular_range = M_PI_2 * kWheelNonLinearity;
+ const double angular_range = M_PI_2 * dt_config_.wheel_non_linearity;
wheel_ = sin(angular_range * wheel) / sin(angular_range);
wheel_ = sin(angular_range * wheel_) / sin(angular_range);
wheel_ = 2.0 * wheel - wheel_;
quickturn_ = quickturn;
+ if (!quickturn_) {
+ wheel_ *= dt_config_.quickturn_wheel_multiplier;
+ }
+
static const double kThrottleDeadband = 0.05;
if (::std::abs(throttle) < kThrottleDeadband) {
throttle_ = 0;