@@ -242,18 +242,21 @@ public static boolean isRedAlliance() {
242242 }
243243
244244 public static class constElevator {
245- public static final Distance NORMAL_REVERSE_LIMIT = Units .Inches .of (0 );
246- public static final Distance NORMAL_FORWARD_LIMIT = Units .Inches .of (62 );
245+ public static final Distance NORMAL_ELEVATOR_REVERSE_LIMIT = Units .Inches .of (0 );
246+ public static final Distance NORMAL_ELEVATOR_FORWARD_LIMIT = Units .Inches .of (62 );
247+
248+ public static final Angle NORMAL_ELEVATOR_PIVOT_REVERSE_LIMIT = Units .Degrees .of (0 );
249+ public static final Angle NORMAL_ELEVATOR_PIVOT_FORWARD_LIMIT = Units .Degrees .of (0 );
247250
248251 public static TalonFXConfiguration ELEVATOR_CONFIG = new TalonFXConfiguration ();
249252 static {
250253 ELEVATOR_CONFIG .MotorOutput .NeutralMode = NeutralModeValue .Brake ;
251254 ELEVATOR_CONFIG .MotorOutput .Inverted = InvertedValue .CounterClockwise_Positive ;
252255
253256 ELEVATOR_CONFIG .SoftwareLimitSwitch .ForwardSoftLimitEnable = true ;
254- ELEVATOR_CONFIG .SoftwareLimitSwitch .ForwardSoftLimitThreshold = NORMAL_FORWARD_LIMIT .in (Units .Inches );
257+ ELEVATOR_CONFIG .SoftwareLimitSwitch .ForwardSoftLimitThreshold = NORMAL_ELEVATOR_FORWARD_LIMIT .in (Units .Inches );
255258 ELEVATOR_CONFIG .SoftwareLimitSwitch .ReverseSoftLimitEnable = true ;
256- ELEVATOR_CONFIG .SoftwareLimitSwitch .ReverseSoftLimitThreshold = NORMAL_REVERSE_LIMIT .in (Units .Inches );
259+ ELEVATOR_CONFIG .SoftwareLimitSwitch .ReverseSoftLimitThreshold = NORMAL_ELEVATOR_REVERSE_LIMIT .in (Units .Inches );
257260
258261 ELEVATOR_CONFIG .Slot0 .GravityType = GravityTypeValue .Elevator_Static ;
259262 // Elevator motors will provide feedback in INCHES the carriage has moved
@@ -270,8 +273,8 @@ public static class constElevator {
270273
271274 ELEVATOR_CONFIG .MotionMagic .MotionMagicCruiseVelocity = 0 ;
272275 ELEVATOR_CONFIG .MotionMagic .MotionMagicAcceleration = 0 ;
273- ELEVATOR_CONFIG .MotionMagic .MotionMagicExpo_kV = 0.04 ;
274- ELEVATOR_CONFIG .MotionMagic .MotionMagicExpo_kA = 0.005 ;
276+ ELEVATOR_CONFIG .MotionMagic .MotionMagicExpo_kV = 0.0 ;
277+ ELEVATOR_CONFIG .MotionMagic .MotionMagicExpo_kA = 0.0 ;
275278
276279 ELEVATOR_CONFIG .CurrentLimits .SupplyCurrentLimitEnable = true ;
277280 ELEVATOR_CONFIG .CurrentLimits .SupplyCurrentLowerLimit = 30 ;
@@ -280,6 +283,43 @@ public static class constElevator {
280283
281284 }
282285
286+ public static TalonFXConfiguration ELEVATOR_PIVOT_CONFIG = new TalonFXConfiguration ();
287+ static {
288+ ELEVATOR_PIVOT_CONFIG .MotorOutput .NeutralMode = NeutralModeValue .Brake ;
289+ ELEVATOR_PIVOT_CONFIG .MotorOutput .Inverted = InvertedValue .CounterClockwise_Positive ;
290+
291+ ELEVATOR_PIVOT_CONFIG .SoftwareLimitSwitch .ForwardSoftLimitEnable = true ;
292+ ELEVATOR_PIVOT_CONFIG .SoftwareLimitSwitch .ForwardSoftLimitThreshold = NORMAL_ELEVATOR_PIVOT_FORWARD_LIMIT
293+ .in (Units .Degrees );
294+ ELEVATOR_PIVOT_CONFIG .SoftwareLimitSwitch .ReverseSoftLimitEnable = true ;
295+ ELEVATOR_PIVOT_CONFIG .SoftwareLimitSwitch .ReverseSoftLimitThreshold = NORMAL_ELEVATOR_PIVOT_REVERSE_LIMIT
296+ .in (Units .Degrees );
297+
298+ ELEVATOR_PIVOT_CONFIG .Slot0 .GravityType = GravityTypeValue .Arm_Cosine ;
299+ // Elevator Pivot motors will provide feedback in Degrees the carriage has moved
300+ ELEVATOR_PIVOT_CONFIG .Feedback .SensorToMechanismRatio = 0.876 ;
301+
302+ ELEVATOR_PIVOT_CONFIG .Slot0 .kG = 0.0 ; // Volts to overcome gravity
303+ ELEVATOR_PIVOT_CONFIG .Slot0 .kS = 0.0 ; // Volts to overcome static friction
304+ ELEVATOR_PIVOT_CONFIG .Slot0 .kV = 0.0 ; // Volts for a velocity target of 1 rps
305+ ELEVATOR_PIVOT_CONFIG .Slot0 .kA = 0.0 ; // Volts for an acceleration of 1 rps/
306+ ELEVATOR_PIVOT_CONFIG .Slot0 .kP = 0.0 ;
307+ ELEVATOR_PIVOT_CONFIG .Slot0 .kI = 0.0 ;
308+ ELEVATOR_PIVOT_CONFIG .Slot0 .kD = 0.0 ;
309+ ELEVATOR_PIVOT_CONFIG .Slot0 .StaticFeedforwardSign = StaticFeedforwardSignValue .UseClosedLoopSign ;
310+
311+ ELEVATOR_PIVOT_CONFIG .MotionMagic .MotionMagicCruiseVelocity = 0 ;
312+ ELEVATOR_PIVOT_CONFIG .MotionMagic .MotionMagicAcceleration = 0 ;
313+ ELEVATOR_PIVOT_CONFIG .MotionMagic .MotionMagicExpo_kV = 0.0 ;
314+ ELEVATOR_PIVOT_CONFIG .MotionMagic .MotionMagicExpo_kA = 0.0 ;
315+
316+ ELEVATOR_PIVOT_CONFIG .CurrentLimits .SupplyCurrentLimitEnable = true ;
317+ ELEVATOR_PIVOT_CONFIG .CurrentLimits .SupplyCurrentLowerLimit = 30 ;
318+ ELEVATOR_PIVOT_CONFIG .CurrentLimits .SupplyCurrentLimit = 60 ;
319+ ELEVATOR_PIVOT_CONFIG .CurrentLimits .SupplyCurrentLowerTime = 1 ;
320+
321+ }
322+
283323 public static TalonFXConfiguration COAST_MODE_CONFIGURATION = new TalonFXConfiguration ();
284324 static {
285325 COAST_MODE_CONFIGURATION .MotorOutput .NeutralMode = NeutralModeValue .Coast ;
@@ -306,8 +346,15 @@ public static class constElevator {
306346 public static final Distance MAX_HEIGHT = Units .Inches .of (0 );
307347 public static final Distance SAFE_TO_SLIDE = Units .Inches .of (32.55 );
308348
349+ public static final Angle CORAL_L1_ANGLE = Units .Degrees .of (0 );
350+ public static final Angle CORAL_L2_ANGLE = Units .Degrees .of (0 );
351+ public static final Angle CORAL_L3_ANGLE = Units .Degrees .of (0 );
352+ public static final Angle CORAL_L4_ANGLE = Units .Degrees .of (0 );
353+ public static final Angle ALGAE_PREP_NET_ANGLE = Units .Degrees .of (0 );
354+ public static final Angle DEADZONE_ANGLE = Units .Degrees .of (2 );
355+
309356 public static final Distance CORAL_STUCK_OFFSET = Units .Inches .of (0 );
310- public static final Distance CORAL_STUCK_REVERSE_LIMIT = NORMAL_REVERSE_LIMIT .plus (CORAL_STUCK_OFFSET );
357+ public static final Distance CORAL_STUCK_REVERSE_LIMIT = NORMAL_ELEVATOR_REVERSE_LIMIT .plus (CORAL_STUCK_OFFSET );
311358
312359 public static final Time ZEROING_TIMEOUT = Units .Seconds .of (3 );
313360
0 commit comments