Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. public void strafe(int distance, Strafe direction, double speed, double timeOut, double sleepTime) {
  2. driveTrain.setClosedLoop(true);
  3. driveTrain.resetEncoders();
  4. int targetClicks = (int)(distance * CLICKS_PER_INCH);
  5. int clicksRemaining = targetClicks;
  6. double power, intergral = 0, deriviteve, timeChange, previousTime = 0, previousClicksRemaining = clicksRemaining;
  7. MasqClock timeoutTimer = new MasqClock();
  8. do {
  9. timeChange = System.nanoTime() - previousTime;
  10. previousTime = System.nanoTime();
  11. timeChange /= 1e9;
  12. clicksRemaining = (int) (targetClicks - Math.abs(driveTrain.getCurrentPosition()));
  13. intergral += clicksRemaining * timeChange;
  14. deriviteve = (clicksRemaining - previousClicksRemaining) / timeChange;
  15. power = (clicksRemaining / targetClicks) * speed;
  16. power += (intergral * MasqExternal.KI.DRIVE) + (deriviteve * MasqExternal.KD.DRIVE);
  17. driveTrain.leftDrive.motor1.setPower(power * direction.value[0]);
  18. driveTrain.rightDrive.motor1.setPower(power * direction.value[1]);
  19. driveTrain.rightDrive.motor2.setPower(power * direction.value[2]);
  20. driveTrain.leftDrive.motor2.setPower(power * direction.value[3]);
  21. } while (opModeIsActive() && clicksRemaining > 0.5 && !timeoutTimer.elapsedTime(timeOut, MasqClock.Resolution.SECONDS));
  22. sleep(sleepTime);
  23. }
  24. public void strafe(int distance, Strafe direction, double speed, double timeOut) {
  25. strafe(distance, direction, speed, timeOut, MasqExternal.DEFAULT_SLEEP_TIME);
  26. }
  27. public void strafe(int distance, Strafe direction, double speed) {
  28. strafe(distance, direction, speed, MasqExternal.DEFAULT_TIMEOUT, MasqExternal.DEFAULT_SLEEP_TIME);
  29. }
  30. public void strafe(int distance, Strafe direction) {
  31. strafe(distance, direction, 0.7, MasqExternal.DEFAULT_TIMEOUT, MasqExternal.DEFAULT_SLEEP_TIME);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement