public void ultrasonicDriveWithCorrection(double speed, double ThreshholdDistance) { if (stateManager.getStateStage() == 0) { motorManager.refreshEncoders(); if (speed > 0) { motorManager.setLeftPower(speed); motorManager.setRightPower(speed); } else if (speed < 0) { motorManager.setLeftPower(-speed); motorManager.setRightPower(-speed); } stateManager.continueCommand(); } else if (stateManager.getStateStage() == 1) { if (ThreshholdDistance >= sensorManager.getUltrasonicSensorHolder().getLevel() && sensorManager.getUltrasonicSensorHolder().getLevel() != 0) { motorManager.stopAllMotors(); stateManager.continueProgram(); } else { gyroCorrection.GyroCorrection(speed); } } }