Coast mode for swerve

This commit is contained in:
Tyler Wilcox 2026-04-11 14:07:28 -04:00
parent 840c851253
commit 191af3083d
1 changed files with 16 additions and 0 deletions

View File

@ -2,11 +2,16 @@ package org.fairportrobotics.frc.robolib.drivesystems.swerve;
import java.util.Arrays;
<<<<<<< Updated upstream
import org.littletonrobotics.junction.ConsoleSource.RoboRIO;
=======
import com.ctre.phoenix.motorcontrol.NeutralMode;
>>>>>>> Stashed changes
import com.ctre.phoenix6.CANBus;
import com.ctre.phoenix6.Utils;
import com.ctre.phoenix6.hardware.Pigeon2;
import com.ctre.phoenix6.signals.NeutralModeValue;
import edu.wpi.first.math.estimator.SwerveDrivePoseEstimator3d;
import edu.wpi.first.math.geometry.Pose2d;
@ -247,6 +252,17 @@ public class SwerveDriveSystem implements Subsystem{
this.setPose3d(new Pose3d(pose));
}
/**
* Set module brake mode
* @param brakeMode true for brake, false for coast
*/
public void setBrakeMode(boolean brakeMode){
SwerveModule[] modules = getModules();
for(SwerveModule mod : modules){
mod.getDriveMotor().setNeutralMode(brakeMode ? NeutralModeValue.Brake : NeutralModeValue.Coast);
}
}
private SwerveModulePosition[] getModulePositions(){
return Arrays.stream(modules).map((SwerveModule m) -> m.getModulePosition()).toArray(SwerveModulePosition[]::new);
}