private Shooter shooter;
private Spindexer spindexer;
+ private enum WantedState {
+ IDLE,
+ SHOOTING,
+ PASSING
+ }
+
+ private enum CurrentState {
+ IDLE,
+ STARTING_UP,
+ TURNING_AROUND,
+ SHOOTING,
+ PASSING
+ }
+
+ private WantedState wantedState = WantedState.IDLE;
+ private CurrentState currentState = CurrentState.IDLE;
+
+ private void updateStates(){
+
+ }
+
//TODO: find maximum interpolation
private Constraints shooterConstraints = new Constraints(Units.inchesToMeters(80.0), 67676767, HoodConstants.MIN_ANGLE, HoodConstants.MAX_ANGLE);
updateSetpoints(drivepose);
turret.setFieldRelativeTarget(new Rotation2d(Units.degreesToRadians(turretSetpoint)), turretVelocity - drivetrain.getAngularRate(2));
hood.setFieldRelativeTarget(new Rotation2d(Units.degreesToRadians(hoodSetpoint)), hoodVelocity);
- shooter.setShooter(Units.radiansToRotations(goalState.exitVel() / (ShooterConstants.SHOOTER_LAUNCH_DIAMETER/2)));
+ shooter.setShooter(goalState.exitVel());
/** Spindexer Stuff!! */
if(spindexer != null){
return inputs.leftShooterVelocity;
}
+ public boolean atTargetVelocity(){
+ return Math.abs(getShooterVelcoity() - targetSpeedMPS) < 0.1; // Tolerance of 0.1 mps
+ }
+
public void updateInputs() {
- inputs.leftShooterVelocity = motorLeft.getVelocity().getValueAsDouble();
- inputs.rightShooterVelocity = motorRight.getVelocity().getValueAsDouble();
+ inputs.leftShooterVelocity = Units.rotationsToRadians(motorLeft.getVelocity().getValueAsDouble()) * ShooterConstants.SHOOTER_LAUNCH_DIAMETER/2;
+ inputs.rightShooterVelocity =Units.rotationsToRadians(motorRight.getVelocity().getValueAsDouble()) * ShooterConstants.SHOOTER_LAUNCH_DIAMETER/2;
inputs.leftShooterCurrent = motorLeft.getStatorCurrent().getValueAsDouble();
inputs.rightShooterCurrent = motorRight.getStatorCurrent().getValueAsDouble();
}