High Goal Vision tracking question

Our shooter didn’t perform very well at the Sacramento Regional this weekend, so I’m reworking our shooter to be a high goal shooter. I’m looking into vision tracking to assist in shooting accuracy, however I’m unsure of how most teams use the information gathered from it. Does the process go something like this? Filter out high goal using the reflective tape, find the contours, use the contours to find the distance of the goal, then use the distance to calculate the required flywheel RPM, display where the ball will end up on the driver station, then shoot at driver’s will.

We don’t even use contours, we use the bounding box of the target blob (which i should really rewrite)

I just use the coordinates of where the goal is with respect to the camera to calculate distance and angle. Knowing x and y pixel coordinates, camera field of view, camera angle, etc, it’s some trigonometry from there. Based on distance, we can change the pitch of our shooter, and speed is held constant. (we ran a quadratic regression to find the optimal shooter angle vs distance – I suppose a similar thing could be done for shooter speed)

This method has worked well so far. When our robot isn’t broken during a match (which is quite rare), the accuracy was pretty dead on.