public static final double RADIUS_RACK_PINION = 0.5;
/**right and left motor current limits */
public static final double EXTENDER_CURRENT_LIMITS = 40.0;
+ /**Current limits when calibrating */
+ public static final double CALIBRATING_CURRENT_LIMITS = 30.0;
public static final double ROLLER_MOI_KG_M_SQ = 0.5 * 0.020 * 0.020; // 0.5kg roller, 20mm radius for now
public static final double ROLLER_GEARING = 2.0;
import org.littletonrobotics.junction.Logger;
+import com.ctre.phoenix6.configs.CurrentLimitsConfigs;
import com.ctre.phoenix6.configs.MotionMagicConfigs;
import com.ctre.phoenix6.configs.MotorOutputConfigs;
import com.ctre.phoenix6.configs.TalonFXConfiguration;
rollerMotor.close();
}
+ /**
+ * Starts calibrating by running it backwards
+ */
public void calibrate(){
+ setCurrentLimits(IntakeConstants.CALIBRATING_CURRENT_LIMITS);
calibrating = true;
}
+
+ /**
+ * Stops, zeros, and moves it to retract position
+ */
public void stopCalibrating(){
calibrating = false;
zeroMotors();
+ setCurrentLimits(IntakeConstants.EXTENDER_CURRENT_LIMITS);
retract();
}
+ /**
+ * sets supply and stator current limits
+ * @param limit the current limit for stator and supply current
+ */
+ public void setCurrentLimits(double limit) {
+ TalonFXConfiguration config = new TalonFXConfiguration();
+
+ config.CurrentLimits = new CurrentLimitsConfigs();
+
+ config.CurrentLimits.StatorCurrentLimitEnable = true;
+ config.CurrentLimits.StatorCurrentLimit = limit;
+ config.CurrentLimits.SupplyCurrentLimitEnable = true;
+ config.CurrentLimits.SupplyCurrentLimit = limit;
+
+ leftMotor.getConfigurator().apply(config);
+ rightMotor.getConfigurator().apply(config);
+ }
+
@Override
public void updateInputs() {
inputs.leftPosition = rotationsToInches(leftMotor.getPosition().getValueAsDouble());