blob: a1817a786533ba831d970a373bb470cffca06443 [file] [log] [blame]
milind-u086d7262022-01-19 20:44:18 -08001include "frc971/control_loops/control_loops.fbs";
2include "frc971/control_loops/profiled_subsystem.fbs";
3
4namespace y2022.control_loops.superstructure;
5
Ravago Jones5da06352022-03-04 20:26:24 -08006// Contains which intake has a ball
7enum IntakeState : ubyte {
8 NO_BALL,
9 INTAKE_FRONT_BALL,
10 INTAKE_BACK_BALL,
11}
12
13// State of the superstructure state machine
14enum SuperstructureState : ubyte {
15 // Before a ball is intaked, when neither intake beambreak is triggered
Milind Upadhyay803bbf02022-03-11 17:56:26 -080016 IDLE = 0,
Ravago Jones5da06352022-03-04 20:26:24 -080017 // Transferring ball with transfer rollers. Moves turret to loading position.
Milind Upadhyay803bbf02022-03-11 17:56:26 -080018 TRANSFERRING = 1,
Ravago Jones5da06352022-03-04 20:26:24 -080019 // Loading the ball into the catapult
Milind Upadhyay803bbf02022-03-11 17:56:26 -080020 LOADING = 2,
Ravago Jones5da06352022-03-04 20:26:24 -080021 // The ball is loaded into the catapult
Milind Upadhyay803bbf02022-03-11 17:56:26 -080022 LOADED = 3,
Ravago Jones5da06352022-03-04 20:26:24 -080023 // Waiting for the turret to be at shooting goal and then telling the
24 // catapult to fire.
Milind Upadhyay803bbf02022-03-11 17:56:26 -080025 SHOOTING = 4,
Ravago Jones5da06352022-03-04 20:26:24 -080026}
27
James Kuszmaul84083f42022-02-27 17:24:38 -080028table AimerStatus {
29 // The current goal angle for the turret auto-tracking, in radians.
30 turret_position:double (id: 0);
31 // The current goal velocity for the turret, in radians / sec.
32 turret_velocity:double (id: 1);
33 // The current distance to the target, in meters.
34 target_distance:double (id: 2);
35 // The current "shot distance." When shooting on the fly, this may be
36 // different from the static distance to the target.
37 shot_distance:double (id: 3);
38}
39
milind-u086d7262022-01-19 20:44:18 -080040table Status {
41 // All subsystems know their location.
42 zeroed:bool (id: 0);
43
44 // If true, we have aborted. This is the or of all subsystem estops.
45 estopped:bool (id: 1);
Ravago Jones5da06352022-03-04 20:26:24 -080046 // The state of the superstructure
47
48 state:SuperstructureState (id: 10);
49 // Intaking state
50 intake_state:IntakeState (id: 11);
James Kuszmaul40526952022-03-13 15:56:38 -070051 // Whether the front/rear intakes currently are holding balls.
52 front_intake_has_ball:bool (id: 18);
53 back_intake_has_ball:bool (id: 19);
Ravago Jones5da06352022-03-04 20:26:24 -080054 // Whether the flippers are open for shooting
55 flippers_open:bool (id: 12);
56 // Whether the flippers failed to open and we are retrying
57 reseating_in_catapult:bool (id: 13);
58 // Whether the catapult was told to fire,
59 // meaning that the turret and flippers are ready for firing
60 // and we were asked to fire. Different from fire flag in goal.
61 fire:bool (id: 14);
Griffin Bui67abb912022-01-22 16:16:21 -080062
Siddhant Kanwar0e37f592022-02-21 19:26:50 -080063 // Subsystem statuses
64 climber:frc971.control_loops.RelativeEncoderProfiledJointStatus (id: 2);
Henry Speiser55aa3ba2022-02-21 23:21:12 -080065
66 // Estimated angles and angular velocities of the intakes.
67 intake_front:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 3);
68 intake_back:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 4);
69
70 turret:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 5);
Austin Schuh39f26f62022-02-24 21:34:46 -080071
72 catapult:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 6);
73
74 solve_time:double (id: 7);
Austin Schuh41472552022-03-13 18:09:41 -070075 mpc_horizon:uint8 (id: 8);
Ravago Jones3283ce02022-03-09 19:31:29 -080076 shot_position:double (id: 16);
77 shot_velocity:double (id: 17);
Austin Schuh80fc2752022-02-25 13:33:56 -080078
79 // The number of shots we have taken.
80 shot_count:int32 (id: 9);
James Kuszmaul84083f42022-02-27 17:24:38 -080081
82 aimer:AimerStatus (id: 15);
milind-u086d7262022-01-19 20:44:18 -080083}
84
Austin Schuh39f26f62022-02-24 21:34:46 -080085root_type Status;