Add arm code to 2023
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: If97b4dd4c8fb16371e21ac6e9667a2d52b1b53a6
diff --git a/y2023/constants.h b/y2023/constants.h
index edcb794..64153af 100644
--- a/y2023/constants.h
+++ b/y2023/constants.h
@@ -9,6 +9,7 @@
#include "frc971/control_loops/pose.h"
#include "frc971/control_loops/static_zeroing_single_dof_profiled_subsystem.h"
#include "y2023/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2023/control_loops/superstructure/arm/arm_constants.h"
namespace y2023 {
namespace constants {
@@ -51,6 +52,29 @@
control_loops::drivetrain::kHighOutputRatio *
control_loops::drivetrain::kWheelRadius;
}
+ static constexpr double kProximalEncoderCountsPerRevolution() {
+ return 4096.0;
+ }
+ static constexpr double kProximalEncoderRatio() { return (15.0 / 95.0); }
+ static constexpr double kMaxProximalEncoderPulsesPerSecond() {
+ return control_loops::superstructure::arm::kArmConstants.free_speed /
+ (2.0 * M_PI) / control_loops::superstructure::arm::kArmConstants.g1 /
+ kProximalEncoderRatio() * kProximalEncoderCountsPerRevolution();
+ }
+ static constexpr double kProximalPotRatio() {
+ return (24.0 / 36.0) * (24.0 / 58.0) * (15.0 / 95.0);
+ }
+
+ static constexpr double kDistalEncoderCountsPerRevolution() { return 4096.0; }
+ static constexpr double kDistalEncoderRatio() { return (15.0 / 95.0); }
+ static constexpr double kMaxDistalEncoderPulsesPerSecond() {
+ return control_loops::superstructure::arm::kArmConstants.free_speed /
+ (2.0 * M_PI) / control_loops::superstructure::arm::kArmConstants.g2 /
+ kDistalEncoderRatio() * kProximalEncoderCountsPerRevolution();
+ }
+ static constexpr double kDistalPotRatio() {
+ return (24.0 / 36.0) * (18.0 / 66.0) * (15.0 / 95.0);
+ }
struct PotConstants {
::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
@@ -65,6 +89,14 @@
subsystem_params;
double potentiometer_offset;
};
+
+ struct ArmJointConstants {
+ ::frc971::constants::PotAndAbsoluteEncoderZeroingConstants zeroing;
+ double potentiometer_offset;
+ };
+
+ ArmJointConstants arm_proximal;
+ ArmJointConstants arm_distal;
};
// Creates and returns a Values instance for the constants.