fixing dt bindings divide by zero flaw

This commit is contained in:
Tylr-J42 2025-06-06 18:22:12 -04:00
parent fa34ef00fe
commit 6c0df54b06

View File

@ -324,9 +324,17 @@ public class Drivetrain extends SubsystemBase {
public void drive(double xSpeed, double ySpeed, double rot, boolean fieldRelative) { public void drive(double xSpeed, double ySpeed, double rot, boolean fieldRelative) {
// Convert the commanded speeds into the correct units for the drivetrain // Convert the commanded speeds into the correct units for the drivetrain
double p = Math.sqrt(Math.pow(xSpeed, 2) + Math.pow(ySpeed, 2)); double p = Math.sqrt(Math.pow(xSpeed, 2) + Math.pow(ySpeed, 2));
double xSpeedDelivered = 0;
double ySpeedDelivered = 0;
double xSpeedDelivered = xSpeed * (Math.pow(p, OIConstants.kJoystickExponential) / p) * DrivetrainConstants.kMaxSpeedMetersPerSecond; if(p != 0){
double ySpeedDelivered = ySpeed * (Math.pow(p, OIConstants.kJoystickExponential) / p) * DrivetrainConstants.kMaxSpeedMetersPerSecond; xSpeedDelivered = xSpeed * (Math.pow(p, OIConstants.kJoystickExponential) / p) * DrivetrainConstants.kMaxSpeedMetersPerSecond;
ySpeedDelivered = ySpeed * (Math.pow(p, OIConstants.kJoystickExponential) / p) * DrivetrainConstants.kMaxSpeedMetersPerSecond;
}else{
xSpeedDelivered = 0;
ySpeedDelivered = 0;
}
double rotDelivered = rot * DrivetrainConstants.kMaxAngularSpeed; double rotDelivered = rot * DrivetrainConstants.kMaxAngularSpeed;
var swerveModuleStates = DrivetrainConstants.kDriveKinematics.toSwerveModuleStates( var swerveModuleStates = DrivetrainConstants.kDriveKinematics.toSwerveModuleStates(