finish implement driveDistance and TurnForAngle using PID algorithm
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / commands / driving / DriveDistance.java
index 47fc46ea0303ed6689b3c2a03b6c918b30407c8f..b569958fafa4cb432d120f85a4b9981fed390e80 100755 (executable)
@@ -1,6 +1,5 @@
 package org.usfirst.frc.team3501.robot.commands.driving;
 
-import org.usfirst.frc.team3501.robot.MathLib;
 import org.usfirst.frc.team3501.robot.Robot;
 import org.usfirst.frc.team3501.robot.subsystems.DriveTrain;
 import org.usfirst.frc.team3501.robot.utils.PIDController;
@@ -31,8 +30,11 @@ public class DriveDistance extends Command {
   private double driveI;
   private double driveD;
 
-  public DriveDistance(double distance, double motorVal) {
+  public DriveDistance(double distance, double maxTimeOut) {
     requires(driveTrain);
+    this.maxTimeOut = maxTimeOut;
+    this.target = distance;
+
     this.driveP = driveTrain.driveP;
     this.driveI = driveTrain.driveI;
     this.driveD = driveTrain.driveD;
@@ -68,14 +70,12 @@ public class DriveDistance extends Command {
       xVal = -this.gyroController
           .calcPID(this.driveTrain.getAngle() - this.driveTrain.getZeroAngle());
     }
-    // System.out.println("turn: " + xVal);
-    double leftDrive = MathLib.calcLeftTankDrive(-xVal, yVal);
-    double rightDrive = MathLib.calcRightTankDrive(xVal, -yVal);
+    double leftDrive = yVal - xVal;
+    double rightDrive = yVal + xVal;
 
     this.driveTrain.setMotorValues(leftDrive, rightDrive);
 
-    System.out.println(driveTrain.getAvgEncoderDistance());
-    // System.out.println("motorval: " + yVal);
+    driveTrain.printEncoderOutput();
   }
 
   @Override