blob: 7017e7f688512e547261a6eded6c397f8f44b951 [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-ufc8ab702023-02-26 14:14:39 -080034
35 // Object-space error of the tag from pose estimation.
36 // Only filled out if this pose represents a live detection.
37 // Tags which are seen completely usually have a pose_error < 1e-6,
38 // and a higher error could imply that part of the tag is being blocked.
39 // NOTE: not filtered by aprilrobotics.cc so that we can log
40 // more detections.
41 pose_error:double (id: 4);
Milind Upadhyaycd677a32022-12-04 13:06:43 -080042}
43
44// Map of all target poses on a field.
milind-u09fb1252023-01-28 19:21:41 -080045// There are two possible uses for this:
46// 1. Static april tag poses on the field solved for by TargetMapper.
Yash Chainanibd6c6e52023-02-18 19:31:32 -080047// 2. List of detected april poses relative to the camera.
Milind Upadhyaycd677a32022-12-04 13:06:43 -080048table TargetMap {
49 target_poses:[TargetPoseFbs] (id: 0);
Milind Upadhyay05652cb2022-12-07 20:51:51 -080050
milind-u09fb1252023-01-28 19:21:41 -080051 // Unique name of the field (for use case 1.)
Milind Upadhyay05652cb2022-12-07 20:51:51 -080052 field_name:string (id: 1);
milind-u09fb1252023-01-28 19:21:41 -080053
54 // End-of-frame timestamp for the frame with tag detections.
55 // (for use case 2.).
56 monotonic_timestamp_ns:int64 (id: 2);
Maxwell Hendersonfebee252023-01-28 16:53:52 -080057}
58
59root_type TargetMap;