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;
diff --git a/y2014/control_loops/drivetrain/drivetrain_base.cc b/y2014/control_loops/drivetrain/drivetrain_base.cc
index 96b27a6..4df1a0f 100644
--- a/y2014/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2014/control_loops/drivetrain/drivetrain_base.cc
@@ -32,7 +32,9 @@
constants::GetValues().left_drive,
constants::GetValues().right_drive,
true,
- 0};
+ 0,
+ 0.25,
+ 1.0};
return kDrivetrainConfig;
};
diff --git a/y2014_bot3/control_loops/drivetrain/drivetrain_base.cc b/y2014_bot3/control_loops/drivetrain/drivetrain_base.cc
index bca3f24..1ebc4e9 100644
--- a/y2014_bot3/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2014_bot3/control_loops/drivetrain/drivetrain_base.cc
@@ -37,7 +37,10 @@
// No shifter sensors, so we could put anything for the things below.
kThreeStateDriveShifter,
kThreeStateDriveShifter,
- false};
+ false,
+ 0.0,
+ 0.60,
+ 0.60};
return kDrivetrainConfig;
};
diff --git a/y2014_bot3/control_loops/python/drivetrain.py b/y2014_bot3/control_loops/python/drivetrain.py
index b0555a0..4c3577b 100755
--- a/y2014_bot3/control_loops/python/drivetrain.py
+++ b/y2014_bot3/control_loops/python/drivetrain.py
@@ -75,9 +75,9 @@
# Mass of the robot, in kg.
self.m = 37
# Radius of the robot, in meters (requires tuning by hand)
- self.rb = 0.601 / 2.0
+ self.rb = 0.45 / 2.0
# Radius of the wheels, in meters.
- self.r = 0.0508
+ self.r = 0.04445
# Resistance of the motor, divided by the number of motors.
self.resistance = 12.0 / self.stall_current
# Motor velocity constant
diff --git a/y2016/control_loops/drivetrain/drivetrain_base.cc b/y2016/control_loops/drivetrain/drivetrain_base.cc
index 9aeb4c8..1674540 100644
--- a/y2016/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2016/control_loops/drivetrain/drivetrain_base.cc
@@ -37,7 +37,9 @@
kThreeStateDriveShifter,
kThreeStateDriveShifter,
true,
- constants::GetValues().down_error};
+ constants::GetValues().down_error,
+ 0.25,
+ 1.0};
return kDrivetrainConfig;
};