blob: efba4a734d5e54bc7e543af5b218e8176c4076c0 [file] [log] [blame]
Alex Perrycb7da4b2019-08-28 19:35:56 -07001namespace y2016.control_loops.superstructure;
2
3table Goal {
4 // Zero on the intake is when the horizontal tube stock members are level
5 // with the top frame rails of the robot. This will be essentially when we
6 // are in the intaking position. Positive is up. The angle is measured
7 // relative to the top
8 // of the robot frame.
9 // Zero on the shoulder is when the shoulder is down against the hard stop
10 // blocks. Positive is up. The angle is measured relative to the top of
11 // the robot frame.
12 // Zero on the wrist is horizontal and landed in the bellypan. Positive is
13 // the same direction as the shoulder. The angle is measured relative to
14 // the top of the robot frame. For calibration, 0 is measured as parallel
15 // to the big frame supporting the shooter.
16
17 // Goal angles and angular velocities of the superstructure subsystems.
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080018 angle_intake:double (id: 0);
19 angle_shoulder:double (id: 1);
Alex Perrycb7da4b2019-08-28 19:35:56 -070020 // In relation to the ground plane.
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080021 angle_wrist:double (id: 2);
Alex Perrycb7da4b2019-08-28 19:35:56 -070022
23 // Caps on velocity/acceleration for profiling. 0 for the default.
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080024 max_angular_velocity_intake:float (id: 3);
25 max_angular_velocity_shoulder:float (id: 4);
26 max_angular_velocity_wrist:float (id: 5);
Alex Perrycb7da4b2019-08-28 19:35:56 -070027
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080028 max_angular_acceleration_intake:float (id: 6);
29 max_angular_acceleration_shoulder:float (id: 7);
30 max_angular_acceleration_wrist:float (id: 8);
Alex Perrycb7da4b2019-08-28 19:35:56 -070031
32 // Voltage to send to the rollers. Positive is sucking in.
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080033 voltage_top_rollers:float (id: 9);
34 voltage_bottom_rollers:float (id: 10);
Alex Perrycb7da4b2019-08-28 19:35:56 -070035
36 // Voltage to sent to the climber. Positive is pulling the robot up.
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080037 voltage_climber:float (id: 11);
Alex Perrycb7da4b2019-08-28 19:35:56 -070038 // If true, unlatch the climber and allow it to unfold.
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080039 unfold_climber:bool (id: 12);
Alex Perrycb7da4b2019-08-28 19:35:56 -070040
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080041 force_intake:bool (id: 13);
Alex Perrycb7da4b2019-08-28 19:35:56 -070042
43 // If true, release the latch which holds the traverse mechanism in the
44 // middle.
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080045 traverse_unlatched:bool (id: 14);
Alex Perrycb7da4b2019-08-28 19:35:56 -070046 // If true, fire the traverse mechanism down.
Ravago Jonesfb6a7a52020-11-14 13:47:46 -080047 traverse_down:bool (id: 15);
Alex Perrycb7da4b2019-08-28 19:35:56 -070048}
49
50root_type Goal;