X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fsubsystems%2FDriveTrain.java;h=3f76a860f6907505d1431d64db159c0944de708d;hb=c726d04ade36dead56cd4b2f1b91a341ce90bdb6;hp=f69167241f16cd85bff6fd3d3f48788a1df90014;hpb=174f415cc59c15eb1bf0cbe305d1f3419914d116;p=3501%2F2017steamworks diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java index f691672..3f76a86 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java @@ -2,7 +2,6 @@ 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; @@ -10,32 +9,33 @@ import edu.wpi.first.wpilibj.ADXRS450_Gyro; import edu.wpi.first.wpilibj.DoubleSolenoid; import edu.wpi.first.wpilibj.DoubleSolenoid.Value; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.I2C.Port; import edu.wpi.first.wpilibj.RobotDrive; import edu.wpi.first.wpilibj.command.Subsystem; 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 double driveP = 0.012, driveI = 0.0011, driveD = -0.002; + public static double turnP = 0.004, turnI = 0.0013, turnD = -0.005; + public static double driveStraightGyroP = 0.01; public static final double WHEEL_DIAMETER = 6; // inches public static final int ENCODER_PULSES_PER_REVOLUTION = 256; public static final double INCHES_PER_PULSE = WHEEL_DIAMETER * Math.PI / ENCODER_PULSES_PER_REVOLUTION; + public static final double MAINTAIN_CLIMBED_POSITION = 0; + public static final double TIME_TO_CLIMB_FOR = 0; + public static final double CLIMBER_SPEED = 0; + private static DriveTrain driveTrain; + private final CANTalon frontLeft, frontRight, rearLeft, rearRight; private final RobotDrive robotDrive; private final Encoder leftEncoder, rightEncoder; private final DoubleSolenoid leftGearPiston, rightGearPiston; private ADXRS450_Gyro imu; - private BNO055 imu; + + public boolean shouldBeClimbing = false; private DriveTrain() { // MOTOR CONTROLLERS @@ -57,16 +57,14 @@ public class DriveTrain extends Subsystem { robotDrive = new RobotDrive(frontLeft, rearLeft, frontRight, rearRight); this.imu = new ADXRS450_Gyro(Constants.DriveTrain.GYRO_PORT); - shifter = DoubleSolenoid(10, Constants.DriveTrain.SHIFTER_FORWARD, - Constants.DriveTrain.SHIFTER_REVERSE); + + // TODO: Not sure if MODULE_NUMBER should be the same for both leftGearPiston = new DoubleSolenoid(Constants.DriveTrain.MODULE_NUMBER, - Constants.DriveTrain.LEFT_FORWARD, Constants.DriveTrain.LEFT_REVERSE); + Constants.DriveTrain.LEFT_GEAR_PISTON_FORWARD, + Constants.DriveTrain.LEFT_GEAR_PISTON_REVERSE); rightGearPiston = new DoubleSolenoid(Constants.DriveTrain.MODULE_NUMBER, - Constants.DriveTrain.RIGHT_FORWARD, Constants.DriveTrain.RIGHT_REVERSE); - - this.imu = BNO055.getInstance(BNO055.opmode_t.OPERATION_MODE_IMUPLUS, - BNO055.vector_type_t.VECTOR_EULER, Port.kOnboard, (byte) 0x28); - gyroZero = imu.getHeading(); + Constants.DriveTrain.RIGHT_GEAR_PISTON_FORWARD, + Constants.DriveTrain.RIGHT_GEAR_PISTON_REVERSE); } public static DriveTrain getDriveTrain() { @@ -112,11 +110,9 @@ public class DriveTrain extends Subsystem { } public void printEncoderOutput() { - // System.out.println("left: " + getLeftEncoderDistance()); - // System.out.println("right: " + getRightEncoderDistance()); - System.out.println(getAvgEncoderDistance()); System.out.println("left: " + getLeftEncoderDistance()); System.out.println("right: " + getRightEncoderDistance()); + // System.out.println(getAvgEncoderDistance()); } public double getAvgEncoderDistance() { @@ -142,15 +138,13 @@ public class DriveTrain extends Subsystem { // ------Gyro------// public double getAngle() { - return this.imu.getAngle() - this.gyroZero; + return this.imu.getAngle(); } public void resetGyro() { this.imu.reset(); } - public double getZeroAngle() { - return this.gyroZero; /* * @return a value that is the current setpoint for the piston kReverse or * KForward @@ -160,8 +154,8 @@ public class DriveTrain extends Subsystem { } /* - * @return a value that is the current setppoint for the piston kReverse or - * kForward + * @return a value that is the current setpoint for the piston kReverse or + * KForward */ public Value getRightGearPistonValue() { return rightGearPiston.get(); @@ -189,24 +183,8 @@ 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()); } - }