Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void strafe(int distance, Strafe direction, double speed, double timeOut, double sleepTime) {
- driveTrain.setClosedLoop(true);
- driveTrain.resetEncoders();
- int targetClicks = (int)(distance * CLICKS_PER_INCH);
- int clicksRemaining = targetClicks;
- double power, intergral = 0, deriviteve, timeChange, previousTime = 0, previousClicksRemaining = clicksRemaining;
- MasqClock timeoutTimer = new MasqClock();
- do {
- timeChange = System.nanoTime() - previousTime;
- previousTime = System.nanoTime();
- timeChange /= 1e9;
- clicksRemaining = (int) (targetClicks - Math.abs(driveTrain.getCurrentPosition()));
- intergral += clicksRemaining * timeChange;
- deriviteve = (clicksRemaining - previousClicksRemaining) / timeChange;
- power = (clicksRemaining / targetClicks) * speed;
- power += (intergral * MasqExternal.KI.DRIVE) + (deriviteve * MasqExternal.KD.DRIVE);
- driveTrain.leftDrive.motor1.setPower(power * direction.value[0]);
- driveTrain.rightDrive.motor1.setPower(power * direction.value[1]);
- driveTrain.rightDrive.motor2.setPower(power * direction.value[2]);
- driveTrain.leftDrive.motor2.setPower(power * direction.value[3]);
- } while (opModeIsActive() && clicksRemaining > 0.5 && !timeoutTimer.elapsedTime(timeOut, MasqClock.Resolution.SECONDS));
- sleep(sleepTime);
- }
- public void strafe(int distance, Strafe direction, double speed, double timeOut) {
- strafe(distance, direction, speed, timeOut, MasqExternal.DEFAULT_SLEEP_TIME);
- }
- public void strafe(int distance, Strafe direction, double speed) {
- strafe(distance, direction, speed, MasqExternal.DEFAULT_TIMEOUT, MasqExternal.DEFAULT_SLEEP_TIME);
- }
- public void strafe(int distance, Strafe direction) {
- strafe(distance, direction, 0.7, MasqExternal.DEFAULT_TIMEOUT, MasqExternal.DEFAULT_SLEEP_TIME);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement