import edu.wpi.first.wpilibj.Preferences;
import edu.wpi.first.wpilibj.command.Command;
+import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
/**
* This command makes the robot drive a specified distance using encoders on the
private Preferences prefs;
private PIDController driveController;
- private double gyroP;
+ private double driveStraightGyroP;
public DriveDistance(double distance, double maxTimeOut) {
requires(driveTrain);
this.target = distance;
+ driveStraightGyroP = SmartDashboard.getNumber(driveTrain.DRIVE_GYRO_P_Val,
+ driveTrain.PID_ERROR);
this.driveController = driveTrain.getDriveController();
this.driveController.setDoneRange(0.5);
@Override
protected void execute() {
- double xVal = gyroP * (driveTrain.getAngle() - zeroAngle);
+ double xVal = driveStraightGyroP * (driveTrain.getAngle() - zeroAngle);
double yVal = driveController.calcPID(driveTrain.getAvgEncoderDistance());
double leftDrive = yVal - xVal;
double rightDrive = yVal + xVal;
this.driveTrain.setMotorValues(leftDrive, rightDrive);
+
+ System.out.println(
+ "PID VALS: " + driveController.getP() + " " + driveController.getI()
+ + " " + driveController.getD());
+
+ System.out.println(driveTrain.getAvgEncoderDistance());
}
@Override