Class ChassisRequest.RobotCentric

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

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

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

An example scenario is that the robot is oriented to the east, the VelocityX is +5 m/s, VelocityY is 0 m/s, and RotationRate is 0.5 rad/s. In this scenario, the robot would drive eastward at 5 m/s and turn counterclockwise at 0.5 rad/s.

  • Field Details

    • Speeds

      public ChassisSpeeds Speeds
      The desired chassis speeds (robot-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.
  • Constructor Details

    • RobotCentric

      public RobotCentric()
  • 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.RobotCentric withSpeeds(ChassisSpeeds speeds)
      The linear and angular velocity to apply to the drivetrain, specified as ChassisSpeeds. These speeds are assumed to be robot-relative.
      Parameters:
      speeds - Robot-relative chassis speeds to apply
      Returns:
      this request
    • withDeadband

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

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

      public ChassisRequest.RobotCentric 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.RobotCentric 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.RobotCentric 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