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