blob: 49575fb706b1c82e3871aef2783899f8ba5d5019 [file] [log] [blame]
package y2016.control_loops;
import "aos/common/controls/control_loops.q";
import "frc971/control_loops/control_loops.q";
queue_group ShooterQueue {
implements aos.control_loops.ControlLoop;
// All angles are in radians, and angular velocities are in rad/sec. For all
// angular velocities, positive is shooting the ball out of the robot.
message Goal {
// Angular velocity goals in rad/sec.
double angular_velocity_left;
double angular_velocity_right;
};
message Position {
// Wheel angle in rad/sec.
double theta_left;
double theta_right;
};
message Status {
bool ready_left;
bool ready_right;
// Is the shooter ready to shoot?
bool ready_both;
// Average angular velocities over dt * kHistoryLength.
double avg_angular_velocity_left;
double avg_angular_velocity_right;
};
message Output {
double voltage_left;
double voltage_right;
};
queue Goal goal;
queue Position position;
queue Output output;
queue Status status;
};
queue_group ShooterQueue shooter_queue;