Add y2024 intake constants
Signed-off-by: Niko Sohmers <nikolai@sohmers.com>
Change-Id: I41914cb76b7d3f79b7d9a0f0f2bab1632fa583be
diff --git a/y2024/constants.h b/y2024/constants.h
index b9e5a7d..45fd8b0 100644
--- a/y2024/constants.h
+++ b/y2024/constants.h
@@ -11,6 +11,7 @@
#include "frc971/zeroing/absolute_encoder.h"
#include "frc971/zeroing/pot_and_absolute_encoder.h"
#include "y2024/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2024/control_loops/superstructure/intake_pivot/intake_pivot_plant.h"
namespace y2024 {
namespace constants {
@@ -54,6 +55,36 @@
return (rotations * (2.0 * M_PI)) *
control_loops::drivetrain::kHighOutputRatio;
}
+ // TODO: (niko) add the gear ratios for the intake once we have them
+ static constexpr double kIntakePivotEncoderCountsPerRevolution() {
+ return 4096.0;
+ }
+
+ static constexpr double kIntakePivotEncoderRatio() {
+ return (16.0 / 64.0) * (18.0 / 62.0);
+ }
+
+ static constexpr double kIntakePivotPotRatio() { return 16.0 / 64.0; }
+
+ static constexpr double kIntakePivotPotRadiansPerVolt() {
+ return kIntakePivotPotRatio() * (3.0 /*turns*/ / 5.0 /*volts*/) *
+ (2 * M_PI /*radians*/);
+ }
+
+ static constexpr double kMaxIntakePivotEncoderPulsesPerSecond() {
+ return control_loops::superstructure::intake_pivot::kFreeSpeed /
+ (2.0 * M_PI) *
+ control_loops::superstructure::intake_pivot::kOutputRatio /
+ kIntakePivotEncoderRatio() *
+ kIntakePivotEncoderCountsPerRevolution();
+ }
+
+ struct PotAndAbsEncoderConstants {
+ ::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
+ ::frc971::zeroing::PotAndAbsoluteEncoderZeroingEstimator>
+ subsystem_params;
+ double potentiometer_offset;
+ };
};
// Creates and returns a Values instance for the constants.