# AbsoluteDrive (YAGSL-Example API)
declaration: package: frc.robot.commands.swervedrive.drivebase, class: AbsoluteDrive

Package frc.robot.commands.swervedrive.drivebase

# Class AbsoluteDrive

java.lang.Object
edu.wpi.first.wpilibj2.command.Command
frc.robot.commands.swervedrive.drivebase.AbsoluteDrive

All Implemented Interfaces:
  `edu.wpi.first.util.sendable.Sendable`

public class AbsoluteDrive extends edu.wpi.first.wpilibj2.command.Command
An example command that uses an example subsystem.

## Nested Class Summary

## Nested classes/interfaces inherited from class edu.wpi.first.wpilibj2.command.Command

`edu.wpi.first.wpilibj2.command.Command.InterruptionBehavior`

## Field Summary

### Fields inherited from class edu.wpi.first.wpilibj2.command.Command

`m_requirements`

## Constructor Summary

Constructors
Constructor
Description
`AbsoluteDrive(SwerveSubsystem swerve, DoubleSupplier vX, DoubleSupplier vY, DoubleSupplier headingHorizontal, DoubleSupplier headingVertical)`
Used to drive a swerve robot in full field-centric mode.

## Method Summary

Modifier and Type
Method
Description
`void`
`end(boolean interrupted)`
`void`
`execute()`
`void`
`initialize()`
`boolean`
`isFinished()`

### Methods inherited from class edu.wpi.first.wpilibj2.command.Command

`addRequirements, alongWith, andThen, andThen, asProxy, beforeStarting, beforeStarting, cancel, deadlineWith, finallyDo, finallyDo, getInterruptionBehavior, getName, getRequirements, getSubsystem, handleInterrupt, hasRequirement, ignoringDisable, initSendable, isScheduled, onlyIf, onlyWhile, raceWith, repeatedly, runsWhenDisabled, schedule, setName, setSubsystem, unless, until, withInterruptBehavior, withName, withTimeout`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### AbsoluteDrive

public AbsoluteDrive(SwerveSubsystem swerve, DoubleSupplier vX, DoubleSupplier vY, DoubleSupplier headingHorizontal, DoubleSupplier headingVertical)
Used to drive a swerve robot in full field-centric mode. vX and vY supply translation inputs, where x is torwards/away from alliance wall and y is left/right. headingHorzontal and headingVertical are the Cartesian coordinates from which the robot's angle will be derivedâ€” they will be converted to a polar angle, which the robot will rotate to.

Parameters:
  `swerve` - The swerve drivebase subsystem.
  `vX` - DoubleSupplier that supplies the x-translation joystick input. Should be in the range -1 to 1 with deadband already accounted for. Positive X is away from the alliance wall.
  `vY` - DoubleSupplier that supplies the y-translation joystick input. Should be in the range -1 to 1 with deadband already accounted for. Positive Y is towards the left wall when looking through the driver station glass.
  `headingHorizontal` - DoubleSupplier that supplies the horizontal component of the robot's heading angle. In the robot coordinate system, this is along the same axis as vY. Should range from -1 to 1 with no deadband. Positive is towards the left wall when looking through the driver station glass.
  `headingVertical` - DoubleSupplier that supplies the vertical component of the robot's heading angle. In the robot coordinate system, this is along the same axis as vX. Should range from -1 to 1 with no deadband. Positive is away from the alliance wall.

## Method Details

### initialize

public void initialize()

Overrides:
  `initialize` in class `edu.wpi.first.wpilibj2.command.Command`

### execute

public void execute()

Overrides:
  `execute` in class `edu.wpi.first.wpilibj2.command.Command`

### end

public void end(boolean interrupted)

Overrides:
  `end` in class `edu.wpi.first.wpilibj2.command.Command`

### isFinished

public boolean isFinished()

Overrides:
  `isFinished` in class `edu.wpi.first.wpilibj2.command.Command`