blob: c7fe643e0ac312d91d8018f1aeb394ee4cc9ae09 [file] [log] [blame]
include "frc971/control_loops/profiled_subsystem.fbs";
namespace y2020.control_loops.superstructure;
table ShooterGoal {
// Angular velocity in rad/s of the slowest (lowest) wheel in the kicker.
// Positive is shooting the ball.
velocity_accelerator:double;
// Angular velocity in rad/s of the flywheel. Positive is shooting.
velocity_finisher:double;
}
table Goal {
// Zero is at the horizontal, positive towards the front (meters on the lead screw).
// Only applies if hood_tracking = false.
hood:frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal;
// Positive = counterclockwise from above; rotates Wheel of Fortune clockwise
// Zero is relative to start.
control_panel:frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal;
// 0 = Linkage on sprocket is pointing straight up
// Positive = forward
intake:frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal;
// Positive is rollers intaking to Washing Machine.
roller_voltage:float;
// 0 = facing the back of the robot. Positive rotates counterclockwise.
turret:frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal;
// Only applies if shooter_tracking = false.
shooter:ShooterGoal;
// Whether the robot should be shooting balls. Waits until hood, turret, and
// shooter are at goal (as determined by auto-tracking or override).
shooting:bool;
// Whether the hood should adjust its position automatically.
hood_tracking:bool;
// Whether the turret should follow the target automatically.
turret_tracking:bool;
// Whether the kicker and flywheel should choose a velocity automatically.
shooter_tracking:bool;
// Positive is deploying climber and to climb; cannot run in reverse
climber_voltage:float;
}
root_type Goal;