Software Overview
The SDK contains a superinterface called CameraControl, which contains 5 interfaces:
WhiteBalanceControl (new for SDK 7.1)
Similar to Java classes, Java interfaces provide methods. A webcam can be controlled using methods of these 5 interfaces.
PtzControl allows control of 3 related features: virtual pan, tilt and zoom. ExposureControl also contains a feature called auto-exposure priority, or AE Priority. Together there are 8 webcam controls discussed in this tutorial.
The official documentation is found in the Javadocs. Click the link for RobotCore, then click the CameraControl link in the left column.
![../../../../_images/020-RobotCore.png](../../../../_images/020-RobotCore.png)
RobotCore Javadoc API
That page provides links to the 5 interfaces listed above.
The methods described here can be used in Android Studio or OnBot Java. They can also be provided to Blocks programmers by creating myBlocks, covered in a separate Blocks programming Tutorial.
You will see Vuforia mentioned here, and in the sample OpModes below. Why Vuforia? The FIRST Tech Challenge implementation of Google’s TensorFlow Lite receives camera images from a Vuforia video stream. The SDK already includes and uses Vuforia for navigation, so it’s a convenient tool for passing camera streams to TFOD.
These CameraControl interfaces allow some control of the webcam, within requirements or settings of Vuforia for its own performance. Such settings include resolution and frame rate, not covered here.