blob: f2b909618fa063097b485de16722b2176989616f [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 (id: 0);
// Angular velocity in rad/s of the flywheel. Positive is shooting.
velocity_finisher:double (id: 1);
}
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 (id: 0);
// Positive = counterclockwise from above; rotates Wheel of Fortune clockwise
// Zero is relative to start.
control_panel:frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 1);
// 0 = Linkage on sprocket is pointing straight up
// Positive = forward
intake:frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 2);
// Positive is rollers intaking to Washing Machine.
roller_voltage:float (id: 3);
// Factor to multiply robot velocity by and add to roller voltage.
roller_speed_compensation:float (id: 11);
// 0 = facing the back of the robot. Positive rotates counterclockwise.
turret:frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 4);
// Only applies if shooter_tracking = false.
shooter:ShooterGoal (id: 5);
// 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 (id: 6);
// Whether the hood should adjust its position automatically.
hood_tracking:bool (id: 7);
// Whether the turret should follow the target automatically.
turret_tracking:bool (id: 8);
// Whether the kicker and flywheel should choose a velocity automatically.
shooter_tracking:bool (id: 9);
// Whether to serialize a ball under the accelerator tower
// so it is ready to shoot.
intake_preloading:bool (id: 12);
// Positive is deploying climber and to climb; cannot run in reverse
climber_voltage:float (id: 10);
// Feed voltage override.
feed_voltage_override:float (id: 13);
}
root_type Goal;