Class ChassisRequest.FieldCentric

java.lang.Object
com.marswars.swerve_lib.ChassisRequest.FieldCentric
All Implemented Interfaces:
ChassisRequest
Enclosing interface:
ChassisRequest

public static class ChassisRequest.FieldCentric extends Object implements ChassisRequest
Drives the swerve drivetrain in a field-centric manner.

When users use this request, they specify the direction the robot should travel oriented against the field, and the rate at which their robot should rotate about the center of the robot.

  • Field Details

    • Speeds

      public ChassisSpeeds Speeds
      The desired chassis speeds (field-relative)
    • Deadband

      public double Deadband
      The allowable deadband of the request.
    • RotationalDeadband

      public double RotationalDeadband
      The rotational deadband of the request.
    • CenterOfRotation

      public Translation2d CenterOfRotation
      The center of rotation the robot should rotate around. This is (0,0) by default, which will rotate around the center of the robot.
    • DriveRequestType

      public Module.DriveControlMode DriveRequestType
      The type of control request to use for the drive motor.
    • SteerRequestType

      public Module.SteerControlMode SteerRequestType
      The type of control request to use for the steer motor.
    • XPositiveReference

      public ChassisRequest.XPositiveReference XPositiveReference
      The perspective to use when determining which direction is forward.
    • m_lastAppliedState

      protected SwerveModuleState[] m_lastAppliedState
      The last applied state in case we don't have anything to drive.
  • Constructor Details

    • FieldCentric

      public FieldCentric()
  • Method Details

    • apply

      public void apply(ChassisRequest.ChassisRequestParameters parameters, Module... modulesToApply)
      Applies this swerve request to the given modules. This is typically called by the SwerveDrivetrain.
      Specified by:
      apply in interface ChassisRequest
      Parameters:
      parameters - Parameters the control request needs to calculate the module state
      modulesToApply - Modules to which the control request is applied
    • withSpeeds

      public ChassisRequest.FieldCentric withSpeeds(ChassisSpeeds speeds)
      The linear and angular velocity to apply to the drivetrain, specified as ChassisSpeeds. These speeds are assumed to be field-relative.
      Parameters:
      speeds - Field-relative chassis speeds to apply
      Returns:
      this request
    • withDeadband

      public ChassisRequest.FieldCentric withDeadband(double deadband)
      Sets the allowable deadband of the request.
      Parameters:
      deadband - Allowable deadband of the request
      Returns:
      this request
    • withRotationalDeadband

      public ChassisRequest.FieldCentric withRotationalDeadband(double rotationalDeadband)
      Sets the rotational deadband of the request.
      Parameters:
      rotationalDeadband - Rotational deadband of the request
      Returns:
      this request
    • withCenterOfRotation

      public ChassisRequest.FieldCentric withCenterOfRotation(Translation2d centerOfRotation)
      Sets the center of rotation of the request
      Parameters:
      centerOfRotation - The center of rotation the robot should rotate around.
      Returns:
      this request
    • withDriveRequestType

      public ChassisRequest.FieldCentric withDriveRequestType(Module.DriveControlMode driveRequestType)
      Sets the type of control request to use for the drive motor.
      Parameters:
      driveRequestType - The type of control request to use for the drive motor
      Returns:
      this request
    • withSteerRequestType

      public ChassisRequest.FieldCentric withSteerRequestType(Module.SteerControlMode steerRequestType)
      Sets the type of control request to use for the steer motor.
      Parameters:
      steerRequestType - The type of control request to use for the steer motor
      Returns:
      this request
    • withXPositiveReference

      public ChassisRequest.FieldCentric withXPositiveReference(ChassisRequest.XPositiveReference xPositiveReference)
      Sets the perspective to use when determining which direction is forward.
      Parameters:
      xPositiveReference - The perspective to use when determining which direction is forward.
      Returns:
      this request