blob: 794cf136c50326aaa84c044c73aaf3d6ff05796b [file] [log] [blame]
namespace y2020.control_loops.drivetrain;
enum RejectionReason : byte {
IMAGE_FROM_FUTURE = 0,
NO_CALIBRATION = 1,
TURRET_TOO_FAST = 2,
NO_RESULTS = 3,
NO_TRANSFORMS = 4,
HIGH_THETA_DIFFERENCE = 5,
IMAGE_TOO_OLD = 6,
NONFINITE_MEASUREMENT = 7,
CORRECTION_TOO_LARGE = 8,
MESSAGE_BRIDGE_DISCONNECTED = 9,
}
table ImageMatchDebug {
camera:uint8 (id: 0);
pose_index: uint8 (id: 1);
local_image_capture_time_ns:long (id: 2);
roborio_image_capture_time_ns:long (id: 3);
camera_x:float (id: 11);
camera_y:float (id: 12);
camera_theta:float (id: 13);
implied_robot_x:float (id: 4);
implied_robot_y:float (id: 5);
implied_robot_theta:float (id: 6);
implied_turret_goal:float (id: 7);
accepted:bool (id: 8);
rejection_reason:RejectionReason (id: 9);
// Image age (more human-readable than trying to interpret roborio_image_capture_time_ns).
image_age_sec:float (id: 10);
}
table CumulativeStatistics {
total_accepted:int (id: 0);
total_candidates:int (id: 1);
// Indexed by integer value of RejectionReason enum.
rejection_reason_count:[int] (id: 2);
}
table LocalizerDebug {
matches:[ImageMatchDebug] (id: 0);
statistics:CumulativeStatistics (id: 1);
}
root_type LocalizerDebug;