| namespace frc971.controls; |
| |
| // This provides a minimal output from the localizer that can be forwarded to |
| // the roborio and used for corrections to its (simpler) localizer. |
| |
| struct Quaternion { |
| w:double (id: 0); |
| x:double (id: 1); |
| y:double (id: 2); |
| z:double (id: 3); |
| } |
| |
| // Used to tell different LEDs to be on or off |
| enum LedOutput : byte { |
| ON, |
| OFF |
| } |
| |
| table LocalizerOutput { |
| // Timestamp (on the source node) that this sample corresponds with. This |
| // may be older than the sent time to account for delays in sensor readings. |
| monotonic_timestamp_ns:int64 (id: 0); |
| // Current x/y position estimate, in meters. |
| x:double (id: 1); |
| y:double (id: 2); |
| // Current heading, in radians. |
| theta:double (id: 3); |
| // Current estimate of the robot's 3-D rotation. |
| orientation:Quaternion (id: 4); |
| // Whether we have zeroed the IMU (may go false if we observe a fault with the |
| // IMU). |
| zeroed:bool (id: 5); |
| |
| // Whether each led should be on. |
| // Indices correspond to pi number. |
| led_outputs:[LedOutput] (id: 6); |
| |
| // Cumulative number of accepted images. |
| image_accepted_count:uint (id: 7); |
| } |
| |
| root_type LocalizerOutput; |