Try running the camera in its own thread during operator control.
Write the vision code like you usually would, and then during the operator control loop, call it in its own thread, separate from other functions of the robot.
We had major camera lag problems, and this fixed it for us.
Here's a bit of example code
Code:
public void operatorControl()
{
isDone = false;
//Begin vision processing on a new thread
Thread thread = new Thread()
{
public void run()
{
while (!isDone)
{
if(RobotMap.visionSystemEnable != -1)
{
vision.vision();
}
}
}
};
thread.start();