Your problem lies here:
Code:
for(int i =0; i < 10; i=+1){
getWatchdog().feed();
robotdrive.drive(1,0);
Timer.delay(3);
getWatchdog().feed();
}
You're using a timer delay in a loop. That means that everytime the loop is called (which is two, for whatever reason) you will have a 3 second delay. Plus, since you're wanting to drive for a set amount of time in autonomous, why not use the nifty Timer class?
Code:
Timer timer = new Timer(); // you should put this in your constructor.
public void autonomous() {
while(isAutonomous()) {
timer.start();
while(timer.get() < 3) { // while the timer is < 3, drive forward.
robotDrive.drive(1,0);
timer.stop(); // stop the timer after 3 seconds
}
robotDrive.drive(0,0); // stop the robot from driving any further.
}
}