The control subsystem controls. Basically any motor or actuator that isn't the drive train.
The drive subsystem controls the drive train of the robot. See Drive and PID for more info.
The vision subsystem controls vision operations. We can't do this in multiple places, because only one function can access the camera at a time. This includes the vision challenge for the season. OpenCV is used, as there is no viable alternative (Vuforia is no longer supported and see below for tensorflow-lite).
Use a threshold to isolate the object. Then find the largest contour area and use that to determine the location of the object.
Technical Details
Core.inRange() to isolate the objectImgproc.findContours() to find the contours of the object... Why would you need vision for this?
April Tags have known locations and unique ids, and you could determine the robot's location from one, and use them for auto adjustment.
Use a threshold to isolate the objects. Then use the list of contour areas to get the locations of the objects; use April Tags to find absolute position if necessary. This is probably the most complex vision strategy. Machine learning could be viably applied here without wasting CPU power.