Frequently Asked Questions

Having trouble? See if your issue can be resolved through common questions and answers!

Help my robot is overshooting a lot, what can I do?

If your robot over shoots, then your integral term is too large, causing it to add up error to a really high value by the time it gets to the set-point. You can either reduce the Ki value to slow down the integrator, or you can introduce a max integral value. Check the console to see how high the integral value gets to, and use that to find a reasonable maximum value for the integral.

The robot moves violently during motion, what is causing this?

Sometimes using a high Kd will cause the robot to change speeds violently during its movement. To remedy this, just reduce the Kd values.

Why does the robot take so long to finish a motion?

This can be for a number of reasons. The first is that your Ki or Kp is too low, meaning the robot is moving very slowly at the end of its movement. Increasing these will help push the robot that extra 1% to get it closer to your set point. You can also increase your low speed threshold if you are less worried about accuracy. This will allow the robot to finish a movement sooner but may be further from the set point. Another option to employ is to introduce a timeout if you are severely worried about timing. This is the least accurate, but the most precise when it comes to timing.

Why does the robot not move even after being instructed to do so?

There could be a number of reasons. Make sure all of your Mechanisms and Chassis objects are initialized with the correct values. Review the tutorials for assistance with initializing the objects. If they still won't move, make sure you have a PID object set to each Mechanism and Chassis movement type. There are setters for each movement type that can be found in the docs. Lastly, double check your PID values and options, making sure that those are set properly as well.

How can I get data to show up on the brain?

To show data to the brain you can create a vex thread and print that data to the screen. For an example, check out the opcontrol.cpp file in the github repository.