Skip to main content

Tank Drive Example

public class DriveSubsystem extends SubsystemBase {
private final WPI_TalonFX frontRightMotor;
private final WPI_TalonFX backRightMotor;
private final WPI_TalonFX frontLeftMotor;
private final WPI_TalonFX backLeftMotor;

private final DifferentialDrive diffDrive;

public DriveSubsystem() {
frontRightMotor = new WPI_TalonFX(DriveConstants.frontRightMotorId);
frontLeftMotor = new WPI_TalonFX(DriveConstants.frontLeftMotorId);
backRightMotor = new WPI_TalonFX(DriveConstants.backRightMotorId);
backLeftMotor = new WPI_TalonFX(DriveConstants.backLeftMotorId);

MotorControllerGroup leftGroup = new MotorControllerGroup(frontLeftMotor, backLeftMotor);
MotorControllerGroup rightGroup = new MotorControllerGroup(frontRightMotor, backRightMotor);

diffDrive = new DifferentialDrive(leftGroup, rightGroup);
}

public void arcadeDrive(double speed, double turning) {
diffDrive.arcadeDrive(speed, turning);
}

public void tankDrive(double left, double right) {
diffDrive.tankDrive(left, right);
}
}