blob: 9f53a82de8aaa75e9b6a581226c96dde1dbd5249 [file] [log] [blame]
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;