blob: 262163430dd979e9822aedcd0a031fa172083c24 [file] [log] [blame]
include "y2022/vision/calibration.fbs";
namespace y2022.vision;
struct Point {
x:int (id: 0);
y:int (id: 1);
}
table Blob {
points:[Point] (id: 0);
}
// Statistics for each blob used for filtering
table BlobStatsFbs {
centroid:Point (id: 0);
aspect_ratio:double (id: 1);
area:double (id: 2);
num_points:uint64 (id: 3);
}
// Information for debugging blob detection
table BlobResultFbs {
// Blobs that passed the filtering step
filtered_blobs:[Blob] (id: 0);
// All detected blobs
unfiltered_blobs:[Blob] (id: 1);
// Stats on the blobs
blob_stats:[BlobStatsFbs] (id: 2);
// Average centroid of the filtered blobs
centroid:Point (id: 3);
}
// Contains the information the EKF wants from blobs from a single image.
table TargetEstimate {
// Horizontal distance from the camera to the center of the upper hub
distance:double (id: 0);
// Angle from the camera to the target (horizontal angle in rad).
// Positive means right of center, negative means left.
angle_to_target:double (id: 1);
blob_result:BlobResultFbs (id: 2);
// Information about the camera which took this image.
camera_calibration:frc971.vision.calibration.CameraCalibration (id: 3);
}
root_type TargetEstimate;