I am trying to get a PID loop to hold our grabbers position up and down.
Sorry for the bad quality.
Videos: https://drive.google.com/open?id=1jhORFxEaqzu6b0ikCrTuPApjN1v4RxJh
Encoder grabberEncoder = new Encoder(6, 7, false, Encoder.EncodingType.k4X);
double grabberHoldDistance;
Spark PIDStore = new Spark(7);
PIDController grabberPID = new PIDController(.0005, 0.000005, 0, grabberEncoder, grabberAngleController);
@Override
public void robotInit() {
grabberPID.setOutputRange(-0.2, 1);
PIDStore.setDisabled();
grabberAngleController.setInverted(true);
// grabberPID.enable();
rightGrabber.setInverted(true);
}
//In teleop:
switch (grabberSwitch) {
case 1:
if (joy2.getRawButton(8))
grabberSwitch++;
if (joy2.getRawButton(3)) {
grabberPID.disable();
grabberAngleController.set(-grabberAngleDownSpeed);
grabberPID.setSetpoint(grabberEncoder.getDistance());
} else if (joy2.getRawButton(4)) {
grabberPID.disable();
grabberAngleController.set(grabberAngleUpSpeed);
grabberPID.setSetpoint(grabberEncoder.getDistance());
} else {
if (grabberEncoder.get() <= 80) {
grabberPID.disable();
grabberAngleController.set(0);
} else {
grabberPID.enable();
grabberAngleController.set(grabberPID.get());
}
}
break;
case 2:
if(joy2.getRawButton(8))
grabberSwitch--;
grabberPID.setSetpoint(270);
grabberPID.enable();
grabberAngleController.set(grabberPID.get());
break;
}