From: Cindy Zhang Date: Thu, 26 Jan 2017 05:16:49 +0000 (-0800) Subject: finish transferring code X-Git-Url: http://challenge-bot.com/repos/?p=3501%2F2017steamworks;a=commitdiff_plain;h=9b35aa55bb9b437483e2886f9cf56f0812e19094 finish transferring code --- diff --git a/src/org/usfirst/frc/team3501/robot/commands/driving/DriveDistance.java b/src/org/usfirst/frc/team3501/robot/commands/driving/DriveDistance.java index b569958..76bc52f 100755 --- a/src/org/usfirst/frc/team3501/robot/commands/driving/DriveDistance.java +++ b/src/org/usfirst/frc/team3501/robot/commands/driving/DriveDistance.java @@ -1,5 +1,6 @@ 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; @@ -35,6 +36,17 @@ public class DriveDistance extends Command { this.maxTimeOut = maxTimeOut; this.target = distance; + private double target; + private double gyroP; + private double gyroI; + private double gyroD; + + private double driveP; + private double driveI; + private double driveD; + + public DriveDistance(double distance, double motorVal) { + requires(driveTrain); this.driveP = driveTrain.driveP; this.driveI = driveTrain.driveI; this.driveD = driveTrain.driveD; @@ -76,6 +88,14 @@ public class DriveDistance extends Command { this.driveTrain.setMotorValues(leftDrive, rightDrive); driveTrain.printEncoderOutput(); + // System.out.println("turn: " + xVal); + double leftDrive = MathLib.calcLeftTankDrive(-xVal, yVal); + double rightDrive = MathLib.calcRightTankDrive(xVal, -yVal); + + this.driveTrain.setMotorValues(leftDrive, rightDrive); + + System.out.println(driveTrain.getAvgEncoderDistance()); + // System.out.println("motorval: " + yVal); } @Override diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java index 54324f0..fd6530e 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java @@ -2,6 +2,7 @@ package org.usfirst.frc.team3501.robot.subsystems; import org.usfirst.frc.team3501.robot.Constants; import org.usfirst.frc.team3501.robot.commands.driving.JoystickDrive; +import org.usfirst.frc.team3501.robot.utils.BNO055; import com.ctre.CANTalon; @@ -16,6 +17,9 @@ public class DriveTrain extends Subsystem { public static double driveP = 0.006, driveI = 0.001, driveD = -0.002; public static double defaultGyroP = 0.004, defaultGyroI = 0.0013, defaultGyroD = -0.005; + public static double driveP = 0.008, driveI = 0.001, driveD = -0.002; + public static double defaultGyroP = 0.009, defaultGyroI = 0.00000, + defaultGyroD = -0.000; private double gyroZero = 0; public static final double WHEEL_DIAMETER = 6; // inches @@ -30,6 +34,7 @@ public class DriveTrain extends Subsystem { private final DoubleSolenoid leftGearPiston, rightGearPiston; private ADXRS450_Gyro imu; + private BNO055 imu; private DriveTrain() { // MOTOR CONTROLLERS @@ -177,6 +182,21 @@ public class DriveTrain extends Subsystem { rightGearPiston.set(gear); } + public double getAngle() { + if (!this.imu.isInitialized()) + return -1; + return this.imu.getHeading() - this.gyroZero; + } + + public void resetGyro() { + this.gyroZero = this.getAngle(); + + } + + public double getZeroAngle() { + return this.gyroZero; + } + @Override protected void initDefaultCommand() { setDefaultCommand(new JoystickDrive());