abraker
22-01-2015, 19:51
Hi teams!
We are trying to debug encoders to get an accurate reading, and determined that some sort of lag spikes happen randomly. I stripped the loop so that it only checks for a raw value (for debugging purposes), and stops the motor when the value is >=1440 (360 deg rotation using k4X encoding type) and prints the number of milliseconds it took. Most of the time it runs for ~630 ms, but when the random lag spike hits, it runs for anywhere between 700 ms to 800 ms.
Our loop:
t1.set(0.15);
t2.set(0.15);
while(isAutonomous() && isEnabled()){
if(encoder.getRaw())>=1440-56){ // it overshoots everytime, so -56 to compensate
t1.set(0.0);
t2.set(0.0);
clock.stop();
SmartDashboard.putNumber("Timer: ", clock.get());
}
}
We are trying to debug encoders to get an accurate reading, and determined that some sort of lag spikes happen randomly. I stripped the loop so that it only checks for a raw value (for debugging purposes), and stops the motor when the value is >=1440 (360 deg rotation using k4X encoding type) and prints the number of milliseconds it took. Most of the time it runs for ~630 ms, but when the random lag spike hits, it runs for anywhere between 700 ms to 800 ms.
Our loop:
t1.set(0.15);
t2.set(0.15);
while(isAutonomous() && isEnabled()){
if(encoder.getRaw())>=1440-56){ // it overshoots everytime, so -56 to compensate
t1.set(0.0);
t2.set(0.0);
clock.stop();
SmartDashboard.putNumber("Timer: ", clock.get());
}
}