Updated queue definition to be more generic.
Change-Id: Iac858a242d6e479470a8b542f75f4c55b0a47676
diff --git a/y2017/control_loops/python/hood.py b/y2017/control_loops/python/hood.py
index 5be85cd..376a22a 100755
--- a/y2017/control_loops/python/hood.py
+++ b/y2017/control_loops/python/hood.py
@@ -42,8 +42,10 @@
self.G2 = self.G1 * (14.0 / 36.0)
# Third axle gear ratio off the motor
self.G3 = self.G2 * (14.0 / 36.0)
+ # The last gear reduction (encoder -> hood angle)
+ self.last_G = (18.0 / 345.0)
# Gear ratio
- self.G = (12.0 / 60.0) * (14.0 / 36.0) * (14.0 / 36.0) * (18.0 / 345.0)
+ self.G = (12.0 / 60.0) * (14.0 / 36.0) * (14.0 / 36.0) * self.last_G
# 36 tooth gear inertia in kg * m^2
self.big_gear_inertia = 0.5 * 0.039 * ((36.0 / 40.0 * 0.025) ** 2)
@@ -319,6 +321,8 @@
integral_hood = IntegralHood('IntegralHood')
integral_loop_writer = control_loop.ControlLoopWriter('IntegralHood', [integral_hood],
namespaces=namespaces)
+ integral_loop_writer.AddConstant(control_loop.Constant('kLastReduction', '%f',
+ integral_hood.last_G))
integral_loop_writer.Write(argv[3], argv[4])
diff --git a/y2017/control_loops/superstructure/superstructure.q b/y2017/control_loops/superstructure/superstructure.q
index 5fe207e..4f36449 100644
--- a/y2017/control_loops/superstructure/superstructure.q
+++ b/y2017/control_loops/superstructure/superstructure.q
@@ -43,7 +43,7 @@
.frc971.ProfileParameters profile_params;
// Voltage to send to the rollers. Positive is sucking in.
- float voltage_rollers;
+ double voltage_rollers;
};
struct SerializerGoal {
@@ -65,7 +65,7 @@
struct HoodGoal {
// Angle the hood is currently at
- double angle_hood;
+ double angle;
// Caps on velocity/acceleration for profiling. 0 for the default.
.frc971.ProfileParameters profile_params;
@@ -166,19 +166,23 @@
};
message Position {
+ // TODO(austin): The turret and intake really should be absolute. Switch
+ // them over when that class is ready.
+
// Position of the intake, zero when the intake is in, positive when it is
// out.
- .frc971.PotAndAbsolutePosition intake;
+ .frc971.PotAndIndexPosition intake;
// Serializer angle in radians.
double theta_serializer;
// The sensor readings for the turret. The units and sign are defined the
// same as what's in the Goal message.
- .frc971.PotAndAbsolutePosition turret;
+ .frc971.PotAndIndexPosition turret;
- // Position of the hood in radians
- double theta_hood;
+ // The sensor readings for the hood. The units and sign are defined the
+ // same as what's in the Goal message.
+ .frc971.PotAndIndexPosition hood;
// Shooter wheel angle in radians.
double theta_shooter;
@@ -186,17 +190,17 @@
message Output {
// Voltages for some of the subsystems.
- float voltage_intake;
- float voltage_serializer;
- float voltage_shooter;
+ double voltage_intake;
+ double voltage_serializer;
+ double voltage_shooter;
// Rollers on the intake.
- float voltage_intake_rollers;
+ double voltage_intake_rollers;
// Roller on the serializer
- float voltage_serializer_rollers;
+ double voltage_serializer_rollers;
- float voltage_turret;
- float voltage_hood;
+ double voltage_turret;
+ double voltage_hood;
};
queue Goal goal;