Log in

View Full Version : Speeding up and slowing down in autonomous


AdamWiwc
20-02-2014, 20:52
For some reason whenever I try to run this code; speed remains at 0 and it counts i up to x and then speed is suddenly changed to 1.0. Speed is supposed to be a decimal of x depending on how many times the for loop has run through. I don't understand why this is happening and would be very grateful for some clarity. :)

double speed;
int x = 200;

for(int i = 0; i <= x; i++){
double gyroAngle = gyro.getAngle();
speed = i/x;
chassis.drive(-speed,-gyroAngle * Kp);
System.out.println("Speed- " + speed);
System.out.println("Ticks- " + i);
Timer.delay(0.01);
}
Timer.delay(1.0);
for(int i = x; i >= 0; i--){
double gyroAngle = gyro.getAngle();
speed = i/x;
chassis.drive(-speed,-gyroAngle * Kp);
Timer.delay(0.01);
}
chassis.drive(0.0, 0.0); //full stop

Thanks
~Adam Wiwc

Joe Ross
20-02-2014, 23:34
See http://stackoverflow.com/questions/3144610/java-integer-division-how-do-you-produce-a-double

TFleig78
20-02-2014, 23:51
You're performing integer division. When you divide an int by a larger int, you get 0. Java gets rid of the decimal portion of the number. Try making i a double instead of an int.