blob: b3fd6e94aa5051aa6d360e6c8d4fc7e46e572cae [file] [log] [blame]
Milind Upadhyaycd677a32022-12-04 13:06:43 -08001namespace frc971.vision;
2
milind-u3f5f83c2023-01-29 15:23:51 -08003table Position {
4 x:double (id: 0);
5 y:double (id: 1);
6 z:double (id: 2);
7}
8
9table Quaternion {
10 w:double (id: 0);
11 x:double (id: 1);
12 y:double (id: 2);
13 z:double (id: 3);
14}
15
Milind Upadhyaycd677a32022-12-04 13:06:43 -080016// Represents 3d pose of an april tag on the field.
17table TargetPoseFbs {
18 // AprilTag ID of this target
19 id:uint64 (id: 0);
20
Yash Chainanibd6c6e52023-02-18 19:31:32 -080021 // Pose of target relative to either the field origin or camera.
milind-u09fb1252023-01-28 19:21:41 -080022 // To get the pose of the target, do:
milind-u3f5f83c2023-01-29 15:23:51 -080023 // Translation3d(position.x(), position.y(), position.z()) *
24 // Quaterniond(orientation.w(), orientation.x(), orientation.y(), orientation.z())
25 position:Position (id: 1);
26 orientation:Quaternion (id: 2);
milind-u681c4712023-02-23 21:22:50 -080027
28 // Minimum decision margin (confidence) for this april tag detection.
29 // Only filled out if this pose represents a live detection.
30 // NOTE: Detections with a decision margin less than
31 // FLAGS_min_decision_margin in aprilrobotics.cc are already filtered
32 // out before sending.
33 confidence:double (id: 3);
Milind Upadhyaycd677a32022-12-04 13:06:43 -080034}
35
36// Map of all target poses on a field.
milind-u09fb1252023-01-28 19:21:41 -080037// There are two possible uses for this:
38// 1. Static april tag poses on the field solved for by TargetMapper.
Yash Chainanibd6c6e52023-02-18 19:31:32 -080039// 2. List of detected april poses relative to the camera.
Milind Upadhyaycd677a32022-12-04 13:06:43 -080040table TargetMap {
41 target_poses:[TargetPoseFbs] (id: 0);
Milind Upadhyay05652cb2022-12-07 20:51:51 -080042
milind-u09fb1252023-01-28 19:21:41 -080043 // Unique name of the field (for use case 1.)
Milind Upadhyay05652cb2022-12-07 20:51:51 -080044 field_name:string (id: 1);
milind-u09fb1252023-01-28 19:21:41 -080045
46 // End-of-frame timestamp for the frame with tag detections.
47 // (for use case 2.).
48 monotonic_timestamp_ns:int64 (id: 2);
Maxwell Hendersonfebee252023-01-28 16:53:52 -080049}
50
51root_type TargetMap;