| include "frc971/control_loops/control_loops.fbs"; |
| |
| namespace y2018.control_loops.superstructure; |
| |
| table IntakeSideStatus { |
| // Is the subsystem zeroed? |
| zeroed:bool (id: 0); |
| |
| // The state of the subsystem, if applicable. |
| state:int32 (id: 1); |
| |
| // If true, we have aborted. |
| estopped:bool (id: 2); |
| |
| // Estimated position of the spring. |
| spring_position:float (id: 3); |
| // Estimated velocity of the spring in units/second. |
| spring_velocity:float (id: 4); |
| // Reported wrapping of the spring |
| spring_wrapped:int (id: 5); |
| |
| // Estimated position of the joint. |
| motor_position:float (id: 6); |
| // Estimated velocity of the joint in units/second. |
| motor_velocity:float (id: 7); |
| |
| // Goal position of the joint. |
| goal_position:float (id: 8); |
| // Goal velocity of the joint in units/second. |
| goal_velocity:float (id: 9); |
| |
| // The calculated velocity with delta x/delta t |
| calculated_velocity:float (id: 10); |
| |
| // The voltage given last cycle; |
| delayed_voltage:float (id: 11); |
| |
| // State of the estimator. |
| estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState (id: 12); |
| } |
| |
| table ArmStatus { |
| // State of the estimators. |
| proximal_estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState (id: 0); |
| distal_estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState (id: 1); |
| |
| // The node we are currently going to. |
| current_node:uint32 (id: 2); |
| // Distance (in radians) to the end of the path. |
| path_distance_to_go:float (id: 3); |
| // Goal position and velocity (radians) |
| goal_theta0:float (id: 4); |
| goal_theta1:float (id: 5); |
| goal_omega0:float (id: 6); |
| goal_omega1:float (id: 7); |
| |
| // Current position and velocity (radians) |
| theta0:float (id: 8); |
| theta1:float (id: 9); |
| |
| omega0:float (id: 10); |
| omega1:float (id: 11); |
| |
| // Estimated voltage error for the two joints. |
| voltage_error0:float (id: 12); |
| voltage_error1:float (id: 13); |
| |
| // True if we are zeroed. |
| zeroed:bool (id: 14); |
| |
| // True if the arm is zeroed. |
| estopped:bool (id: 15); |
| |
| // The current state machine state. |
| state:uint32 (id: 16); |
| |
| grab_state:uint32 (id: 17); |
| |
| // The number of times the LQR solver failed. |
| failed_solutions:uint32 (id: 18); |
| } |
| |
| table Status { |
| // Are all the subsystems zeroed? |
| zeroed:bool (id: 0); |
| |
| // If true, any of the subsystems have aborted. |
| estopped:bool (id: 1); |
| |
| // Status of both intake sides. |
| left_intake:IntakeSideStatus (id: 2); |
| right_intake:IntakeSideStatus (id: 3); |
| |
| arm:ArmStatus (id: 4); |
| |
| filtered_box_velocity:double (id: 5); |
| rotation_state:uint (id: 6); |
| } |
| |
| root_type Status; |