We have a 'drive straight' method that takes in an encoder distance and runs a PID on it. Part of the processing loop is also a PID on the gyro, which affects turn calculations based upon offsets from the gyro.
In teleop we have the option for a 'drive straight' if the driver wants to use arcade mode (toggled via a button) -- but that's driver dependent. Last year it was hugely successful for driving up a bridge; this year it may be useful for driving
at something. Otherwise it's up to the driver to worry about keeping the robot straight via 2-joystick tank drive. That way we always get 100% power forward/reverse when we need it.
The 'drive straight' code used to call a 'turn to angle' method, but I think the programmers stopped that after week 1. We kept the 'turn to angle' method for vision to use. We also may add in buttons on the driver's joystick so he can turn in 2 or 5 degree increments. This method resets the gyro at the start of every 'turnTo' command, so the robot has to be stable for valid data. It takes less than a second and is part of our 'ready-aim' sequence.
With direct drive WCD this year there's much less noticeable lurching of one side instead of the other during drive train takeoff. I attribute that to less backlash in the gears and the much better efficiency overall.
Waiting until week 5 for the first event is making me antsy

. This drive train will fly once it hits the field.