Class ShooterSubsystemConfig


public class ShooterSubsystemConfig extends AbstractVelocitySubsystemConfig
Configuration bundle for the shooter subsystem. All RPM values represent flywheel (mechanism) speed after gear reduction, not motor shaft speed.

Velocity limits, PID gains, feedforward gains, and settle time are inherited from AbstractVelocitySubsystemConfig. Add shooter-specific tuning fields here as the design evolves (e.g., reverse velocity for clearing jams).

  • Field Details

    • followerMotorConfig

      public MotorConfig followerMotorConfig
      Motor configuration bundle for the follower shooter flywheel motor.

      The follower can have independent inversion, current limits, and CAN ID. Enable or disable the follower via the followerEnabled flag.

    • followerEnabled

      public boolean followerEnabled
      Enables or disables the follower motor.

      Set to false in JSON when the robot has only one shooter motor (e.g., the test robot). The subsystem operates with a single motor transparently.

    • distanceRpmPoints

      public DistanceRpmPoint[] distanceRpmPoints
      Lookup table mapping distance in meters to target RPM for distance-based shooting.

      The subsystem linearly interpolates between these points at runtime. Add more points for finer control over the distance-to-RPM curve. Points do not need to be sorted; the interpolation table handles ordering.

    • distanceRpmMultiplier

      public double distanceRpmMultiplier
      Scale factor applied to the interpolated RPM for quick field adjustments.
    • rpmAdjustmentAmountRpm

      public double rpmAdjustmentAmountRpm
      RPM amount added or subtracted when the operator uses the boost or cut triggers.
  • Constructor Details

    • ShooterSubsystemConfig

      public ShooterSubsystemConfig()
  • Method Details

    • getDistanceRpmMultiplier

      public double getDistanceRpmMultiplier()
      Returns the scale factor applied to interpolated distance-based RPM, tuned via SmartDashboard.

      Use this to quickly adjust all distance-based RPM values up or down without changing individual lookup table points. A value of 1.0 applies no scaling.

      Returns:
      RPM multiplier (1.0 = no change)
    • getRpmAdjustmentAmountRpm

      public double getRpmAdjustmentAmountRpm()
      Returns the RPM adjustment applied by the operator boost and cut triggers, tuned via SmartDashboard.
      Returns:
      RPM adjustment amount (always positive; negated internally for cut)