Add shooter flatbuffers
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I2e5afb2c8483b15454422fbd664221326f21709c
diff --git a/y2024/control_loops/superstructure/superstructure_goal.fbs b/y2024/control_loops/superstructure/superstructure_goal.fbs
index 25fc8ca..c00c70e 100644
--- a/y2024/control_loops/superstructure/superstructure_goal.fbs
+++ b/y2024/control_loops/superstructure/superstructure_goal.fbs
@@ -12,12 +12,24 @@
// Represents goal for pivot on intake
enum IntakePivotGoal : ubyte {
EXTENDED = 0,
- RETRACTED = 1,
+ RETRACTED = 1,
+}
+
+table CatapultGoal {
+ // The target shot position and velocity. If these are provided before fire
+ // is called, the optimizer can pre-compute the trajectory.
+ shot_position: double (id: 0);
+ shot_velocity: double (id: 1);
+
+ // Return position of the catapult
+ return_position: double (id: 2);
}
table Goal {
intake_roller_goal:IntakeRollerGoal (id: 0);
intake_pivot_goal:IntakePivotGoal (id: 1);
+
+ catapult_goal:CatapultGoal (id: 2);
}
root_type Goal;
diff --git a/y2024/control_loops/superstructure/superstructure_output.fbs b/y2024/control_loops/superstructure/superstructure_output.fbs
index d54e608..cd5971e 100644
--- a/y2024/control_loops/superstructure/superstructure_output.fbs
+++ b/y2024/control_loops/superstructure/superstructure_output.fbs
@@ -6,6 +6,15 @@
// Voltage of intake pivot
intake_pivot_voltage:double (id: 1);
+
+ // Voltage of the turret
+ turret_voltage: double (id: 2);
+
+ // Voltage of the altitude
+ altitude_voltage: double (id: 3);
+
+ // Voltage of the catapult
+ catapult_voltage: double (id: 4);
}
root_type Output;
diff --git a/y2024/control_loops/superstructure/superstructure_position.fbs b/y2024/control_loops/superstructure/superstructure_position.fbs
index 0bb5ae8..e4f6474 100644
--- a/y2024/control_loops/superstructure/superstructure_position.fbs
+++ b/y2024/control_loops/superstructure/superstructure_position.fbs
@@ -6,6 +6,15 @@
table Position {
// Values of the encoder and potentiometer at the intake pivot
intake_pivot:frc971.PotAndAbsolutePosition (id: 0);
+
+ // Values of the encoder and potentiometer at the turret
+ turret:frc971.PotAndAbsolutePosition (id: 1);
+
+ // Values of the encoder and potentiometer at the altitude
+ altitude:frc971.PotAndAbsolutePosition (id: 2);
+
+ // Values of the encoder and potentiometer at the catapult
+ catapult:frc971.PotAndAbsolutePosition (id: 3);
}
root_type Position;
diff --git a/y2024/control_loops/superstructure/superstructure_status.fbs b/y2024/control_loops/superstructure/superstructure_status.fbs
index 98134bd..82756dd 100644
--- a/y2024/control_loops/superstructure/superstructure_status.fbs
+++ b/y2024/control_loops/superstructure/superstructure_status.fbs
@@ -10,6 +10,17 @@
INTAKING = 2,
}
+table ShooterStatus {
+ // Estimated angle and angular velocitiy of the turret.
+ turret_state:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 0);
+
+ // Estimated angle and angular velocitiy of the catapult.
+ catapult_state:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 1);
+
+ // Estimated angle and angular velocitiy of the altitude.
+ altitude_state:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 2);
+}
+
table Status {
// All subsystems know their location.
zeroed:bool (id: 0);