Utility Class: Common Calculations¶
PhotonUtils class with helpful common calculations is included within
PhotonLib to aid teams. This class contains two methods,
EstimateTargetTranslation() (Java and C++ respectively).
Calculating Distance to Target¶
If your camera is at a fixed height on your robot and the height of the target is fixed, you can calculate the distance to the target based on your camera’s pitch and the pitch to the target.
The C++ version of PhotonLib uses the Units library. For more information, see here.
Estimating Camera Translation to Target¶
You can get a translation to the target based on the distance to the target (calculated above) and angle to the target (yaw).
We are negating the yaw from the camera from CV (computer vision) conventions to standard mathematical conventions. In standard mathematical conventions, as you turn counter-clockwise, angles become more positive.
Estimating Field Relative Pose¶
You can get your robot’s
Pose2D on the field using various camera data, target yaw, gyro angle, target pose, and camera position. This method estimates the target’s relative position using
estimateCameraToTargetTranslation (which uses pitch and yaw to estimate range and heading), and the robot’s gyro to estimate the rotation of the target.