Robot drive... Output not updated enough.

Im triying to call a digital in from the driverstation and when i enable the robot i get spammed with this line, any ideas thanks

This is affecting our team as well. Were you using the SmartDashboard at the time by any chance? We think it might have to do with that.

Our team was also having problems with this, but we found that it has to do with the RobotDrive object in your code. As long as it does not have access to the specified jaguars or there is no joystick, it will be unable to perform the task RobotDrive.arcadeDrive(), or whatever method you are using to drive. For testing purposes, just comment out everything having to do with RobotDrive and you should be fine.

Another thing you can do is call the RobotDrive method: setSafetyEnabled(false)

-Maciej

That did the trick! Thanks. :slight_smile:

Our program, test, was working on SimpleRobot and we switched to Iterative, but now the error for updating Robot Drive appear. I tried setSafetyEnabled(false) but that only stopped the error. Nothing moves and I don’t know what to do

Any advice or comment would be helpful right now. Thank you in advanced!

UPDATE: just after my post, the robot drive train moved. After a few minutes, it disconnected because a CRIO wire came loose. Then the autonomous made one motor move really slowly, which was not supposed to HAPPEN! Now it doesn’t move again.

Any comments, advice, or anything else will be greatly appreciated1

Code?

Our team has encountered this error a lot. It mostly has to do with either the Timer.delay() method or the robotDrive.setSafetyEnabled() method. Check to see also if your code contains

while(isEnabled() && isOperatorControl()) {
}

Restart the driver station.

Scratch that. It only fixed it for a second. After inverting one side of the wheels (only one line of code), everything stopped working again. This happened even after I stripped the code of everything except joysticks and robotdrive. Help!!!

Our team also had this problem, forgot how we solved it, BUT we did not use RobotDrive. Our robot is swerve Drive, so we had to code our own Drive class for swerve algorithms.

So it’s not robot drive alone it seems.

I just forgot to use the .getInstance();

We had the same problem and i somewhat forget what the problem was but i think restarting the computer helps. we also found out that we were calling for the same PWM port for 2 different objects i think.

This error message is a frustrating one because it would seem that this error would originate from the RobotDrive class, however, the real problem could be in any part of your code. This displays whenever your code is running too slowly, and will subsequently disable your drive functions (and probably everything else, not sure though, I haven’t spent too much time trying the different functions when this has popped up). Anyway, this message appears a lot if you are doing image processing on the cRio because that takes longer than the 20mS loop time. Other (more likely culprits) include infinite loops (or any loop that lasts longer than 20mS), methods that call themselves without end (I had a setMotorSpeed(speed) method that called setMotorSpeed(speed) at the end of it instead of motor.set(speed)), and anything else that potentially stops or slows the code.

It may be helpful to add your own output messages throughout your code, then you will see what is getting called before the RobotDrive message, and it will probably point to the area of code that is causing the stop.

Did anyone ever get a definitive solution to this? We are at the regional and cannot figure this out!!

I did exactly that, and realized that it never even got to the first method (it obviously created the robotdrive object, though). I just switched away from the iterativerobot template and now it works. I found the other templates didn’t do what I wanted, so I created the templateOfDoom! No more problems now. If anybody wants, I could try to find some way to share it.