Implement superstructure class and tests
Change-Id: If5a2a296ada3dd625ad7eb74af106b36b36ab932
diff --git a/y2019/constants.h b/y2019/constants.h
index 21c061c..2cffaae 100644
--- a/y2019/constants.h
+++ b/y2019/constants.h
@@ -5,9 +5,10 @@
#include <stdint.h>
#include "frc971/constants.h"
+#include "frc971/control_loops/static_zeroing_single_dof_profiled_subsystem.h"
#include "y2019/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
-#include "y2019/control_loops/superstructure/intake/intake_plant.h"
#include "y2019/control_loops/superstructure/elevator/elevator_plant.h"
+#include "y2019/control_loops/superstructure/intake/intake_plant.h"
#include "y2019/control_loops/superstructure/stilts/stilts_plant.h"
#include "y2019/control_loops/superstructure/wrist/wrist_plant.h"
@@ -27,6 +28,7 @@
struct Values {
static const int kZeroingSampleSize = 200;
+ // Drivetrain Constants
static constexpr double kDrivetrainCyclesPerRevolution() { return 512.0; }
static constexpr double kDrivetrainEncoderCountsPerRevolution() {
return kDrivetrainCyclesPerRevolution() * 4;
@@ -117,6 +119,7 @@
// Stilts
static constexpr double kStiltsEncoderCountsPerRevolution() { return 4096.0; }
+ // Stilts Constants
static constexpr double kStiltsEncoderRatio() {
return (1.0 /* Gear ratio */) *
control_loops::superstructure::stilts::kRadius;
@@ -144,17 +147,19 @@
}
struct PotAndAbsConstants {
- ::frc971::constants::PotAndAbsoluteEncoderZeroingConstants zeroing;
+ ::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
+ ::frc971::zeroing::PotAndAbsoluteEncoderZeroingEstimator>
+ subsystem_params;
double potentiometer_offset;
};
+
PotAndAbsConstants elevator;
PotAndAbsConstants wrist;
- PotAndAbsConstants stilts;
+ ::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
+ ::frc971::zeroing::AbsoluteEncoderZeroingEstimator>
+ intake;
- struct Intake {
- ::frc971::constants::AbsoluteEncoderZeroingConstants zeroing;
- };
- Intake intake;
+ PotAndAbsConstants stilts;
};
// Creates (once) a Values instance for ::aos::network::GetTeamNumber() and