diff --git a/README.md b/README.md index f158228..ebfde58 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ SwerveDrive swerveDrive=new SwerveParser(new File(Filesystem.getDeployDirectory( - [ ] Install NavX Library - [ ] Install Phoenix Library - [ ] Install REVLib. +- [ ] Install ReduxLib. - [ ] Install YAGSL (`https://broncbotz3481.github.io/YAGSL-Lib/yagsl/yagsl.json`) ### [Easy Configuration File Generation](https://broncbotz3481.github.io/YAGSL-Example/) @@ -43,6 +44,9 @@ https://user-images.githubusercontent.com/10247070/219801620-c2850078-9b58-4f32- # Special Thanks to Team 7900! Trial N' Error Without the debugging and aid of Team 7900 the project could never be as stable or active as it is. +# Special Thanks to Team 6238! Popcorn Penguins! +Without their hardwork debugging the issue with feedforwards the 2024 release would not have been possible. Thank you! + # Support our developers! Buy Me a Robot at ko-fi.com \ No newline at end of file diff --git a/docs/allclasses-index.html b/docs/allclasses-index.html index 27891eb..ac17b2f 100644 --- a/docs/allclasses-index.html +++ b/docs/allclasses-index.html @@ -1,18 +1,17 @@ - -All Classes and Interfaces + +All Classes and Interfaces (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -60,38 +59,64 @@ loadScripts(document, 'script');
    Class
    Description
    -
    ADIS16448Swerve
    +
    AbsoluteDrive
    +
    An example command that uses an example subsystem.
    +
    +
    AbsoluteDriveAdv
    +
    +
    A more advanced Swerve Control System that has 4 buttons for which direction to face
    +
    +
    AbsoluteFieldDrive
    +
    +
    An example command that uses an example subsystem.
    +
    +
    ADIS16448Swerve
    +
    IMU Swerve class for the ADIS16448_IMU device.
    -
    ADIS16470Swerve
    -
    + +
    IMU Swerve class for the ADIS16470_IMU device.
    - -
    + +
    IMU Swerve class for the ADXRS450_Gyro device.
    - -
    + +
    Swerve Absolute Encoder for Thrifty Encoders and other analog encoders.
    - -
    + +
    Creates a IMU for AnalogGyro devices, only uses yaw.
    + +
    +
    Auto Balance command using a simple PID controller.
    +
    Inverted motor JSON parsed class.
    -
    HELIUM CANandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
    +
    HELIUM Canandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
    Swerve Absolute Encoder for CTRE CANCoders.
    + +
    +
    The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean constants.
    +
    + +
     
    + +
     
    + +
     
    SwerveController parsed class.
    @@ -104,63 +129,72 @@ loadScripts(document, 'script');
    Location JSON parsed class.
    - +
    +
    Do NOT add any static variables to this class, or any initialization at all.
    +
    + +
    Object with significant mass that needs to be taken into account.
    - -
    + +
    SwerveModule JSON parsed class.
    - -
    + +
    Used to store doubles for motor configuration.
    - -
    + +
    Used to store ints for motor configuration.
    - -
    + +
    Communicates with the NavX as the IMU.
    - -
    + + - -
    -
    Manages physics simulation for CTRE products.
    -
    - +
    -
    Holds information about a simulated device.
    -
    - -
    Hold the PIDF and Integral Zone values for a PID.
    - -
    + +
    SwerveModule PID with Feedforward for the drive motor and angle motor.
    - -
    + +
    Class to hold the minimum and maximum input or output of the PIDF.
    - -
    + +
    SwerveIMU interface for the Pigeon2
    - -
    + +
    SwerveIMU interface for the Pigeon.
    - -
    + +
    DutyCycle encoders such as "US Digital MA3 with PWM Output, the CTRE Mag Encoder, the Rev Hex Encoder, and the AM Mag Encoder." attached via a PWM lane.
    + +
    +
    The VM is configured to automatically run this class, and to call the functions corresponding to each mode, as + described in the TimedRobot documentation.
    +
    + +
    +
    This class is where the bulk of the robot should be declared.
    +
    + +
    +
    An implementation of CANSparkFlex as a SwerveMotor.
    +
    SparkMax absolute encoder, attached through the data port analog pin.
    @@ -177,97 +211,87 @@ loadScripts(document, 'script');
    An implementation of CANSparkMax as a SwerveMotor.
    - -
    -
    REV Slots for PID configuration.
    -
    - -
    + +
    Swerve abstraction class to define a standard interface with absolute encoders for swerve modules..
    - -
    + +
    Controller class used to convert raw inputs into robot speeds.
    - -
    + +
    Swerve Controller configuration class which is used to configure SwerveController.
    - -
    + +
    Swerve Drive class representing and controlling the swerve drive.
    - -
    + +
    Swerve drive configurations used during SwerveDrive construction.
    - -
    + +
    SwerveDrive JSON parsed class.
    - -
    + +
    Telemetry to describe the SwerveDrive following frc-web-components.
    - -
    + +
    Verbosity of telemetry data sent back.
    - -
    + +
    Swerve IMU abstraction to define a standard interface with a swerve drive.
    - -
    + +
    Simulation for SwerveDrive IMU.
    - -
    + +
    Mathematical functions which pertain to swerve drive.
    - -
    + +
    The Swerve Module class which represents and controls Swerve Modules for the swerve drive.
    - -
    + +
    Swerve Module configuration class which is used to configure SwerveModule.
    - -
    + +
    Configuration class which stores physical characteristics shared between every swerve module.
    - -
    + +
    Class to hold simulation data for SwerveModule
    - -
    + +
    Swerve motor abstraction which defines a standard interface for motors within a swerve module.
    - -
    + +
    Helper class used to parse the JSON directory with specified configuration options.
    - + +
     
    +
    -
    Holds information about a simulated TalonFX.
    -
    - -
    TalonFX Swerve Motor.
    - -
    -
    Holds information about a simulated TalonSRX.
    -
    WPI_TalonSRX Swerve Motor.
    - +
    -
    Holds information about a simulated VictorSPX.
    +
    An example command that uses an example subsystem.
    diff --git a/docs/allpackages-index.html b/docs/allpackages-index.html index 69ea945..e760a66 100644 --- a/docs/allpackages-index.html +++ b/docs/allpackages-index.html @@ -1,18 +1,17 @@ - -All Packages + +All Packages (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -54,6 +53,14 @@ loadScripts(document, 'script');
    Package
    Description
    + +
     
    + +
     
    + +
     
    + +
     
    Yet-Another Generic Swerve Library (YAGSL) main package AKA swervelib.
    @@ -94,12 +101,8 @@ loadScripts(document, 'script');
    Classes used to simulate the swerve drive.
    - +
    -
    CTRE Physics Simulator.
    -
    - -
    Telemetry package for sending data to NT4 or SmartDashboard.
    diff --git a/docs/constant-values.html b/docs/constant-values.html index 406756f..59209af 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -1,18 +1,17 @@ - -Constant Field Values + +Constant Field Values (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -52,11 +51,73 @@ loadScripts(document, 'script');

    Contents

    +
    +

    frc.robot.*

    + +

    swervelib.encoders.*

      @@ -87,34 +148,6 @@ loadScripts(document, 'script');
      5
    -
  • -
    swervelib.motors.TalonFXSwerve
    -
    -
    Modifier and Type
    -
    Constant Field
    -
    Value
    -
    private final boolean
    - -
    false
    -
    private final boolean
    - -
    false
    -
    -
  • -
  • -
    swervelib.motors.TalonSRXSwerve
    -
    -
    Modifier and Type
    -
    Constant Field
    -
    Value
    -
    private final boolean
    - -
    false
    -
    private final boolean
    - -
    false
    -
    -
  • diff --git a/docs/element-list b/docs/element-list index 509cbf2..a203d46 100644 --- a/docs/element-list +++ b/docs/element-list @@ -1,3 +1,7 @@ +frc.robot +frc.robot.commands.swervedrive.auto +frc.robot.commands.swervedrive.drivebase +frc.robot.subsystems.swervedrive swervelib swervelib.encoders swervelib.imu @@ -8,5 +12,4 @@ swervelib.parser.deserializer swervelib.parser.json swervelib.parser.json.modules swervelib.simulation -swervelib.simulation.ctre swervelib.telemetry diff --git a/docs/frc/robot/Constants.Auton.html b/docs/frc/robot/Constants.Auton.html new file mode 100644 index 0000000..2ca5187 --- /dev/null +++ b/docs/frc/robot/Constants.Auton.html @@ -0,0 +1,185 @@ + + + + +Constants.Auton (YAGSL-Example API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    +
    Package frc.robot
    +

    Class Constants.Auton

    +
    +
    java.lang.Object +
    frc.robot.Constants.Auton
    +
    +
    +
    +
    Enclosing class:
    +
    Constants
    +
    +
    +
    public static final class Constants.Auton +extends Object
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Field Details

      +
        +
      • +
        +

        TranslationPID

        +
        public static final PIDFConfig TranslationPID
        +
        +
      • +
      • +
        +

        angleAutoPID

        +
        public static final PIDFConfig angleAutoPID
        +
        +
      • +
      • +
        +

        MAX_ACCELERATION

        +
        public static final double MAX_ACCELERATION
        +
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        Auton

        +
        public Auton()
        +
        +
      • +
      +
      +
    • +
    +
    + +
    +
    +
    + + diff --git a/docs/frc/robot/Constants.Drivebase.html b/docs/frc/robot/Constants.Drivebase.html new file mode 100644 index 0000000..cd9190c --- /dev/null +++ b/docs/frc/robot/Constants.Drivebase.html @@ -0,0 +1,167 @@ + + + + +Constants.Drivebase (YAGSL-Example API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    +
    Package frc.robot
    +

    Class Constants.Drivebase

    +
    +
    java.lang.Object +
    frc.robot.Constants.Drivebase
    +
    +
    +
    +
    Enclosing class:
    +
    Constants
    +
    +
    +
    public static final class Constants.Drivebase +extends Object
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Field Details

      +
        +
      • +
        +

        WHEEL_LOCK_TIME

        +
        public static final double WHEEL_LOCK_TIME
        +
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        Drivebase

        +
        public Drivebase()
        +
        +
      • +
      +
      +
    • +
    +
    + +
    +
    +
    + + diff --git a/docs/frc/robot/Constants.OperatorConstants.html b/docs/frc/robot/Constants.OperatorConstants.html new file mode 100644 index 0000000..751ad77 --- /dev/null +++ b/docs/frc/robot/Constants.OperatorConstants.html @@ -0,0 +1,218 @@ + + + + +Constants.OperatorConstants (YAGSL-Example API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    +
    Package frc.robot
    +

    Class Constants.OperatorConstants

    +
    +
    java.lang.Object +
    frc.robot.Constants.OperatorConstants
    +
    +
    +
    +
    Enclosing class:
    +
    Constants
    +
    +
    +
    public static class Constants.OperatorConstants +extends Object
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Field Details

      +
        +
      • +
        +

        LEFT_X_DEADBAND

        +
        public static final double LEFT_X_DEADBAND
        +
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      • +
        +

        LEFT_Y_DEADBAND

        +
        public static final double LEFT_Y_DEADBAND
        +
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      • +
        +

        RIGHT_X_DEADBAND

        +
        public static final double RIGHT_X_DEADBAND
        +
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      • +
        +

        TURN_CONSTANT

        +
        public static final double TURN_CONSTANT
        +
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        OperatorConstants

        +
        public OperatorConstants()
        +
        +
      • +
      +
      +
    • +
    +
    + +
    +
    +
    + + diff --git a/docs/swervelib/simulation/ctre/VictorSPXSimProfile.html b/docs/frc/robot/Constants.html similarity index 51% rename from docs/swervelib/simulation/ctre/VictorSPXSimProfile.html rename to docs/frc/robot/Constants.html index 49b9131..46c01ec 100644 --- a/docs/swervelib/simulation/ctre/VictorSPXSimProfile.html +++ b/docs/frc/robot/Constants.html @@ -1,26 +1,21 @@ - -VictorSPXSimProfile + +Constants (YAGSL-Example API) - - + - - - - - - + + + + + + -
    @@ -154,26 +132,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        _lastTime

        -
        private long _lastTime
        -
        -
      • -
      • -
        -

        _running

        -
        private boolean _running
        -
        -
      • -
      -
      -
    • @@ -181,8 +139,9 @@ loadScripts(document, 'script');
      • -

        SimProfile

        -
        SimProfile()
        +

        RobotContainer

        +
        public RobotContainer()
        +
        The container for the robot. Contains subsystems, OI devices, and commands.
      @@ -194,17 +153,26 @@ loadScripts(document, 'script');

      Method Details

      • -
        -

        run

        -
        public void run()
        -
        Runs the simulation profile. Implemented by device-specific profiles.
        +
        +

        getAutonomousCommand

        +
        public edu.wpi.first.wpilibj2.command.Command getAutonomousCommand()
        +
        Use this to pass the autonomous command to the main Robot class.
        +
        +
        Returns:
        +
        the command to run in autonomous
        +
      • -
        -

        getPeriod

        -
        protected double getPeriod()
        -
        Returns the time since last call, in milliseconds.
        +
        +

        setDriveMode

        +
        public void setDriveMode()
        +
        +
      • +
      • +
        +

        setMotorBrake

        +
        public void setMotorBrake(boolean brake)
      diff --git a/docs/frc/robot/commands/swervedrive/auto/AutoBalanceCommand.html b/docs/frc/robot/commands/swervedrive/auto/AutoBalanceCommand.html new file mode 100644 index 0000000..6bd66c6 --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/auto/AutoBalanceCommand.html @@ -0,0 +1,257 @@ + + + + +AutoBalanceCommand (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class AutoBalanceCommand

      +
      +
      java.lang.Object +
      edu.wpi.first.wpilibj2.command.Command +
      frc.robot.commands.swervedrive.auto.AutoBalanceCommand
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      edu.wpi.first.util.sendable.Sendable
      +
      +
      +
      public class AutoBalanceCommand +extends edu.wpi.first.wpilibj2.command.Command
      +
      Auto Balance command using a simple PID controller. Created by Team 3512 + ...
      +
      +
      +
        + +
      • +
        +

        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
        + +
         
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        void
        +
        end(boolean interrupted)
        +
        +
        The action to take when the command ends.
        +
        +
        void
        + +
        +
        The main body of a command.
        +
        +
        void
        + +
        +
        The initial subroutine of a command.
        +
        +
        boolean
        + +
        +
        + Returns whether this command has finished.
        +
        +
        +
        +
        +
        +

        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

        +
          +
        • +
          +

          AutoBalanceCommand

          +
          public AutoBalanceCommand(SwerveSubsystem swerveSubsystem)
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          initialize

          +
          public void initialize()
          +
          The initial subroutine of a command. Called once when the command is initially scheduled.
          +
          +
          Overrides:
          +
          initialize in class edu.wpi.first.wpilibj2.command.Command
          +
          +
          +
        • +
        • +
          +

          execute

          +
          public void execute()
          +
          The main body of a command. Called repeatedly while the command is scheduled. (That is, it is called repeatedly + until isFinished()) returns true.)
          +
          +
          Overrides:
          +
          execute in class edu.wpi.first.wpilibj2.command.Command
          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          public boolean isFinished()
          +

          + Returns whether this command has finished. Once a command finishes -- indicated by this method returning true -- + the scheduler will call its end(boolean) method. +

          + Returning false will result in the command never ending automatically. It may still be cancelled manually or + interrupted by another command. Hard coding this command to always return true will result in the command executing + once and finishing immediately. It is recommended to use * + InstantCommand for such an operation. +

          +
          +
          Overrides:
          +
          isFinished in class edu.wpi.first.wpilibj2.command.Command
          +
          Returns:
          +
          whether this command has finished.
          +
          +
          +
        • +
        • +
          +

          end

          +
          public void end(boolean interrupted)
          +
          The action to take when the command ends. Called when either the command finishes normally -- that is it is called + when isFinished() returns true -- or when it is interrupted/canceled. This is where you may want to wrap + up loose ends, like shutting off a motor that was being used in the command.
          +
          +
          Overrides:
          +
          end in class edu.wpi.first.wpilibj2.command.Command
          +
          Parameters:
          +
          interrupted - whether the command was interrupted/canceled
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/frc/robot/commands/swervedrive/auto/package-summary.html b/docs/frc/robot/commands/swervedrive/auto/package-summary.html new file mode 100644 index 0000000..35aab97 --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/auto/package-summary.html @@ -0,0 +1,83 @@ + + + + +frc.robot.commands.swervedrive.auto (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Package frc.robot.commands.swervedrive.auto

      +
      +
      +
      package frc.robot.commands.swervedrive.auto
      +
      +
        +
      • +
        +
        Classes
        +
        +
        Class
        +
        Description
        + +
        +
        Auto Balance command using a simple PID controller.
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + + diff --git a/docs/frc/robot/commands/swervedrive/auto/package-tree.html b/docs/frc/robot/commands/swervedrive/auto/package-tree.html new file mode 100644 index 0000000..d4a83b7 --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/auto/package-tree.html @@ -0,0 +1,74 @@ + + + + +frc.robot.commands.swervedrive.auto Class Hierarchy (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package frc.robot.commands.swervedrive.auto

      +Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • java.lang.Object +
          +
        • edu.wpi.first.wpilibj2.command.Command (implements edu.wpi.first.util.sendable.Sendable) + +
        • +
        +
      • +
      +
      +
      +
      +
      + + diff --git a/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteDrive.html b/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteDrive.html new file mode 100644 index 0000000..9505376 --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteDrive.html @@ -0,0 +1,258 @@ + + + + +AbsoluteDrive (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      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
        + +
         
        +
        void
        + +
         
        +
        boolean
        + +
         
        +
        +
        +
        +
        +

        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
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteDriveAdv.html b/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteDriveAdv.html new file mode 100644 index 0000000..ec14d6e --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteDriveAdv.html @@ -0,0 +1,263 @@ + + + + +AbsoluteDriveAdv (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class AbsoluteDriveAdv

      +
      +
      java.lang.Object +
      edu.wpi.first.wpilibj2.command.Command +
      frc.robot.commands.swervedrive.drivebase.AbsoluteDriveAdv
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      edu.wpi.first.util.sendable.Sendable
      +
      +
      +
      public class AbsoluteDriveAdv +extends edu.wpi.first.wpilibj2.command.Command
      +
      A more advanced Swerve Control System that has 4 buttons for which direction to face
      +
      +
      +
        + +
      • +
        +

        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
        +
        AbsoluteDriveAdv(SwerveSubsystem swerve, + DoubleSupplier vX, + DoubleSupplier vY, + DoubleSupplier headingAdjust, + BooleanSupplier lookAway, + BooleanSupplier lookTowards, + BooleanSupplier lookLeft, + BooleanSupplier lookRight)
        +
        +
        Used to drive a swerve robot in full field-centric mode.
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        void
        +
        end(boolean interrupted)
        +
         
        +
        void
        + +
         
        +
        void
        + +
         
        +
        boolean
        + +
         
        +
        +
        +
        +
        +

        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

        +
          +
        • +
          +

          AbsoluteDriveAdv

          +
          public AbsoluteDriveAdv(SwerveSubsystem swerve, + DoubleSupplier vX, + DoubleSupplier vY, + DoubleSupplier headingAdjust, + BooleanSupplier lookAway, + BooleanSupplier lookTowards, + BooleanSupplier lookLeft, + BooleanSupplier lookRight)
          +
          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. Heading Adjust changes the current heading after being + multipied by a constant. The look booleans are shortcuts to get the robot to face a certian direction. + Based off of ideas in https://www.chiefdelphi.com/t/experiments-with-a-swerve-steering-knob/446172
          +
          +
          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.
          +
          headingAdjust - DoubleSupplier that supplies the component of the robot's heading angle that should be adjusted. + Should range from -1 to 1 with deadband already accounted for.
          +
          lookAway - Face the robot towards the opposing alliance's wall in the same direction the driver is facing
          +
          lookTowards - Face the robot towards the driver
          +
          lookLeft - Face the robot left
          +
          lookRight - Face the robot right
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        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
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteFieldDrive.html b/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteFieldDrive.html new file mode 100644 index 0000000..a5b6d1a --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/drivebase/AbsoluteFieldDrive.html @@ -0,0 +1,250 @@ + + + + +AbsoluteFieldDrive (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class AbsoluteFieldDrive

      +
      +
      java.lang.Object +
      edu.wpi.first.wpilibj2.command.Command +
      frc.robot.commands.swervedrive.drivebase.AbsoluteFieldDrive
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      edu.wpi.first.util.sendable.Sendable
      +
      +
      +
      public class AbsoluteFieldDrive +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
        + +
        +
        Used to drive a swerve robot in full field-centric mode.
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        void
        +
        end(boolean interrupted)
        +
         
        +
        void
        + +
         
        +
        void
        + +
         
        +
        boolean
        + +
         
        +
        +
        +
        +
        +

        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

        +
          +
        • +
          +

          AbsoluteFieldDrive

          +
          public AbsoluteFieldDrive(SwerveSubsystem swerve, + DoubleSupplier vX, + DoubleSupplier vY, + DoubleSupplier heading)
          +
          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.
          +
          heading - DoubleSupplier that supplies the robot's heading angle.
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        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
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/frc/robot/commands/swervedrive/drivebase/TeleopDrive.html b/docs/frc/robot/commands/swervedrive/drivebase/TeleopDrive.html new file mode 100644 index 0000000..17fa202 --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/drivebase/TeleopDrive.html @@ -0,0 +1,243 @@ + + + + +TeleopDrive (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class TeleopDrive

      +
      +
      java.lang.Object +
      edu.wpi.first.wpilibj2.command.Command +
      frc.robot.commands.swervedrive.drivebase.TeleopDrive
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      edu.wpi.first.util.sendable.Sendable
      +
      +
      +
      public class TeleopDrive +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
        + +
        +
        Creates a new ExampleCommand.
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        void
        +
        end(boolean interrupted)
        +
         
        +
        void
        + +
         
        +
        void
        + +
         
        +
        boolean
        + +
         
        +
        +
        +
        +
        +

        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

        + +
        +
      • + +
      • +
        +

        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
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/frc/robot/commands/swervedrive/drivebase/package-summary.html b/docs/frc/robot/commands/swervedrive/drivebase/package-summary.html new file mode 100644 index 0000000..fbac3f1 --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/drivebase/package-summary.html @@ -0,0 +1,95 @@ + + + + +frc.robot.commands.swervedrive.drivebase (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Package frc.robot.commands.swervedrive.drivebase

      +
      +
      +
      package frc.robot.commands.swervedrive.drivebase
      +
      +
        +
      • +
        +
        Classes
        +
        +
        Class
        +
        Description
        + +
        +
        An example command that uses an example subsystem.
        +
        + +
        +
        A more advanced Swerve Control System that has 4 buttons for which direction to face
        +
        + +
        +
        An example command that uses an example subsystem.
        +
        + +
        +
        An example command that uses an example subsystem.
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + + diff --git a/docs/frc/robot/commands/swervedrive/drivebase/package-tree.html b/docs/frc/robot/commands/swervedrive/drivebase/package-tree.html new file mode 100644 index 0000000..00b518b --- /dev/null +++ b/docs/frc/robot/commands/swervedrive/drivebase/package-tree.html @@ -0,0 +1,77 @@ + + + + +frc.robot.commands.swervedrive.drivebase Class Hierarchy (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package frc.robot.commands.swervedrive.drivebase

      +Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • java.lang.Object +
          +
        • edu.wpi.first.wpilibj2.command.Command (implements edu.wpi.first.util.sendable.Sendable) + +
        • +
        +
      • +
      +
      +
      +
      +
      + + diff --git a/docs/frc/robot/package-summary.html b/docs/frc/robot/package-summary.html new file mode 100644 index 0000000..390e418 --- /dev/null +++ b/docs/frc/robot/package-summary.html @@ -0,0 +1,102 @@ + + + + +frc.robot (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Package frc.robot

      +
      +
      +
      package frc.robot
      +
      +
        +
      • +
        +
        Classes
        +
        +
        Class
        +
        Description
        + +
        +
        The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean constants.
        +
        + +
         
        + +
         
        + +
         
        + +
        +
        Do NOT add any static variables to this class, or any initialization at all.
        +
        + +
        +
        The VM is configured to automatically run this class, and to call the functions corresponding to each mode, as + described in the TimedRobot documentation.
        +
        + +
        +
        This class is where the bulk of the robot should be declared.
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + + diff --git a/docs/frc/robot/package-tree.html b/docs/frc/robot/package-tree.html new file mode 100644 index 0000000..2a4d063 --- /dev/null +++ b/docs/frc/robot/package-tree.html @@ -0,0 +1,88 @@ + + + + +frc.robot Class Hierarchy (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package frc.robot

      +Package Hierarchies: + +
      +
      +

      Class Hierarchy

      + +
      +
      +
      +
      + + diff --git a/docs/frc/robot/subsystems/swervedrive/SwerveSubsystem.html b/docs/frc/robot/subsystems/swervedrive/SwerveSubsystem.html new file mode 100644 index 0000000..6878ced --- /dev/null +++ b/docs/frc/robot/subsystems/swervedrive/SwerveSubsystem.html @@ -0,0 +1,611 @@ + + + + +SwerveSubsystem (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class SwerveSubsystem

      +
      +
      java.lang.Object +
      edu.wpi.first.wpilibj2.command.SubsystemBase +
      frc.robot.subsystems.swervedrive.SwerveSubsystem
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      edu.wpi.first.util.sendable.Sendable, edu.wpi.first.wpilibj2.command.Subsystem
      +
      +
      +
      public class SwerveSubsystem +extends edu.wpi.first.wpilibj2.command.SubsystemBase
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        double
        + +
        +
        Maximum speed of the robot in meters per second, used to limit acceleration.
        +
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        SwerveSubsystem(File directory)
        +
        +
        Initialize SwerveDrive with the directory provided.
        +
        + +
        +
        Construct the swerve drive.
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        void
        + +
        +
        Add a fake vision reading for testing purposes.
        +
        +
        void
        +
        drive(edu.wpi.first.math.geometry.Translation2d translation, + double rotation, + boolean fieldRelative)
        +
        +
        The primary method for controlling the drivebase.
        +
        +
        void
        +
        drive(edu.wpi.first.math.kinematics.ChassisSpeeds velocity)
        +
        +
        Drive according to the chassis robot oriented velocity.
        +
        +
        void
        +
        driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds velocity)
        +
        +
        Drive the robot given a chassis field oriented velocity.
        +
        +
        edu.wpi.first.wpilibj2.command.Command
        +
        getAutonomousCommand(String pathName, + boolean setOdomToStart)
        +
        +
        Get the path follower with events.
        +
        +
        edu.wpi.first.math.kinematics.ChassisSpeeds
        + +
        +
        Gets the current field-relative velocity (x, y and omega) of the robot
        +
        +
        edu.wpi.first.math.geometry.Rotation2d
        + +
        +
        Gets the current yaw angle of the robot, as reported by the imu.
        +
        +
        edu.wpi.first.math.kinematics.SwerveDriveKinematics
        + +
        +
        Get the swerve drive kinematics object.
        +
        +
        edu.wpi.first.math.geometry.Rotation2d
        + +
        +
        Gets the current pitch angle of the robot, as reported by the imu.
        +
        +
        edu.wpi.first.math.geometry.Pose2d
        + +
        +
        Gets the current pose (position and rotation) of the robot, as reported by odometry.
        +
        +
        edu.wpi.first.math.kinematics.ChassisSpeeds
        + +
        +
        Gets the current velocity (x, y and omega) of the robot
        +
        + + +
        +
        Get the SwerveController in the swerve drive.
        +
        + + +
        +
        Get the SwerveDriveConfiguration object.
        +
        +
        edu.wpi.first.math.kinematics.ChassisSpeeds
        +
        getTargetSpeeds(double xInput, + double yInput, + double headingX, + double headingY)
        +
        +
        Get the chassis speeds based on controller input of 2 joysticks.
        +
        +
        edu.wpi.first.math.kinematics.ChassisSpeeds
        +
        getTargetSpeeds(double xInput, + double yInput, + edu.wpi.first.math.geometry.Rotation2d angle)
        +
        +
        Get the chassis speeds based on controller input of 1 joystick and one angle.
        +
        +
        void
        + +
        +
        Lock the swerve drive to prevent it from moving.
        +
        +
        void
        + +
         
        +
        void
        +
        postTrajectory(edu.wpi.first.math.trajectory.Trajectory trajectory)
        +
        +
        Post the trajectory to the field.
        +
        +
        void
        +
        resetOdometry(edu.wpi.first.math.geometry.Pose2d initialHolonomicPose)
        +
        +
        Resets odometry to the given pose.
        +
        +
        void
        +
        setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds chassisSpeeds)
        +
        +
        Set chassis speeds with closed-loop velocity control.
        +
        +
        void
        +
        setMotorBrake(boolean brake)
        +
        +
        Sets the drive motors to brake/coast mode.
        +
        +
        void
        + +
        +
        Setup AutoBuilder for PathPlanner.
        +
        +
        void
        + +
         
        +
        void
        + +
        +
        Resets the gyro angle to zero and resets odometry to the same position, but facing toward 0.
        +
        +
        +
        +
        +
        +

        Methods inherited from class edu.wpi.first.wpilibj2.command.SubsystemBase

        +addChild, getName, getSubsystem, initSendable, setName, setSubsystem
        +
        +

        Methods inherited from class java.lang.Object

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

        Methods inherited from interface edu.wpi.first.wpilibj2.command.Subsystem

        +defer, getCurrentCommand, getDefaultCommand, register, removeDefaultCommand, run, runEnd, runOnce, setDefaultCommand, startEnd
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          maximumSpeed

          +
          public double maximumSpeed
          +
          Maximum speed of the robot in meters per second, used to limit acceleration.
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          SwerveSubsystem

          +
          public SwerveSubsystem(File directory)
          +
          Initialize SwerveDrive with the directory provided.
          +
          +
          Parameters:
          +
          directory - Directory of swerve drive config files.
          +
          +
          +
        • +
        • +
          +

          SwerveSubsystem

          +
          public SwerveSubsystem(SwerveDriveConfiguration driveCfg, + SwerveControllerConfiguration controllerCfg)
          +
          Construct the swerve drive.
          +
          +
          Parameters:
          +
          driveCfg - SwerveDriveConfiguration for the swerve.
          +
          controllerCfg - Swerve Controller.
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          setupPathPlanner

          +
          public void setupPathPlanner()
          +
          Setup AutoBuilder for PathPlanner.
          +
          +
        • +
        • +
          +

          getAutonomousCommand

          +
          public edu.wpi.first.wpilibj2.command.Command getAutonomousCommand(String pathName, + boolean setOdomToStart)
          +
          Get the path follower with events.
          +
          +
          Parameters:
          +
          pathName - PathPlanner path name.
          +
          setOdomToStart - Set the odometry position to the start of the path.
          +
          Returns:
          +
          AutoBuilder.followPath(PathPlannerPath) path command.
          +
          +
          +
        • +
        • +
          +

          drive

          +
          public void drive(edu.wpi.first.math.geometry.Translation2d translation, + double rotation, + boolean fieldRelative)
          +
          The primary method for controlling the drivebase. Takes a Translation2d and a rotation rate, and + calculates and commands module states accordingly. Can use either open-loop or closed-loop velocity control for + the wheel velocities. Also has field- and robot-relative modes, which affect how the translation vector is used.
          +
          +
          Parameters:
          +
          translation - Translation2d that is the commanded linear velocity of the robot, in meters per + second. In robot-relative mode, positive x is torwards the bow (front) and positive y is + torwards port (left). In field-relative mode, positive x is away from the alliance wall + (field North) and positive y is torwards the left wall when looking through the driver station + glass (field West).
          +
          rotation - Robot angular rate, in radians per second. CCW positive. Unaffected by field/robot + relativity.
          +
          fieldRelative - Drive mode. True for field-relative, false for robot-relative.
          +
          +
          +
        • +
        • +
          +

          driveFieldOriented

          +
          public void driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds velocity)
          +
          Drive the robot given a chassis field oriented velocity.
          +
          +
          Parameters:
          +
          velocity - Velocity according to the field.
          +
          +
          +
        • +
        • +
          +

          drive

          +
          public void drive(edu.wpi.first.math.kinematics.ChassisSpeeds velocity)
          +
          Drive according to the chassis robot oriented velocity.
          +
          +
          Parameters:
          +
          velocity - Robot oriented ChassisSpeeds
          +
          +
          +
        • +
        • +
          +

          periodic

          +
          public void periodic()
          +
          +
        • +
        • +
          +

          simulationPeriodic

          +
          public void simulationPeriodic()
          +
          +
        • +
        • +
          +

          getKinematics

          +
          public edu.wpi.first.math.kinematics.SwerveDriveKinematics getKinematics()
          +
          Get the swerve drive kinematics object.
          +
          +
          Returns:
          +
          SwerveDriveKinematics of the swerve drive.
          +
          +
          +
        • +
        • +
          +

          resetOdometry

          +
          public void resetOdometry(edu.wpi.first.math.geometry.Pose2d initialHolonomicPose)
          +
          Resets odometry to the given pose. Gyro angle and module positions do not need to be reset when calling this + method. However, if either gyro angle or module position is reset, this must be called in order for odometry to + keep working.
          +
          +
          Parameters:
          +
          initialHolonomicPose - The pose to set the odometry to
          +
          +
          +
        • +
        • +
          +

          getPose

          +
          public edu.wpi.first.math.geometry.Pose2d getPose()
          +
          Gets the current pose (position and rotation) of the robot, as reported by odometry.
          +
          +
          Returns:
          +
          The robot's pose
          +
          +
          +
        • +
        • +
          +

          setChassisSpeeds

          +
          public void setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds chassisSpeeds)
          +
          Set chassis speeds with closed-loop velocity control.
          +
          +
          Parameters:
          +
          chassisSpeeds - Chassis Speeds to set.
          +
          +
          +
        • +
        • +
          +

          postTrajectory

          +
          public void postTrajectory(edu.wpi.first.math.trajectory.Trajectory trajectory)
          +
          Post the trajectory to the field.
          +
          +
          Parameters:
          +
          trajectory - The trajectory to post.
          +
          +
          +
        • +
        • +
          +

          zeroGyro

          +
          public void zeroGyro()
          +
          Resets the gyro angle to zero and resets odometry to the same position, but facing toward 0.
          +
          +
        • +
        • +
          +

          setMotorBrake

          +
          public void setMotorBrake(boolean brake)
          +
          Sets the drive motors to brake/coast mode.
          +
          +
          Parameters:
          +
          brake - True to set motors to brake mode, false for coast.
          +
          +
          +
        • +
        • +
          +

          getHeading

          +
          public edu.wpi.first.math.geometry.Rotation2d getHeading()
          +
          Gets the current yaw angle of the robot, as reported by the imu. CCW positive, not wrapped.
          +
          +
          Returns:
          +
          The yaw angle
          +
          +
          +
        • +
        • +
          +

          getTargetSpeeds

          +
          public edu.wpi.first.math.kinematics.ChassisSpeeds getTargetSpeeds(double xInput, + double yInput, + double headingX, + double headingY)
          +
          Get the chassis speeds based on controller input of 2 joysticks. One for speeds in which direction. The other for + the angle of the robot.
          +
          +
          Parameters:
          +
          xInput - X joystick input for the robot to move in the X direction.
          +
          yInput - Y joystick input for the robot to move in the Y direction.
          +
          headingX - X joystick which controls the angle of the robot.
          +
          headingY - Y joystick which controls the angle of the robot.
          +
          Returns:
          +
          ChassisSpeeds which can be sent to th Swerve Drive.
          +
          +
          +
        • +
        • +
          +

          getTargetSpeeds

          +
          public edu.wpi.first.math.kinematics.ChassisSpeeds getTargetSpeeds(double xInput, + double yInput, + edu.wpi.first.math.geometry.Rotation2d angle)
          +
          Get the chassis speeds based on controller input of 1 joystick and one angle.
          +
          +
          Parameters:
          +
          xInput - X joystick input for the robot to move in the X direction.
          +
          yInput - Y joystick input for the robot to move in the Y direction.
          +
          angle - The angle in as a Rotation2d.
          +
          Returns:
          +
          ChassisSpeeds which can be sent to th Swerve Drive.
          +
          +
          +
        • +
        • +
          +

          getFieldVelocity

          +
          public edu.wpi.first.math.kinematics.ChassisSpeeds getFieldVelocity()
          +
          Gets the current field-relative velocity (x, y and omega) of the robot
          +
          +
          Returns:
          +
          A ChassisSpeeds object of the current field-relative velocity
          +
          +
          +
        • +
        • +
          +

          getRobotVelocity

          +
          public edu.wpi.first.math.kinematics.ChassisSpeeds getRobotVelocity()
          +
          Gets the current velocity (x, y and omega) of the robot
          +
          +
          Returns:
          +
          A ChassisSpeeds object of the current velocity
          +
          +
          +
        • +
        • +
          +

          getSwerveController

          +
          public SwerveController getSwerveController()
          +
          Get the SwerveController in the swerve drive.
          +
          +
          Returns:
          +
          SwerveController from the SwerveDrive.
          +
          +
          +
        • +
        • +
          +

          getSwerveDriveConfiguration

          +
          public SwerveDriveConfiguration getSwerveDriveConfiguration()
          +
          Get the SwerveDriveConfiguration object.
          +
          +
          Returns:
          +
          The SwerveDriveConfiguration fpr the current drive.
          +
          +
          +
        • +
        • +
          +

          lock

          +
          public void lock()
          +
          Lock the swerve drive to prevent it from moving.
          +
          +
        • +
        • +
          +

          getPitch

          +
          public edu.wpi.first.math.geometry.Rotation2d getPitch()
          +
          Gets the current pitch angle of the robot, as reported by the imu.
          +
          +
          Returns:
          +
          The heading as a Rotation2d angle
          +
          +
          +
        • +
        • +
          +

          addFakeVisionReading

          +
          public void addFakeVisionReading()
          +
          Add a fake vision reading for testing purposes.
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/frc/robot/subsystems/swervedrive/package-summary.html b/docs/frc/robot/subsystems/swervedrive/package-summary.html new file mode 100644 index 0000000..5713a91 --- /dev/null +++ b/docs/frc/robot/subsystems/swervedrive/package-summary.html @@ -0,0 +1,81 @@ + + + + +frc.robot.subsystems.swervedrive (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Package frc.robot.subsystems.swervedrive

      +
      +
      +
      package frc.robot.subsystems.swervedrive
      +
      + +
      +
      +
      +
      + + diff --git a/docs/frc/robot/subsystems/swervedrive/package-tree.html b/docs/frc/robot/subsystems/swervedrive/package-tree.html new file mode 100644 index 0000000..3146484 --- /dev/null +++ b/docs/frc/robot/subsystems/swervedrive/package-tree.html @@ -0,0 +1,74 @@ + + + + +frc.robot.subsystems.swervedrive Class Hierarchy (YAGSL-Example API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package frc.robot.subsystems.swervedrive

      +Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • java.lang.Object +
          +
        • edu.wpi.first.wpilibj2.command.SubsystemBase (implements edu.wpi.first.util.sendable.Sendable, edu.wpi.first.wpilibj2.command.Subsystem) + +
        • +
        +
      • +
      +
      +
      +
      +
      + + diff --git a/docs/help-doc.html b/docs/help-doc.html index b5deda4..d70070c 100644 --- a/docs/help-doc.html +++ b/docs/help-doc.html @@ -1,18 +1,17 @@ - -API Help + +API Help (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
    • Package
    • Class
    • Tree
    • -
    • Index
    • +
    • Index
    @@ -78,7 +77,7 @@ loadScripts(document, 'script');

    Navigation

    -Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces +Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces

    Index

    -

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

    +

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.


    diff --git a/docs/index-all.html b/docs/index-all.html index 2314d24..840ff00 100644 --- a/docs/index-all.html +++ b/docs/index-all.html @@ -2,7 +2,7 @@ -Index (YAGSL-Lib API) +Index (YAGSL-Example API) @@ -11,7 +11,7 @@ - + @@ -49,9 +49,29 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z 
    All Classes and Interfaces|All Packages +A B C D E F G H I K L M N O P Q R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values

    A

    +
    AbsoluteDrive - Class in frc.robot.commands.swervedrive.drivebase
    +
    +
    An example command that uses an example subsystem.
    +
    +
    AbsoluteDrive(SwerveSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier, DoubleSupplier) - Constructor for class frc.robot.commands.swervedrive.drivebase.AbsoluteDrive
    +
    +
    Used to drive a swerve robot in full field-centric mode.
    +
    +
    AbsoluteDriveAdv - Class in frc.robot.commands.swervedrive.drivebase
    +
    +
    A more advanced Swerve Control System that has 4 buttons for which direction to face
    +
    +
    AbsoluteDriveAdv(SwerveSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier, BooleanSupplier, BooleanSupplier, BooleanSupplier, BooleanSupplier) - Constructor for class frc.robot.commands.swervedrive.drivebase.AbsoluteDriveAdv
    +
    +
    Used to drive a swerve robot in full field-centric mode.
    +
    +
    absoluteEncoder - Variable in class swervelib.motors.SparkFlexSwerve
    +
    +
    Absolute encoder attached to the SparkMax (if exists)
    +
    absoluteEncoder - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Absolute encoder attached to the SparkMax (if exists)
    @@ -76,45 +96,31 @@ loadScripts(document, 'script');
    Absolute encoder offset from 0 in degrees.
    +
    AbsoluteFieldDrive - Class in frc.robot.commands.swervedrive.drivebase
    +
    +
    An example command that uses an example subsystem.
    +
    +
    AbsoluteFieldDrive(SwerveSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier) - Constructor for class frc.robot.commands.swervedrive.drivebase.AbsoluteFieldDrive
    +
    +
    Used to drive a swerve robot in full field-centric mode.
    +
    +
    addFakeVisionReading() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Add a fake vision reading for testing purposes.
    +
    addSlewRateLimiters(SlewRateLimiter, SlewRateLimiter, SlewRateLimiter) - Method in class swervelib.SwerveController
    Add slew rate limiters to all controls.
    -
    addTalonFX(TalonFX, double, double) - Method in class swervelib.simulation.ctre.PhysicsSim
    +
    addVisionMeasurement(Pose2d, double) - Method in class swervelib.SwerveDrive
    -
    Adds a TalonFX controller to the simulator.
    +
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with + the given timestamp of the vision measurement.
    -
    addTalonFX(TalonFX, double, double, boolean) - Method in class swervelib.simulation.ctre.PhysicsSim
    +
    addVisionMeasurement(Pose2d, double, Matrix<N3, N1>) - Method in class swervelib.SwerveDrive
    -
    Adds a TalonFX controller to the simulator.
    -
    -
    addTalonSRX(TalonSRX, double, double) - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Adds a TalonSRX controller to the simulator.
    -
    -
    addTalonSRX(TalonSRX, double, double, boolean) - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Adds a TalonSRX controller to the simulator.
    -
    -
    addVictorSPX(VictorSPX) - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Adds a VictorSPX controller to the simulator.
    -
    -
    addVisionMeasurement(Pose2d, double) - Method in class swervelib.math.SwervePoseEstimator2
    -
    -
    Adds a vision measurement to the Kalman Filter.
    -
    -
    addVisionMeasurement(Pose2d, double, boolean, double) - Method in class swervelib.SwerveDrive
    -
    -
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with the given timestamp of the vision measurement.
    -
    -
    addVisionMeasurement(Pose2d, double, boolean, Matrix<N3, N1>) - Method in class swervelib.SwerveDrive
    -
    -
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with the given timestamp of the vision measurement.
    -
    -
    addVisionMeasurement(Pose2d, double, Matrix<N3, N1>) - Method in class swervelib.math.SwervePoseEstimator2
    -
    -
    Adds a vision measurement to the Kalman Filter.
    +
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with + the given timestamp of the vision measurement.
    ADIS16448Swerve - Class in swervelib.imu
    @@ -168,22 +174,20 @@ loadScripts(document, 'script');
    Angle motor inversion state.
    +
    angle - Variable in class swervelib.parser.json.MotorConfigDouble
    +
    +
    Angle motor.
    +
    +
    angle - Variable in class swervelib.parser.json.MotorConfigInt
    +
    +
    Angle motor.
    +
    angle - Variable in class swervelib.parser.json.PIDFPropertiesJson
    The PIDF with Integral Zone used for the angle motor.
    -
    angleEncoderPulsePerRevolution - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    The angle encoder pulse per revolution override.
    -
    -
    angleEncoderPulsePerRotation - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Angle motor encoder pulse per rotation.
    -
    -
    angleGearRatio - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Angle gear ratio.
    -
    +
    angleAutoPID - Static variable in class frc.robot.Constants.Auton
    +
     
    angleJoystickRadiusDeadband - Variable in class swervelib.parser.json.ControllerPropertiesJson
    The minimum radius of the angle control joystick to allow for heading adjustment of the robot.
    @@ -204,15 +208,6 @@ loadScripts(document, 'script');
    Current limits for the Swerve Module.
    -
    angleMotorEncoderPulsePerRevolution - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    The integrated encoder pulse per revolution.
    -
    -
    angleMotorFreeSpeedRPM - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    DEPRECATED: No longer needed, tune PhysicalPropertiesJson.moduleFeedForwardClosedLoop - instead.
    -
    angleMotorInverted - Variable in class swervelib.parser.SwerveModuleConfiguration
    State of inversion of the angle motor.
    @@ -229,7 +224,7 @@ loadScripts(document, 'script');
    PIDF configuration options for the angle motor closed-loop PID controller.
    -
    antiJitter(SwerveModuleState2, SwerveModuleState2, double) - Static method in class swervelib.math.SwerveMath
    +
    antiJitter(SwerveModuleState, SwerveModuleState, double) - Static method in class swervelib.math.SwerveMath
    Perform anti-jitter within modules if the speed requested is too low.
    @@ -237,13 +232,21 @@ loadScripts(document, 'script');
    Algebraically apply a deadband using a piece wise function.
    -
    attainableMaxRotationalVelocityRadiansPerSecond - Variable in class swervelib.parser.SwerveDriveConfiguration
    +
    AutoBalanceCommand - Class in frc.robot.commands.swervedrive.auto
    -
    Max module speed in meters per second.
    +
    Auto Balance command using a simple PID controller.
    -
    attainableMaxTranslationalSpeedMetersPerSecond - Variable in class swervelib.parser.SwerveDriveConfiguration
    +
    AutoBalanceCommand(SwerveSubsystem) - Constructor for class frc.robot.commands.swervedrive.auto.AutoBalanceCommand
    +
     
    +
    Auton() - Constructor for class frc.robot.Constants.Auton
    +
     
    +
    autonomousInit() - Method in class frc.robot.Robot
    -
    Max module speed in meters per second.
    +
    This autonomous runs the autonomous command selected by your RobotContainer class.
    +
    +
    autonomousPeriodic() - Method in class frc.robot.Robot
    +
    +
    This function is called periodically during autonomous.

    B

    @@ -254,6 +257,10 @@ loadScripts(document, 'script');
    BoolMotorJson() - Constructor for class swervelib.parser.json.modules.BoolMotorJson
     
    +
    burnFlash() - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Save the configurations from flash to EEPROM.
    +
    burnFlash() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Save the configurations from flash to EEPROM.
    @@ -283,8 +290,7 @@ loadScripts(document, 'script');
    calculateMaxAcceleration(double) - Static method in class swervelib.math.SwerveMath
    -
    Calculate the practical maximum acceleration of the robot using the wheel coefficient of - friction.
    +
    Calculate the practical maximum acceleration of the robot using the wheel coefficient of friction.
    calculateMaxAcceleration(double, double, double, double, double) - Static method in class swervelib.math.SwerveMath
    @@ -300,11 +306,11 @@ loadScripts(document, 'script');
    CanAndCoderSwerve - Class in swervelib.encoders
    -
    HELIUM CANandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
    +
    HELIUM Canandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
    CanAndCoderSwerve(int) - Constructor for class swervelib.encoders.CanAndCoderSwerve
    -
    Create the CANandcoder
    +
    Create the Canandcoder
    canbus - Variable in class swervelib.parser.json.DeviceJson
    @@ -322,10 +328,12 @@ loadScripts(document, 'script');
    Initialize the CANCoder on the CANivore.
    +
    CHASSIS - Static variable in class frc.robot.Constants
    +
     
    chassisVelocityCorrection - Variable in class swervelib.SwerveDrive
    -
    Correct chassis velocity in SwerveDrive.drive(Translation2d, double, boolean, boolean) - using 254's correction.
    +
    Correct chassis velocity in SwerveDrive.drive(Translation2d, double, boolean, boolean) using 254's + correction.
    clearStickyFaults() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    @@ -339,6 +347,14 @@ loadScripts(document, 'script');
    Clear sticky faults on the encoder.
    +
    clearStickyFaults() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    +
    +
    Clear sticky faults on the encoder.
    +
    +
    clearStickyFaults() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    Clear sticky faults on the encoder.
    +
    clearStickyFaults() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    Clear sticky faults on the encoder.
    @@ -379,6 +395,10 @@ loadScripts(document, 'script');
    Clear sticky faults on IMU.
    +
    clearStickyFaults() - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Clear the sticky faults on the motor controller.
    +
    clearStickyFaults() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Clear the sticky faults on the motor controller.
    @@ -401,8 +421,8 @@ loadScripts(document, 'script');
    config - Variable in class swervelib.SwerveController
    -
    SwerveControllerConfiguration object storing data to generate the PIDController - for controlling the robot heading, and deadband for heading joystick.
    +
    SwerveControllerConfiguration object storing data to generate the PIDController for controlling the + robot heading, and deadband for heading joystick.
    configuration - Variable in class swervelib.SwerveModule
    @@ -420,6 +440,14 @@ loadScripts(document, 'script');
    Configure the absolute encoder to read from [0, 360) per second.
    +
    configure(boolean) - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    +
    +
    Configure the inversion state of the encoder.
    +
    +
    configure(boolean) - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    Configure the absolute encoder to read from [0, 360) per second.
    +
    configure(boolean) - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    Configure the absolute encoder to read from [0, 360) per second.
    @@ -436,11 +464,15 @@ loadScripts(document, 'script');
    Set the CAN status frames.
    +
    configureCANStatusFrames(int, int, int, int, int) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the CAN status frames.
    +
    configureCANStatusFrames(int, int, int, int, int) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the CAN status frames.
    -
    configureCANStatusFrames(int, int, int, int, int) - Method in class swervelib.motors.SparkMaxSwerve
    +
    configureCANStatusFrames(int, int, int, int, int, int, int) - Method in class swervelib.motors.SparkMaxSwerve
    Set the CAN status frames.
    @@ -452,6 +484,10 @@ loadScripts(document, 'script');
    Set the CAN status frames.
    +
    configureIntegratedEncoder(double) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Configure the integrated encoder for the swerve module.
    +
    configureIntegratedEncoder(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Configure the integrated encoder for the swerve module.
    @@ -472,6 +508,10 @@ loadScripts(document, 'script');
    Configure the integrated encoder for the swerve module.
    +
    configurePIDF(PIDFConfig) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Configure the PIDF values for the closed loop controller.
    +
    configurePIDF(PIDFConfig) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Configure the PIDF values for the closed loop controller.
    @@ -492,6 +532,10 @@ loadScripts(document, 'script');
    Configure the PIDF values for the closed loop controller.
    +
    configurePIDWrapping(double, double) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Configure the PID wrapping for the position closed loop controller.
    +
    configurePIDWrapping(double, double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Configure the PID wrapping for the position closed loop controller.
    @@ -512,6 +556,18 @@ loadScripts(document, 'script');
    Configure the PID wrapping for the position closed loop controller.
    +
    Constants - Class in frc.robot
    +
    +
    The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean constants.
    +
    +
    Constants() - Constructor for class frc.robot.Constants
    +
     
    +
    Constants.Auton - Class in frc.robot
    +
     
    +
    Constants.Drivebase - Class in frc.robot
    +
     
    +
    Constants.OperatorConstants - Class in frc.robot
    +
     
    controllerPropertiesJson - Static variable in class swervelib.parser.SwerveParser
    Parsed controllerproperties.json
    @@ -522,19 +578,33 @@ loadScripts(document, 'script');
    ControllerPropertiesJson() - Constructor for class swervelib.parser.json.ControllerPropertiesJson
     
    -
    convertToNativeSensorUnits(double, double) - Method in class swervelib.motors.TalonFXSwerve
    +
    conversionFactor - Variable in class swervelib.parser.json.ModuleJson
    -
    Convert the setpoint into native sensor units.
    +
    Conversion factor for the module, if different from the one in swervedrive.json
    +
    +
    conversionFactor - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    +
    +
    Conversion factor applied to the motor controllers PID loops.
    +
    +
    conversionFactor - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    +
    + +
    +
    conversionFactors - Variable in class swervelib.parser.SwerveModuleConfiguration
    +
    +
    Conversion factor for drive motor onboard PID's and angle PID's.
    convertToNativeSensorUnits(double, double) - Method in class swervelib.motors.TalonSRXSwerve
    Convert the setpoint into native sensor units.
    -
    createControllerConfiguration(SwerveDriveConfiguration) - Method in class swervelib.parser.json.ControllerPropertiesJson
    +
    createControllerConfiguration(SwerveDriveConfiguration, double) - Method in class swervelib.parser.json.ControllerPropertiesJson
    Create the SwerveControllerConfiguration based on parsed and given data.
    -
    createDriveFeedforward() - Method in class swervelib.parser.SwerveModuleConfiguration
    +
    createDriveFeedforward(double, double, double) - Static method in class swervelib.math.SwerveMath
    Create the drive feedforward for swerve modules.
    @@ -546,15 +616,11 @@ loadScripts(document, 'script');
    Create a SwerveIMU from the given configuration.
    -
    createIntegratedEncoder(SwerveMotor) - Method in class swervelib.parser.json.DeviceJson
    -
    -
    Create a SwerveAbsoluteEncoder from the data port on the motor controller.
    -
    -
    createModuleConfiguration(PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics, String) - Method in class swervelib.parser.json.ModuleJson
    +
    createModuleConfiguration(PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String) - Method in class swervelib.parser.json.ModuleJson
    Create the swerve module configuration based off of parsed data.
    -
    createModules(SwerveModuleConfiguration[]) - Method in class swervelib.parser.SwerveDriveConfiguration
    +
    createModules(SwerveModuleConfiguration[], SimpleMotorFeedforward) - Method in class swervelib.parser.SwerveDriveConfiguration
    Create modules based off of the SwerveModuleConfiguration.
    @@ -562,7 +628,7 @@ loadScripts(document, 'script');
    Create a SwerveMotor from the given configuration.
    -
    createPhysicalProperties(double) - Method in class swervelib.parser.json.PhysicalPropertiesJson
    +
    createPhysicalProperties() - Method in class swervelib.parser.json.PhysicalPropertiesJson
    Create the physical characteristics based off the parsed data.
    @@ -570,7 +636,19 @@ loadScripts(document, 'script');
    Create a PIDController from the PID values.
    -
    createSwerveDrive() - Method in class swervelib.parser.SwerveParser
    +
    createSwerveDrive(double) - Method in class swervelib.parser.SwerveParser
    +
    +
    Create SwerveDrive from JSON configuration directory.
    +
    +
    createSwerveDrive(double, double, double) - Method in class swervelib.parser.SwerveParser
    +
    +
    Create SwerveDrive from JSON configuration directory.
    +
    +
    createSwerveDrive(SimpleMotorFeedforward, double) - Method in class swervelib.parser.SwerveParser
    +
    +
    Create SwerveDrive from JSON configuration directory.
    +
    +
    createSwerveDrive(SimpleMotorFeedforward, double, double, double) - Method in class swervelib.parser.SwerveParser
    Create SwerveDrive from JSON configuration directory.
    @@ -585,15 +663,6 @@ loadScripts(document, 'script');
    Derivative Gain for PID.
    -
    desaturateWheelSpeeds(SwerveModuleState2[], double) - Static method in class swervelib.math.SwerveKinematics2
    -
    -
    Renormalizes the wheel speeds if any individual speed is above the specified maximum.
    -
    -
    desaturateWheelSpeeds(SwerveModuleState2[], ChassisSpeeds, double, double, double) - Static method in class swervelib.math.SwerveKinematics2
    -
    -
    Renormalizes the wheel speeds if any individual speed is above the specified maximum, as well - as getting rid of joystick saturation at edges of joystick.
    -
    desiredChassisSpeeds - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    Describes the desired forward, sideways and angular velocity of the robot.
    @@ -608,10 +677,12 @@ loadScripts(document, 'script');
    DeviceJson() - Constructor for class swervelib.parser.json.DeviceJson
     
    -
    disableSecondOrderKinematics() - Method in class swervelib.SwerveDrive
    +
    disabledInit() - Method in class frc.robot.Robot
    -
    Disable second order kinematics.
    +
    This function is called once each time the robot enters Disabled mode.
    +
    disabledPeriodic() - Method in class frc.robot.Robot
    +
     
    drive - Variable in class swervelib.parser.json.ModuleJson
    Drive motor device configuration.
    @@ -620,25 +691,59 @@ loadScripts(document, 'script');
    Drive motor inversion state.
    +
    drive - Variable in class swervelib.parser.json.MotorConfigDouble
    +
    +
    Drive motor.
    +
    +
    drive - Variable in class swervelib.parser.json.MotorConfigInt
    +
    +
    Drive motor.
    +
    drive - Variable in class swervelib.parser.json.PIDFPropertiesJson
    The PIDF with Integral Zone used for the drive motor.
    +
    drive(Translation2d, double, boolean) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    The primary method for controlling the drivebase.
    +
    drive(Translation2d, double, boolean, boolean) - Method in class swervelib.SwerveDrive
    The primary method for controlling the drivebase.
    -
    drive(Translation2d, double, boolean, boolean, boolean) - Method in class swervelib.SwerveDrive
    +
    drive(Translation2d, double, boolean, boolean, Translation2d) - Method in class swervelib.SwerveDrive
    The primary method for controlling the drivebase.
    -
    driveEncoderPulsePerRotation - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    +
    drive(ChassisSpeeds) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    -
    Drive motor encoder pulse per rotation.
    +
    Drive according to the chassis robot oriented velocity.
    -
    driveGearRatio - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    +
    drive(ChassisSpeeds) - Method in class swervelib.SwerveDrive
    -
    Drive gear ratio.
    +
    Secondary method for controlling the drivebase.
    +
    +
    drive(ChassisSpeeds, boolean, Translation2d) - Method in class swervelib.SwerveDrive
    +
    +
    The primary method for controlling the drivebase.
    +
    +
    drive(ChassisSpeeds, Translation2d) - Method in class swervelib.SwerveDrive
    +
    +
    Secondary method for controlling the drivebase.
    +
    +
    Drivebase() - Constructor for class frc.robot.Constants.Drivebase
    +
     
    +
    driveFieldOriented(ChassisSpeeds) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Drive the robot given a chassis field oriented velocity.
    +
    +
    driveFieldOriented(ChassisSpeeds) - Method in class swervelib.SwerveDrive
    +
    +
    Secondary method of controlling the drive base given velocity and adjusting it for field oriented use.
    +
    +
    driveFieldOriented(ChassisSpeeds, Translation2d) - Method in class swervelib.SwerveDrive
    +
    +
    Secondary method of controlling the drive base given velocity and adjusting it for field oriented use.
    driveMotor - Variable in class swervelib.parser.SwerveModuleConfiguration
    @@ -659,35 +764,30 @@ loadScripts(document, 'script');

    E

    -
    enableSecondOrderKinematics() - Method in class swervelib.SwerveDrive
    -
    -
    Enable second order kinematics for tracking purposes but completely untuned.
    -
    -
    enableSecondOrderKinematics(double) - Method in class swervelib.SwerveDrive
    -
    -
    Enable second order kinematics for simulation and modifying the feedforward.
    -
    -
    enableSecondOrderKinematics(int) - Method in class swervelib.SwerveDrive
    -
    -
    Enable second order kinematics with calculated values for the feedforward and return the value - used.
    -
    encoder - Variable in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    Encoder as Analog Input.
    encoder - Variable in class swervelib.encoders.CanAndCoderSwerve
    -
    The CANandcoder representing the CANandCoder on the CAN bus.
    +
    The Canandcoder representing the CANandCoder on the CAN bus.
    encoder - Variable in class swervelib.encoders.CANCoderSwerve
    CANCoder with WPILib sendable and support.
    +
    encoder - Variable in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    The SparkAnalogSensor representing the duty cycle encoder attached to the SparkMax analog port.
    +
    encoder - Variable in class swervelib.encoders.SparkMaxEncoderSwerve
    The AbsoluteEncoder representing the duty cycle encoder attached to the SparkMax.
    +
    encoder - Variable in class swervelib.motors.SparkFlexSwerve
    +
    +
    Integrated encoder.
    +
    encoder - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Integrated encoder.
    @@ -700,10 +800,30 @@ loadScripts(document, 'script');
    Absolute encoder device configuration.
    -
    encoderPulsePerRotation - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    +
    end(boolean) - Method in class frc.robot.commands.swervedrive.auto.AutoBalanceCommand
    -
    Encoder pulse per rotation for non-integrated encoders.
    +
    The action to take when the command ends.
    +
    end(boolean) - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteDrive
    +
     
    +
    end(boolean) - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteDriveAdv
    +
     
    +
    end(boolean) - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteFieldDrive
    +
     
    +
    end(boolean) - Method in class frc.robot.commands.swervedrive.drivebase.TeleopDrive
    +
     
    +
    execute() - Method in class frc.robot.commands.swervedrive.auto.AutoBalanceCommand
    +
    +
    The main body of a command.
    +
    +
    execute() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteDrive
    +
     
    +
    execute() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteDriveAdv
    +
     
    +
    execute() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteFieldDrive
    +
     
    +
    execute() - Method in class frc.robot.commands.swervedrive.drivebase.TeleopDrive
    +
     

    F

    @@ -723,6 +843,14 @@ loadScripts(document, 'script');
    Reset the encoder to factory defaults.
    +
    factoryDefault() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    +
    +
    Reset the encoder to factory defaults.
    +
    +
    factoryDefault() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    Reset the encoder to factory defaults.
    +
    factoryDefault() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    Reset the encoder to factory defaults.
    @@ -763,6 +891,10 @@ loadScripts(document, 'script');
    Reset IMU to factory default.
    +
    factoryDefaults() - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Configure the factory defaults.
    +
    factoryDefaults() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Configure the factory defaults.
    @@ -795,6 +927,14 @@ loadScripts(document, 'script');
    The direction the robot should be facing when the "Robot Rotation" is zero or blank.
    +
    frc.robot - package frc.robot
    +
     
    +
    frc.robot.commands.swervedrive.auto - package frc.robot.commands.swervedrive.auto
    +
     
    +
    frc.robot.commands.swervedrive.drivebase - package frc.robot.commands.swervedrive.drivebase
    +
     
    +
    frc.robot.subsystems.swervedrive - package frc.robot.subsystems.swervedrive
    +
     
    front - Variable in class swervelib.parser.json.modules.LocationJson
    Location of the swerve module in inches from the center of the robot horizontally.
    @@ -802,11 +942,6 @@ loadScripts(document, 'script');

    G

    -
    gearRatio - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    Gear ratio for the motors, number of times the motor has to spin before the wheel rotates a - single time.
    -
    getAbsoluteEncoder() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    Get the instantiated absolute encoder Object.
    @@ -819,6 +954,14 @@ loadScripts(document, 'script');
    Get the instantiated absolute encoder Object.
    +
    getAbsoluteEncoder() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    +
    +
    Get the encoder object.
    +
    +
    getAbsoluteEncoder() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    Get the instantiated absolute encoder Object.
    +
    getAbsoluteEncoder() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    Get the instantiated absolute encoder Object.
    @@ -827,6 +970,10 @@ loadScripts(document, 'script');
    Get the instantiated absolute encoder Object.
    +
    getAbsoluteEncoderReadIssue() - Method in class swervelib.SwerveModule
    +
    +
    Get if the last Absolute Encoder had a read issue, such as it does not exist.
    +
    getAbsolutePosition() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    Get the absolute position of the encoder.
    @@ -839,6 +986,14 @@ loadScripts(document, 'script');
    Get the absolute position of the encoder.
    +
    getAbsolutePosition() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    +
    +
    Get the absolute position of the encoder.
    +
    +
    getAbsolutePosition() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    Get the absolute position of the encoder.
    +
    getAbsolutePosition() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    Get the absolute position of the encoder.
    @@ -895,18 +1050,29 @@ loadScripts(document, 'script');
    Get the angle SwerveMotor for the SwerveModule.
    +
    getAutonomousCommand() - Method in class frc.robot.RobotContainer
    +
    +
    Use this to pass the autonomous command to the main Robot class.
    +
    +
    getAutonomousCommand(String, boolean) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Get the path follower with events.
    +
    getConfiguration() - Method in class swervelib.SwerveModule
    -
    Fetch the SwerveModuleConfiguration for the SwerveModule with the parsed - configurations.
    +
    Fetch the SwerveModuleConfiguration for the SwerveModule with the parsed configurations.
    +
    +
    getDriveBaseRadiusMeters() - Method in class swervelib.parser.SwerveDriveConfiguration
    +
    +
    Assume the first module is the furthest.
    getDriveMotor() - Method in class swervelib.SwerveModule
    Get the drive SwerveMotor for the SwerveModule.
    -
    getEstimatedPosition() - Method in class swervelib.math.SwervePoseEstimator2
    +
    getFieldVelocity() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    -
    Gets the estimated robot pose.
    +
    Gets the current field-relative velocity (x, y and omega) of the robot
    getFieldVelocity() - Method in class swervelib.SwerveDrive
    @@ -920,6 +1086,10 @@ loadScripts(document, 'script');
    Gets the current gyro Rotation3d of the robot, as reported by the imu.
    +
    getHeading() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Gets the current yaw angle of the robot, as reported by the imu.
    +
    getIMU() - Method in class swervelib.imu.ADIS16448Swerve
    Get the instantiated IMU object.
    @@ -952,14 +1122,16 @@ loadScripts(document, 'script');
    Get the instantiated IMU object.
    -
    getInstance() - Static method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Gets the robot simulator instance.
    -
    +
    getInstance() - Static method in class frc.robot.Robot
    +
     
    getJoystickAngle(double, double) - Method in class swervelib.SwerveController
    Get the angle in radians based off of the heading joysticks.
    +
    getKinematics() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Get the swerve drive kinematics object.
    +
    getModuleConfigurationByName(String, SwerveDriveConfiguration) - Static method in class swervelib.parser.SwerveParser
    Get the swerve module by the json name.
    @@ -972,6 +1144,10 @@ loadScripts(document, 'script');
    Get the SwerveModules associated with the SwerveDrive.
    +
    getMotor() - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Get the motor object from the module.
    +
    getMotor() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Get the motor object from the module.
    @@ -992,6 +1168,10 @@ loadScripts(document, 'script');
    Get the motor object from the module.
    +
    getPitch() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Gets the current pitch angle of the robot, as reported by the imu.
    +
    getPitch() - Method in class swervelib.simulation.SwerveIMUSimulation
    Pitch is not simulated currently, always returns 0.
    @@ -1000,13 +1180,17 @@ loadScripts(document, 'script');
    Gets the current pitch angle of the robot, as reported by the imu.
    +
    getPose() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Gets the current pose (position and rotation) of the robot, as reported by odometry.
    +
    getPose() - Method in class swervelib.SwerveDrive
    Gets the current pose (position and rotation) of the robot, as reported by odometry.
    -
    getPoseMeters() - Method in class swervelib.math.SwerveDriveOdometry2
    +
    getPosition() - Method in class swervelib.motors.SparkFlexSwerve
    -
    Returns the position of the robot on the field.
    +
    Get the position of the integrated encoder.
    getPosition() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    @@ -1036,14 +1220,6 @@ loadScripts(document, 'script');
    Get the position of the swerve module.
    -
    getPositionEncoderConversion(boolean) - Method in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Get the encoder conversion for position encoders.
    -
    -
    getPulsePerRotation(int) - Method in class swervelib.parser.json.DeviceJson
    -
    -
    Get the encoder pulse per rotation based off of the encoder type.
    -
    getRawRotation3d() - Method in class swervelib.imu.ADIS16448Swerve
    Fetch the Rotation3d from the IMU without any zeroing.
    @@ -1078,18 +1254,20 @@ loadScripts(document, 'script');
    getRawTargetSpeeds(double, double, double) - Method in class swervelib.SwerveController
    -
    Get the ChassisSpeeds based of raw speeds desired in meters/second and heading in - radians.
    +
    Get the ChassisSpeeds based of raw speeds desired in meters/second and heading in radians.
    getRawTargetSpeeds(double, double, double, double) - Method in class swervelib.SwerveController
    -
    Get the ChassisSpeeds based of raw speeds desired in meters/second and heading in - radians.
    +
    Get the ChassisSpeeds based of raw speeds desired in meters/second and heading in radians.
    getRelativePosition() - Method in class swervelib.SwerveModule
    Get the relative angle in degrees.
    +
    getRobotVelocity() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Gets the current velocity (x, y and omega) of the robot
    +
    getRobotVelocity() - Method in class swervelib.SwerveDrive
    Gets the current robot-relative velocity (x, y and omega) of the robot
    @@ -1136,7 +1314,7 @@ loadScripts(document, 'script');
    getState() - Method in class swervelib.simulation.SwerveModuleSimulation
    -
    Get the SwerveModuleState2 of the simulated module.
    +
    Get the SwerveModuleState of the simulated module.
    getState() - Method in class swervelib.SwerveModule
    @@ -1146,11 +1324,19 @@ loadScripts(document, 'script');
    Gets the current module states (azimuth and velocity)
    +
    getSwerveController() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Get the SwerveController in the swerve drive.
    +
    getSwerveController() - Method in class swervelib.SwerveDrive
    -
    Helper function to get the SwerveDrive.swerveController for the SwerveDrive - which can be used to generate ChassisSpeeds for the robot to orient it correctly given - axis or angles, and apply SlewRateLimiter to given inputs.
    +
    Helper function to get the SwerveDrive.swerveController for the SwerveDrive which can be used to + generate ChassisSpeeds for the robot to orient it correctly given axis or angles, and apply + SlewRateLimiter to given inputs.
    +
    +
    getSwerveDriveConfiguration() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Get the SwerveDriveConfiguration object.
    getSwerveModule(SwerveModule[], boolean, boolean) - Static method in class swervelib.math.SwerveMath
    @@ -1160,18 +1346,58 @@ loadScripts(document, 'script');
    Get the swerve module poses and on the field relative to the robot.
    -
    getTargetSpeeds(double, double, double, double) - Method in class swervelib.SwerveController
    +
    getTargetSpeeds(double, double, double, double) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    -
    Get the chassis speeds based on controller input of 1 joystick [-1,1] and an angle.
    +
    Get the chassis speeds based on controller input of 2 joysticks.
    getTargetSpeeds(double, double, double, double, double) - Method in class swervelib.SwerveController
    +
    Get the chassis speeds based on controller input of 1 joystick [-1,1] and an angle.
    +
    +
    getTargetSpeeds(double, double, double, double, double, double) - Method in class swervelib.SwerveController
    +
    Get the chassis speeds based on controller input of 2 joysticks.
    +
    getTargetSpeeds(double, double, Rotation2d) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Get the chassis speeds based on controller input of 1 joystick and one angle.
    +
    getTranslation2d(ChassisSpeeds) - Static method in class swervelib.SwerveController
    Helper function to get the Translation2d of the chassis speeds given the ChassisSpeeds.
    +
    getVelocity() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    +
    +
    Get the velocity in degrees/sec.
    +
    +
    getVelocity() - Method in class swervelib.encoders.CanAndCoderSwerve
    +
    +
    Get the velocity in degrees/sec.
    +
    +
    getVelocity() - Method in class swervelib.encoders.CANCoderSwerve
    +
    +
    Get the velocity in degrees/sec.
    +
    +
    getVelocity() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    +
    +
    Get the velocity in degrees/sec.
    +
    +
    getVelocity() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    Get the velocity in degrees/sec.
    +
    +
    getVelocity() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    +
    +
    Get the velocity in degrees/sec.
    +
    +
    getVelocity() - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    +
    +
    Get the velocity in degrees/sec.
    +
    +
    getVelocity() - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Get the velocity of the integrated encoder.
    +
    getVelocity() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Get the velocity of the integrated encoder.
    @@ -1211,6 +1437,10 @@ loadScripts(document, 'script');
    Calculate the angular velocity given the current and target heading angle in radians.
    +
    headingCorrection - Variable in class swervelib.SwerveDrive
    +
    +
    Whether to correct heading when driving translationally.
    +
    headingPIDF - Variable in class swervelib.parser.SwerveControllerConfiguration
    PIDF for the heading of the robot.
    @@ -1238,10 +1468,18 @@ loadScripts(document, 'script');
    Swerve IMU
    -
    invert() - Method in class swervelib.math.SwerveModuleState2
    +
    initialize() - Method in class frc.robot.commands.swervedrive.auto.AutoBalanceCommand
    -
    Invert the swerve module state.
    +
    The initial subroutine of a command.
    +
    initialize() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteDrive
    +
     
    +
    initialize() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteDriveAdv
    +
     
    +
    initialize() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteFieldDrive
    +
     
    +
    initialize() - Method in class frc.robot.commands.swervedrive.drivebase.TeleopDrive
    +
     
    inverted - Variable in class swervelib.parser.json.ModuleJson
    Defines which motors are inverted.
    @@ -1258,6 +1496,10 @@ loadScripts(document, 'script');
    Invert odometry readings of drive motor positions, used as a patch for debugging currently.
    +
    isAttachedAbsoluteEncoder() - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Queries whether the absolute encoder is directly attached to the motor controller.
    +
    isAttachedAbsoluteEncoder() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Queries whether the absolute encoder is directly attached to the motor controller.
    @@ -1282,6 +1524,19 @@ loadScripts(document, 'script');
    Whether the swerve motor is a drive motor.
    +
    isFinished() - Method in class frc.robot.commands.swervedrive.auto.AutoBalanceCommand
    +
    +
    + Returns whether this command has finished.
    +
    +
    isFinished() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteDrive
    +
     
    +
    isFinished() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteDriveAdv
    +
     
    +
    isFinished() - Method in class frc.robot.commands.swervedrive.drivebase.AbsoluteFieldDrive
    +
     
    +
    isFinished() - Method in class frc.robot.commands.swervedrive.drivebase.TeleopDrive
    +
     
    isSimulation - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    State of simulation of the Robot, used to optimize retrieval.
    @@ -1295,7 +1550,7 @@ loadScripts(document, 'script');
    kinematics - Variable in class swervelib.SwerveDrive
    -
    Swerve Kinematics object utilizing second order kinematics.
    +
    Swerve Kinematics object.

    L

    @@ -1312,6 +1567,10 @@ loadScripts(document, 'script');
    Location of the swerve module in inches from the center of the robot vertically.
    +
    LEFT_X_DEADBAND - Static variable in class frc.robot.Constants.OperatorConstants
    +
     
    +
    LEFT_Y_DEADBAND - Static variable in class frc.robot.Constants.OperatorConstants
    +
     
    limitVelocity(Translation2d, ChassisSpeeds, Pose2d, double, double, List<Matter>, SwerveDriveConfiguration) - Static method in class swervelib.math.SwerveMath
    Limits a commanded velocity to prevent exceeding the maximum acceleration given by SwerveMath.calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d, java.util.List<swervelib.math.Matter>, double, swervelib.parser.SwerveDriveConfiguration).
    @@ -1326,10 +1585,16 @@ loadScripts(document, 'script');
    LocationJson() - Constructor for class swervelib.parser.json.modules.LocationJson
     
    +
    lock() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Lock the swerve drive to prevent it from moving.
    +
    lockPose() - Method in class swervelib.SwerveDrive
    Point all modules toward the robot center, thus making the robot very difficult to move.
    +
    LOOP_TIME - Static variable in class frc.robot.Constants
    +
     
    LOW - Enum constant in enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    Low telemetry data, only post the robot position on the field.
    @@ -1341,6 +1606,14 @@ loadScripts(document, 'script');
    Only send the machine readable data related to swerve drive.
    +
    main(String...) - Static method in class frc.robot.Main
    +
    +
    Main initialization function.
    +
    +
    Main - Class in frc.robot
    +
    +
    Do NOT add any static variables to this class, or any initialization at all.
    +
    mass - Variable in class swervelib.math.Matter
    Mass in kg of object.
    @@ -1361,6 +1634,8 @@ loadScripts(document, 'script');
    Maximum value.
    +
    MAX_ACCELERATION - Static variable in class frc.robot.Constants.Auton
    +
     
    maxAngularVelocity - Variable in class swervelib.parser.SwerveControllerConfiguration
    Maximum angular velocity in rad/s
    @@ -1369,21 +1644,21 @@ loadScripts(document, 'script');
    The maximum achievable angular velocity of the robot.
    -
    maxSpeed - Variable in class swervelib.parser.json.SwerveDriveJson
    +
    maximumRetries - Variable in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    Maximum robot speed in feet per second.
    +
    The maximum amount of times the swerve encoder will attempt to configure itself if failures occur.
    -
    maxSpeed - Variable in class swervelib.parser.SwerveControllerConfiguration
    +
    maximumRetries - Variable in class swervelib.motors.SwerveMotor
    -
    Maximum robot speed in meters per second.
    +
    The maximum amount of times the swerve motor will attempt to configure a motor if failures occur.
    -
    maxSpeed - Variable in class swervelib.parser.SwerveDriveConfiguration
    +
    maximumSpeed - Variable in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    -
    Max module speed in meters per second.
    +
    Maximum speed of the robot in meters per second, used to limit acceleration.
    -
    maxSpeed - Variable in class swervelib.parser.SwerveModuleConfiguration
    +
    maxSpeed - Variable in class swervelib.SwerveModule
    -
    Maximum robot speed in meters per second.
    +
    Maximum speed of the drive motors in meters per second.
    maxSpeed - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    @@ -1409,12 +1684,6 @@ loadScripts(document, 'script');
    The number of swerve modules
    -
    moduleFeedForwardClosedLoop - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    Angle motor kV used for second order kinematics to tune the feedforward, this variable should - be adjusted so that your drive train does not drift towards the direction you are rotating - while you translate.
    -
    ModuleJson - Class in swervelib.parser.json
    SwerveModule JSON parsed class.
    @@ -1445,20 +1714,9 @@ loadScripts(document, 'script');
    Swerve Modules.
    -
    moduleStateOptimization - Variable in class swervelib.SwerveModule
    +
    motor - Variable in class swervelib.motors.SparkFlexSwerve
    -
    Enable SwerveModuleState2 optimizations so the angle is reversed and speed is reversed - to ensure the module never turns more than 90deg.
    -
    -
    moduleSteerFFCL - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Angle volt-meter-per-second.
    -
    -
    moduleSteerFFCL - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Angle motor kV used for second order kinematics to tune the feedforward, this variable should - be adjusted so that your drive train does not drift towards the direction you are rotating - while you translate.
    +
    SparkMAX Instance.
    motor - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    @@ -1468,6 +1726,30 @@ loadScripts(document, 'script');
    SparkMAX Instance.
    +
    MotorConfigDouble - Class in swervelib.parser.json
    +
    +
    Used to store doubles for motor configuration.
    +
    +
    MotorConfigDouble() - Constructor for class swervelib.parser.json.MotorConfigDouble
    +
    +
    Default constructor.
    +
    +
    MotorConfigDouble(double, double) - Constructor for class swervelib.parser.json.MotorConfigDouble
    +
    +
    Default constructor.
    +
    +
    MotorConfigInt - Class in swervelib.parser.json
    +
    +
    Used to store ints for motor configuration.
    +
    +
    MotorConfigInt() - Constructor for class swervelib.parser.json.MotorConfigInt
    +
    +
    Default constructor.
    +
    +
    MotorConfigInt(int, int) - Constructor for class swervelib.parser.json.MotorConfigInt
    +
    +
    Default constructor with values.
    +

    N

    @@ -1479,10 +1761,18 @@ loadScripts(document, 'script');
    Communicates with the NavX as the IMU.
    +
    NavXSwerve(I2C.Port) - Constructor for class swervelib.imu.NavXSwerve
    +
    +
    Constructor for the NavX swerve.
    +
    NavXSwerve(SerialPort.Port) - Constructor for class swervelib.imu.NavXSwerve
    Constructor for the NavX swerve.
    +
    NavXSwerve(SPI.Port) - Constructor for class swervelib.imu.NavXSwerve
    +
    +
    Constructor for the NavX swerve.
    +
    NONE - Enum constant in enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    No telemetry data is sent back.
    @@ -1494,22 +1784,15 @@ loadScripts(document, 'script');

    O

    -
    omegaRadPerSecond - Variable in class swervelib.math.SwerveModuleState2
    +
    OperatorConstants() - Constructor for class frc.robot.Constants.OperatorConstants
    +
     
    +
    optimalVoltage - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    Rad per sec
    -
    -
    optimalVoltage - Variable in class swervelib.parser.json.SwerveDriveJson
    -
    -
    Optimal voltage to compensate to and base feedforward calculations off of.
    +
    The voltage to use for the smart motor voltage compensation, default is 12.
    optimalVoltage - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    Optimal voltage of the robot.
    -
    -
    optimize(SwerveModuleState2, Rotation2d, SwerveModuleState2, double) - Static method in class swervelib.math.SwerveModuleState2
    -
    -
    Minimize the change in heading the desired swerve module state would require by potentially - reversing the direction the wheel spins.
    +
    The voltage to use for the smart motor voltage compensation.
    output - Variable in class swervelib.parser.PIDFConfig
    @@ -1522,6 +1805,12 @@ loadScripts(document, 'script');
    Proportional Gain for PID.
    +
    periodic() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
     
    +
    physicalCharacteristics - Variable in class swervelib.parser.SwerveDriveConfiguration
    +
    +
    Physical characteristics of the swerve drive from physicalproperties.json.
    +
    physicalCharacteristics - Variable in class swervelib.parser.SwerveModuleConfiguration
    Physical characteristics of the swerve module.
    @@ -1536,12 +1825,10 @@ loadScripts(document, 'script');
    PhysicalPropertiesJson() - Constructor for class swervelib.parser.json.PhysicalPropertiesJson
     
    -
    PhysicsSim - Class in swervelib.simulation.ctre
    +
    pid - Variable in class swervelib.motors.SparkFlexSwerve
    -
    Manages physics simulation for CTRE products.
    +
    Closed-loop PID controller.
    -
    PhysicsSim() - Constructor for class swervelib.simulation.ctre.PhysicsSim
    -
     
    pid - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Closed-loop PID controller.
    @@ -1622,10 +1909,31 @@ loadScripts(document, 'script');
    Position in meters from robot center in 3d space.
    +
    postTrajectory(Trajectory) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Post the trajectory to the field.
    +
    postTrajectory(Trajectory) - Method in class swervelib.SwerveDrive
    Post the trajectory to the field
    +
    pushOffsetsToControllers() - Method in class swervelib.SwerveDrive
    +
    +
    Pushes the Absolute Encoder offsets to the Encoder or Motor Controller, depending on type.
    +
    +
    pushOffsetsToControllers() - Method in class swervelib.SwerveModule
    +
    +
    Push absolute encoder offset in the memory of the encoder or controller.
    +
    +
    PWMDutyCycleEncoderSwerve - Class in swervelib.encoders
    +
    +
    DutyCycle encoders such as "US Digital MA3 with PWM Output, the CTRE Mag Encoder, the Rev Hex Encoder, and the AM Mag + Encoder." attached via a PWM lane.
    +
    +
    PWMDutyCycleEncoderSwerve(int) - Constructor for class swervelib.encoders.PWMDutyCycleEncoderSwerve
    +
    +
    Constructor for the PWM duty cycle encoder.
    +

    Q

    @@ -1648,22 +1956,53 @@ loadScripts(document, 'script');
    Setup the swerve module feedforward.
    -
    resetEncoders() - Method in class swervelib.SwerveDrive
    +
    resetDriveEncoders() - Method in class swervelib.SwerveDrive
    -
    Reset the drive encoders on the robot, useful when manually resetting the robot without a - reboot, like in autonomous.
    +
    Reset the drive encoders on the robot, useful when manually resetting the robot without a reboot, like in + autonomous.
    +
    +
    resetOdometry(Pose2d) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Resets odometry to the given pose.
    resetOdometry(Pose2d) - Method in class swervelib.SwerveDrive
    Resets odometry to the given pose.
    -
    resetPosition(Rotation2d, SwerveModulePosition[], Pose2d) - Method in class swervelib.math.SwerveDriveOdometry2
    +
    restoreInternalOffset() - Method in class swervelib.SwerveDrive
    -
    Resets the robot's position on the field.
    +
    Restores Internal YAGSL Encoder offsets and sets the Encoder stored offset back to 0
    -
    resetPosition(Rotation2d, SwerveModulePosition[], Pose2d) - Method in class swervelib.math.SwervePoseEstimator2
    +
    restoreInternalOffset() - Method in class swervelib.SwerveModule
    -
    Resets the robot's position on the field.
    +
    Restore internal offset in YAGSL and either sets absolute encoder offset to 0 or restores old value.
    +
    +
    RIGHT_X_DEADBAND - Static variable in class frc.robot.Constants.OperatorConstants
    +
     
    +
    Robot - Class in frc.robot
    +
    +
    The VM is configured to automatically run this class, and to call the functions corresponding to each mode, as + described in the TimedRobot documentation.
    +
    +
    Robot() - Constructor for class frc.robot.Robot
    +
     
    +
    ROBOT_MASS - Static variable in class frc.robot.Constants
    +
     
    +
    RobotContainer - Class in frc.robot
    +
    +
    This class is where the bulk of the robot should be declared.
    +
    +
    RobotContainer() - Constructor for class frc.robot.RobotContainer
    +
    +
    The container for the robot.
    +
    +
    robotInit() - Method in class frc.robot.Robot
    +
    +
    This function is run when the robot is first started up and should be used for any initialization code.
    +
    +
    robotPeriodic() - Method in class frc.robot.Robot
    +
    +
    This function is called every 20 ms, no matter the mode.
    robotRotation - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    @@ -1673,13 +2012,13 @@ loadScripts(document, 'script');
    The units of the module rotations and robot rotation
    -
    run() - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Runs the simulator: - enable the robot - simulate sensors
    -

    S

    +
    set(double) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the percentage output.
    +
    set(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the percentage output.
    @@ -1700,6 +2039,10 @@ loadScripts(document, 'script');
    Set the percentage output.
    +
    setAbsoluteEncoder(SwerveAbsoluteEncoder) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the absolute encoder to be a compatible absolute encoder.
    +
    setAbsoluteEncoder(SwerveAbsoluteEncoder) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the absolute encoder to be a compatible absolute encoder.
    @@ -1720,6 +2063,34 @@ loadScripts(document, 'script');
    Set the absolute encoder to be a compatible absolute encoder.
    +
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    +
    +
    Cannot Set the offset of an Analog Absolute Encoder.
    +
    +
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.CanAndCoderSwerve
    +
    +
    Cannot set the offset of the CanAndCoder.
    +
    +
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.CANCoderSwerve
    +
    +
    Sets the Absolute Encoder Offset within the CANcoder's Memory.
    +
    +
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    +
    +
    Sets the offset of the Encoder in the WPILib Encoder Library.
    +
    +
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    Sets the Absolute Encoder offset at the Encoder Level.
    +
    +
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    +
    +
    Sets the Absolute Encoder Offset inside of the SparkMax's Memory.
    +
    +
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    +
    +
    Sets the Absolute Encoder offset at the Encoder Level.
    +
    setAngle(double) - Method in class swervelib.simulation.SwerveIMUSimulation
    Set the heading of the robot.
    @@ -1728,39 +2099,74 @@ loadScripts(document, 'script');
    Set the angle for the module.
    +
    setAngleMotorConversionFactor(double) - Method in class swervelib.SwerveDrive
    +
    +
    Set the conversion factor for the angle/azimuth motor controller.
    +
    +
    setAngleMotorConversionFactor(double) - Method in class swervelib.SwerveModule
    +
    +
    Set the conversion factor for the angle/azimuth motor controller.
    +
    +
    setAngleMotorVoltageCompensation(double) - Method in class swervelib.SwerveModule
    +
    +
    Set the voltage compensation for the swerve module motor.
    +
    +
    setChassisSpeeds(ChassisSpeeds) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Set chassis speeds with closed-loop velocity control.
    +
    setChassisSpeeds(ChassisSpeeds) - Method in class swervelib.SwerveDrive
    -
    Set chassis speeds with closed-loop velocity control and second order kinematics.
    +
    Set chassis speeds with closed-loop velocity control.
    +
    +
    setCurrentLimit(int) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + voltage compensation.
    setCurrentLimit(int) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in - conjunction with voltage compensation.
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + voltage compensation.
    setCurrentLimit(int) - Method in class swervelib.motors.SparkMaxSwerve
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in - conjunction with voltage compensation.
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + voltage compensation.
    setCurrentLimit(int) - Method in class swervelib.motors.SwerveMotor
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in - conjunction with voltage compensation.
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + voltage compensation.
    setCurrentLimit(int) - Method in class swervelib.motors.TalonFXSwerve
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in - conjunction with voltage compensation.
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + voltage compensation.
    setCurrentLimit(int) - Method in class swervelib.motors.TalonSRXSwerve
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in - conjunction with voltage compensation.
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + voltage compensation.
    -
    setDesiredState(SwerveModuleState2, boolean, boolean) - Method in class swervelib.SwerveModule
    +
    setDesiredState(SwerveModuleState, boolean, boolean) - Method in class swervelib.SwerveModule
    Set the desired state of the swerve module.
    +
    setDriveMode() - Method in class frc.robot.RobotContainer
    +
     
    +
    setDriveMotorConversionFactor(double) - Method in class swervelib.SwerveDrive
    +
    +
    Set the conversion factor for the drive motor controller.
    +
    +
    setDriveMotorConversionFactor(double) - Method in class swervelib.SwerveModule
    +
    +
    Set the conversion factor for the drive motor controller.
    +
    +
    setDriveMotorVoltageCompensation(double) - Method in class swervelib.SwerveModule
    +
    +
    Set the voltage compensation for the swerve module motor.
    +
    setGyro(Rotation3d) - Method in class swervelib.SwerveDrive
    Set the expected gyroscope angle using a Rotation3d object.
    @@ -1769,6 +2175,14 @@ loadScripts(document, 'script');
    Set the gyro scope offset to a desired known rotation.
    +
    setHeadingCorrection(boolean) - Method in class swervelib.SwerveDrive
    +
    +
    Set the heading correction capabilities of YAGSL.
    +
    +
    setInverted(boolean) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the motor to be inverted.
    +
    setInverted(boolean) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the motor to be inverted.
    @@ -1789,6 +2203,10 @@ loadScripts(document, 'script');
    Set the motor to be inverted.
    +
    setLoopRampRate(double) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the maximum rate the open/closed loop output can change by.
    +
    setLoopRampRate(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the maximum rate the open/closed loop output can change by.
    @@ -1815,29 +2233,34 @@ loadScripts(document, 'script');
    setMaximumSpeed(double) - Method in class swervelib.SwerveDrive
    -
    Set the maximum speed of the drive motors, modified SwerveControllerConfiguration.maxSpeed and SwerveDriveConfiguration.maxSpeed which is - used for the SwerveDrive.setRawModuleStates(SwerveModuleState2[], boolean) function and +
    Set the maximum speed of the drive motors, modified SwerveDrive.maxSpeedMPS which is used for the + SwerveDrive.setRawModuleStates(SwerveModuleState[], boolean) function and SwerveController.getTargetSpeeds(double, double, double, double, double) functions.
    -
    setMaximumSpeed(double, boolean) - Method in class swervelib.SwerveDrive
    +
    setMaximumSpeed(double, boolean, double) - Method in class swervelib.SwerveDrive
    -
    Set the maximum speed of the drive motors, modified SwerveControllerConfiguration.maxSpeed and SwerveDriveConfiguration.maxSpeed which is - used for the SwerveDrive.setRawModuleStates(SwerveModuleState2[], boolean) function and +
    Set the maximum speed of the drive motors, modified SwerveDrive.maxSpeedMPS which is used for the + SwerveDrive.setRawModuleStates(SwerveModuleState[], boolean) function and SwerveController.getTargetSpeeds(double, double, double, double, double) functions.
    setMaximumSpeeds(double, double, double) - Method in class swervelib.SwerveDrive
    Set the maximum speeds for desaturation.
    -
    setModuleStateOptimization(boolean) - Method in class swervelib.SwerveDrive
    -
    -
    Configure whether the SwerveModuleState2 will be optimized to prevent spinning more - than 90deg.
    -
    -
    setModuleStates(SwerveModuleState2[], boolean) - Method in class swervelib.SwerveDrive
    +
    setModuleStates(SwerveModuleState[], boolean) - Method in class swervelib.SwerveDrive
    Set the module states (azimuth and velocity) directly.
    +
    setMotorBrake(boolean) - Method in class frc.robot.RobotContainer
    +
     
    +
    setMotorBrake(boolean) - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Sets the drive motors to brake/coast mode.
    +
    +
    setMotorBrake(boolean) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the idle mode.
    +
    setMotorBrake(boolean) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the idle mode.
    @@ -1866,6 +2289,10 @@ loadScripts(document, 'script');
    Sets the drive motors to brake/coast mode.
    +
    setOdometryPeriod(double) - Method in class swervelib.SwerveDrive
    +
    +
    Set the odometry update period in seconds.
    +
    setOffset(Rotation3d) - Method in class swervelib.imu.ADIS16448Swerve
    Set the gyro offset.
    @@ -1898,6 +2325,10 @@ loadScripts(document, 'script');
    Set the gyro offset.
    +
    setPosition(double) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the integrated encoder position.
    +
    setPosition(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the integrated encoder position.
    @@ -1918,6 +2349,10 @@ loadScripts(document, 'script');
    Set the integrated encoder position.
    +
    setReference(double, double) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the closed loop PID controller reference point.
    +
    setReference(double, double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the closed loop PID controller reference point.
    @@ -1938,6 +2373,10 @@ loadScripts(document, 'script');
    Set the closed loop PID controller reference point.
    +
    setReference(double, double, double) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the closed loop PID controller reference point.
    +
    setReference(double, double, double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    Set the closed loop PID controller reference point.
    @@ -1958,9 +2397,13 @@ loadScripts(document, 'script');
    Set the closed loop PID controller reference point.
    -
    setVisionMeasurementStdDevs(Matrix<N3, N1>) - Method in class swervelib.math.SwervePoseEstimator2
    +
    setupPathPlanner() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    -
    Sets the pose estimator's trust of global measurements.
    +
    Setup AutoBuilder for PathPlanner.
    +
    +
    setVoltageCompensation(double) - Method in class swervelib.motors.SparkFlexSwerve
    +
    +
    Set the voltage compensation for the swerve module motor.
    setVoltageCompensation(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    @@ -1982,6 +2425,16 @@ loadScripts(document, 'script');
    Set the voltage compensation for the swerve module motor.
    +
    simulationInit() - Method in class frc.robot.Robot
    +
    +
    This function is called once when the robot is first started up.
    +
    +
    simulationPeriodic() - Method in class frc.robot.Robot
    +
    +
    This function is called periodically whilst in simulation.
    +
    +
    simulationPeriodic() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
     
    sizeFrontBack - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    The distance between the front and back modules.
    @@ -1990,15 +2443,36 @@ loadScripts(document, 'script');
    The distance between the left and right modules.
    +
    SparkFlexSwerve - Class in swervelib.motors
    +
    +
    An implementation of CANSparkFlex as a SwerveMotor.
    +
    +
    SparkFlexSwerve(int, boolean) - Constructor for class swervelib.motors.SparkFlexSwerve
    +
    +
    Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
    +
    +
    SparkFlexSwerve(CANSparkFlex, boolean) - Constructor for class swervelib.motors.SparkFlexSwerve
    +
    +
    Initialize the swerve motor.
    +
    +
    SparkMaxAnalogEncoderSwerve - Class in swervelib.encoders
    +
    +
    SparkMax absolute encoder, attached through the data port analog pin.
    +
    +
    SparkMaxAnalogEncoderSwerve(SwerveMotor) - Constructor for class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    +
    +
    Create the SparkMaxAnalogEncoderSwerve object as a analog sensor from the CANSparkMax motor data + port analog pin.
    +
    SparkMaxBrushedMotorSwerve - Class in swervelib.motors
    Brushed motor control with SparkMax.
    -
    SparkMaxBrushedMotorSwerve(int, boolean, SparkMaxRelativeEncoder.Type, int, boolean) - Constructor for class swervelib.motors.SparkMaxBrushedMotorSwerve
    +
    SparkMaxBrushedMotorSwerve(int, boolean, SparkRelativeEncoder.Type, int, boolean) - Constructor for class swervelib.motors.SparkMaxBrushedMotorSwerve
    Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
    -
    SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkMaxRelativeEncoder.Type, int, boolean) - Constructor for class swervelib.motors.SparkMaxBrushedMotorSwerve
    +
    SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkRelativeEncoder.Type, int, boolean) - Constructor for class swervelib.motors.SparkMaxBrushedMotorSwerve
    Initialize the swerve motor.
    @@ -2008,7 +2482,7 @@ loadScripts(document, 'script');
    SparkMaxEncoderSwerve(SwerveMotor, int) - Constructor for class swervelib.encoders.SparkMaxEncoderSwerve
    -
    Create the AbsoluteEncoder object as a duty cycle.
    +
    Create the SparkMaxEncoderSwerve object as a duty cycle from the CANSparkMax motor.
    SparkMaxSwerve - Class in swervelib.motors
    @@ -2024,13 +2498,15 @@ loadScripts(document, 'script');
    stateStdDevs - Variable in class swervelib.SwerveDrive
    -
    Trustworthiness of the internal model of how motors should be moving Measured in expected - standard deviation (meters of position and degrees of rotation)
    +
    Standard deviation of encoders and gyroscopes, usually should not change.
    +
    +
    stopOdometryThread() - Method in class swervelib.SwerveDrive
    +
    +
    Stop the odometry thread in favor of manually updating odometry.
    SwerveAbsoluteEncoder - Class in swervelib.encoders
    -
    Swerve abstraction class to define a standard interface with absolute encoders for swerve - modules..
    +
    Swerve abstraction class to define a standard interface with absolute encoders for swerve modules..
    SwerveAbsoluteEncoder() - Constructor for class swervelib.encoders.SwerveAbsoluteEncoder
     
    @@ -2044,18 +2520,18 @@ loadScripts(document, 'script');
    SwerveController(SwerveControllerConfiguration) - Constructor for class swervelib.SwerveController
    -
    Construct the SwerveController object which is used for determining the speeds of the robot - based on controller input.
    +
    Construct the SwerveController object which is used for determining the speeds of the robot based on controller + input.
    SwerveControllerConfiguration - Class in swervelib.parser
    Swerve Controller configuration class which is used to configure SwerveController.
    -
    SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig) - Constructor for class swervelib.parser.SwerveControllerConfiguration
    +
    SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double) - Constructor for class swervelib.parser.SwerveControllerConfiguration
    Construct the swerve controller configuration.
    -
    SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double) - Constructor for class swervelib.parser.SwerveControllerConfiguration
    +
    SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double, double) - Constructor for class swervelib.parser.SwerveControllerConfiguration
    Construct the swerve controller configuration.
    @@ -2063,7 +2539,7 @@ loadScripts(document, 'script');
    Swerve Drive class representing and controlling the swerve drive.
    -
    SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration) - Constructor for class swervelib.SwerveDrive
    +
    SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration, double) - Constructor for class swervelib.SwerveDrive
    Creates a new swerve drivebase subsystem.
    @@ -2075,7 +2551,7 @@ loadScripts(document, 'script');
    Swerve drive configurations used during SwerveDrive construction.
    -
    SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, double, boolean) - Constructor for class swervelib.parser.SwerveDriveConfiguration
    +
    SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, boolean, SimpleMotorFeedforward, SwerveModulePhysicalCharacteristics) - Constructor for class swervelib.parser.SwerveDriveConfiguration
    Create swerve drive configuration.
    @@ -2089,19 +2565,6 @@ loadScripts(document, 'script');
    SwerveDriveJson() - Constructor for class swervelib.parser.json.SwerveDriveJson
     
    -
    SwerveDriveOdometry2 - Class in swervelib.math
    -
    -
    Clone of SwerveDriveOdometry except uses gyro pitch and roll to achieve a more accurate - estimation.
    -
    -
    SwerveDriveOdometry2(SwerveDriveKinematics, Rotation2d, SwerveModulePosition[]) - Constructor for class swervelib.math.SwerveDriveOdometry2
    -
    -
    Constructs a SwerveDriveOdometry object with the default pose at the origin.
    -
    -
    SwerveDriveOdometry2(SwerveDriveKinematics, Rotation2d, SwerveModulePosition[], Pose2d) - Constructor for class swervelib.math.SwerveDriveOdometry2
    -
    -
    Constructs a SwerveDriveOdometry object.
    -
    swerveDrivePoseEstimator - Variable in class swervelib.SwerveDrive
    Swerve odometry.
    @@ -2130,15 +2593,6 @@ loadScripts(document, 'script');
    Create the swerve drive IMU simulation.
    -
    SwerveKinematics2 - Class in swervelib.math
    -
    -
    Clone of WPI SwerveKinematics, which implements second order kinematics when calculating modules - states from chassis speed.
    -
    -
    SwerveKinematics2(Translation2d...) - Constructor for class swervelib.math.SwerveKinematics2
    -
    -
    Constructs a swerve drive kinematics object.
    -
    swervelib - package swervelib
    Yet-Another Generic Swerve Library (YAGSL) main package AKA swervelib.
    @@ -2179,10 +2633,6 @@ loadScripts(document, 'script');
    Classes used to simulate the swerve drive.
    -
    swervelib.simulation.ctre - package swervelib.simulation.ctre
    -
    -
    CTRE Physics Simulator.
    -
    swervelib.telemetry - package swervelib.telemetry
    Telemetry package for sending data to NT4 or SmartDashboard.
    @@ -2197,7 +2647,7 @@ loadScripts(document, 'script');
    The Swerve Module class which represents and controls Swerve Modules for the swerve drive.
    -
    SwerveModule(int, SwerveModuleConfiguration) - Constructor for class swervelib.SwerveModule
    +
    SwerveModule(int, SwerveModuleConfiguration, SimpleMotorFeedforward) - Constructor for class swervelib.SwerveModule
    Construct the swerve module and initialize the swerve module motors and absolute encoder.
    @@ -2205,11 +2655,11 @@ loadScripts(document, 'script');
    Swerve Module configuration class which is used to configure SwerveModule.
    -
    SwerveModuleConfiguration(SwerveMotor, SwerveMotor, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean, double, String) - Constructor for class swervelib.parser.SwerveModuleConfiguration
    +
    SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean, String) - Constructor for class swervelib.parser.SwerveModuleConfiguration
    Construct a configuration object for swerve modules.
    -
    SwerveModuleConfiguration(SwerveMotor, SwerveMotor, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics, String) - Constructor for class swervelib.parser.SwerveModuleConfiguration
    +
    SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String) - Constructor for class swervelib.parser.SwerveModuleConfiguration
    Construct a configuration object for swerve modules.
    @@ -2217,11 +2667,11 @@ loadScripts(document, 'script');
    Configuration class which stores physical characteristics shared between every swerve module.
    -
    SwerveModulePhysicalCharacteristics(double, double, double, double, double, int, int) - Constructor for class swervelib.parser.SwerveModulePhysicalCharacteristics
    +
    SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double) - Constructor for class swervelib.parser.SwerveModulePhysicalCharacteristics
    Construct the swerve module physical characteristics.
    -
    SwerveModulePhysicalCharacteristics(double, double, double, double, double, int, int, double, double, int, int, double) - Constructor for class swervelib.parser.SwerveModulePhysicalCharacteristics
    +
    SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double, int, int, double, double) - Constructor for class swervelib.parser.SwerveModulePhysicalCharacteristics
    Construct the swerve module physical characteristics.
    @@ -2233,23 +2683,6 @@ loadScripts(document, 'script');
    Create simulation class and initialize module at 0.
    -
    SwerveModuleState2 - Class in swervelib.math
    -
    -
    Second order kinematics swerve module state.
    -
    -
    SwerveModuleState2() - Constructor for class swervelib.math.SwerveModuleState2
    -
    -
    Constructs a SwerveModuleState with zeros for speed and angle.
    -
    -
    SwerveModuleState2(double, Rotation2d, double) - Constructor for class swervelib.math.SwerveModuleState2
    -
    -
    Constructs a SwerveModuleState.
    -
    -
    SwerveModuleState2(SwerveModuleState, double) - Constructor for class swervelib.math.SwerveModuleState2
    -
    -
    Create a SwerveModuleState2 based on the SwerveModuleState with the radians per - second defined.
    -
    SwerveMotor - Class in swervelib.motors
    Swerve motor abstraction which defines a standard interface for motors within a swerve module.
    @@ -2264,19 +2697,15 @@ loadScripts(document, 'script');
    Construct a swerve parser.
    -
    SwervePoseEstimator2 - Class in swervelib.math
    +
    SwerveSubsystem - Class in frc.robot.subsystems.swervedrive
    +
     
    +
    SwerveSubsystem(File) - Constructor for class frc.robot.subsystems.swervedrive.SwerveSubsystem
    -
    Clone of SwerveDrivePoseEstimator which takes into account gyroscope pitch and roll to - achieve a more accurate estimation, originally made by Team 1466.
    +
    Initialize SwerveDrive with the directory provided.
    -
    SwervePoseEstimator2(SwerveDriveKinematics, Rotation2d, SwerveModulePosition[], Pose2d) - Constructor for class swervelib.math.SwervePoseEstimator2
    +
    SwerveSubsystem(SwerveDriveConfiguration, SwerveControllerConfiguration) - Constructor for class frc.robot.subsystems.swervedrive.SwerveSubsystem
    -
    Constructs a SwerveDrivePoseEstimator with default standard deviations for the model and vision - measurements.
    -
    -
    SwervePoseEstimator2(SwerveDriveKinematics, Rotation2d, SwerveModulePosition[], Pose2d, Matrix<N3, N1>, Matrix<N3, N1>) - Constructor for class swervelib.math.SwervePoseEstimator2
    -
    -
    Constructs a SwerveDrivePoseEstimator.
    +
    Construct the swerve drive.
    synchronizeModuleEncoders() - Method in class swervelib.SwerveDrive
    @@ -2297,7 +2726,7 @@ loadScripts(document, 'script');
    Construct the TalonFX swerve motor given the ID and CANBus.
    -
    TalonFXSwerve(WPI_TalonFX, boolean) - Constructor for class swervelib.motors.TalonFXSwerve
    +
    TalonFXSwerve(TalonFX, boolean) - Constructor for class swervelib.motors.TalonFXSwerve
    Constructor for TalonFX swerve motor.
    @@ -2313,30 +2742,34 @@ loadScripts(document, 'script');
    Constructor for TalonSRX swerve motor.
    +
    TeleopDrive - Class in frc.robot.commands.swervedrive.drivebase
    +
    +
    An example command that uses an example subsystem.
    +
    +
    TeleopDrive(SwerveSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier, BooleanSupplier) - Constructor for class frc.robot.commands.swervedrive.drivebase.TeleopDrive
    +
    +
    Creates a new ExampleCommand.
    +
    +
    teleopInit() - Method in class frc.robot.Robot
    +
     
    +
    teleopPeriodic() - Method in class frc.robot.Robot
    +
    +
    This function is called periodically during operator control.
    +
    +
    testInit() - Method in class frc.robot.Robot
    +
     
    +
    testPeriodic() - Method in class frc.robot.Robot
    +
    +
    This function is called periodically during test mode.
    +
    thetaController - Variable in class swervelib.SwerveController
    PID Controller for the robot heading.
    -
    toChassisSpeeds(SwerveModuleState2...) - Method in class swervelib.math.SwerveKinematics2
    -
    -
    Performs forward kinematics to return the resulting chassis state from the given module states.
    -
    -
    toSwerveModuleState() - Method in class swervelib.math.SwerveModuleState2
    -
    -
    Convert to a SwerveModuleState.
    -
    -
    toSwerveModuleStates(ChassisSpeeds) - Method in class swervelib.math.SwerveKinematics2
    -
    -
    Performs inverse kinematics.
    -
    -
    toSwerveModuleStates(ChassisSpeeds, Translation2d) - Method in class swervelib.math.SwerveKinematics2
    -
    -
    Performs inverse kinematics to return the module states from a desired chassis velocity.
    -
    -
    toTwist2d(SwerveModulePosition...) - Method in class swervelib.math.SwerveKinematics2
    -
    -
    Performs forward kinematics to return the resulting chassis state from the given module states.
    -
    +
    TranslationPID - Static variable in class frc.robot.Constants.Auton
    +
     
    +
    TURN_CONSTANT - Static variable in class frc.robot.Constants.OperatorConstants
    +
     
    type - Variable in class swervelib.parser.json.DeviceJson
    The device type, e.g.
    @@ -2344,15 +2777,6 @@ loadScripts(document, 'script');

    U

    -
    update(Rotation2d, Rotation2d, Rotation2d, SwerveModulePosition[]) - Method in class swervelib.math.SwerveDriveOdometry2
    -
    -
    Updates the robot's position on the field using forward kinematics and integration of the pose - over time.
    -
    -
    update(Rotation2d, Rotation2d, Rotation2d, SwerveModulePosition[]) - Method in class swervelib.math.SwervePoseEstimator2
    -
    -
    Updates the pose estimator with wheel encoder and gyro information.
    -
    updateData() - Static method in class swervelib.telemetry.SwerveDriveTelemetry
    Upload data to smartdashboard
    @@ -2361,17 +2785,18 @@ loadScripts(document, 'script');
    Update odometry should be run every loop.
    -
    updateOdometry(SwerveKinematics2, SwerveModuleState2[], Pose2d[], Field2d) - Method in class swervelib.simulation.SwerveIMUSimulation
    +
    updateOdometry(SwerveDriveKinematics, SwerveModuleState[], Pose2d[], Field2d) - Method in class swervelib.simulation.SwerveIMUSimulation
    -
    Update the odometry of the simulated SwerveDrive and post the SwerveModule states to the Field2d.
    +
    Update the odometry of the simulated SwerveDrive and post the SwerveModule + states to the Field2d.
    -
    updateStateAndPosition(SwerveModuleState2) - Method in class swervelib.simulation.SwerveModuleSimulation
    +
    updateStateAndPosition(SwerveModuleState) - Method in class swervelib.simulation.SwerveModuleSimulation
    Update the position and state of the module.
    -
    updateWithTime(double, Rotation2d, Rotation2d, Rotation2d, SwerveModulePosition[]) - Method in class swervelib.math.SwervePoseEstimator2
    +
    updateTelemetry() - Method in class swervelib.SwerveModule
    -
    Updates the pose estimator with wheel encoder and gyro information.
    +
    Update data sent to SmartDashboard.

    V

    @@ -2395,20 +2820,15 @@ the order they are declared.
    visionMeasurementStdDevs - Variable in class swervelib.SwerveDrive
    -
    Trustworthiness of the vision system Measured in expected standard deviation (meters of - position and degrees of rotation)
    +
    The standard deviation of the vision measurement, for best accuracy calculate the standard deviation at 2 or more + points and fit a line to it and modify this using SwerveDrive.addVisionMeasurement(Pose2d, double, Matrix) + with the calculated optimal standard deviation.

    W

    -
    wheelDiameter - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    Wheel diameter in inches.
    -
    -
    wheelDiameter - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Wheel diameter in meters.
    -
    +
    WHEEL_LOCK_TIME - Static variable in class frc.robot.Constants.Drivebase
    +
     
    wheelGripCoefficientOfFriction - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    The grip tape coefficient of friction on carpet.
    @@ -2450,12 +2870,16 @@ the order they are declared.

    Z

    +
    zeroGyro() - Method in class frc.robot.subsystems.swervedrive.SwerveSubsystem
    +
    +
    Resets the gyro angle to zero and resets odometry to the same position, but facing toward 0.
    +
    zeroGyro() - Method in class swervelib.SwerveDrive
    Resets the gyro angle to zero and resets odometry to the same position, but facing toward 0.
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z 
    All Classes and Interfaces|All Packages +A B C D E F G H I K L M N O P Q R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values
    diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html deleted file mode 100644 index 0760150..0000000 --- a/docs/index-files/index-1.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - -A-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    A

    -
    -
    absoluteEncoder - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Absolute encoder attached to the SparkMax (if exists)
    -
    -
    absoluteEncoder - Variable in class swervelib.motors.SparkMaxSwerve
    -
    -
    Absolute encoder attached to the SparkMax (if exists)
    -
    -
    absoluteEncoder - Variable in class swervelib.motors.TalonFXSwerve
    -
    -
    Whether the absolute encoder is integrated.
    -
    -
    absoluteEncoder - Variable in class swervelib.motors.TalonSRXSwerve
    -
    -
    Whether the absolute encoder is integrated.
    -
    -
    absoluteEncoder - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    The Absolute Encoder for the swerve module.
    -
    -
    absoluteEncoder - Variable in class swervelib.SwerveModule
    -
    -
    Absolute encoder for swerve drive.
    -
    -
    absoluteEncoderInverted - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    Absolute encoder inversion state.
    -
    -
    absoluteEncoderInverted - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Whether the absolute encoder is inverted.
    -
    -
    absoluteEncoderOffset - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    Absolute encoder offset from 0 in degrees.
    -
    -
    addSlewRateLimiters(SlewRateLimiter, SlewRateLimiter, SlewRateLimiter) - Method in class swervelib.SwerveController
    -
    -
    Add slew rate limiters to all controls.
    -
    -
    addTalonFX(TalonFX, double, double) - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Adds a TalonFX controller to the simulator.
    -
    -
    addTalonFX(TalonFX, double, double, boolean) - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Adds a TalonFX controller to the simulator.
    -
    -
    addTalonSRX(TalonSRX, double, double) - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Adds a TalonSRX controller to the simulator.
    -
    -
    addTalonSRX(TalonSRX, double, double, boolean) - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Adds a TalonSRX controller to the simulator.
    -
    -
    addVictorSPX(VictorSPX) - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Adds a VictorSPX controller to the simulator.
    -
    -
    addVisionMeasurement(Pose2d, double) - Method in class swervelib.SwerveDrive
    -
    -
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with - the given timestamp of the vision measurement.
    -
    -
    addVisionMeasurement(Pose2d, double, Matrix<N3, N1>) - Method in class swervelib.SwerveDrive
    -
    -
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with - the given timestamp of the vision measurement.
    -
    -
    ADIS16448Swerve - Class in swervelib.imu
    -
    -
    IMU Swerve class for the ADIS16448_IMU device.
    -
    -
    ADIS16448Swerve() - Constructor for class swervelib.imu.ADIS16448Swerve
    -
    -
    Construct the ADIS16448 imu and reset default configurations.
    -
    -
    ADIS16470Swerve - Class in swervelib.imu
    -
    -
    IMU Swerve class for the ADIS16470_IMU device.
    -
    -
    ADIS16470Swerve() - Constructor for class swervelib.imu.ADIS16470Swerve
    -
    -
    Construct the ADIS16470 imu and reset default configurations.
    -
    -
    ADXRS450Swerve - Class in swervelib.imu
    -
    -
    IMU Swerve class for the ADXRS450_Gyro device.
    -
    -
    ADXRS450Swerve() - Constructor for class swervelib.imu.ADXRS450Swerve
    -
    -
    Construct the ADXRS450 imu and reset default configurations.
    -
    -
    AnalogAbsoluteEncoderSwerve - Class in swervelib.encoders
    -
    -
    Swerve Absolute Encoder for Thrifty Encoders and other analog encoders.
    -
    -
    AnalogAbsoluteEncoderSwerve(int) - Constructor for class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Construct the Encoder given the analog input channel.
    -
    -
    AnalogAbsoluteEncoderSwerve(AnalogInput) - Constructor for class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Construct the Thrifty Encoder as a Swerve Absolute Encoder.
    -
    -
    AnalogGyroSwerve - Class in swervelib.imu
    -
    -
    Creates a IMU for AnalogGyro devices, only uses yaw.
    -
    -
    AnalogGyroSwerve(int) - Constructor for class swervelib.imu.AnalogGyroSwerve
    -
    -
    Analog port in which the gyroscope is connected.
    -
    -
    angle - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    Angle motor device configuration.
    -
    -
    angle - Variable in class swervelib.parser.json.modules.BoolMotorJson
    -
    -
    Angle motor inversion state.
    -
    -
    angle - Variable in class swervelib.parser.json.MotorConfigDouble
    -
    -
    Angle motor.
    -
    -
    angle - Variable in class swervelib.parser.json.MotorConfigInt
    -
    -
    Angle motor.
    -
    -
    angle - Variable in class swervelib.parser.json.PIDFPropertiesJson
    -
    -
    The PIDF with Integral Zone used for the angle motor.
    -
    -
    angle - Variable in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Heading of the robot.
    -
    -
    angleJoystickRadiusDeadband - Variable in class swervelib.parser.json.ControllerPropertiesJson
    -
    -
    The minimum radius of the angle control joystick to allow for heading adjustment of the robot.
    -
    -
    angleJoyStickRadiusDeadband - Variable in class swervelib.parser.SwerveControllerConfiguration
    -
    -
    hypotenuse deadband for the robot angle control joystick.
    -
    -
    angleLimiter - Variable in class swervelib.SwerveController
    -
    -
    SlewRateLimiter for angular movement in radians/second.
    -
    -
    angleMotor - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    The drive motor and angle motor of this swerve module.
    -
    -
    angleMotor - Variable in class swervelib.SwerveModule
    -
    -
    Swerve Motors.
    -
    -
    angleMotorCurrentLimit - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Current limits for the Swerve Module.
    -
    -
    angleMotorInverted - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    State of inversion of the angle motor.
    -
    -
    angleMotorRampRate - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    The time it takes for the motor to go from 0 to full throttle in seconds.
    -
    -
    angleOffset - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Angle offset in degrees for the Swerve Module.
    -
    -
    angleOffset - Variable in class swervelib.SwerveModule
    -
    -
    Angle offset from the absolute encoder.
    -
    -
    anglePIDF - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    PIDF configuration options for the angle motor closed-loop PID controller.
    -
    -
    antiJitter(SwerveModuleState, SwerveModuleState, double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Perform anti-jitter within modules if the speed requested is too low.
    -
    -
    applyDeadband(double, boolean, double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Algebraically apply a deadband using a piece wise function.
    -
    -
    attainableMaxRotationalVelocityRadiansPerSecond - Variable in class swervelib.SwerveDrive
    -
    -
    The absolute max speed the robot can reach while rotating radians per second.
    -
    -
    attainableMaxTranslationalSpeedMetersPerSecond - Variable in class swervelib.SwerveDrive
    -
    -
    The absolute max speed that your robot can reach while translating in meters per second.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html deleted file mode 100644 index 6d16925..0000000 --- a/docs/index-files/index-10.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - -K-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    K

    -
    -
    kinematics - Variable in class swervelib.SwerveDrive
    -
    -
    Swerve Kinematics object.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-11.html b/docs/index-files/index-11.html deleted file mode 100644 index cd4ad90..0000000 --- a/docs/index-files/index-11.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - -L-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    L

    -
    -
    lastAngleScalar - Variable in class swervelib.SwerveController
    -
    -
    Last angle as a scalar [-1,1] the robot was set to.
    -
    -
    lastHeadingRadians - Variable in class swervelib.SwerveDrive
    -
    -
    The last heading set in radians.
    -
    -
    lastState - Variable in class swervelib.SwerveModule
    -
    -
    Last swerve module state applied.
    -
    -
    lastTime - Variable in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    The last time the timer was read, used to determine position changes.
    -
    -
    lastTime - Variable in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Last time queried.
    -
    -
    left - Variable in class swervelib.parser.json.modules.LocationJson
    -
    -
    Location of the swerve module in inches from the center of the robot vertically.
    -
    -
    limitVelocity(Translation2d, ChassisSpeeds, Pose2d, double, double, List<Matter>, SwerveDriveConfiguration) - Static method in class swervelib.math.SwerveMath
    -
    - -
    -
    location - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    The location of the swerve module from the center of the robot in inches.
    -
    -
    LocationJson - Class in swervelib.parser.json.modules
    -
    -
    Location JSON parsed class.
    -
    -
    LocationJson() - Constructor for class swervelib.parser.json.modules.LocationJson
    -
     
    -
    lockPose() - Method in class swervelib.SwerveDrive
    -
    -
    Point all modules toward the robot center, thus making the robot very difficult to move.
    -
    -
    LOW - Enum constant in enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    -
    -
    Low telemetry data, only post the robot position on the field.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-12.html b/docs/index-files/index-12.html deleted file mode 100644 index 6ae4a18..0000000 --- a/docs/index-files/index-12.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - -M-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    M

    -
    -
    MACHINE - Enum constant in enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    -
    -
    Only send the machine readable data related to swerve drive.
    -
    -
    mass - Variable in class swervelib.math.Matter
    -
    -
    Mass in kg of object.
    -
    -
    massMoment() - Method in class swervelib.math.Matter
    -
    -
    Get the center mass of the object.
    -
    -
    Matter - Class in swervelib.math
    -
    -
    Object with significant mass that needs to be taken into account.
    -
    -
    Matter(Translation3d, double) - Constructor for class swervelib.math.Matter
    -
    -
    Construct an object representing some significant matter on the robot.
    -
    -
    max - Variable in class swervelib.parser.deserializer.PIDFRange
    -
    -
    Maximum value.
    -
    -
    maxAngularVelocity - Variable in class swervelib.parser.SwerveControllerConfiguration
    -
    -
    Maximum angular velocity in rad/s
    -
    -
    maxAngularVelocity - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The maximum achievable angular velocity of the robot.
    -
    -
    maximumRetries - Variable in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    The maximum amount of times the swerve encoder will attempt to configure itself if failures occur.
    -
    -
    maximumRetries - Variable in class swervelib.motors.SwerveMotor
    -
    -
    The maximum amount of times the swerve motor will attempt to configure a motor if failures occur.
    -
    -
    maxSpeed - Variable in class swervelib.SwerveModule
    -
    -
    Maximum speed of the drive motors in meters per second.
    -
    -
    maxSpeed - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The maximum achievable speed of the modules, used to adjust the size of the vectors.
    -
    -
    maxSpeedMPS - Variable in class swervelib.SwerveDrive
    -
    -
    Maximum speed of the robot in meters per second.
    -
    -
    measuredChassisSpeeds - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The maximum achievable angular velocity of the robot.
    -
    -
    measuredStates - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    An array of rotation and velocity values describing the measured state of each swerve module
    -
    -
    min - Variable in class swervelib.parser.deserializer.PIDFRange
    -
    -
    Minimum value.
    -
    -
    moduleConfigs - Static variable in class swervelib.parser.SwerveParser
    -
    -
    Module number mapped to the JSON name.
    -
    -
    moduleCount - Variable in class swervelib.parser.SwerveDriveConfiguration
    -
    -
    Number of modules on the robot.
    -
    -
    moduleCount - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The number of swerve modules
    -
    -
    ModuleJson - Class in swervelib.parser.json
    -
    -
    SwerveModule JSON parsed class.
    -
    -
    ModuleJson() - Constructor for class swervelib.parser.json.ModuleJson
    -
     
    -
    moduleJsons - Static variable in class swervelib.parser.SwerveParser
    -
    -
    Array holding the module jsons given in SwerveDriveJson.
    -
    -
    moduleLocation - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Swerve module location relative to the robot.
    -
    -
    moduleLocationsMeters - Variable in class swervelib.parser.SwerveDriveConfiguration
    -
    -
    Swerve Module locations.
    -
    -
    moduleNumber - Variable in class swervelib.SwerveModule
    -
    -
    Module number for kinematics, usually 0 to 3.
    -
    -
    modules - Variable in class swervelib.parser.json.SwerveDriveJson
    -
    -
    Module JSONs in order clockwise order starting from front left.
    -
    -
    modules - Variable in class swervelib.parser.SwerveDriveConfiguration
    -
    -
    Swerve Modules.
    -
    -
    moduleStateOptimization - Variable in class swervelib.SwerveModule
    -
    -
    Enable SwerveModuleState optimizations so the angle is reversed and speed is reversed to ensure the module - never turns more than 90deg.
    -
    -
    moduleSynchronizationCounter - Variable in class swervelib.SwerveDrive
    -
    -
    Counter to synchronize the modules relative encoder with absolute encoder when not moving.
    -
    -
    motor - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    SparkMAX Instance.
    -
    -
    motor - Variable in class swervelib.motors.SparkMaxSwerve
    -
    -
    SparkMAX Instance.
    -
    -
    motor - Variable in class swervelib.motors.TalonFXSwerve
    -
    -
    TalonFX motor controller.
    -
    -
    motor - Variable in class swervelib.motors.TalonSRXSwerve
    -
    -
    TalonSRX motor controller.
    -
    -
    MotorConfigDouble - Class in swervelib.parser.json
    -
    -
    Used to store doubles for motor configuration.
    -
    -
    MotorConfigDouble() - Constructor for class swervelib.parser.json.MotorConfigDouble
    -
    -
    Default constructor.
    -
    -
    MotorConfigDouble(double, double) - Constructor for class swervelib.parser.json.MotorConfigDouble
    -
    -
    Default constructor.
    -
    -
    MotorConfigInt - Class in swervelib.parser.json
    -
    -
    Used to store ints for motor configuration.
    -
    -
    MotorConfigInt() - Constructor for class swervelib.parser.json.MotorConfigInt
    -
    -
    Default constructor.
    -
    -
    MotorConfigInt(int, int) - Constructor for class swervelib.parser.json.MotorConfigInt
    -
    -
    Default constructor with values.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-13.html b/docs/index-files/index-13.html deleted file mode 100644 index 5124120..0000000 --- a/docs/index-files/index-13.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - -N-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    N

    -
    -
    name - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Name for the swerve module for telemetry.
    -
    -
    NavXSwerve - Class in swervelib.imu
    -
    -
    Communicates with the NavX as the IMU.
    -
    -
    NavXSwerve(I2C.Port) - Constructor for class swervelib.imu.NavXSwerve
    -
    -
    Constructor for the NavX swerve.
    -
    -
    NavXSwerve(SerialPort.Port) - Constructor for class swervelib.imu.NavXSwerve
    -
    -
    Constructor for the NavX swerve.
    -
    -
    NavXSwerve(SPI.Port) - Constructor for class swervelib.imu.NavXSwerve
    -
    -
    Constructor for the NavX swerve.
    -
    -
    nominalVoltage - Variable in class swervelib.motors.TalonFXSwerve
    -
    -
    Nominal voltage default to use with feedforward.
    -
    -
    nominalVoltage - Variable in class swervelib.motors.TalonSRXSwerve
    -
    -
    Nominal voltage default to use with feedforward.
    -
    -
    NONE - Enum constant in enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    -
    -
    No telemetry data is sent back.
    -
    -
    normalizeAngle(double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Normalize an angle to be within 0 to 360.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-14.html b/docs/index-files/index-14.html deleted file mode 100644 index d1f6967..0000000 --- a/docs/index-files/index-14.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - -O-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    O

    -
    -
    odometryLock - Variable in class swervelib.SwerveDrive
    -
    -
    Odometry lock to ensure thread safety.
    -
    -
    odometryThread - Variable in class swervelib.SwerveDrive
    -
    -
    WPILib Notifier to keep odometry up to date.
    -
    -
    offset - Variable in class swervelib.imu.ADIS16448Swerve
    -
    -
    Offset for the ADIS16448.
    -
    -
    offset - Variable in class swervelib.imu.ADIS16470Swerve
    -
    -
    Offset for the ADIS16470.
    -
    -
    offset - Variable in class swervelib.imu.ADXRS450Swerve
    -
    -
    Offset for the ADXRS450.
    -
    -
    offset - Variable in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Offset for the analog gyro.
    -
    -
    offset - Variable in class swervelib.imu.NavXSwerve
    -
    -
    Offset for the NavX.
    -
    -
    offset - Variable in class swervelib.imu.Pigeon2Swerve
    -
    -
    Offset for the Pigeon 2.
    -
    -
    offset - Variable in class swervelib.imu.PigeonSwerve
    -
    -
    Offset for the Pigeon.
    -
    -
    openJson(File) - Method in class swervelib.parser.SwerveParser
    -
    -
    Open JSON file.
    -
    -
    optimalVoltage - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    The voltage to use for the smart motor voltage compensation, default is 12.
    -
    -
    optimalVoltage - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    The voltage to use for the smart motor voltage compensation.
    -
    -
    output - Variable in class swervelib.parser.PIDFConfig
    -
    -
    The PIDF output range.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-15.html b/docs/index-files/index-15.html deleted file mode 100644 index 602390f..0000000 --- a/docs/index-files/index-15.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - -P-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    P

    -
    -
    p - Variable in class swervelib.parser.PIDFConfig
    -
    -
    Proportional Gain for PID.
    -
    -
    physicalCharacteristics - Variable in class swervelib.parser.SwerveDriveConfiguration
    -
    -
    Physical characteristics of the swerve drive from physicalproperties.json.
    -
    -
    physicalCharacteristics - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Physical characteristics of the swerve module.
    -
    -
    physicalPropertiesJson - Static variable in class swervelib.parser.SwerveParser
    -
    -
    Parsed modules/physicalproperties.json
    -
    -
    PhysicalPropertiesJson - Class in swervelib.parser.json
    -
    - -
    -
    PhysicalPropertiesJson() - Constructor for class swervelib.parser.json.PhysicalPropertiesJson
    -
     
    -
    PhysicsSim - Class in swervelib.simulation.ctre
    -
    -
    Manages physics simulation for CTRE products.
    -
    -
    PhysicsSim() - Constructor for class swervelib.simulation.ctre.PhysicsSim
    -
     
    -
    PhysicsSim.SimProfile - Class in swervelib.simulation.ctre
    -
    -
    Holds information about a simulated device.
    -
    -
    pid - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Closed-loop PID controller.
    -
    -
    pid - Variable in class swervelib.motors.SparkMaxSwerve
    -
    -
    Closed-loop PID controller.
    -
    -
    PIDFConfig - Class in swervelib.parser
    -
    -
    Hold the PIDF and Integral Zone values for a PID.
    -
    -
    PIDFConfig() - Constructor for class swervelib.parser.PIDFConfig
    -
    -
    Used when parsing PIDF values from JSON.
    -
    -
    PIDFConfig(double, double) - Constructor for class swervelib.parser.PIDFConfig
    -
    -
    PIDF Config constructor to contain the values.
    -
    -
    PIDFConfig(double, double, double) - Constructor for class swervelib.parser.PIDFConfig
    -
    -
    PIDF Config constructor to contain the values.
    -
    -
    PIDFConfig(double, double, double, double) - Constructor for class swervelib.parser.PIDFConfig
    -
    -
    PIDF Config constructor to contain the values.
    -
    -
    PIDFConfig(double, double, double, double, double) - Constructor for class swervelib.parser.PIDFConfig
    -
    -
    PIDF Config constructor to contain the values.
    -
    -
    pidfPropertiesJson - Static variable in class swervelib.parser.SwerveParser
    -
    -
    Parsed modules/pidfproperties.json
    -
    -
    PIDFPropertiesJson - Class in swervelib.parser.json
    -
    -
    SwerveModule PID with Feedforward for the drive motor and angle motor.
    -
    -
    PIDFPropertiesJson() - Constructor for class swervelib.parser.json.PIDFPropertiesJson
    -
     
    -
    PIDFRange - Class in swervelib.parser.deserializer
    -
    -
    Class to hold the minimum and maximum input or output of the PIDF.
    -
    -
    PIDFRange() - Constructor for class swervelib.parser.deserializer.PIDFRange
    -
     
    -
    Pigeon2Swerve - Class in swervelib.imu
    -
    -
    SwerveIMU interface for the Pigeon2
    -
    -
    Pigeon2Swerve(int) - Constructor for class swervelib.imu.Pigeon2Swerve
    -
    -
    Generate the SwerveIMU for pigeon.
    -
    -
    Pigeon2Swerve(int, String) - Constructor for class swervelib.imu.Pigeon2Swerve
    -
    -
    Generate the SwerveIMU for pigeon.
    -
    -
    PigeonSwerve - Class in swervelib.imu
    -
    -
    SwerveIMU interface for the Pigeon.
    -
    -
    PigeonSwerve(int) - Constructor for class swervelib.imu.PigeonSwerve
    -
    -
    Generate the SwerveIMU for pigeon.
    -
    -
    placeInAppropriate0To360Scope(double, double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Put an angle within the 360 deg scope of a reference.
    -
    -
    PoseLog(Pose2d) - Static method in class swervelib.math.SwerveMath
    -
    -
    Logical inverse of the Pose exponential from 254.
    -
    -
    position - Variable in class swervelib.math.Matter
    -
    -
    Position in meters from robot center in 3d space.
    -
    -
    Position - Enum constant in enum class swervelib.motors.SparkMaxSwerve.SparkMAX_slotIdx
    -
    -
    Slot 1, used for position PID's.
    -
    -
    positionConversionFactor - Variable in class swervelib.motors.TalonFXSwerve
    -
    -
    The position conversion factor to convert raw sensor units to Meters Per 100ms, or Ticks to Degrees.
    -
    -
    positionConversionFactor - Variable in class swervelib.motors.TalonSRXSwerve
    -
    -
    The position conversion factor to convert raw sensor units to Meters Per 100ms, or Ticks to Degrees.
    -
    -
    postTrajectory(Trajectory) - Method in class swervelib.SwerveDrive
    -
    -
    Post the trajectory to the field
    -
    -
    pushOffsetsToControllers() - Method in class swervelib.SwerveDrive
    -
    -
    Pushes the Absolute Encoder offsets to the Encoder or Motor Controller, depending on type.
    -
    -
    pushOffsetsToControllers() - Method in class swervelib.SwerveModule
    -
    -
    Push absolute encoder offset in the memory of the encoder or controller.
    -
    -
    PWMDutyCycleEncoderSwerve - Class in swervelib.encoders
    -
    -
    DutyCycle encoders such as "US Digital MA3 with PWM Output, the CTRE Mag Encoder, the Rev Hex Encoder, and the AM Mag - Encoder." attached via a PWM lane.
    -
    -
    PWMDutyCycleEncoderSwerve(int) - Constructor for class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Constructor for the PWM duty cycle encoder.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-16.html b/docs/index-files/index-16.html deleted file mode 100644 index 4d47c1d..0000000 --- a/docs/index-files/index-16.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - -Q-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    Q

    -
    -
    queueSynchronizeEncoders() - Method in class swervelib.SwerveModule
    -
    -
    Queue synchronization of the integrated angle encoder with the absolute encoder.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-17.html b/docs/index-files/index-17.html deleted file mode 100644 index ec5e033..0000000 --- a/docs/index-files/index-17.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -R-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    R

    -
    -
    rampRate - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    The minimum number of seconds to take for the motor to go from 0 to full throttle.
    -
    -
    random(double) - Static method in class swervelib.simulation.ctre.PhysicsSim
    -
     
    -
    random(double, double) - Static method in class swervelib.simulation.ctre.PhysicsSim
    -
     
    -
    readingError - Variable in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    Last angle reading was faulty.
    -
    -
    replaceSwerveModuleFeedforward(SimpleMotorFeedforward) - Method in class swervelib.SwerveDrive
    -
    -
    Setup the swerve module feedforward.
    -
    -
    resetEncoders() - Method in class swervelib.SwerveDrive
    -
    -
    Reset the drive encoders on the robot, useful when manually resetting the robot without a reboot, like in - autonomous.
    -
    -
    resetOdometry(Pose2d) - Method in class swervelib.SwerveDrive
    -
    -
    Resets odometry to the given pose.
    -
    -
    restoreInternalOffset() - Method in class swervelib.SwerveDrive
    -
    -
    Restores Internal YAGSL Encoder offsets and sets the Encoder stored offset back to 0
    -
    -
    restoreInternalOffset() - Method in class swervelib.SwerveModule
    -
    -
    Restore internal offset in YAGSL and either sets absolute encoder offset to 0 or restores old value.
    -
    -
    robotRotation - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The robot's current rotation based on odometry or gyro readings
    -
    -
    rotationUnit - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The units of the module rotations and robot rotation
    -
    -
    run() - Method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Runs the simulator: - enable the robot - simulate sensors
    -
    -
    run() - Method in class swervelib.simulation.ctre.PhysicsSim.SimProfile
    -
    -
    Runs the simulation profile.
    -
    -
    run() - Method in class swervelib.simulation.ctre.TalonFXSimProfile
    -
    -
    Runs the simulation profile.
    -
    -
    run() - Method in class swervelib.simulation.ctre.TalonSRXSimProfile
    -
    -
    Runs the simulation profile.
    -
    -
    run() - Method in class swervelib.simulation.ctre.VictorSPXSimProfile
    -
    -
    Runs the simulation profile.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-18.html b/docs/index-files/index-18.html deleted file mode 100644 index b446a40..0000000 --- a/docs/index-files/index-18.html +++ /dev/null @@ -1,714 +0,0 @@ - - - - -S-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    S

    -
    -
    set(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the percentage output.
    -
    -
    set(double) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the percentage output.
    -
    -
    set(double) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the percentage output.
    -
    -
    set(double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the percentage output.
    -
    -
    set(double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the percentage output.
    -
    -
    setAbsoluteEncoder(SwerveAbsoluteEncoder) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the absolute encoder to be a compatible absolute encoder.
    -
    -
    setAbsoluteEncoder(SwerveAbsoluteEncoder) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the absolute encoder to be a compatible absolute encoder.
    -
    -
    setAbsoluteEncoder(SwerveAbsoluteEncoder) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the absolute encoder to be a compatible absolute encoder.
    -
    -
    setAbsoluteEncoder(SwerveAbsoluteEncoder) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the absolute encoder to be a compatible absolute encoder.
    -
    -
    setAbsoluteEncoder(SwerveAbsoluteEncoder) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the absolute encoder to be a compatible absolute encoder.
    -
    -
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Cannot Set the offset of an Analog Absolute Encoder.
    -
    -
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Cannot set the offset of the CanAndCoder.
    -
    -
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.CANCoderSwerve
    -
    -
    Sets the Absolute Encoder Offset inside of the CANcoder's Memory.
    -
    -
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Sets the offset of the Encoder in the WPILib Encoder Library.
    -
    -
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Sets the Absolute Encoder offset at the Encoder Level.
    -
    -
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Sets the Absolute Encoder Offset inside of the SparkMax's Memory.
    -
    -
    setAbsoluteEncoderOffset(double) - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    Sets the Absolute Encoder offset at the Encoder Level.
    -
    -
    setAngle(double) - Method in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Set the heading of the robot.
    -
    -
    setAngle(double) - Method in class swervelib.SwerveModule
    -
    -
    Set the angle for the module.
    -
    -
    setAngleMotorConversionFactor(double) - Method in class swervelib.SwerveDrive
    -
    -
    Set the conversion factor for the angle/azimuth motor controller.
    -
    -
    setAngleMotorConversionFactor(double) - Method in class swervelib.SwerveModule
    -
    -
    Set the conversion factor for the angle/azimuth motor controller.
    -
    -
    setAngleMotorVoltageCompensation(double) - Method in class swervelib.SwerveModule
    -
    -
    Set the voltage compensation for the swerve module motor.
    -
    -
    setChassisSpeeds(ChassisSpeeds) - Method in class swervelib.SwerveDrive
    -
    -
    Set chassis speeds with closed-loop velocity control.
    -
    -
    setCurrentLimit(int) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with - voltage compensation.
    -
    -
    setCurrentLimit(int) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with - voltage compensation.
    -
    -
    setCurrentLimit(int) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with - voltage compensation.
    -
    -
    setCurrentLimit(int) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with - voltage compensation.
    -
    -
    setCurrentLimit(int) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with - voltage compensation.
    -
    -
    setDesiredState(SwerveModuleState, boolean, boolean) - Method in class swervelib.SwerveModule
    -
    -
    Set the desired state of the swerve module.
    -
    -
    setDriveMotorConversionFactor(double) - Method in class swervelib.SwerveDrive
    -
    -
    Set the conversion factor for the drive motor controller.
    -
    -
    setDriveMotorConversionFactor(double) - Method in class swervelib.SwerveModule
    -
    -
    Set the conversion factor for the drive motor controller.
    -
    -
    setDriveMotorVoltageCompensation(double) - Method in class swervelib.SwerveModule
    -
    -
    Set the voltage compensation for the swerve module motor.
    -
    -
    setGyro(Rotation3d) - Method in class swervelib.SwerveDrive
    -
    -
    Set the expected gyroscope angle using a Rotation3d object.
    -
    -
    setGyroOffset(Rotation3d) - Method in class swervelib.SwerveDrive
    -
    -
    Set the gyro scope offset to a desired known rotation.
    -
    -
    setHeadingCorrection(boolean) - Method in class swervelib.SwerveDrive
    -
    -
    Set the heading correction capabilities of YAGSL.
    -
    -
    setInverted(boolean) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the motor to be inverted.
    -
    -
    setInverted(boolean) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the motor to be inverted.
    -
    -
    setInverted(boolean) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the motor to be inverted.
    -
    -
    setInverted(boolean) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the motor to be inverted.
    -
    -
    setInverted(boolean) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the motor to be inverted.
    -
    -
    setLoopRampRate(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the maximum rate the open/closed loop output can change by.
    -
    -
    setLoopRampRate(double) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the maximum rate the open/closed loop output can change by.
    -
    -
    setLoopRampRate(double) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the maximum rate the open/closed loop output can change by.
    -
    -
    setLoopRampRate(double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the maximum rate the open/closed loop output can change by.
    -
    -
    setLoopRampRate(double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the maximum rate the open/closed loop output can change by.
    -
    -
    setMaximumAngularVelocity(double) - Method in class swervelib.SwerveController
    -
    -
    Set a new maximum angular velocity that is different from the auto-generated one.
    -
    -
    setMaximumSpeed(double) - Method in class swervelib.SwerveDrive
    -
    -
    Set the maximum speed of the drive motors, modified SwerveDrive.maxSpeedMPS which is used for the - SwerveDrive.setRawModuleStates(SwerveModuleState[], boolean) function and - SwerveController.getTargetSpeeds(double, double, double, double, double) functions.
    -
    -
    setMaximumSpeed(double, boolean, double) - Method in class swervelib.SwerveDrive
    -
    -
    Set the maximum speed of the drive motors, modified SwerveDrive.maxSpeedMPS which is used for the - SwerveDrive.setRawModuleStates(SwerveModuleState[], boolean) function and - SwerveController.getTargetSpeeds(double, double, double, double, double) functions.
    -
    -
    setMaximumSpeeds(double, double, double) - Method in class swervelib.SwerveDrive
    -
    -
    Set the maximum speeds for desaturation.
    -
    -
    setModuleStateOptimization(boolean) - Method in class swervelib.SwerveDrive
    -
    -
    Configure whether the SwerveModuleState will be optimized to prevent spinning more than 90deg.
    -
    -
    setModuleStates(SwerveModuleState[], boolean) - Method in class swervelib.SwerveDrive
    -
    -
    Set the module states (azimuth and velocity) directly.
    -
    -
    setMotorBrake(boolean) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the idle mode.
    -
    -
    setMotorBrake(boolean) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the idle mode.
    -
    -
    setMotorBrake(boolean) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the idle mode.
    -
    -
    setMotorBrake(boolean) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the idle mode.
    -
    -
    setMotorBrake(boolean) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the idle mode.
    -
    -
    setMotorBrake(boolean) - Method in class swervelib.SwerveModule
    -
    -
    Set the brake mode.
    -
    -
    setMotorIdleMode(boolean) - Method in class swervelib.SwerveDrive
    -
    -
    Sets the drive motors to brake/coast mode.
    -
    -
    setOdometryPeriod(double) - Method in class swervelib.SwerveDrive
    -
    -
    Set the odometry update period in seconds.
    -
    -
    setOffset(Rotation3d) - Method in class swervelib.imu.ADIS16448Swerve
    -
    -
    Set the gyro offset.
    -
    -
    setOffset(Rotation3d) - Method in class swervelib.imu.ADIS16470Swerve
    -
    -
    Set the gyro offset.
    -
    -
    setOffset(Rotation3d) - Method in class swervelib.imu.ADXRS450Swerve
    -
    -
    Set the gyro offset.
    -
    -
    setOffset(Rotation3d) - Method in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Set the gyro offset.
    -
    -
    setOffset(Rotation3d) - Method in class swervelib.imu.NavXSwerve
    -
    -
    Set the gyro offset.
    -
    -
    setOffset(Rotation3d) - Method in class swervelib.imu.Pigeon2Swerve
    -
    -
    Set the gyro offset.
    -
    -
    setOffset(Rotation3d) - Method in class swervelib.imu.PigeonSwerve
    -
    -
    Set the gyro offset.
    -
    -
    setOffset(Rotation3d) - Method in class swervelib.imu.SwerveIMU
    -
    -
    Set the gyro offset.
    -
    -
    setPosition(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the integrated encoder position.
    -
    -
    setPosition(double) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the integrated encoder position.
    -
    -
    setPosition(double) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the integrated encoder position.
    -
    -
    setPosition(double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the integrated encoder position.
    -
    -
    setPosition(double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the integrated encoder position.
    -
    -
    setRawModuleStates(SwerveModuleState[], boolean) - Method in class swervelib.SwerveDrive
    -
    -
    Set the module states (azimuth and velocity) directly.
    -
    -
    setReference(double, double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double, double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double, double) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double, double) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double, double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setReference(double, double, double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the closed loop PID controller reference point.
    -
    -
    setVoltageCompensation(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the voltage compensation for the swerve module motor.
    -
    -
    setVoltageCompensation(double) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the voltage compensation for the swerve module motor.
    -
    -
    setVoltageCompensation(double) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Set the voltage compensation for the swerve module motor.
    -
    -
    setVoltageCompensation(double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the voltage compensation for the swerve module motor.
    -
    -
    setVoltageCompensation(double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the voltage compensation for the swerve module motor.
    -
    -
    sim - Static variable in class swervelib.simulation.ctre.PhysicsSim
    -
     
    -
    simIMU - Variable in class swervelib.SwerveDrive
    -
    -
    Simulation of the swerve drive.
    -
    -
    simModule - Variable in class swervelib.SwerveModule
    -
    -
    Simulated swerve module.
    -
    -
    SimProfile() - Constructor for class swervelib.simulation.ctre.PhysicsSim.SimProfile
    -
     
    -
    Simulation - Enum constant in enum class swervelib.motors.SparkMaxSwerve.SparkMAX_slotIdx
    -
    -
    Slot 3, used arbitrarily.
    -
    -
    sizeFrontBack - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The distance between the front and back modules.
    -
    -
    sizeLeftRight - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The distance between the left and right modules.
    -
    -
    SparkMAX_slotIdx() - Constructor for enum class swervelib.motors.SparkMaxSwerve.SparkMAX_slotIdx
    -
     
    -
    SparkMaxAnalogEncoderSwerve - Class in swervelib.encoders
    -
    -
    SparkMax absolute encoder, attached through the data port analog pin.
    -
    -
    SparkMaxAnalogEncoderSwerve(SwerveMotor) - Constructor for class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Create the SparkMaxAnalogEncoderSwerve object as a analog sensor from the CANSparkMax motor data - port analog pin.
    -
    -
    SparkMaxBrushedMotorSwerve - Class in swervelib.motors
    -
    -
    Brushed motor control with SparkMax.
    -
    -
    SparkMaxBrushedMotorSwerve(int, boolean, SparkMaxRelativeEncoder.Type, int, boolean) - Constructor for class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
    -
    -
    SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkMaxRelativeEncoder.Type, int, boolean) - Constructor for class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Initialize the swerve motor.
    -
    -
    SparkMaxEncoderSwerve - Class in swervelib.encoders
    -
    -
    SparkMax absolute encoder, attached through the data port.
    -
    -
    SparkMaxEncoderSwerve(SwerveMotor, int) - Constructor for class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Create the SparkMaxEncoderSwerve object as a duty cycle from the CANSparkMax motor.
    -
    -
    SparkMaxSwerve - Class in swervelib.motors
    -
    -
    An implementation of CANSparkMax as a SwerveMotor.
    -
    -
    SparkMaxSwerve(int, boolean) - Constructor for class swervelib.motors.SparkMaxSwerve
    -
    -
    Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
    -
    -
    SparkMaxSwerve(CANSparkMax, boolean) - Constructor for class swervelib.motors.SparkMaxSwerve
    -
    -
    Initialize the swerve motor.
    -
    -
    SparkMaxSwerve.SparkMAX_slotIdx - Enum Class in swervelib.motors
    -
    -
    REV Slots for PID configuration.
    -
    -
    state - Variable in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Current simulated swerve module state.
    -
    -
    stateStdDevs - Variable in class swervelib.SwerveDrive
    -
    -
    Standard deviation of encoders and gyroscopes, usually should not change.
    -
    -
    stopOdometryThread() - Method in class swervelib.SwerveDrive
    -
    -
    Stop the odometry thread in favor of manually updating odometry.
    -
    -
    SwerveAbsoluteEncoder - Class in swervelib.encoders
    -
    -
    Swerve abstraction class to define a standard interface with absolute encoders for swerve modules..
    -
    -
    SwerveAbsoluteEncoder() - Constructor for class swervelib.encoders.SwerveAbsoluteEncoder
    -
     
    -
    swerveController - Variable in class swervelib.SwerveDrive
    -
    -
    Swerve controller for controlling heading of the robot.
    -
    -
    SwerveController - Class in swervelib
    -
    -
    Controller class used to convert raw inputs into robot speeds.
    -
    -
    SwerveController(SwerveControllerConfiguration) - Constructor for class swervelib.SwerveController
    -
    -
    Construct the SwerveController object which is used for determining the speeds of the robot based on controller - input.
    -
    -
    SwerveControllerConfiguration - Class in swervelib.parser
    -
    -
    Swerve Controller configuration class which is used to configure SwerveController.
    -
    -
    SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double) - Constructor for class swervelib.parser.SwerveControllerConfiguration
    -
    -
    Construct the swerve controller configuration.
    -
    -
    SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double, double) - Constructor for class swervelib.parser.SwerveControllerConfiguration
    -
    -
    Construct the swerve controller configuration.
    -
    -
    SwerveDrive - Class in swervelib
    -
    -
    Swerve Drive class representing and controlling the swerve drive.
    -
    -
    SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration, double) - Constructor for class swervelib.SwerveDrive
    -
    -
    Creates a new swerve drivebase subsystem.
    -
    -
    swerveDriveConfiguration - Variable in class swervelib.SwerveDrive
    -
    -
    Swerve drive configuration.
    -
    -
    SwerveDriveConfiguration - Class in swervelib.parser
    -
    -
    Swerve drive configurations used during SwerveDrive construction.
    -
    -
    SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, boolean, SimpleMotorFeedforward, SwerveModulePhysicalCharacteristics) - Constructor for class swervelib.parser.SwerveDriveConfiguration
    -
    -
    Create swerve drive configuration.
    -
    -
    swerveDriveJson - Static variable in class swervelib.parser.SwerveParser
    -
    -
    Parsed swervedrive.json
    -
    -
    SwerveDriveJson - Class in swervelib.parser.json
    -
    -
    SwerveDrive JSON parsed class.
    -
    -
    SwerveDriveJson() - Constructor for class swervelib.parser.json.SwerveDriveJson
    -
     
    -
    swerveDrivePoseEstimator - Variable in class swervelib.SwerveDrive
    -
    -
    Swerve odometry.
    -
    -
    SwerveDriveTelemetry - Class in swervelib.telemetry
    -
    -
    Telemetry to describe the SwerveDrive following frc-web-components.
    -
    -
    SwerveDriveTelemetry() - Constructor for class swervelib.telemetry.SwerveDriveTelemetry
    -
     
    -
    SwerveDriveTelemetry.TelemetryVerbosity - Enum Class in swervelib.telemetry
    -
    -
    Verbosity of telemetry data sent back.
    -
    -
    SwerveIMU - Class in swervelib.imu
    -
    -
    Swerve IMU abstraction to define a standard interface with a swerve drive.
    -
    -
    SwerveIMU() - Constructor for class swervelib.imu.SwerveIMU
    -
     
    -
    SwerveIMUSimulation - Class in swervelib.simulation
    -
    -
    Simulation for SwerveDrive IMU.
    -
    -
    SwerveIMUSimulation() - Constructor for class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Create the swerve drive IMU simulation.
    -
    -
    swervelib - package swervelib
    -
    -
    Yet-Another Generic Swerve Library (YAGSL) main package AKA swervelib.
    -
    -
    swervelib.encoders - package swervelib.encoders
    -
    -
    Absolute encoders for the swerve drive, all implement SwerveAbsoluteEncoder.
    -
    -
    swervelib.imu - package swervelib.imu
    -
    -
    IMUs used for controlling the robot heading.
    -
    -
    swervelib.math - package swervelib.math
    -
    -
    Mathematics for swerve drives.
    -
    -
    swervelib.motors - package swervelib.motors
    -
    -
    Swerve motor controller wrappers which implement SwerveMotor.
    -
    -
    swervelib.parser - package swervelib.parser
    -
    -
    JSON Parser for YAGSL configurations.
    -
    -
    swervelib.parser.deserializer - package swervelib.parser.deserializer
    -
    -
    Deserialize specific variables for outside the parser.
    -
    -
    swervelib.parser.json - package swervelib.parser.json
    -
    -
    JSON Mapped classes for parsing configuration files.
    -
    -
    swervelib.parser.json.modules - package swervelib.parser.json.modules
    -
    -
    JSON Mapped Configuration types for modules.
    -
    -
    swervelib.simulation - package swervelib.simulation
    -
    -
    Classes used to simulate the swerve drive.
    -
    -
    swervelib.simulation.ctre - package swervelib.simulation.ctre
    -
    -
    CTRE Physics Simulator.
    -
    -
    swervelib.telemetry - package swervelib.telemetry
    -
    -
    Telemetry package for sending data to NT4 or SmartDashboard.
    -
    -
    SwerveMath - Class in swervelib.math
    -
    -
    Mathematical functions which pertain to swerve drive.
    -
    -
    SwerveMath() - Constructor for class swervelib.math.SwerveMath
    -
     
    -
    SwerveModule - Class in swervelib
    -
    -
    The Swerve Module class which represents and controls Swerve Modules for the swerve drive.
    -
    -
    SwerveModule(int, SwerveModuleConfiguration, SimpleMotorFeedforward) - Constructor for class swervelib.SwerveModule
    -
    -
    Construct the swerve module and initialize the swerve module motors and absolute encoder.
    -
    -
    SwerveModuleConfiguration - Class in swervelib.parser
    -
    -
    Swerve Module configuration class which is used to configure SwerveModule.
    -
    -
    SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean, String) - Constructor for class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Construct a configuration object for swerve modules.
    -
    -
    SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String) - Constructor for class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Construct a configuration object for swerve modules.
    -
    -
    SwerveModulePhysicalCharacteristics - Class in swervelib.parser
    -
    -
    Configuration class which stores physical characteristics shared between every swerve module.
    -
    -
    SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double) - Constructor for class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Construct the swerve module physical characteristics.
    -
    -
    SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double, int, int, double, double) - Constructor for class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Construct the swerve module physical characteristics.
    -
    -
    swerveModules - Variable in class swervelib.SwerveDrive
    -
    -
    Swerve modules.
    -
    -
    SwerveModuleSimulation - Class in swervelib.simulation
    -
    -
    Class to hold simulation data for SwerveModule
    -
    -
    SwerveModuleSimulation() - Constructor for class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Create simulation class and initialize module at 0.
    -
    -
    SwerveMotor - Class in swervelib.motors
    -
    -
    Swerve motor abstraction which defines a standard interface for motors within a swerve module.
    -
    -
    SwerveMotor() - Constructor for class swervelib.motors.SwerveMotor
    -
     
    -
    SwerveParser - Class in swervelib.parser
    -
    -
    Helper class used to parse the JSON directory with specified configuration options.
    -
    -
    SwerveParser(File) - Constructor for class swervelib.parser.SwerveParser
    -
    -
    Construct a swerve parser.
    -
    -
    synchronizeEncoderQueued - Variable in class swervelib.SwerveModule
    -
    -
    Encoder synchronization queued.
    -
    -
    synchronizeModuleEncoders() - Method in class swervelib.SwerveDrive
    -
    -
    Synchronize angle motor integrated encoders with data from absolute encoders.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-19.html b/docs/index-files/index-19.html deleted file mode 100644 index dc6c40d..0000000 --- a/docs/index-files/index-19.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -T-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    T

    -
    -
    TalonFXSimProfile - Class in swervelib.simulation.ctre
    -
    -
    Holds information about a simulated TalonFX.
    -
    -
    TalonFXSimProfile(TalonFX, double, double, boolean) - Constructor for class swervelib.simulation.ctre.TalonFXSimProfile
    -
    -
    Creates a new simulation profile for a TalonFX device.
    -
    -
    TalonFXSwerve - Class in swervelib.motors
    -
    -
    TalonFX Swerve Motor.
    -
    -
    TalonFXSwerve(int, boolean) - Constructor for class swervelib.motors.TalonFXSwerve
    -
    -
    Construct the TalonFX swerve motor given the ID.
    -
    -
    TalonFXSwerve(int, String, boolean) - Constructor for class swervelib.motors.TalonFXSwerve
    -
    -
    Construct the TalonFX swerve motor given the ID and CANBus.
    -
    -
    TalonFXSwerve(WPI_TalonFX, boolean) - Constructor for class swervelib.motors.TalonFXSwerve
    -
    -
    Constructor for TalonFX swerve motor.
    -
    -
    TalonSRXSimProfile - Class in swervelib.simulation.ctre
    -
    -
    Holds information about a simulated TalonSRX.
    -
    -
    TalonSRXSimProfile(TalonSRX, double, double, boolean) - Constructor for class swervelib.simulation.ctre.TalonSRXSimProfile
    -
    -
    Creates a new simulation profile for a TalonSRX device.
    -
    -
    TalonSRXSwerve - Class in swervelib.motors
    -
    -
    WPI_TalonSRX Swerve Motor.
    -
    -
    TalonSRXSwerve(int, boolean) - Constructor for class swervelib.motors.TalonSRXSwerve
    -
    -
    Construct the TalonSRX swerve motor given the ID.
    -
    -
    TalonSRXSwerve(WPI_TalonSRX, boolean) - Constructor for class swervelib.motors.TalonSRXSwerve
    -
    -
    Constructor for TalonSRX swerve motor.
    -
    -
    TelemetryVerbosity() - Constructor for enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    -
     
    -
    thetaController - Variable in class swervelib.SwerveController
    -
    -
    PID Controller for the robot heading.
    -
    -
    timer - Variable in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Main timer to control movement estimations.
    -
    -
    timer - Variable in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Main timer to simulate the passage of time.
    -
    -
    type - Variable in class swervelib.parser.json.DeviceJson
    -
    -
    The device type, e.g.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html deleted file mode 100644 index 9252ce3..0000000 --- a/docs/index-files/index-2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -B-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    B

    -
    -
    BoolMotorJson - Class in swervelib.parser.json.modules
    -
    -
    Inverted motor JSON parsed class.
    -
    -
    BoolMotorJson() - Constructor for class swervelib.parser.json.modules.BoolMotorJson
    -
     
    -
    burnFlash() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Save the configurations from flash to EEPROM.
    -
    -
    burnFlash() - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Save the configurations from flash to EEPROM.
    -
    -
    burnFlash() - Method in class swervelib.motors.SwerveMotor
    -
    -
    Save the configurations from flash to EEPROM.
    -
    -
    burnFlash() - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Save the configurations from flash to EEPROM.
    -
    -
    burnFlash() - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Save the configurations from flash to EEPROM.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-20.html b/docs/index-files/index-20.html deleted file mode 100644 index b5145fc..0000000 --- a/docs/index-files/index-20.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - -U-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    U

    -
    -
    updateData() - Static method in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    Upload data to smartdashboard
    -
    -
    updateOdometry() - Method in class swervelib.SwerveDrive
    -
    -
    Update odometry should be run every loop.
    -
    -
    updateOdometry(SwerveDriveKinematics, SwerveModuleState[], Pose2d[], Field2d) - Method in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Update the odometry of the simulated SwerveDrive and post the SwerveModule - states to the Field2d.
    -
    -
    updateStateAndPosition(SwerveModuleState) - Method in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Update the position and state of the module.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-21.html b/docs/index-files/index-21.html deleted file mode 100644 index ca81c29..0000000 --- a/docs/index-files/index-21.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - -V-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    V

    -
    -
    valueOf(String) - Static method in enum class swervelib.motors.SparkMaxSwerve.SparkMAX_slotIdx
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    values() - Static method in enum class swervelib.motors.SparkMaxSwerve.SparkMAX_slotIdx
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    Velocity - Enum constant in enum class swervelib.motors.SparkMaxSwerve.SparkMAX_slotIdx
    -
    -
    Slot 2, used for velocity PID's.
    -
    -
    velocityPIDF - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    PIDF configuration options for the drive motor closed-loop PID controller.
    -
    -
    verbosity - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The current telemetry verbosity level.
    -
    -
    VictorSPXSimProfile - Class in swervelib.simulation.ctre
    -
    -
    Holds information about a simulated VictorSPX.
    -
    -
    VictorSPXSimProfile(VictorSPX) - Constructor for class swervelib.simulation.ctre.VictorSPXSimProfile
    -
    -
    Creates a new simulation profile for a VictorSPX device.
    -
    -
    visionMeasurementStdDevs - Variable in class swervelib.SwerveDrive
    -
    -
    The standard deviation of the vision measurement, for best accuracy calculate the standard deviation at 2 or more - points and fit a line to it and modify this using SwerveDrive.addVisionMeasurement(Pose2d, double, Matrix) - with the calculated optimal standard deviation.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-22.html b/docs/index-files/index-22.html deleted file mode 100644 index c6f69d6..0000000 --- a/docs/index-files/index-22.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -W-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    W

    -
    -
    wheelGripCoefficientOfFriction - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    The grip tape coefficient of friction on carpet.
    -
    -
    wheelGripCoefficientOfFriction - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Wheel grip tape coefficient of friction on carpet, as described by the vendor.
    -
    -
    wheelLocations - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The number of swerve modules
    -
    -
    withinHypotDeadband(double, double) - Method in class swervelib.SwerveController
    -
    -
    Calculate the hypot deadband and check if the joystick is within it.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-23.html b/docs/index-files/index-23.html deleted file mode 100644 index f03708f..0000000 --- a/docs/index-files/index-23.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - -X-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    X

    -
    -
    x - Variable in class swervelib.parser.json.modules.LocationJson
    -
    -
    Location of the swerve module in inches from the center of the robot horizontally.
    -
    -
    xLimiter - Variable in class swervelib.SwerveController
    -
    -
    SlewRateLimiter for movement in the X direction in meters/second.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-24.html b/docs/index-files/index-24.html deleted file mode 100644 index 3439124..0000000 --- a/docs/index-files/index-24.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - -Y-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    Y

    -
    -
    y - Variable in class swervelib.parser.json.modules.LocationJson
    -
    -
    Location of the swerve module in inches from the center of the robot vertically.
    -
    -
    yLimiter - Variable in class swervelib.SwerveController
    -
    -
    SlewRateLimiter for movement in the Y direction in meters/second.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-25.html b/docs/index-files/index-25.html deleted file mode 100644 index 2348b9f..0000000 --- a/docs/index-files/index-25.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - -Z-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    Z

    -
    -
    zeroGyro() - Method in class swervelib.SwerveDrive
    -
    -
    Resets the gyro angle to zero and resets odometry to the same position, but facing toward 0.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-26.html b/docs/index-files/index-26.html deleted file mode 100644 index 53de969..0000000 --- a/docs/index-files/index-26.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - -_-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    _

    -
    -
    _accelToFullTime - Variable in class swervelib.simulation.ctre.TalonFXSimProfile
    -
     
    -
    _accelToFullTime - Variable in class swervelib.simulation.ctre.TalonSRXSimProfile
    -
     
    -
    _falcon - Variable in class swervelib.simulation.ctre.TalonFXSimProfile
    -
     
    -
    _fullVel - Variable in class swervelib.simulation.ctre.TalonFXSimProfile
    -
     
    -
    _fullVel - Variable in class swervelib.simulation.ctre.TalonSRXSimProfile
    -
     
    -
    _lastTime - Variable in class swervelib.simulation.ctre.PhysicsSim.SimProfile
    -
     
    -
    _running - Variable in class swervelib.simulation.ctre.PhysicsSim.SimProfile
    -
     
    -
    _sensorPhase - Variable in class swervelib.simulation.ctre.TalonFXSimProfile
    -
     
    -
    _sensorPhase - Variable in class swervelib.simulation.ctre.TalonSRXSimProfile
    -
     
    -
    _simProfiles - Variable in class swervelib.simulation.ctre.PhysicsSim
    -
     
    -
    _talon - Variable in class swervelib.simulation.ctre.TalonSRXSimProfile
    -
     
    -
    _vel - Variable in class swervelib.simulation.ctre.TalonFXSimProfile
    -
    -
    The current velocity
    -
    -
    _vel - Variable in class swervelib.simulation.ctre.TalonSRXSimProfile
    -
    -
    The current velocity
    -
    -
    _victor - Variable in class swervelib.simulation.ctre.VictorSPXSimProfile
    -
     
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html deleted file mode 100644 index b5bf2f3..0000000 --- a/docs/index-files/index-3.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - -C-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    C

    -
    -
    calcMaxAccel(Rotation2d, List<Matter>, double, SwerveDriveConfiguration) - Static method in class swervelib.math.SwerveMath
    -
    -
    Calculates the maximum acceleration allowed in a direction without tipping the robot.
    -
    -
    calculateDegreesPerSteeringRotation(double, double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Calculate the degrees per steering rotation for the integrated encoder.
    -
    -
    calculateMaxAcceleration(double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Calculate the practical maximum acceleration of the robot using the wheel coefficient of friction.
    -
    -
    calculateMaxAcceleration(double, double, double, double, double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Calculate the maximum theoretical acceleration without friction.
    -
    -
    calculateMaxAngularVelocity(double, double, double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Calculate the maximum angular velocity.
    -
    -
    calculateMetersPerRotation(double, double, double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Calculate the meters per rotation for the integrated encoder.
    -
    -
    CanAndCoderSwerve - Class in swervelib.encoders
    -
    -
    HELIUM CANandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
    -
    -
    CanAndCoderSwerve(int) - Constructor for class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Create the CANandcoder
    -
    -
    canbus - Variable in class swervelib.parser.json.DeviceJson
    -
    -
    The CAN bus name which the device resides on if using CAN.
    -
    -
    CANCoderSwerve - Class in swervelib.encoders
    -
    -
    Swerve Absolute Encoder for CTRE CANCoders.
    -
    -
    CANCoderSwerve(int) - Constructor for class swervelib.encoders.CANCoderSwerve
    -
    -
    Initialize the CANCoder on the standard CANBus.
    -
    -
    CANCoderSwerve(int, String) - Constructor for class swervelib.encoders.CANCoderSwerve
    -
    -
    Initialize the CANCoder on the CANivore.
    -
    -
    chassisVelocityCorrection - Variable in class swervelib.SwerveDrive
    -
    -
    Correct chassis velocity in SwerveDrive.drive(Translation2d, double, boolean, boolean) using 254's - correction.
    -
    -
    checkDirectory(File) - Method in class swervelib.parser.SwerveParser
    -
    -
    Check directory structure.
    -
    -
    clearStickyFaults() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Clear sticky faults on the encoder.
    -
    -
    clearStickyFaults() - Method in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Clear sticky faults on the encoder.
    -
    -
    clearStickyFaults() - Method in class swervelib.encoders.CANCoderSwerve
    -
    -
    Clear sticky faults on the encoder.
    -
    -
    clearStickyFaults() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Clear sticky faults on the encoder.
    -
    -
    clearStickyFaults() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Clear sticky faults on the encoder.
    -
    -
    clearStickyFaults() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Clear sticky faults on the encoder.
    -
    -
    clearStickyFaults() - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    Clear sticky faults on the encoder.
    -
    -
    clearStickyFaults() - Method in class swervelib.imu.ADIS16448Swerve
    -
    -
    Clear sticky faults on IMU.
    -
    -
    clearStickyFaults() - Method in class swervelib.imu.ADIS16470Swerve
    -
    -
    Clear sticky faults on IMU.
    -
    -
    clearStickyFaults() - Method in class swervelib.imu.ADXRS450Swerve
    -
    -
    Clear sticky faults on IMU.
    -
    -
    clearStickyFaults() - Method in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Clear sticky faults on IMU.
    -
    -
    clearStickyFaults() - Method in class swervelib.imu.NavXSwerve
    -
    -
    Clear sticky faults on IMU.
    -
    -
    clearStickyFaults() - Method in class swervelib.imu.Pigeon2Swerve
    -
    -
    Clear sticky faults on IMU.
    -
    -
    clearStickyFaults() - Method in class swervelib.imu.PigeonSwerve
    -
    -
    Clear sticky faults on IMU.
    -
    -
    clearStickyFaults() - Method in class swervelib.imu.SwerveIMU
    -
    -
    Clear sticky faults on IMU.
    -
    -
    clearStickyFaults() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Clear the sticky faults on the motor controller.
    -
    -
    clearStickyFaults() - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Clear the sticky faults on the motor controller.
    -
    -
    clearStickyFaults() - Method in class swervelib.motors.SwerveMotor
    -
    -
    Clear the sticky faults on the motor controller.
    -
    -
    clearStickyFaults() - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Clear the sticky faults on the motor controller.
    -
    -
    clearStickyFaults() - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Clear the sticky faults on the motor controller.
    -
    -
    config - Variable in class swervelib.SwerveController
    -
    -
    SwerveControllerConfiguration object storing data to generate the PIDController for controlling the - robot heading, and deadband for heading joystick.
    -
    -
    configChanged - Variable in class swervelib.motors.TalonFXSwerve
    -
    -
    If the TalonFX configuration has changed.
    -
    -
    configChanged - Variable in class swervelib.motors.TalonSRXSwerve
    -
    -
    If the TalonFX configuration has changed.
    -
    -
    configuration - Variable in class swervelib.motors.TalonFXSwerve
    -
    -
    Current TalonFX configuration.
    -
    -
    configuration - Variable in class swervelib.motors.TalonSRXSwerve
    -
    -
    Current TalonFX configuration.
    -
    -
    configuration - Variable in class swervelib.SwerveModule
    -
    -
    Swerve module configuration options.
    -
    -
    configure(boolean) - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Configure the absolute encoder to read from [0, 360) per second.
    -
    -
    configure(boolean) - Method in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Configure the CANandCoder to read from [0, 360) per second.
    -
    -
    configure(boolean) - Method in class swervelib.encoders.CANCoderSwerve
    -
    -
    Configure the absolute encoder to read from [0, 360) per second.
    -
    -
    configure(boolean) - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Configure the inversion state of the encoder.
    -
    -
    configure(boolean) - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Configure the absolute encoder to read from [0, 360) per second.
    -
    -
    configure(boolean) - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Configure the absolute encoder to read from [0, 360) per second.
    -
    -
    configure(boolean) - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    Configure the absolute encoder to read from [0, 360) per second.
    -
    -
    configureCANStatusFrames(int) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the CAN status frames.
    -
    -
    configureCANStatusFrames(int) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the CAN status frames.
    -
    -
    configureCANStatusFrames(int, int, int, int, int) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Set the CAN status frames.
    -
    -
    configureCANStatusFrames(int, int, int, int, int) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Set the CAN status frames.
    -
    -
    configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Set the CAN status frames.
    -
    -
    configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Set the CAN status frames.
    -
    -
    configureIntegratedEncoder(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Configure the integrated encoder for the swerve module.
    -
    -
    configureIntegratedEncoder(double) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Configure the integrated encoder for the swerve module.
    -
    -
    configureIntegratedEncoder(double) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Configure the integrated encoder for the swerve module.
    -
    -
    configureIntegratedEncoder(double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Configure the integrated encoder for the swerve module.
    -
    -
    configureIntegratedEncoder(double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Configure the integrated encoder for the swerve module.
    -
    -
    configurePIDF(PIDFConfig) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Configure the PIDF values for the closed loop controller.
    -
    -
    configurePIDF(PIDFConfig) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Configure the PIDF values for the closed loop controller.
    -
    -
    configurePIDF(PIDFConfig) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Configure the PIDF values for the closed loop controller.
    -
    -
    configurePIDF(PIDFConfig) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Configure the PIDF values for the closed loop controller.
    -
    -
    configurePIDF(PIDFConfig) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Configure the PIDF values for the closed loop controller.
    -
    -
    configurePIDWrapping(double, double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Configure the PID wrapping for the position closed loop controller.
    -
    -
    configurePIDWrapping(double, double) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Configure the PID wrapping for the position closed loop controller.
    -
    -
    configurePIDWrapping(double, double) - Method in class swervelib.motors.SwerveMotor
    -
    -
    Configure the PID wrapping for the position closed loop controller.
    -
    -
    configurePIDWrapping(double, double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Configure the PID wrapping for the position closed loop controller.
    -
    -
    configurePIDWrapping(double, double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Configure the PID wrapping for the position closed loop controller.
    -
    -
    configureSparkMax(Supplier<REVLibError>) - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Run the configuration until it succeeds or times out.
    -
    -
    configureSparkMax(Supplier<REVLibError>) - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Run the configuration until it succeeds or times out.
    -
    -
    configureSparkMax(Supplier<REVLibError>) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Run the configuration until it succeeds or times out.
    -
    -
    configureSparkMax(Supplier<REVLibError>) - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Run the configuration until it succeeds or times out.
    -
    -
    controllerPropertiesJson - Static variable in class swervelib.parser.SwerveParser
    -
    -
    Parsed controllerproperties.json
    -
    -
    ControllerPropertiesJson - Class in swervelib.parser.json
    -
    -
    SwerveController parsed class.
    -
    -
    ControllerPropertiesJson() - Constructor for class swervelib.parser.json.ControllerPropertiesJson
    -
     
    -
    conversionFactor - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    Conversion factor for the module, if different from the one in swervedrive.json
    -
    -
    conversionFactor - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    Conversion factor applied to the motor controllers PID loops.
    -
    -
    conversionFactor - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    - -
    -
    conversionFactors - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    Conversion factor for drive motor onboard PID's and angle PID's.
    -
    -
    convertToNativeSensorUnits(double, double) - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Convert the setpoint into native sensor units.
    -
    -
    convertToNativeSensorUnits(double, double) - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Convert the setpoint into native sensor units.
    -
    -
    createControllerConfiguration(SwerveDriveConfiguration, double) - Method in class swervelib.parser.json.ControllerPropertiesJson
    -
    -
    Create the SwerveControllerConfiguration based on parsed and given data.
    -
    -
    createDriveFeedforward(double, double, double) - Static method in class swervelib.math.SwerveMath
    -
    -
    Create the drive feedforward for swerve modules.
    -
    -
    createEncoder(SwerveMotor) - Method in class swervelib.parser.json.DeviceJson
    -
    -
    Create a SwerveAbsoluteEncoder from the current configuration.
    -
    -
    createIMU() - Method in class swervelib.parser.json.DeviceJson
    -
    -
    Create a SwerveIMU from the given configuration.
    -
    -
    createModuleConfiguration(PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String) - Method in class swervelib.parser.json.ModuleJson
    -
    -
    Create the swerve module configuration based off of parsed data.
    -
    -
    createModules(SwerveModuleConfiguration[], SimpleMotorFeedforward) - Method in class swervelib.parser.SwerveDriveConfiguration
    -
    -
    Create modules based off of the SwerveModuleConfiguration.
    -
    -
    createMotor(boolean) - Method in class swervelib.parser.json.DeviceJson
    -
    -
    Create a SwerveMotor from the given configuration.
    -
    -
    createPhysicalProperties() - Method in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    Create the physical characteristics based off the parsed data.
    -
    -
    createPIDController() - Method in class swervelib.parser.PIDFConfig
    -
    -
    Create a PIDController from the PID values.
    -
    -
    createSwerveDrive(double) - Method in class swervelib.parser.SwerveParser
    -
    -
    Create SwerveDrive from JSON configuration directory.
    -
    -
    createSwerveDrive(double, double, double) - Method in class swervelib.parser.SwerveParser
    -
    -
    Create SwerveDrive from JSON configuration directory.
    -
    -
    createSwerveDrive(SimpleMotorFeedforward, double) - Method in class swervelib.parser.SwerveParser
    -
    -
    Create SwerveDrive from JSON configuration directory.
    -
    -
    createSwerveDrive(SimpleMotorFeedforward, double, double, double) - Method in class swervelib.parser.SwerveParser
    -
    -
    Create SwerveDrive from JSON configuration directory.
    -
    -
    currentLimit - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    -
    -
    The current limit in AMPs to apply to the motors.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html deleted file mode 100644 index 09585b0..0000000 --- a/docs/index-files/index-4.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - -D-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    D

    -
    -
    d - Variable in class swervelib.parser.PIDFConfig
    -
    -
    Derivative Gain for PID.
    -
    -
    desiredChassisSpeeds - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    Describes the desired forward, sideways and angular velocity of the robot.
    -
    -
    desiredStates - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    An array of rotation and velocity values describing the desired state of each swerve module
    -
    -
    DeviceJson - Class in swervelib.parser.json
    -
    -
    Device JSON parsed class.
    -
    -
    DeviceJson() - Constructor for class swervelib.parser.json.DeviceJson
    -
     
    -
    drive - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    Drive motor device configuration.
    -
    -
    drive - Variable in class swervelib.parser.json.modules.BoolMotorJson
    -
    -
    Drive motor inversion state.
    -
    -
    drive - Variable in class swervelib.parser.json.MotorConfigDouble
    -
    -
    Drive motor.
    -
    -
    drive - Variable in class swervelib.parser.json.MotorConfigInt
    -
    -
    Drive motor.
    -
    -
    drive - Variable in class swervelib.parser.json.PIDFPropertiesJson
    -
    -
    The PIDF with Integral Zone used for the drive motor.
    -
    -
    drive(Translation2d, double, boolean, boolean) - Method in class swervelib.SwerveDrive
    -
    -
    The primary method for controlling the drivebase.
    -
    -
    drive(Translation2d, double, boolean, boolean, Translation2d) - Method in class swervelib.SwerveDrive
    -
    -
    The primary method for controlling the drivebase.
    -
    -
    drive(ChassisSpeeds) - Method in class swervelib.SwerveDrive
    -
    -
    Secondary method for controlling the drivebase.
    -
    -
    drive(ChassisSpeeds, boolean, Translation2d) - Method in class swervelib.SwerveDrive
    -
    -
    The primary method for controlling the drivebase.
    -
    -
    drive(ChassisSpeeds, Translation2d) - Method in class swervelib.SwerveDrive
    -
    -
    Secondary method for controlling the drivebase.
    -
    -
    driveFieldOriented(ChassisSpeeds) - Method in class swervelib.SwerveDrive
    -
    -
    Secondary method of controlling the drive base given velocity and adjusting it for field oriented use.
    -
    -
    driveFieldOriented(ChassisSpeeds, Translation2d) - Method in class swervelib.SwerveDrive
    -
    -
    Secondary method of controlling the drive base given velocity and adjusting it for field oriented use.
    -
    -
    driveMotor - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    The drive motor and angle motor of this swerve module.
    -
    -
    driveMotor - Variable in class swervelib.SwerveModule
    -
    -
    Swerve Motors.
    -
    -
    driveMotorCurrentLimit - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    Current limits for the Swerve Module.
    -
    -
    driveMotorInverted - Variable in class swervelib.parser.SwerveModuleConfiguration
    -
    -
    State of inversion of the drive motor.
    -
    -
    driveMotorRampRate - Variable in class swervelib.parser.SwerveModulePhysicalCharacteristics
    -
    -
    The time it takes for the motor to go from 0 to full throttle in seconds.
    -
    -
    dt - Variable in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Time delta since last update
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html deleted file mode 100644 index e4ba987..0000000 --- a/docs/index-files/index-5.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - -E-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    E

    -
    -
    encoder - Variable in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Encoder as Analog Input.
    -
    -
    encoder - Variable in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    The CANandcoder representing the CANandCoder on the CAN bus.
    -
    -
    encoder - Variable in class swervelib.encoders.CANCoderSwerve
    -
    -
    CANCoder with WPILib sendable and support.
    -
    -
    encoder - Variable in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Duty Cycle Encoder.
    -
    -
    encoder - Variable in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    The SparkMaxAnalogSensor representing the duty cycle encoder attached to the SparkMax analog port.
    -
    -
    encoder - Variable in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    The AbsoluteEncoder representing the duty cycle encoder attached to the SparkMax.
    -
    -
    encoder - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Integrated encoder.
    -
    -
    encoder - Variable in class swervelib.motors.SparkMaxSwerve
    -
    -
    Integrated encoder.
    -
    -
    encoder - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    Absolute encoder device configuration.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-6.html b/docs/index-files/index-6.html deleted file mode 100644 index 16a98f6..0000000 --- a/docs/index-files/index-6.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - -F-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    F

    -
    -
    f - Variable in class swervelib.parser.PIDFConfig
    -
    -
    Feedforward value for PID.
    -
    -
    factoryDefault() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Reset the encoder to factory defaults.
    -
    -
    factoryDefault() - Method in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Reset the encoder to factory defaults.
    -
    -
    factoryDefault() - Method in class swervelib.encoders.CANCoderSwerve
    -
    -
    Reset the encoder to factory defaults.
    -
    -
    factoryDefault() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Reset the encoder to factory defaults.
    -
    -
    factoryDefault() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Reset the encoder to factory defaults.
    -
    -
    factoryDefault() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Reset the encoder to factory defaults.
    -
    -
    factoryDefault() - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    Reset the encoder to factory defaults.
    -
    -
    factoryDefault() - Method in class swervelib.imu.ADIS16448Swerve
    -
    -
    Reset IMU to factory default.
    -
    -
    factoryDefault() - Method in class swervelib.imu.ADIS16470Swerve
    -
    -
    Reset IMU to factory default.
    -
    -
    factoryDefault() - Method in class swervelib.imu.ADXRS450Swerve
    -
    -
    Reset IMU to factory default.
    -
    -
    factoryDefault() - Method in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Reset IMU to factory default.
    -
    -
    factoryDefault() - Method in class swervelib.imu.NavXSwerve
    -
    -
    Reset IMU to factory default.
    -
    -
    factoryDefault() - Method in class swervelib.imu.Pigeon2Swerve
    -
    -
    Reset IMU to factory default.
    -
    -
    factoryDefault() - Method in class swervelib.imu.PigeonSwerve
    -
    -
    Reset IMU to factory default.
    -
    -
    factoryDefault() - Method in class swervelib.imu.SwerveIMU
    -
    -
    Reset IMU to factory default.
    -
    -
    factoryDefaultOccurred - Variable in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Factory default already occurred.
    -
    -
    factoryDefaultOccurred - Variable in class swervelib.motors.SparkMaxSwerve
    -
    -
    Factory default already occurred.
    -
    -
    factoryDefaultOccurred - Variable in class swervelib.motors.TalonFXSwerve
    -
    -
    Factory default already occurred.
    -
    -
    factoryDefaultOccurred - Variable in class swervelib.motors.TalonSRXSwerve
    -
    -
    Factory default already occurred.
    -
    -
    factoryDefaults() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Configure the factory defaults.
    -
    -
    factoryDefaults() - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Configure the factory defaults.
    -
    -
    factoryDefaults() - Method in class swervelib.motors.SwerveMotor
    -
    -
    Configure the factory defaults.
    -
    -
    factoryDefaults() - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Configure the factory defaults.
    -
    -
    factoryDefaults() - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Configure the factory defaults.
    -
    -
    fakePos - Variable in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Fake motor position.
    -
    -
    fakeSpeed - Variable in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    The fake speed of the previous state, used to calculate SwerveModuleSimulation.fakePos.
    -
    -
    feedforward - Variable in class swervelib.SwerveModule
    -
    -
    Feedforward for drive motor during closed loop control.
    -
    -
    field - Variable in class swervelib.SwerveDrive
    -
    -
    Field object.
    -
    -
    forwardDirection - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    The direction the robot should be facing when the "Robot Rotation" is zero or blank.
    -
    -
    front - Variable in class swervelib.parser.json.modules.LocationJson
    -
    -
    Location of the swerve module in inches from the center of the robot horizontally.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-7.html b/docs/index-files/index-7.html deleted file mode 100644 index 1b77aff..0000000 --- a/docs/index-files/index-7.html +++ /dev/null @@ -1,495 +0,0 @@ - - - - -G-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    G

    -
    -
    getAbsoluteEncoder() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Get the instantiated absolute encoder Object.
    -
    -
    getAbsoluteEncoder() - Method in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Get the instantiated absolute encoder Object.
    -
    -
    getAbsoluteEncoder() - Method in class swervelib.encoders.CANCoderSwerve
    -
    -
    Get the instantiated absolute encoder Object.
    -
    -
    getAbsoluteEncoder() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Get the encoder object.
    -
    -
    getAbsoluteEncoder() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Get the instantiated absolute encoder Object.
    -
    -
    getAbsoluteEncoder() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Get the instantiated absolute encoder Object.
    -
    -
    getAbsoluteEncoder() - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    Get the instantiated absolute encoder Object.
    -
    -
    getAbsoluteEncoderReadIssue() - Method in class swervelib.SwerveModule
    -
    -
    Get if the last Absolute Encoder had a read issue, such as it does not exist.
    -
    -
    getAbsolutePosition() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Get the absolute position of the encoder.
    -
    -
    getAbsolutePosition() - Method in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Get the absolute position of the encoder.
    -
    -
    getAbsolutePosition() - Method in class swervelib.encoders.CANCoderSwerve
    -
    -
    Get the absolute position of the encoder.
    -
    -
    getAbsolutePosition() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Get the absolute position of the encoder.
    -
    -
    getAbsolutePosition() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Get the absolute position of the encoder.
    -
    -
    getAbsolutePosition() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Get the absolute position of the encoder.
    -
    -
    getAbsolutePosition() - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    Get the absolute position of the encoder.
    -
    -
    getAbsolutePosition() - Method in class swervelib.SwerveModule
    -
    -
    Get the absolute position.
    -
    -
    getAccel() - Method in class swervelib.imu.ADIS16448Swerve
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
    -
    -
    getAccel() - Method in class swervelib.imu.ADIS16470Swerve
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
    -
    -
    getAccel() - Method in class swervelib.imu.ADXRS450Swerve
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
    -
    -
    getAccel() - Method in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
    -
    -
    getAccel() - Method in class swervelib.imu.NavXSwerve
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
    -
    -
    getAccel() - Method in class swervelib.imu.Pigeon2Swerve
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
    -
    -
    getAccel() - Method in class swervelib.imu.PigeonSwerve
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
    -
    -
    getAccel() - Method in class swervelib.imu.SwerveIMU
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
    -
    -
    getAccel() - Method in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Fetch the acceleration [x, y, z] from the IMU in m/s/s.
    -
    -
    getAccel() - Method in class swervelib.SwerveDrive
    -
    -
    Gets current acceleration of the robot in m/s/s.
    -
    -
    getAngleMotor() - Method in class swervelib.SwerveModule
    -
    -
    Get the angle SwerveMotor for the SwerveModule.
    -
    -
    getConfiguration() - Method in class swervelib.SwerveModule
    -
    -
    Fetch the SwerveModuleConfiguration for the SwerveModule with the parsed configurations.
    -
    -
    getDriveMotor() - Method in class swervelib.SwerveModule
    -
    -
    Get the drive SwerveMotor for the SwerveModule.
    -
    -
    getFieldVelocity() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current field-relative velocity (x, y and omega) of the robot
    -
    -
    getGyroRotation3d() - Method in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Gets the estimated gyro Rotation3d of the robot.
    -
    -
    getGyroRotation3d() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current gyro Rotation3d of the robot, as reported by the imu.
    -
    -
    getIMU() - Method in class swervelib.imu.ADIS16448Swerve
    -
    -
    Get the instantiated IMU object.
    -
    -
    getIMU() - Method in class swervelib.imu.ADIS16470Swerve
    -
    -
    Get the instantiated IMU object.
    -
    -
    getIMU() - Method in class swervelib.imu.ADXRS450Swerve
    -
    -
    Get the instantiated IMU object.
    -
    -
    getIMU() - Method in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Get the instantiated IMU object.
    -
    -
    getIMU() - Method in class swervelib.imu.NavXSwerve
    -
    -
    Get the instantiated IMU object.
    -
    -
    getIMU() - Method in class swervelib.imu.Pigeon2Swerve
    -
    -
    Get the instantiated IMU object.
    -
    -
    getIMU() - Method in class swervelib.imu.PigeonSwerve
    -
    -
    Get the instantiated IMU object.
    -
    -
    getIMU() - Method in class swervelib.imu.SwerveIMU
    -
    -
    Get the instantiated IMU object.
    -
    -
    getInstance() - Static method in class swervelib.simulation.ctre.PhysicsSim
    -
    -
    Gets the robot simulator instance.
    -
    -
    getJoystickAngle(double, double) - Method in class swervelib.SwerveController
    -
    -
    Get the angle in radians based off of the heading joysticks.
    -
    -
    getModuleConfigurationByName(String, SwerveDriveConfiguration) - Static method in class swervelib.parser.SwerveParser
    -
    -
    Get the swerve module by the json name.
    -
    -
    getModulePositions() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current module positions (azimuth and wheel position (meters)).
    -
    -
    getModules() - Method in class swervelib.SwerveDrive
    -
    -
    Get the SwerveModules associated with the SwerveDrive.
    -
    -
    getMotor() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Get the motor object from the module.
    -
    -
    getMotor() - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Get the motor object from the module.
    -
    -
    getMotor() - Method in class swervelib.motors.SwerveMotor
    -
    -
    Get the motor object from the module.
    -
    -
    getMotor() - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Get the motor object from the module.
    -
    -
    getMotor() - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Get the motor object from the module.
    -
    -
    getPeriod() - Method in class swervelib.simulation.ctre.PhysicsSim.SimProfile
    -
    -
    Returns the time since last call, in milliseconds.
    -
    -
    getPitch() - Method in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Pitch is not simulated currently, always returns 0.
    -
    -
    getPitch() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current pitch angle of the robot, as reported by the imu.
    -
    -
    getPose() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current pose (position and rotation) of the robot, as reported by odometry.
    -
    -
    getPosition() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Get the position of the integrated encoder.
    -
    -
    getPosition() - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Get the position of the integrated encoder.
    -
    -
    getPosition() - Method in class swervelib.motors.SwerveMotor
    -
    -
    Get the position of the integrated encoder.
    -
    -
    getPosition() - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Get the position of the integrated encoder.
    -
    -
    getPosition() - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Get the position of the integrated encoder.
    -
    -
    getPosition() - Method in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Get the simulated swerve module position.
    -
    -
    getPosition() - Method in class swervelib.SwerveModule
    -
    -
    Get the position of the swerve module.
    -
    -
    getRawRotation3d() - Method in class swervelib.imu.ADIS16448Swerve
    -
    -
    Fetch the Rotation3d from the IMU without any zeroing.
    -
    -
    getRawRotation3d() - Method in class swervelib.imu.ADIS16470Swerve
    -
    -
    Fetch the Rotation3d from the IMU without any zeroing.
    -
    -
    getRawRotation3d() - Method in class swervelib.imu.ADXRS450Swerve
    -
    -
    Fetch the Rotation3d from the IMU without any zeroing.
    -
    -
    getRawRotation3d() - Method in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Fetch the Rotation3d from the IMU without any zeroing.
    -
    -
    getRawRotation3d() - Method in class swervelib.imu.NavXSwerve
    -
    -
    Fetch the Rotation3d from the IMU without any zeroing.
    -
    -
    getRawRotation3d() - Method in class swervelib.imu.Pigeon2Swerve
    -
    -
    Fetch the Rotation3d from the IMU without any zeroing.
    -
    -
    getRawRotation3d() - Method in class swervelib.imu.PigeonSwerve
    -
    -
    Fetch the Rotation3d from the IMU without any zeroing.
    -
    -
    getRawRotation3d() - Method in class swervelib.imu.SwerveIMU
    -
    -
    Fetch the Rotation3d from the IMU without any zeroing.
    -
    -
    getRawTargetSpeeds(double, double, double) - Method in class swervelib.SwerveController
    -
    -
    Get the ChassisSpeeds based of raw speeds desired in meters/second and heading in radians.
    -
    -
    getRawTargetSpeeds(double, double, double, double) - Method in class swervelib.SwerveController
    -
    -
    Get the ChassisSpeeds based of raw speeds desired in meters/second and heading in radians.
    -
    -
    getRelativePosition() - Method in class swervelib.SwerveModule
    -
    -
    Get the relative angle in degrees.
    -
    -
    getRobotVelocity() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current robot-relative velocity (x, y and omega) of the robot
    -
    -
    getRoll() - Method in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Roll is not simulated currently, always returns 0.
    -
    -
    getRoll() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current roll angle of the robot, as reported by the imu.
    -
    -
    getRotation3d() - Method in class swervelib.imu.ADIS16448Swerve
    -
    -
    Fetch the Rotation3d from the IMU.
    -
    -
    getRotation3d() - Method in class swervelib.imu.ADIS16470Swerve
    -
    -
    Fetch the Rotation3d from the IMU.
    -
    -
    getRotation3d() - Method in class swervelib.imu.ADXRS450Swerve
    -
    -
    Fetch the Rotation3d from the IMU.
    -
    -
    getRotation3d() - Method in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Fetch the Rotation3d from the IMU.
    -
    -
    getRotation3d() - Method in class swervelib.imu.NavXSwerve
    -
    -
    Fetch the Rotation3d from the IMU.
    -
    -
    getRotation3d() - Method in class swervelib.imu.Pigeon2Swerve
    -
    -
    Fetch the Rotation3d from the IMU.
    -
    -
    getRotation3d() - Method in class swervelib.imu.PigeonSwerve
    -
    -
    Fetch the Rotation3d from the IMU.
    -
    -
    getRotation3d() - Method in class swervelib.imu.SwerveIMU
    -
    -
    Fetch the Rotation3d from the IMU.
    -
    -
    getState() - Method in class swervelib.simulation.SwerveModuleSimulation
    -
    -
    Get the SwerveModuleState of the simulated module.
    -
    -
    getState() - Method in class swervelib.SwerveModule
    -
    -
    Get the Swerve Module state.
    -
    -
    getStates() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current module states (azimuth and velocity)
    -
    -
    getSwerveController() - Method in class swervelib.SwerveDrive
    -
    -
    Helper function to get the SwerveDrive.swerveController for the SwerveDrive which can be used to - generate ChassisSpeeds for the robot to orient it correctly given axis or angles, and apply - SlewRateLimiter to given inputs.
    -
    -
    getSwerveModule(SwerveModule[], boolean, boolean) - Static method in class swervelib.math.SwerveMath
    -
    -
    Get the fruthest module from center based on the module locations.
    -
    -
    getSwerveModulePoses(Pose2d) - Method in class swervelib.SwerveDrive
    -
    -
    Get the swerve module poses and on the field relative to the robot.
    -
    -
    getTargetSpeeds(double, double, double, double, double) - Method in class swervelib.SwerveController
    -
    -
    Get the chassis speeds based on controller input of 1 joystick [-1,1] and an angle.
    -
    -
    getTargetSpeeds(double, double, double, double, double, double) - Method in class swervelib.SwerveController
    -
    -
    Get the chassis speeds based on controller input of 2 joysticks.
    -
    -
    getTranslation2d(ChassisSpeeds) - Static method in class swervelib.SwerveController
    -
    -
    Helper function to get the Translation2d of the chassis speeds given the ChassisSpeeds.
    -
    -
    getVelocity() - Method in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Get the velocity in degrees/sec.
    -
    -
    getVelocity() - Method in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Get the velocity in degrees/sec.
    -
    -
    getVelocity() - Method in class swervelib.encoders.CANCoderSwerve
    -
    -
    Get the velocity in degrees/sec.
    -
    -
    getVelocity() - Method in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Get the velocity in degrees/sec.
    -
    -
    getVelocity() - Method in class swervelib.encoders.SparkMaxAnalogEncoderSwerve
    -
    -
    Get the velocity in degrees/sec.
    -
    -
    getVelocity() - Method in class swervelib.encoders.SparkMaxEncoderSwerve
    -
    -
    Get the velocity in degrees/sec.
    -
    -
    getVelocity() - Method in class swervelib.encoders.SwerveAbsoluteEncoder
    -
    -
    Get the velocity in degrees/sec.
    -
    -
    getVelocity() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Get the velocity of the integrated encoder.
    -
    -
    getVelocity() - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Get the velocity of the integrated encoder.
    -
    -
    getVelocity() - Method in class swervelib.motors.SwerveMotor
    -
    -
    Get the velocity of the integrated encoder.
    -
    -
    getVelocity() - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Get the velocity of the integrated encoder.
    -
    -
    getVelocity() - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Get the velocity of the integrated encoder.
    -
    -
    getYaw() - Method in class swervelib.simulation.SwerveIMUSimulation
    -
    -
    Get the estimated angle of the robot.
    -
    -
    getYaw() - Method in class swervelib.SwerveDrive
    -
    -
    Gets the current yaw angle of the robot, as reported by the imu.
    -
    -
    gyro - Variable in class swervelib.imu.AnalogGyroSwerve
    -
    -
    Gyroscope object.
    -
    -
    gyro - Variable in class swervelib.imu.NavXSwerve
    -
    -
    NavX IMU.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html deleted file mode 100644 index 3d12f48..0000000 --- a/docs/index-files/index-8.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -H-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    H

    -
    -
    heading - Variable in class swervelib.parser.json.ControllerPropertiesJson
    -
    -
    The PID used to control the robot heading.
    -
    -
    headingCalculate(double, double) - Method in class swervelib.SwerveController
    -
    -
    Calculate the angular velocity given the current and target heading angle in radians.
    -
    -
    headingCorrection - Variable in class swervelib.SwerveDrive
    -
    -
    Whether to correct heading when driving translationally.
    -
    -
    headingPIDF - Variable in class swervelib.parser.SwerveControllerConfiguration
    -
    -
    PIDF for the heading of the robot.
    -
    -
    HIGH - Enum constant in enum class swervelib.telemetry.SwerveDriveTelemetry.TelemetryVerbosity
    -
    -
    Full swerve drive data is sent back in both human and machine readable forms.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index-files/index-9.html b/docs/index-files/index-9.html deleted file mode 100644 index 068b84a..0000000 --- a/docs/index-files/index-9.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - -I-Index - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values -

    I

    -
    -
    i - Variable in class swervelib.parser.PIDFConfig
    -
    -
    Integral Gain for PID.
    -
    -
    id - Variable in class swervelib.parser.json.DeviceJson
    -
    -
    The CAN ID or pin ID of the device.
    -
    -
    imu - Variable in class swervelib.imu.ADIS16448Swerve
    -
    -
    ADIS16448_IMU device to read the current headings from.
    -
    -
    imu - Variable in class swervelib.imu.ADIS16470Swerve
    -
    -
    ADIS16470_IMU device to read the current headings from.
    -
    -
    imu - Variable in class swervelib.imu.ADXRS450Swerve
    -
    -
    ADXRS450_Gyro device to read the current headings from.
    -
    -
    imu - Variable in class swervelib.imu.Pigeon2Swerve
    -
    -
    Pigeon2 IMU device.
    -
    -
    imu - Variable in class swervelib.imu.PigeonSwerve
    -
    -
    Pigeon v1 IMU device.
    -
    -
    imu - Variable in class swervelib.parser.json.SwerveDriveJson
    -
    -
    Robot IMU used to determine heading of the robot.
    -
    -
    imu - Variable in class swervelib.parser.SwerveDriveConfiguration
    -
    -
    Swerve IMU
    -
    -
    imu - Variable in class swervelib.SwerveDrive
    -
    -
    Swerve IMU device for sensing the heading of the robot.
    -
    -
    inverted - Variable in class swervelib.encoders.AnalogAbsoluteEncoderSwerve
    -
    -
    Inversion state of the encoder.
    -
    -
    inverted - Variable in class swervelib.encoders.CanAndCoderSwerve
    -
    -
    Inversion state of the encoder.
    -
    -
    inverted - Variable in class swervelib.parser.json.ModuleJson
    -
    -
    Defines which motors are inverted.
    -
    -
    invertedIMU - Variable in class swervelib.parser.json.SwerveDriveJson
    -
    -
    Invert the IMU of the robot.
    -
    -
    invertedIMU - Variable in class swervelib.parser.SwerveDriveConfiguration
    -
    -
    Invert the imu measurements.
    -
    -
    invertOdometry - Variable in class swervelib.SwerveDrive
    -
    -
    Invert odometry readings of drive motor positions, used as a patch for debugging currently.
    -
    -
    isAttachedAbsoluteEncoder() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
    -
    -
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    -
    isAttachedAbsoluteEncoder() - Method in class swervelib.motors.SparkMaxSwerve
    -
    -
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    -
    isAttachedAbsoluteEncoder() - Method in class swervelib.motors.SwerveMotor
    -
    -
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    -
    isAttachedAbsoluteEncoder() - Method in class swervelib.motors.TalonFXSwerve
    -
    -
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    -
    isAttachedAbsoluteEncoder() - Method in class swervelib.motors.TalonSRXSwerve
    -
    -
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    -
    isDriveMotor - Variable in class swervelib.motors.SwerveMotor
    -
    -
    Whether the swerve motor is a drive motor.
    -
    -
    isInverted - Variable in class swervelib.encoders.PWMDutyCycleEncoderSwerve
    -
    -
    Inversion state.
    -
    -
    isSimulation - Static variable in class swervelib.telemetry.SwerveDriveTelemetry
    -
    -
    State of simulation of the Robot, used to optimize retrieval.
    -
    -
    iz - Variable in class swervelib.parser.PIDFConfig
    -
    -
    Integral zone of the PID.
    -
    -
    -A B C D E F G H I K L M N O P Q R S T U V W X Y Z _ 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - - diff --git a/docs/index.html b/docs/index.html index 9fbc3c6..08df6c8 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,18 +1,17 @@ - -Overview + +Overview (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -47,11 +46,22 @@ loadScripts(document, 'script');
    +
    +

    YAGSL-Example API

    +
    Packages
    Package
    Description
    + +
     
    + +
     
    + +
     
    + +
     
    Yet-Another Generic Swerve Library (YAGSL) main package AKA swervelib.
    @@ -92,12 +102,8 @@ loadScripts(document, 'script');
    Classes used to simulate the swerve drive.
    - +
    -
    CTRE Physics Simulator.
    -
    - -
    Telemetry package for sending data to NT4 or SmartDashboard.
    diff --git a/docs/jquery-ui.overrides.css b/docs/jquery-ui.overrides.css index f89acb6..facf852 100644 --- a/docs/jquery-ui.overrides.css +++ b/docs/jquery-ui.overrides.css @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,4 +31,5 @@ a.ui-button:active, .ui-button.ui-state-active:hover { /* Overrides the color of selection used in jQuery UI */ background: #F8981D; + border: 1px solid #F8981D; } diff --git a/docs/legal/jquery.md b/docs/legal/jquery.md index 8054a34..f7b72e3 100644 --- a/docs/legal/jquery.md +++ b/docs/legal/jquery.md @@ -1,9 +1,9 @@ -## jQuery v3.5.1 +## jQuery v3.6.0 ### jQuery License ``` -jQuery v 3.5.1 -Copyright JS Foundation and other contributors, https://js.foundation/ +jQuery v 3.6.0 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ****************************************** -The jQuery JavaScript Library v3.5.1 also includes Sizzle.js +The jQuery JavaScript Library v3.6.0 also includes Sizzle.js Sizzle.js includes the following license: diff --git a/docs/member-search-index.js b/docs/member-search-index.js index 869c830..3f4bcd6 100644 --- a/docs/member-search-index.js +++ b/docs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_accelToFullTime"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_accelToFullTime"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_falcon"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_fullVel"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_fullVel"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"_lastTime"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"_running"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_sensorPhase"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_sensorPhase"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"_simProfiles"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_talon"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_vel"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_vel"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"_victor"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"absoluteEncoder"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"absoluteEncoder"},{"p":"swervelib","c":"SwerveModule","l":"absoluteEncoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"absoluteEncoderInverted"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"absoluteEncoderInverted"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"absoluteEncoderOffset"},{"p":"swervelib","c":"SwerveController","l":"addSlewRateLimiters(SlewRateLimiter, SlewRateLimiter, SlewRateLimiter)","u":"addSlewRateLimiters(edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonFX(TalonFX, double, double)","u":"addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX,double,double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonFX(TalonFX, double, double, boolean)","u":"addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX,double,double,boolean)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonSRX(TalonSRX, double, double)","u":"addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX,double,double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonSRX(TalonSRX, double, double, boolean)","u":"addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX,double,double,boolean)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addVictorSPX(VictorSPX)","u":"addVictorSPX(com.ctre.phoenix.motorcontrol.can.VictorSPX)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double, Matrix)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double,edu.wpi.first.math.Matrix)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"ADIS16448Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"ADIS16470Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"ADXRS450Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(AnalogInput)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.AnalogInput)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"AnalogGyroSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"angle"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"angle"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"angle"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"angle"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"angle"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"angle"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"angleJoystickRadiusDeadband"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"angleJoyStickRadiusDeadband"},{"p":"swervelib","c":"SwerveController","l":"angleLimiter"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotor"},{"p":"swervelib","c":"SwerveModule","l":"angleMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotorInverted"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorRampRate"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleOffset"},{"p":"swervelib","c":"SwerveModule","l":"angleOffset"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"anglePIDF"},{"p":"swervelib.math","c":"SwerveMath","l":"antiJitter(SwerveModuleState, SwerveModuleState, double)","u":"antiJitter(edu.wpi.first.math.kinematics.SwerveModuleState,edu.wpi.first.math.kinematics.SwerveModuleState,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"applyDeadband(double, boolean, double)","u":"applyDeadband(double,boolean,double)"},{"p":"swervelib","c":"SwerveDrive","l":"attainableMaxRotationalVelocityRadiansPerSecond"},{"p":"swervelib","c":"SwerveDrive","l":"attainableMaxTranslationalSpeedMetersPerSecond"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"BoolMotorJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"burnFlash()"},{"p":"swervelib.math","c":"SwerveMath","l":"calcMaxAccel(Rotation2d, List, double, SwerveDriveConfiguration)","u":"calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateDegreesPerSteeringRotation(double, double)","u":"calculateDegreesPerSteeringRotation(double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMaxAcceleration(double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMaxAcceleration(double, double, double, double, double)","u":"calculateMaxAcceleration(double,double,double,double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMaxAngularVelocity(double, double, double)","u":"calculateMaxAngularVelocity(double,double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMetersPerRotation(double, double, double)","u":"calculateMetersPerRotation(double,double,double)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"CanAndCoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"canbus"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"CANCoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"CANCoderSwerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib","c":"SwerveDrive","l":"chassisVelocityCorrection"},{"p":"swervelib.parser","c":"SwerveParser","l":"checkDirectory(File)","u":"checkDirectory(java.io.File)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"clearStickyFaults()"},{"p":"swervelib","c":"SwerveController","l":"config"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configChanged"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configChanged"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configuration"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configuration"},{"p":"swervelib","c":"SwerveModule","l":"configuration"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"configure(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.parser","c":"SwerveParser","l":"controllerPropertiesJson"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"ControllerPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"conversionFactor"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"conversionFactor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"conversionFactor"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"conversionFactors"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"convertToNativeSensorUnits(double, double)","u":"convertToNativeSensorUnits(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"convertToNativeSensorUnits(double, double)","u":"convertToNativeSensorUnits(double,double)"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"createControllerConfiguration(SwerveDriveConfiguration, double)","u":"createControllerConfiguration(swervelib.parser.SwerveDriveConfiguration,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"createDriveFeedforward(double, double, double)","u":"createDriveFeedforward(double,double,double)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createEncoder(SwerveMotor)","u":"createEncoder(swervelib.motors.SwerveMotor)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createIMU()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"createModuleConfiguration(PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String)","u":"createModuleConfiguration(swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"createModules(SwerveModuleConfiguration[], SimpleMotorFeedforward)","u":"createModules(swervelib.parser.SwerveModuleConfiguration[],edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createMotor(boolean)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"createPhysicalProperties()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"createPIDController()"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(double, double, double)","u":"createSwerveDrive(double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(SimpleMotorFeedforward, double)","u":"createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(SimpleMotorFeedforward, double, double, double)","u":"createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward,double,double,double)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"currentLimit"},{"p":"swervelib.parser","c":"PIDFConfig","l":"d"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredStates"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"DeviceJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"drive"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"drive"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"drive"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds, boolean, Translation2d)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds,boolean,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds, Translation2d)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean, Translation2d)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"driveFieldOriented(ChassisSpeeds)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"driveFieldOriented(ChassisSpeeds, Translation2d)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"driveMotor"},{"p":"swervelib","c":"SwerveModule","l":"driveMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"driveMotorInverted"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveMotorRampRate"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"dt"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"encoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"encoder"},{"p":"swervelib.parser","c":"PIDFConfig","l":"f"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"factoryDefault()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaults()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakePos"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakeSpeed"},{"p":"swervelib","c":"SwerveModule","l":"feedforward"},{"p":"swervelib","c":"SwerveDrive","l":"field"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"forwardDirection"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"front"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsoluteEncoder()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsoluteEncoderReadIssue()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsolutePosition()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsolutePosition()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getAccel()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getAccel()"},{"p":"swervelib","c":"SwerveDrive","l":"getAccel()"},{"p":"swervelib","c":"SwerveModule","l":"getAngleMotor()"},{"p":"swervelib","c":"SwerveModule","l":"getConfiguration()"},{"p":"swervelib","c":"SwerveModule","l":"getDriveMotor()"},{"p":"swervelib","c":"SwerveDrive","l":"getFieldVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getGyroRotation3d()"},{"p":"swervelib","c":"SwerveDrive","l":"getGyroRotation3d()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getIMU()"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"getInstance()"},{"p":"swervelib","c":"SwerveController","l":"getJoystickAngle(double, double)","u":"getJoystickAngle(double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"getModuleConfigurationByName(String, SwerveDriveConfiguration)","u":"getModuleConfigurationByName(java.lang.String,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"getModulePositions()"},{"p":"swervelib","c":"SwerveDrive","l":"getModules()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getMotor()"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"getPeriod()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPose()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getPosition()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getPosition()"},{"p":"swervelib","c":"SwerveModule","l":"getPosition()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getRawRotation3d()"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double)","u":"getRawTargetSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double, double)","u":"getRawTargetSpeeds(double,double,double,double)"},{"p":"swervelib","c":"SwerveModule","l":"getRelativePosition()"},{"p":"swervelib","c":"SwerveDrive","l":"getRobotVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getRoll()"},{"p":"swervelib","c":"SwerveDrive","l":"getRoll()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getRotation3d()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getState()"},{"p":"swervelib","c":"SwerveModule","l":"getState()"},{"p":"swervelib","c":"SwerveDrive","l":"getStates()"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveController()"},{"p":"swervelib.math","c":"SwerveMath","l":"getSwerveModule(SwerveModule[], boolean, boolean)","u":"getSwerveModule(swervelib.SwerveModule[],boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveModulePoses(Pose2d)","u":"getSwerveModulePoses(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double, double)","u":"getTargetSpeeds(double,double,double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double, double, double)","u":"getTargetSpeeds(double,double,double,double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getTranslation2d(ChassisSpeeds)","u":"getTranslation2d(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getYaw()"},{"p":"swervelib","c":"SwerveDrive","l":"getYaw()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"gyro"},{"p":"swervelib.imu","c":"NavXSwerve","l":"gyro"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"heading"},{"p":"swervelib","c":"SwerveController","l":"headingCalculate(double, double)","u":"headingCalculate(double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"headingCorrection"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"headingPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"HIGH"},{"p":"swervelib.parser","c":"PIDFConfig","l":"i"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"id"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"imu"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"imu"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"imu"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"imu"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"imu"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"imu"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"imu"},{"p":"swervelib","c":"SwerveDrive","l":"imu"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"inverted"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"inverted"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"inverted"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"invertedIMU"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"invertedIMU"},{"p":"swervelib","c":"SwerveDrive","l":"invertOdometry"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isDriveMotor"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"isInverted"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"isSimulation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"iz"},{"p":"swervelib","c":"SwerveDrive","l":"kinematics"},{"p":"swervelib","c":"SwerveController","l":"lastAngleScalar"},{"p":"swervelib","c":"SwerveDrive","l":"lastHeadingRadians"},{"p":"swervelib","c":"SwerveModule","l":"lastState"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"lastTime"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"lastTime"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"left"},{"p":"swervelib.math","c":"SwerveMath","l":"limitVelocity(Translation2d, ChassisSpeeds, Pose2d, double, double, List, SwerveDriveConfiguration)","u":"limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,java.util.List,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"location"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"LocationJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"lockPose()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"LOW"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"MACHINE"},{"p":"swervelib.math","c":"Matter","l":"mass"},{"p":"swervelib.math","c":"Matter","l":"massMoment()"},{"p":"swervelib.math","c":"Matter","l":"Matter(Translation3d, double)","u":"%3Cinit%3E(edu.wpi.first.math.geometry.Translation3d,double)"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"max"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxAngularVelocity"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxAngularVelocity"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"maximumRetries"},{"p":"swervelib.motors","c":"SwerveMotor","l":"maximumRetries"},{"p":"swervelib","c":"SwerveModule","l":"maxSpeed"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxSpeed"},{"p":"swervelib","c":"SwerveDrive","l":"maxSpeedMPS"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredStates"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"min"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleConfigs"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleCount"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"moduleCount"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"ModuleJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleJsons"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"moduleLocation"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleLocationsMeters"},{"p":"swervelib","c":"SwerveModule","l":"moduleNumber"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"modules"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"modules"},{"p":"swervelib","c":"SwerveModule","l":"moduleStateOptimization"},{"p":"swervelib","c":"SwerveDrive","l":"moduleSynchronizationCounter"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"motor"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"name"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(I2C.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.I2C.Port)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SerialPort.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SerialPort.Port)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SPI.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SPI.Port)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"nominalVoltage"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"nominalVoltage"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"NONE"},{"p":"swervelib.math","c":"SwerveMath","l":"normalizeAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"odometryLock"},{"p":"swervelib","c":"SwerveDrive","l":"odometryThread"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"offset"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"offset"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"offset"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"offset"},{"p":"swervelib.imu","c":"NavXSwerve","l":"offset"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"offset"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"offset"},{"p":"swervelib.parser","c":"SwerveParser","l":"openJson(File)","u":"openJson(java.io.File)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"optimalVoltage"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"optimalVoltage"},{"p":"swervelib.parser","c":"PIDFConfig","l":"output"},{"p":"swervelib.parser","c":"PIDFConfig","l":"p"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"physicalCharacteristics"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"physicalCharacteristics"},{"p":"swervelib.parser","c":"SwerveParser","l":"physicalPropertiesJson"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"PhysicalPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"PhysicsSim()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"pid"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double)","u":"%3Cinit%3E(double,double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"pidfPropertiesJson"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"PIDFPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"PIDFRange()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"PigeonSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.math","c":"SwerveMath","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"PoseLog(Pose2d)","u":"PoseLog(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib.math","c":"Matter","l":"position"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Position"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"positionConversionFactor"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"positionConversionFactor"},{"p":"swervelib","c":"SwerveDrive","l":"postTrajectory(Trajectory)","u":"postTrajectory(edu.wpi.first.math.trajectory.Trajectory)"},{"p":"swervelib","c":"SwerveDrive","l":"pushOffsetsToControllers()"},{"p":"swervelib","c":"SwerveModule","l":"pushOffsetsToControllers()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"PWMDutyCycleEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib","c":"SwerveModule","l":"queueSynchronizeEncoders()"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"rampRate"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"random(double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"random(double, double)","u":"random(double,double)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"readingError"},{"p":"swervelib","c":"SwerveDrive","l":"replaceSwerveModuleFeedforward(SimpleMotorFeedforward)","u":"replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib","c":"SwerveDrive","l":"resetEncoders()"},{"p":"swervelib","c":"SwerveDrive","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveDrive","l":"restoreInternalOffset()"},{"p":"swervelib","c":"SwerveModule","l":"restoreInternalOffset()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"robotRotation"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"rotationUnit"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"run()"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"run()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"set(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setAngleMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngleMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngleMotorVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setChassisSpeeds(ChassisSpeeds)","u":"setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib","c":"SwerveModule","l":"setDesiredState(SwerveModuleState, boolean, boolean)","u":"setDesiredState(edu.wpi.first.math.kinematics.SwerveModuleState,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setDriveMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setDriveMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setDriveMotorVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setGyro(Rotation3d)","u":"setGyro(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib","c":"SwerveDrive","l":"setGyroOffset(Rotation3d)","u":"setGyroOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib","c":"SwerveDrive","l":"setHeadingCorrection(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib","c":"SwerveController","l":"setMaximumAngularVelocity(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeed(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeed(double, boolean, double)","u":"setMaximumSpeed(double,boolean,double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeeds(double, double, double)","u":"setMaximumSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"setModuleStateOptimization(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setModuleStates(SwerveModuleState[], boolean)","u":"setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[],boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveModule","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setMotorIdleMode(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setOdometryPeriod(double)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"SwerveIMU","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setPosition(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setRawModuleStates(SwerveModuleState[], boolean)","u":"setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[],boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"sim"},{"p":"swervelib","c":"SwerveDrive","l":"simIMU"},{"p":"swervelib","c":"SwerveModule","l":"simModule"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"SimProfile()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Simulation"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"sizeFrontBack"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"sizeLeftRight"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"SparkMaxAnalogEncoderSwerve(SwerveMotor)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkMaxRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean,com.revrobotics.SparkMaxRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(int, boolean, SparkMaxRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(int,boolean,com.revrobotics.SparkMaxRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"SparkMaxEncoderSwerve(SwerveMotor, int)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"SparkMaxSwerve(CANSparkMax, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"SparkMaxSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"state"},{"p":"swervelib","c":"SwerveDrive","l":"stateStdDevs"},{"p":"swervelib","c":"SwerveDrive","l":"stopOdometryThread()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"SwerveAbsoluteEncoder()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"swerveController"},{"p":"swervelib","c":"SwerveController","l":"SwerveController(SwerveControllerConfiguration)","u":"%3Cinit%3E(swervelib.parser.SwerveControllerConfiguration)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.SwerveControllerConfiguration,double)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDriveConfiguration"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, boolean, SimpleMotorFeedforward, SwerveModulePhysicalCharacteristics)","u":"%3Cinit%3E(swervelib.parser.SwerveModuleConfiguration[],swervelib.imu.SwerveIMU,boolean,edu.wpi.first.math.controller.SimpleMotorFeedforward,swervelib.parser.SwerveModulePhysicalCharacteristics)"},{"p":"swervelib.parser","c":"SwerveParser","l":"swerveDriveJson"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"SwerveDriveJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDrivePoseEstimator"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"SwerveDriveTelemetry()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"SwerveIMU()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"SwerveIMUSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveMath","l":"SwerveMath()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveModule","l":"SwerveModule(int, SwerveModuleConfiguration, SimpleMotorFeedforward)","u":"%3Cinit%3E(int,swervelib.parser.SwerveModuleConfiguration,edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean, String)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.parser.json.MotorConfigDouble,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,boolean,boolean,boolean,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.parser.json.MotorConfigDouble,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double)","u":"%3Cinit%3E(swervelib.parser.json.MotorConfigDouble,double,double)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double, int, int, double, double)","u":"%3Cinit%3E(swervelib.parser.json.MotorConfigDouble,double,double,int,int,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveModules"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"SwerveModuleSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"SwerveMotor()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"SwerveParser(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"swervelib","c":"SwerveModule","l":"synchronizeEncoderQueued"},{"p":"swervelib","c":"SwerveDrive","l":"synchronizeModuleEncoders()"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"TalonFXSimProfile(TalonFX, double, double, boolean)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.TalonFX,double,double,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(int, String, boolean)","u":"%3Cinit%3E(int,java.lang.String,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(WPI_TalonFX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.WPI_TalonFX,boolean)"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"TalonSRXSimProfile(TalonSRX, double, double, boolean)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.TalonSRX,double,double,boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"TalonSRXSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"TalonSRXSwerve(WPI_TalonSRX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX,boolean)"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"TelemetryVerbosity()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveController","l":"thetaController"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"timer"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"timer"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"type"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"updateData()"},{"p":"swervelib","c":"SwerveDrive","l":"updateOdometry()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"updateOdometry(SwerveDriveKinematics, SwerveModuleState[], Pose2d[], Field2d)","u":"updateOdometry(edu.wpi.first.math.kinematics.SwerveDriveKinematics,edu.wpi.first.math.kinematics.SwerveModuleState[],edu.wpi.first.math.geometry.Pose2d[],edu.wpi.first.wpilibj.smartdashboard.Field2d)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"updateStateAndPosition(SwerveModuleState)","u":"updateStateAndPosition(edu.wpi.first.math.kinematics.SwerveModuleState)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"values()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Velocity"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"velocityPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"verbosity"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"VictorSPXSimProfile(VictorSPX)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.VictorSPX)"},{"p":"swervelib","c":"SwerveDrive","l":"visionMeasurementStdDevs"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"wheelLocations"},{"p":"swervelib","c":"SwerveController","l":"withinHypotDeadband(double, double)","u":"withinHypotDeadband(double,double)"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"x"},{"p":"swervelib","c":"SwerveController","l":"xLimiter"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"y"},{"p":"swervelib","c":"SwerveController","l":"yLimiter"},{"p":"swervelib","c":"SwerveDrive","l":"zeroGyro()"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDrive","l":"AbsoluteDrive(SwerveSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier, DoubleSupplier)","u":"%3Cinit%3E(frc.robot.subsystems.swervedrive.SwerveSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier)"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDriveAdv","l":"AbsoluteDriveAdv(SwerveSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier, BooleanSupplier, BooleanSupplier, BooleanSupplier, BooleanSupplier)","u":"%3Cinit%3E(frc.robot.subsystems.swervedrive.SwerveSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.BooleanSupplier,java.util.function.BooleanSupplier,java.util.function.BooleanSupplier,java.util.function.BooleanSupplier)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"absoluteEncoder"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"absoluteEncoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"absoluteEncoderInverted"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"absoluteEncoderInverted"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"absoluteEncoderOffset"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteFieldDrive","l":"AbsoluteFieldDrive(SwerveSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier)","u":"%3Cinit%3E(frc.robot.subsystems.swervedrive.SwerveSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"addFakeVisionReading()"},{"p":"swervelib","c":"SwerveController","l":"addSlewRateLimiters(SlewRateLimiter, SlewRateLimiter, SlewRateLimiter)","u":"addSlewRateLimiters(edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double, Matrix)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double,edu.wpi.first.math.Matrix)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"ADIS16448Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"ADIS16470Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"ADXRS450Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(AnalogInput)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.AnalogInput)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"AnalogGyroSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"angle"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"angle"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"angle"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"angle"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"angle"},{"p":"frc.robot","c":"Constants.Auton","l":"angleAutoPID"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"angleJoystickRadiusDeadband"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"angleJoyStickRadiusDeadband"},{"p":"swervelib","c":"SwerveController","l":"angleLimiter"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotorInverted"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorRampRate"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleOffset"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"anglePIDF"},{"p":"swervelib.math","c":"SwerveMath","l":"antiJitter(SwerveModuleState, SwerveModuleState, double)","u":"antiJitter(edu.wpi.first.math.kinematics.SwerveModuleState,edu.wpi.first.math.kinematics.SwerveModuleState,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"applyDeadband(double, boolean, double)","u":"applyDeadband(double,boolean,double)"},{"p":"frc.robot.commands.swervedrive.auto","c":"AutoBalanceCommand","l":"AutoBalanceCommand(SwerveSubsystem)","u":"%3Cinit%3E(frc.robot.subsystems.swervedrive.SwerveSubsystem)"},{"p":"frc.robot","c":"Constants.Auton","l":"Auton()","u":"%3Cinit%3E()"},{"p":"frc.robot","c":"Robot","l":"autonomousInit()"},{"p":"frc.robot","c":"Robot","l":"autonomousPeriodic()"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"BoolMotorJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"burnFlash()"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateDegreesPerSteeringRotation(double, double)","u":"calculateDegreesPerSteeringRotation(double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMaxAcceleration(double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMaxAcceleration(double, double, double, double, double)","u":"calculateMaxAcceleration(double,double,double,double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMaxAngularVelocity(double, double, double)","u":"calculateMaxAngularVelocity(double,double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMetersPerRotation(double, double, double)","u":"calculateMetersPerRotation(double,double,double)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"CanAndCoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"canbus"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"CANCoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"CANCoderSwerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"frc.robot","c":"Constants","l":"CHASSIS"},{"p":"swervelib","c":"SwerveDrive","l":"chassisVelocityCorrection"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"clearStickyFaults()"},{"p":"swervelib","c":"SwerveController","l":"config"},{"p":"swervelib","c":"SwerveModule","l":"configuration"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"configure(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"frc.robot","c":"Constants","l":"Constants()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"controllerPropertiesJson"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"ControllerPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"conversionFactor"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"conversionFactor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"conversionFactor"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"conversionFactors"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"convertToNativeSensorUnits(double, double)","u":"convertToNativeSensorUnits(double,double)"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"createControllerConfiguration(SwerveDriveConfiguration, double)","u":"createControllerConfiguration(swervelib.parser.SwerveDriveConfiguration,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"createDriveFeedforward(double, double, double)","u":"createDriveFeedforward(double,double,double)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createEncoder(SwerveMotor)","u":"createEncoder(swervelib.motors.SwerveMotor)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createIMU()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"createModuleConfiguration(PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String)","u":"createModuleConfiguration(swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"createModules(SwerveModuleConfiguration[], SimpleMotorFeedforward)","u":"createModules(swervelib.parser.SwerveModuleConfiguration[],edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createMotor(boolean)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"createPhysicalProperties()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"createPIDController()"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(double, double, double)","u":"createSwerveDrive(double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(SimpleMotorFeedforward, double)","u":"createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(SimpleMotorFeedforward, double, double, double)","u":"createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward,double,double,double)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"currentLimit"},{"p":"swervelib.parser","c":"PIDFConfig","l":"d"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredStates"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"DeviceJson()","u":"%3Cinit%3E()"},{"p":"frc.robot","c":"Robot","l":"disabledInit()"},{"p":"frc.robot","c":"Robot","l":"disabledPeriodic()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"drive"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"drive"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"drive"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"drive(ChassisSpeeds)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds, boolean, Translation2d)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds,boolean,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds, Translation2d)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"drive(Translation2d, double, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean, Translation2d)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean,edu.wpi.first.math.geometry.Translation2d)"},{"p":"frc.robot","c":"Constants.Drivebase","l":"Drivebase()","u":"%3Cinit%3E()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"driveFieldOriented(ChassisSpeeds)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"driveFieldOriented(ChassisSpeeds)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"driveFieldOriented(ChassisSpeeds, Translation2d)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"driveMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"driveMotorInverted"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveMotorRampRate"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"encoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"encoder"},{"p":"frc.robot.commands.swervedrive.auto","c":"AutoBalanceCommand","l":"end(boolean)"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDrive","l":"end(boolean)"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDriveAdv","l":"end(boolean)"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteFieldDrive","l":"end(boolean)"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"TeleopDrive","l":"end(boolean)"},{"p":"frc.robot.commands.swervedrive.auto","c":"AutoBalanceCommand","l":"execute()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDrive","l":"execute()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDriveAdv","l":"execute()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteFieldDrive","l":"execute()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"TeleopDrive","l":"execute()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"f"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"factoryDefault()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaults()"},{"p":"swervelib","c":"SwerveModule","l":"feedforward"},{"p":"swervelib","c":"SwerveDrive","l":"field"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"forwardDirection"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"front"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsoluteEncoder()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsoluteEncoderReadIssue()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsolutePosition()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsolutePosition()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getAccel()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getAccel()"},{"p":"swervelib","c":"SwerveDrive","l":"getAccel()"},{"p":"swervelib","c":"SwerveModule","l":"getAngleMotor()"},{"p":"frc.robot","c":"RobotContainer","l":"getAutonomousCommand()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getAutonomousCommand(String, boolean)","u":"getAutonomousCommand(java.lang.String,boolean)"},{"p":"swervelib","c":"SwerveModule","l":"getConfiguration()"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"getDriveBaseRadiusMeters()"},{"p":"swervelib","c":"SwerveModule","l":"getDriveMotor()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getFieldVelocity()"},{"p":"swervelib","c":"SwerveDrive","l":"getFieldVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getGyroRotation3d()"},{"p":"swervelib","c":"SwerveDrive","l":"getGyroRotation3d()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getHeading()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getIMU()"},{"p":"frc.robot","c":"Robot","l":"getInstance()"},{"p":"swervelib","c":"SwerveController","l":"getJoystickAngle(double, double)","u":"getJoystickAngle(double,double)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getKinematics()"},{"p":"swervelib.parser","c":"SwerveParser","l":"getModuleConfigurationByName(String, SwerveDriveConfiguration)","u":"getModuleConfigurationByName(java.lang.String,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"getModulePositions()"},{"p":"swervelib","c":"SwerveDrive","l":"getModules()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getMotor()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getPitch()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPitch()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getPose()"},{"p":"swervelib","c":"SwerveDrive","l":"getPose()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getPosition()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getPosition()"},{"p":"swervelib","c":"SwerveModule","l":"getPosition()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getRawRotation3d()"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double)","u":"getRawTargetSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double, double)","u":"getRawTargetSpeeds(double,double,double,double)"},{"p":"swervelib","c":"SwerveModule","l":"getRelativePosition()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getRobotVelocity()"},{"p":"swervelib","c":"SwerveDrive","l":"getRobotVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getRoll()"},{"p":"swervelib","c":"SwerveDrive","l":"getRoll()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getRotation3d()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getState()"},{"p":"swervelib","c":"SwerveModule","l":"getState()"},{"p":"swervelib","c":"SwerveDrive","l":"getStates()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getSwerveController()"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveController()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getSwerveDriveConfiguration()"},{"p":"swervelib.math","c":"SwerveMath","l":"getSwerveModule(SwerveModule[], boolean, boolean)","u":"getSwerveModule(swervelib.SwerveModule[],boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveModulePoses(Pose2d)","u":"getSwerveModulePoses(edu.wpi.first.math.geometry.Pose2d)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getTargetSpeeds(double, double, double, double)","u":"getTargetSpeeds(double,double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double, double)","u":"getTargetSpeeds(double,double,double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double, double, double)","u":"getTargetSpeeds(double,double,double,double,double,double)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"getTargetSpeeds(double, double, Rotation2d)","u":"getTargetSpeeds(double,double,edu.wpi.first.math.geometry.Rotation2d)"},{"p":"swervelib","c":"SwerveController","l":"getTranslation2d(ChassisSpeeds)","u":"getTranslation2d(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getYaw()"},{"p":"swervelib","c":"SwerveDrive","l":"getYaw()"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"heading"},{"p":"swervelib","c":"SwerveController","l":"headingCalculate(double, double)","u":"headingCalculate(double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"headingCorrection"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"headingPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"HIGH"},{"p":"swervelib.parser","c":"PIDFConfig","l":"i"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"id"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"imu"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"imu"},{"p":"frc.robot.commands.swervedrive.auto","c":"AutoBalanceCommand","l":"initialize()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDrive","l":"initialize()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDriveAdv","l":"initialize()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteFieldDrive","l":"initialize()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"TeleopDrive","l":"initialize()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"inverted"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"invertedIMU"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"invertedIMU"},{"p":"swervelib","c":"SwerveDrive","l":"invertOdometry"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isDriveMotor"},{"p":"frc.robot.commands.swervedrive.auto","c":"AutoBalanceCommand","l":"isFinished()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDrive","l":"isFinished()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteDriveAdv","l":"isFinished()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"AbsoluteFieldDrive","l":"isFinished()"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"TeleopDrive","l":"isFinished()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"isSimulation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"iz"},{"p":"swervelib","c":"SwerveDrive","l":"kinematics"},{"p":"swervelib","c":"SwerveController","l":"lastAngleScalar"},{"p":"swervelib","c":"SwerveModule","l":"lastState"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"left"},{"p":"frc.robot","c":"Constants.OperatorConstants","l":"LEFT_X_DEADBAND"},{"p":"frc.robot","c":"Constants.OperatorConstants","l":"LEFT_Y_DEADBAND"},{"p":"swervelib.math","c":"SwerveMath","l":"limitVelocity(Translation2d, ChassisSpeeds, Pose2d, double, double, List, SwerveDriveConfiguration)","u":"limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,java.util.List,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"location"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"LocationJson()","u":"%3Cinit%3E()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"lock()"},{"p":"swervelib","c":"SwerveDrive","l":"lockPose()"},{"p":"frc.robot","c":"Constants","l":"LOOP_TIME"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"LOW"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"MACHINE"},{"p":"frc.robot","c":"Main","l":"main(String...)","u":"main(java.lang.String...)"},{"p":"swervelib.math","c":"Matter","l":"mass"},{"p":"swervelib.math","c":"Matter","l":"massMoment()"},{"p":"swervelib.math","c":"Matter","l":"Matter(Translation3d, double)","u":"%3Cinit%3E(edu.wpi.first.math.geometry.Translation3d,double)"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"max"},{"p":"frc.robot","c":"Constants.Auton","l":"MAX_ACCELERATION"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxAngularVelocity"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxAngularVelocity"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"maximumRetries"},{"p":"swervelib.motors","c":"SwerveMotor","l":"maximumRetries"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"maximumSpeed"},{"p":"swervelib","c":"SwerveModule","l":"maxSpeed"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxSpeed"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredStates"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"min"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleCount"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"moduleCount"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"ModuleJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleJsons"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"moduleLocation"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleLocationsMeters"},{"p":"swervelib","c":"SwerveModule","l":"moduleNumber"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"modules"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"modules"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"motor"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"name"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(I2C.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.I2C.Port)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SerialPort.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SerialPort.Port)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SPI.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SPI.Port)"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"NONE"},{"p":"swervelib.math","c":"SwerveMath","l":"normalizeAngle(double)"},{"p":"frc.robot","c":"Constants.OperatorConstants","l":"OperatorConstants()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"optimalVoltage"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"optimalVoltage"},{"p":"swervelib.parser","c":"PIDFConfig","l":"output"},{"p":"swervelib.parser","c":"PIDFConfig","l":"p"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"periodic()"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"physicalCharacteristics"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"physicalCharacteristics"},{"p":"swervelib.parser","c":"SwerveParser","l":"physicalPropertiesJson"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"PhysicalPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"pid"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double)","u":"%3Cinit%3E(double,double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"pidfPropertiesJson"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"PIDFPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"PIDFRange()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"PigeonSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.math","c":"SwerveMath","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"PoseLog(Pose2d)","u":"PoseLog(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib.math","c":"Matter","l":"position"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"postTrajectory(Trajectory)","u":"postTrajectory(edu.wpi.first.math.trajectory.Trajectory)"},{"p":"swervelib","c":"SwerveDrive","l":"postTrajectory(Trajectory)","u":"postTrajectory(edu.wpi.first.math.trajectory.Trajectory)"},{"p":"swervelib","c":"SwerveDrive","l":"pushOffsetsToControllers()"},{"p":"swervelib","c":"SwerveModule","l":"pushOffsetsToControllers()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"PWMDutyCycleEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib","c":"SwerveModule","l":"queueSynchronizeEncoders()"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"rampRate"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"readingError"},{"p":"swervelib","c":"SwerveDrive","l":"replaceSwerveModuleFeedforward(SimpleMotorFeedforward)","u":"replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib","c":"SwerveDrive","l":"resetDriveEncoders()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveDrive","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveDrive","l":"restoreInternalOffset()"},{"p":"swervelib","c":"SwerveModule","l":"restoreInternalOffset()"},{"p":"frc.robot","c":"Constants.OperatorConstants","l":"RIGHT_X_DEADBAND"},{"p":"frc.robot","c":"Constants","l":"ROBOT_MASS"},{"p":"frc.robot","c":"Robot","l":"Robot()","u":"%3Cinit%3E()"},{"p":"frc.robot","c":"RobotContainer","l":"RobotContainer()","u":"%3Cinit%3E()"},{"p":"frc.robot","c":"Robot","l":"robotInit()"},{"p":"frc.robot","c":"Robot","l":"robotPeriodic()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"robotRotation"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"rotationUnit"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"set(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setAngleMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngleMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngleMotorVoltageCompensation(double)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"setChassisSpeeds(ChassisSpeeds)","u":"setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"setChassisSpeeds(ChassisSpeeds)","u":"setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib","c":"SwerveModule","l":"setDesiredState(SwerveModuleState, boolean, boolean)","u":"setDesiredState(edu.wpi.first.math.kinematics.SwerveModuleState,boolean,boolean)"},{"p":"frc.robot","c":"RobotContainer","l":"setDriveMode()"},{"p":"swervelib","c":"SwerveDrive","l":"setDriveMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setDriveMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setDriveMotorVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setGyro(Rotation3d)","u":"setGyro(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib","c":"SwerveDrive","l":"setGyroOffset(Rotation3d)","u":"setGyroOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib","c":"SwerveDrive","l":"setHeadingCorrection(boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib","c":"SwerveController","l":"setMaximumAngularVelocity(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeed(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeed(double, boolean, double)","u":"setMaximumSpeed(double,boolean,double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeeds(double, double, double)","u":"setMaximumSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"setModuleStates(SwerveModuleState[], boolean)","u":"setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[],boolean)"},{"p":"frc.robot","c":"RobotContainer","l":"setMotorBrake(boolean)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveModule","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setMotorIdleMode(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setOdometryPeriod(double)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"SwerveIMU","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"setupPathPlanner()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setVoltageCompensation(double)"},{"p":"frc.robot","c":"Robot","l":"simulationInit()"},{"p":"frc.robot","c":"Robot","l":"simulationPeriodic()"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"simulationPeriodic()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"sizeFrontBack"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"sizeLeftRight"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"SparkFlexSwerve(CANSparkFlex, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkFlex,boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"SparkFlexSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"SparkMaxAnalogEncoderSwerve(SwerveMotor)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean,com.revrobotics.SparkRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(int, boolean, SparkRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(int,boolean,com.revrobotics.SparkRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"SparkMaxEncoderSwerve(SwerveMotor, int)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"SparkMaxSwerve(CANSparkMax, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"SparkMaxSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"stateStdDevs"},{"p":"swervelib","c":"SwerveDrive","l":"stopOdometryThread()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"SwerveAbsoluteEncoder()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"swerveController"},{"p":"swervelib","c":"SwerveController","l":"SwerveController(SwerveControllerConfiguration)","u":"%3Cinit%3E(swervelib.parser.SwerveControllerConfiguration)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.SwerveControllerConfiguration,double)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDriveConfiguration"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, boolean, SimpleMotorFeedforward, SwerveModulePhysicalCharacteristics)","u":"%3Cinit%3E(swervelib.parser.SwerveModuleConfiguration[],swervelib.imu.SwerveIMU,boolean,edu.wpi.first.math.controller.SimpleMotorFeedforward,swervelib.parser.SwerveModulePhysicalCharacteristics)"},{"p":"swervelib.parser","c":"SwerveParser","l":"swerveDriveJson"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"SwerveDriveJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDrivePoseEstimator"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"SwerveDriveTelemetry()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"SwerveIMU()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"SwerveIMUSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveMath","l":"SwerveMath()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveModule","l":"SwerveModule(int, SwerveModuleConfiguration, SimpleMotorFeedforward)","u":"%3Cinit%3E(int,swervelib.parser.SwerveModuleConfiguration,edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean, String)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.parser.json.MotorConfigDouble,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,boolean,boolean,boolean,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.parser.json.MotorConfigDouble,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double)","u":"%3Cinit%3E(swervelib.parser.json.MotorConfigDouble,double,double)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double, int, int, double, double)","u":"%3Cinit%3E(swervelib.parser.json.MotorConfigDouble,double,double,int,int,double,double)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"SwerveModuleSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"SwerveMotor()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"SwerveParser(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"SwerveSubsystem(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"SwerveSubsystem(SwerveDriveConfiguration, SwerveControllerConfiguration)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.SwerveControllerConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"synchronizeModuleEncoders()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(int, String, boolean)","u":"%3Cinit%3E(int,java.lang.String,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(TalonFX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix6.hardware.TalonFX,boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"TalonSRXSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"TalonSRXSwerve(WPI_TalonSRX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX,boolean)"},{"p":"frc.robot.commands.swervedrive.drivebase","c":"TeleopDrive","l":"TeleopDrive(SwerveSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier, BooleanSupplier)","u":"%3Cinit%3E(frc.robot.subsystems.swervedrive.SwerveSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.BooleanSupplier)"},{"p":"frc.robot","c":"Robot","l":"teleopInit()"},{"p":"frc.robot","c":"Robot","l":"teleopPeriodic()"},{"p":"frc.robot","c":"Robot","l":"testInit()"},{"p":"frc.robot","c":"Robot","l":"testPeriodic()"},{"p":"swervelib","c":"SwerveController","l":"thetaController"},{"p":"frc.robot","c":"Constants.Auton","l":"TranslationPID"},{"p":"frc.robot","c":"Constants.OperatorConstants","l":"TURN_CONSTANT"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"type"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"updateData()"},{"p":"swervelib","c":"SwerveDrive","l":"updateOdometry()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"updateOdometry(SwerveDriveKinematics, SwerveModuleState[], Pose2d[], Field2d)","u":"updateOdometry(edu.wpi.first.math.kinematics.SwerveDriveKinematics,edu.wpi.first.math.kinematics.SwerveModuleState[],edu.wpi.first.math.geometry.Pose2d[],edu.wpi.first.wpilibj.smartdashboard.Field2d)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"updateStateAndPosition(SwerveModuleState)","u":"updateStateAndPosition(edu.wpi.first.math.kinematics.SwerveModuleState)"},{"p":"swervelib","c":"SwerveModule","l":"updateTelemetry()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"values()"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"velocityPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"verbosity"},{"p":"swervelib","c":"SwerveDrive","l":"visionMeasurementStdDevs"},{"p":"frc.robot","c":"Constants.Drivebase","l":"WHEEL_LOCK_TIME"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"wheelLocations"},{"p":"swervelib","c":"SwerveController","l":"withinHypotDeadband(double, double)","u":"withinHypotDeadband(double,double)"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"x"},{"p":"swervelib","c":"SwerveController","l":"xLimiter"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"y"},{"p":"swervelib","c":"SwerveController","l":"yLimiter"},{"p":"frc.robot.subsystems.swervedrive","c":"SwerveSubsystem","l":"zeroGyro()"},{"p":"swervelib","c":"SwerveDrive","l":"zeroGyro()"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/overview-summary.html b/docs/overview-summary.html index 8d11d35..fa49c18 100644 --- a/docs/overview-summary.html +++ b/docs/overview-summary.html @@ -1,11 +1,10 @@ - -Generated Documentation (Untitled) + +YAGSL-Example API - diff --git a/docs/overview-tree.html b/docs/overview-tree.html index d58f445..93d90c2 100644 --- a/docs/overview-tree.html +++ b/docs/overview-tree.html @@ -1,18 +1,17 @@ - -Class Hierarchy + +Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -51,6 +50,10 @@ loadScripts(document, 'script');

    Hierarchy For All Packages

    Package Hierarchies:
    @@ -71,25 +73,50 @@ loadScripts(document, 'script');
  • java.lang.Object
    • swervelib.parser.json.modules.BoolMotorJson
    • +
    • edu.wpi.first.wpilibj2.command.Command (implements edu.wpi.first.util.sendable.Sendable) + +
    • +
    • frc.robot.Constants
    • +
    • frc.robot.Constants.Auton
    • +
    • frc.robot.Constants.Drivebase
    • +
    • frc.robot.Constants.OperatorConstants
    • swervelib.parser.json.ControllerPropertiesJson
    • swervelib.parser.json.DeviceJson
    • swervelib.parser.json.modules.LocationJson
    • +
    • frc.robot.Main
    • swervelib.math.Matter
    • swervelib.parser.json.ModuleJson
    • swervelib.parser.json.MotorConfigDouble
    • swervelib.parser.json.MotorConfigInt
    • swervelib.parser.json.PhysicalPropertiesJson
    • -
    • swervelib.simulation.ctre.PhysicsSim
    • -
    • swervelib.simulation.ctre.PhysicsSim.SimProfile - -
    • swervelib.parser.PIDFConfig
    • swervelib.parser.json.PIDFPropertiesJson
    • swervelib.parser.deserializer.PIDFRange
    • +
    • edu.wpi.first.wpilibj.RobotBase (implements java.lang.AutoCloseable) +
        +
      • edu.wpi.first.wpilibj.IterativeRobotBase +
          +
        • edu.wpi.first.wpilibj.TimedRobot + +
        • +
        +
      • +
      +
    • +
    • frc.robot.RobotContainer
    • +
    • edu.wpi.first.wpilibj2.command.SubsystemBase (implements edu.wpi.first.util.sendable.Sendable, edu.wpi.first.wpilibj2.command.Subsystem) + +
    • swervelib.encoders.SwerveAbsoluteEncoder
      • swervelib.encoders.AnalogAbsoluteEncoderSwerve
      • @@ -125,6 +152,7 @@ loadScripts(document, 'script');
      • swervelib.simulation.SwerveModuleSimulation
      • swervelib.motors.SwerveMotor
          +
        • swervelib.motors.SparkFlexSwerve
        • swervelib.motors.SparkMaxBrushedMotorSwerve
        • swervelib.motors.SparkMaxSwerve
        • swervelib.motors.TalonFXSwerve
        • @@ -143,7 +171,6 @@ loadScripts(document, 'script');
          • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
          • diff --git a/docs/package-search-index.js b/docs/package-search-index.js index 63c5628..303d351 100644 --- a/docs/package-search-index.js +++ b/docs/package-search-index.js @@ -1 +1 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"swervelib"},{"l":"swervelib.encoders"},{"l":"swervelib.imu"},{"l":"swervelib.math"},{"l":"swervelib.motors"},{"l":"swervelib.parser"},{"l":"swervelib.parser.deserializer"},{"l":"swervelib.parser.json"},{"l":"swervelib.parser.json.modules"},{"l":"swervelib.simulation"},{"l":"swervelib.simulation.ctre"},{"l":"swervelib.telemetry"}];updateSearchResults(); \ No newline at end of file +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"frc.robot"},{"l":"frc.robot.commands.swervedrive.auto"},{"l":"frc.robot.commands.swervedrive.drivebase"},{"l":"frc.robot.subsystems.swervedrive"},{"l":"swervelib"},{"l":"swervelib.encoders"},{"l":"swervelib.imu"},{"l":"swervelib.math"},{"l":"swervelib.motors"},{"l":"swervelib.parser"},{"l":"swervelib.parser.deserializer"},{"l":"swervelib.parser.json"},{"l":"swervelib.parser.json.modules"},{"l":"swervelib.simulation"},{"l":"swervelib.telemetry"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png b/docs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png deleted file mode 100644 index 34abd18..0000000 Binary files a/docs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png and /dev/null differ diff --git a/docs/script-dir/images/ui-bg_glass_65_dadada_1x400.png b/docs/script-dir/images/ui-bg_glass_65_dadada_1x400.png deleted file mode 100644 index f058a93..0000000 Binary files a/docs/script-dir/images/ui-bg_glass_65_dadada_1x400.png and /dev/null differ diff --git a/docs/script-dir/images/ui-bg_glass_75_dadada_1x400.png b/docs/script-dir/images/ui-bg_glass_75_dadada_1x400.png deleted file mode 100644 index 2ce04c1..0000000 Binary files a/docs/script-dir/images/ui-bg_glass_75_dadada_1x400.png and /dev/null differ diff --git a/docs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/docs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png deleted file mode 100644 index a90afb8..0000000 Binary files a/docs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png and /dev/null differ diff --git a/docs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/docs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index dbe091f..0000000 Binary files a/docs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png and /dev/null differ diff --git a/docs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/docs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png deleted file mode 100644 index 5dc3593..0000000 Binary files a/docs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png and /dev/null differ diff --git a/docs/script-dir/images/ui-icons_222222_256x240.png b/docs/script-dir/images/ui-icons_222222_256x240.png deleted file mode 100644 index e723e17..0000000 Binary files a/docs/script-dir/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/docs/script-dir/images/ui-icons_2e83ff_256x240.png b/docs/script-dir/images/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 1f5f497..0000000 Binary files a/docs/script-dir/images/ui-icons_2e83ff_256x240.png and /dev/null differ diff --git a/docs/script-dir/images/ui-icons_454545_256x240.png b/docs/script-dir/images/ui-icons_454545_256x240.png deleted file mode 100644 index 618f5b0..0000000 Binary files a/docs/script-dir/images/ui-icons_454545_256x240.png and /dev/null differ diff --git a/docs/script-dir/images/ui-icons_888888_256x240.png b/docs/script-dir/images/ui-icons_888888_256x240.png deleted file mode 100644 index ee5e33f..0000000 Binary files a/docs/script-dir/images/ui-icons_888888_256x240.png and /dev/null differ diff --git a/docs/script-dir/images/ui-icons_cd0a0a_256x240.png b/docs/script-dir/images/ui-icons_cd0a0a_256x240.png deleted file mode 100644 index 7e8ebc1..0000000 Binary files a/docs/script-dir/images/ui-icons_cd0a0a_256x240.png and /dev/null differ diff --git a/docs/script-dir/jquery-3.5.1.min.js b/docs/script-dir/jquery-3.5.1.min.js deleted file mode 100644 index b061403..0000000 --- a/docs/script-dir/jquery-3.5.1.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
            "],col:[2,"","
            "],tr:[2,"","
            "],td:[3,"","
            "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
            ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
            "],col:[2,"","
            "],tr:[2,"","
            "],td:[3,"","
            "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
            ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
            "],col:[2,"","
            "],tr:[2,"","
            "],td:[3,"","
            "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
            ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
            ",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
            "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"
              ",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
                ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
                ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
                ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
                ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
                ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete}); \ No newline at end of file +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(x){"use strict";x.ui=x.ui||{};x.ui.version="1.13.1";var n,i=0,l=Array.prototype.hasOwnProperty,a=Array.prototype.slice;x.cleanData=(n=x.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=x._data(i,"events"))&&e.remove&&x(i).triggerHandler("remove");n(t)}),x.widget=function(t,i,e){var s,n,o,l={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=x.Widget),Array.isArray(e)&&(e=x.extend.apply(null,[{}].concat(e))),x.expr.pseudos[r.toLowerCase()]=function(t){return!!x.data(t,r)},x[a]=x[a]||{},s=x[a][t],n=x[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},x.extend(n,s,{version:e.version,_proto:x.extend({},e),_childConstructors:[]}),(o=new i).options=x.widget.extend({},o.options),x.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}l[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=x.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},l,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(x.each(s._childConstructors,function(t,e){var i=e.prototype;x.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),x.widget.bridge(t,n),n},x.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
                "),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
                  ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
                  ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
                  ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
                  ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/docs/script-dir/jquery-ui.structure.min.css b/docs/script-dir/jquery-ui.structure.min.css deleted file mode 100644 index e880892..0000000 --- a/docs/script-dir/jquery-ui.structure.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery UI - v1.12.1 - 2018-12-06 -* http://jqueryui.com -* Copyright jQuery Foundation and other contributors; Licensed MIT */ - -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} \ No newline at end of file diff --git a/docs/stylesheet.css b/docs/stylesheet.css index 836c62d..4a576bd 100644 --- a/docs/stylesheet.css +++ b/docs/stylesheet.css @@ -611,6 +611,7 @@ main, nav, header, footer, section { ul.ui-autocomplete { position:fixed; z-index:999999; + background-color: #FFFFFF; } ul.ui-autocomplete li { float:left; @@ -620,6 +621,9 @@ ul.ui-autocomplete li { .result-highlight { font-weight:bold; } +.ui-autocomplete .result-item { + font-size: inherit; +} #search-input { background-image:url('resources/glass.png'); background-size:13px; diff --git a/docs/swervelib/SwerveController.html b/docs/swervelib/SwerveController.html index e682d62..7cc1fff 100644 --- a/docs/swervelib/SwerveController.html +++ b/docs/swervelib/SwerveController.html @@ -1,18 +1,17 @@ - -SwerveController + +SwerveController (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
                • Package
                • Tree
                • -
                • Index
                • +
                • Index
                • Help
                diff --git a/docs/swervelib/SwerveDrive.html b/docs/swervelib/SwerveDrive.html index aeabc57..b18d9d5 100644 --- a/docs/swervelib/SwerveDrive.html +++ b/docs/swervelib/SwerveDrive.html @@ -1,18 +1,17 @@ - -SwerveDrive + +SwerveDrive (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
              • Package
              • Tree
              • -
              • Index
              • +
              • Index
              • Help
            @@ -91,16 +90,6 @@ loadScripts(document, 'script');
            Modifier and Type
            Field
            Description
            -
            private double
            - -
            -
            The absolute max speed the robot can reach while rotating radians per second.
            -
            -
            private double
            - -
            -
            The absolute max speed that your robot can reach while translating in meters per second.
            -
            boolean
            @@ -117,75 +106,35 @@ loadScripts(document, 'script');
            Whether to correct heading when driving translationally.
            -
            private SwerveIMU
            - +
            boolean
            +
            -
            Swerve IMU device for sensing the heading of the robot.
            -
            -
            boolean
            - -
            Invert odometry readings of drive motor positions, used as a patch for debugging currently.
            -
            final edu.wpi.first.math.kinematics.SwerveDriveKinematics
            - -
            +
            final edu.wpi.first.math.kinematics.SwerveDriveKinematics
            + +
            Swerve Kinematics object.
            -
            private double
            - -
            -
            The last heading set in radians.
            -
            -
            private double
            - +
            edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
            +
            -
            Maximum speed of the robot in meters per second.
            -
            -
            private int
            - -
            -
            Counter to synchronize the modules relative encoder with absolute encoder when not moving.
            -
            -
            private final Lock
            - -
            -
            Odometry lock to ensure thread safety.
            -
            -
            private final edu.wpi.first.wpilibj.Notifier
            - -
            -
            WPILib Notifier to keep odometry up to date.
            -
            - - -
            -
            Simulation of the swerve drive.
            -
            -
            edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
            - -
            Standard deviation of encoders and gyroscopes, usually should not change.
            - - -
            + + +
            Swerve controller for controlling heading of the robot.
            - - -
            + + +
            Swerve drive configuration.
            -
            final edu.wpi.first.math.estimator.SwerveDrivePoseEstimator
            - -
            -
            Swerve odometry.
            -
            -
            private final SwerveModule[]
            - +
            final edu.wpi.first.math.estimator.SwerveDrivePoseEstimator
            +
            -
            Swerve modules.
            +
            Swerve odometry.
            edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
            @@ -374,7 +323,7 @@ loadScripts(document, 'script');
            Setup the swerve module feedforward.
            void
            - +
            Reset the drive encoders on the robot, useful when manually resetting the robot without a reboot, like in autonomous.
            @@ -422,8 +371,8 @@ loadScripts(document, 'script');
            void
            setMaximumSpeed(double maximumSpeed)
            -
            Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the - setRawModuleStates(SwerveModuleState[], boolean) function and +
            Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the + setRawModuleStates(SwerveModuleState[], boolean) function and SwerveController.getTargetSpeeds(double, double, double, double, double) functions.
            void
            @@ -431,8 +380,8 @@ loadScripts(document, 'script'); boolean updateModuleFeedforward, double optimalVoltage)
            -
            Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the - setRawModuleStates(SwerveModuleState[], boolean) function and +
            Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the + setRawModuleStates(SwerveModuleState[], boolean) function and SwerveController.getTargetSpeeds(double, double, double, double, double) functions.
            void
            @@ -443,31 +392,20 @@ loadScripts(document, 'script');
            Set the maximum speeds for desaturation.
            void
            -
            setModuleStateOptimization(boolean optimizationEnabled)
            -
            -
            Configure whether the SwerveModuleState will be optimized to prevent spinning more than 90deg.
            -
            -
            void
            -
            setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, +
            setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, boolean isOpenLoop)
            -
            +
            Set the module states (azimuth and velocity) directly.
            -
            void
            -
            setMotorIdleMode(boolean brake)
            -
            +
            void
            +
            setMotorIdleMode(boolean brake)
            +
            Sets the drive motors to brake/coast mode.
            -
            void
            -
            setOdometryPeriod(double period)
            -
            -
            Set the odometry update period in seconds.
            -
            -
            private void
            -
            setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, - boolean isOpenLoop)
            +
            void
            +
            setOdometryPeriod(double period)
            -
            Set the module states (azimuth and velocity) directly.
            +
            Set the odometry update period in seconds.
            void
            @@ -528,27 +466,6 @@ loadScripts(document, 'script');
          • -
            -

            swerveModules

            -
            private final SwerveModule[] swerveModules
            -
            Swerve modules.
            -
            -
          • -
          • -
            -

            odometryThread

            -
            private final edu.wpi.first.wpilibj.Notifier odometryThread
            -
            WPILib Notifier to keep odometry up to date.
            -
            -
          • -
          • -
            -

            odometryLock

            -
            private final Lock odometryLock
            -
            Odometry lock to ensure thread safety.
            -
            -
          • -
          • field

            public edu.wpi.first.wpilibj.smartdashboard.Field2d field
            @@ -602,55 +519,6 @@ loadScripts(document, 'script');
            Whether to correct heading when driving translationally. Set to true to enable.
          • -
          • -
            -

            imu

            -
            private SwerveIMU imu
            -
            Swerve IMU device for sensing the heading of the robot.
            -
            -
          • -
          • -
            -

            simIMU

            -
            private SwerveIMUSimulation simIMU
            -
            Simulation of the swerve drive.
            -
            -
          • -
          • -
            -

            moduleSynchronizationCounter

            -
            private int moduleSynchronizationCounter
            -
            Counter to synchronize the modules relative encoder with absolute encoder when not moving.
            -
            -
          • -
          • -
            -

            lastHeadingRadians

            -
            private double lastHeadingRadians
            -
            The last heading set in radians.
            -
            -
          • -
          • -
            -

            attainableMaxTranslationalSpeedMetersPerSecond

            -
            private double attainableMaxTranslationalSpeedMetersPerSecond
            -
            The absolute max speed that your robot can reach while translating in meters per second.
            -
            -
          • -
          • -
            -

            attainableMaxRotationalVelocityRadiansPerSecond

            -
            private double attainableMaxRotationalVelocityRadiansPerSecond
            -
            The absolute max speed the robot can reach while rotating radians per second.
            -
            -
          • -
          • -
            -

            maxSpeedMPS

            -
            private double maxSpeedMPS
            -
            Maximum speed of the robot in meters per second.
            -
            -
          @@ -666,9 +534,9 @@ loadScripts(document, 'script'); SwerveControllerConfiguration controllerConfig, double maxSpeedMPS)
  • Creates a new swerve drivebase subsystem. Robot is controlled via the drive(edu.wpi.first.math.kinematics.ChassisSpeeds) method, or via the - setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[], boolean) method. The drive(edu.wpi.first.math.kinematics.ChassisSpeeds) method incorporates kinematics-- it + setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[], boolean) method. The drive(edu.wpi.first.math.kinematics.ChassisSpeeds) method incorporates kinematics-- it takes a translation and rotation, as well as parameters for field-centric and closed-loop velocity control. - setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[], boolean) takes a list of SwerveModuleStates and directly passes them to the modules. + setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[], boolean) takes a list of SwerveModuleStates and directly passes them to the modules. This subsystem also handles odometry.
    Parameters:
    @@ -877,19 +745,6 @@ loadScripts(document, 'script');
  • -
    -

    setRawModuleStates

    -
    private void setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, - boolean isOpenLoop)
    -
    Set the module states (azimuth and velocity) directly. Used primarily for auto pathing.
    -
    -
    Parameters:
    -
    desiredStates - A list of SwerveModuleStates to send to the modules.
    -
    isOpenLoop - Whether to use closed-loop velocity control. Set to true to disable closed-loop.
    -
    -
    -
  • -
  • setModuleStates

    public void setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, @@ -1072,8 +927,8 @@ loadScripts(document, 'script');
    public void setMaximumSpeed(double maximumSpeed, boolean updateModuleFeedforward, double optimalVoltage)
    -
    Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the - setRawModuleStates(SwerveModuleState[], boolean) function and +
    Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the + setRawModuleStates(SwerveModuleState[], boolean) function and SwerveController.getTargetSpeeds(double, double, double, double, double) functions. This function overrides what was placed in the JSON and could damage your motor/robot if set too high or unachievable rates.
    @@ -1090,8 +945,8 @@ loadScripts(document, 'script');

    setMaximumSpeed

    public void setMaximumSpeed(double maximumSpeed)
    -
    Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the - setRawModuleStates(SwerveModuleState[], boolean) function and +
    Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the + setRawModuleStates(SwerveModuleState[], boolean) function and SwerveController.getTargetSpeeds(double, double, double, double, double) functions. This function overrides what was placed in the JSON and could damage your motor/robot if set too high or unachievable rates. Overwrites the SwerveModule.feedforward.
    @@ -1240,25 +1095,14 @@ loadScripts(document, 'script');
  • -
    -

    resetEncoders

    -
    public void resetEncoders()
    +
    +

    resetDriveEncoders

    +
    public void resetDriveEncoders()
    Reset the drive encoders on the robot, useful when manually resetting the robot without a reboot, like in autonomous.
  • -
    -

    setModuleStateOptimization

    -
    public void setModuleStateOptimization(boolean optimizationEnabled)
    -
    Configure whether the SwerveModuleState will be optimized to prevent spinning more than 90deg.
    -
    -
    Parameters:
    -
    optimizationEnabled - Whether the module optimization is enabled.
    -
    -
    -
  • -
  • pushOffsetsToControllers

    public void pushOffsetsToControllers()
    diff --git a/docs/swervelib/SwerveModule.html b/docs/swervelib/SwerveModule.html index fbd9a5c..a046be1 100644 --- a/docs/swervelib/SwerveModule.html +++ b/docs/swervelib/SwerveModule.html @@ -1,18 +1,17 @@ - -SwerveModule + +SwerveModule (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -91,31 +90,11 @@ loadScripts(document, 'script');
    Modifier and Type
    Field
    Description
    -
    private final SwerveAbsoluteEncoder
    - + +
    -
    Absolute encoder for swerve drive.
    -
    -
    private final SwerveMotor
    - -
    -
    Swerve Motors.
    -
    -
    private double
    - -
    -
    Angle offset from the absolute encoder.
    -
    - - -
    Swerve module configuration options.
    -
    private final SwerveMotor
    - -
    -
    Swerve Motors.
    -
    edu.wpi.first.math.controller.SimpleMotorFeedforward
    @@ -136,22 +115,6 @@ loadScripts(document, 'script');
    Module number for kinematics, usually 0 to 3.
    -
    boolean
    - -
    -
    Enable SwerveModuleState optimizations so the angle is reversed and speed is reversed to ensure the module - never turns more than 90deg.
    -
    - - -
    -
    Simulated swerve module.
    -
    -
    private boolean
    - -
    -
    Encoder synchronization queued.
    -
    @@ -275,6 +238,11 @@ loadScripts(document, 'script');
    Set the brake mode.
    +
    void
    + +
    +
    Update data sent to SmartDashboard.
    +
    @@ -300,27 +268,6 @@ loadScripts(document, 'script');
  • -
    -

    angleMotor

    -
    private final SwerveMotor angleMotor
    -
    Swerve Motors.
    -
    -
  • -
  • -
    -

    driveMotor

    -
    private final SwerveMotor driveMotor
    -
    Swerve Motors.
    -
    -
  • -
  • -
    -

    absoluteEncoder

    -
    private final SwerveAbsoluteEncoder absoluteEncoder
    -
    Absolute encoder for swerve drive.
    -
    -
  • -
  • moduleNumber

    public int moduleNumber
    @@ -348,35 +295,6 @@ loadScripts(document, 'script');
    Last swerve module state applied.
  • -
  • -
    -

    moduleStateOptimization

    -
    public boolean moduleStateOptimization
    -
    Enable SwerveModuleState optimizations so the angle is reversed and speed is reversed to ensure the module - never turns more than 90deg.
    -
    -
  • -
  • -
    -

    angleOffset

    -
    private double angleOffset
    -
    Angle offset from the absolute encoder.
    -
    -
  • -
  • -
    -

    simModule

    -
    private SwerveModuleSimulation simModule
    -
    Simulated swerve module.
    -
    -
  • -
  • -
    -

    synchronizeEncoderQueued

    -
    private boolean synchronizeEncoderQueued
    -
    Encoder synchronization queued.
    -
    -
  • @@ -603,6 +521,13 @@ loadScripts(document, 'script'); +
  • +
    +

    updateTelemetry

    +
    public void updateTelemetry()
    +
    Update data sent to SmartDashboard.
    +
    +
  • diff --git a/docs/swervelib/encoders/AnalogAbsoluteEncoderSwerve.html b/docs/swervelib/encoders/AnalogAbsoluteEncoderSwerve.html index 0d52950..18692ae 100644 --- a/docs/swervelib/encoders/AnalogAbsoluteEncoderSwerve.html +++ b/docs/swervelib/encoders/AnalogAbsoluteEncoderSwerve.html @@ -1,18 +1,17 @@ - -AnalogAbsoluteEncoderSwerve + +AnalogAbsoluteEncoderSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -98,11 +97,6 @@ loadScripts(document, 'script');
    Encoder as Analog Input.
    -
    private boolean
    - -
    -
    Inversion state of the encoder.
    -

    Fields inherited from class swervelib.encoders.SwerveAbsoluteEncoder

    @@ -198,13 +192,6 @@ loadScripts(document, 'script');
    Encoder as Analog Input.
    -
  • -
    -

    inverted

    -
    private boolean inverted
    -
    Inversion state of the encoder.
    -
    -
  • diff --git a/docs/swervelib/encoders/CANCoderSwerve.html b/docs/swervelib/encoders/CANCoderSwerve.html index c95fda2..59d380e 100644 --- a/docs/swervelib/encoders/CANCoderSwerve.html +++ b/docs/swervelib/encoders/CANCoderSwerve.html @@ -1,18 +1,17 @@ - -CANCoderSwerve + +CANCoderSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -93,7 +92,7 @@ loadScripts(document, 'script');
    Modifier and Type
    Field
    Description
    -
    com.ctre.phoenix.sensors.WPI_CANCoder
    +
    com.ctre.phoenix6.hardware.CANcoder
    CANCoder with WPILib sendable and support.
    @@ -168,7 +167,7 @@ loadScripts(document, 'script');
    boolean
    setAbsoluteEncoderOffset(double offset)
    -
    Sets the Absolute Encoder Offset inside of the CANcoder's Memory.
    +
    Sets the Absolute Encoder Offset within the CANcoder's Memory.
    @@ -190,7 +189,7 @@ loadScripts(document, 'script');
  • encoder

    -
    public com.ctre.phoenix.sensors.WPI_CANCoder encoder
    +
    public com.ctre.phoenix6.hardware.CANcoder encoder
    CANCoder with WPILib sendable and support.
  • @@ -299,12 +298,12 @@ loadScripts(document, 'script');

    setAbsoluteEncoderOffset

    public boolean setAbsoluteEncoderOffset(double offset)
    -
    Sets the Absolute Encoder Offset inside of the CANcoder's Memory.
    +
    Sets the Absolute Encoder Offset within the CANcoder's Memory.
    Specified by:
    setAbsoluteEncoderOffset in class SwerveAbsoluteEncoder
    Parameters:
    -
    offset - the offset the Absolute Encoder uses as the zero point.
    +
    offset - the offset the Absolute Encoder uses as the zero point in degrees.
    Returns:
    if setting Absolute Encoder Offset was successful or not.
    diff --git a/docs/swervelib/encoders/CanAndCoderSwerve.html b/docs/swervelib/encoders/CanAndCoderSwerve.html index ad36362..3b8588b 100644 --- a/docs/swervelib/encoders/CanAndCoderSwerve.html +++ b/docs/swervelib/encoders/CanAndCoderSwerve.html @@ -1,18 +1,17 @@ - -CanAndCoderSwerve + +CanAndCoderSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -80,7 +79,7 @@ loadScripts(document, 'script');
    public class CanAndCoderSwerve extends SwerveAbsoluteEncoder
    -
    HELIUM CANandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
    +
    HELIUM Canandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
      @@ -93,15 +92,10 @@ loadScripts(document, 'script');
      Modifier and Type
      Field
      Description
      -
      com.reduxrobotics.sensors.canandcoder.CANandcoder
      +
      com.reduxrobotics.sensors.canandcoder.Canandcoder
      -
      The CANandcoder representing the CANandCoder on the CAN bus.
      -
      -
      private boolean
      - -
      -
      Inversion state of the encoder.
      +
      The Canandcoder representing the CANandCoder on the CAN bus.
    @@ -119,7 +113,7 @@ loadScripts(document, 'script');
    Description
    CanAndCoderSwerve(int canid)
    -
    Create the CANandcoder
    +
    Create the Canandcoder
    @@ -190,15 +184,8 @@ loadScripts(document, 'script');
  • encoder

    -
    public com.reduxrobotics.sensors.canandcoder.CANandcoder encoder
    -
    The CANandcoder representing the CANandCoder on the CAN bus.
    -
    -
  • -
  • -
    -

    inverted

    -
    private boolean inverted
    -
    Inversion state of the encoder.
    +
    public com.reduxrobotics.sensors.canandcoder.Canandcoder encoder
    +
    The Canandcoder representing the CANandCoder on the CAN bus.
  • @@ -213,7 +200,7 @@ loadScripts(document, 'script');

    CanAndCoderSwerve

    public CanAndCoderSwerve(int canid)
    -
    Create the CANandcoder
    +
    Create the Canandcoder
    Parameters:
    canid - The CAN ID whenever the CANandCoder is operating on the CANBus.
    diff --git a/docs/swervelib/encoders/PWMDutyCycleEncoderSwerve.html b/docs/swervelib/encoders/PWMDutyCycleEncoderSwerve.html index 12ff9ed..f2b04a8 100644 --- a/docs/swervelib/encoders/PWMDutyCycleEncoderSwerve.html +++ b/docs/swervelib/encoders/PWMDutyCycleEncoderSwerve.html @@ -1,18 +1,17 @@ - -PWMDutyCycleEncoderSwerve + +PWMDutyCycleEncoderSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -51,7 +50,7 @@ loadScripts(document, 'script'); @@ -93,22 +92,6 @@ loadScripts(document, 'script');
  • Field Summary

    -
    Fields
    -
    -
    Modifier and Type
    -
    Field
    -
    Description
    -
    private final edu.wpi.first.wpilibj.DutyCycleEncoder
    - -
    -
    Duty Cycle Encoder.
    -
    -
    private boolean
    - -
    -
    Inversion state.
    -
    -

    Fields inherited from class swervelib.encoders.SwerveAbsoluteEncoder

    maximumRetries, readingError
    @@ -187,28 +170,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        encoder

        -
        private final edu.wpi.first.wpilibj.DutyCycleEncoder encoder
        -
        Duty Cycle Encoder.
        -
        -
      • -
      • -
        -

        isInverted

        -
        private boolean isInverted
        -
        Inversion state.
        -
        -
      • -
      -
      -
    • diff --git a/docs/swervelib/encoders/SparkMaxAnalogEncoderSwerve.html b/docs/swervelib/encoders/SparkMaxAnalogEncoderSwerve.html index 057bf9e..d1c6d0c 100644 --- a/docs/swervelib/encoders/SparkMaxAnalogEncoderSwerve.html +++ b/docs/swervelib/encoders/SparkMaxAnalogEncoderSwerve.html @@ -1,18 +1,17 @@ - -SparkMaxAnalogEncoderSwerve + +SparkMaxAnalogEncoderSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
    • Package
    • Tree
    • -
    • Index
    • +
    • Index
    • Help
  • @@ -93,10 +92,10 @@ loadScripts(document, 'script');
    Modifier and Type
    Field
    Description
    -
    com.revrobotics.SparkMaxAnalogSensor
    +
    com.revrobotics.SparkAnalogSensor
    -
    The SparkMaxAnalogSensor representing the duty cycle encoder attached to the SparkMax analog port.
    +
    The SparkAnalogSensor representing the duty cycle encoder attached to the SparkMax analog port.
    @@ -141,34 +140,29 @@ loadScripts(document, 'script');
    Configure the absolute encoder to read from [0, 360) per second.
    -
    private void
    -
    configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
    +
    void
    +
    -
    Run the configuration until it succeeds or times out.
    -
    -
    void
    - -
    Reset the encoder to factory defaults.
    - - -
    + + +
    Get the instantiated absolute encoder Object.
    -
    double
    - -
    +
    double
    + +
    Get the absolute position of the encoder.
    -
    double
    - -
    +
    double
    + +
    Get the velocity in degrees/sec.
    -
    boolean
    -
    setAbsoluteEncoderOffset(double offset)
    -
    +
    boolean
    +
    setAbsoluteEncoderOffset(double offset)
    +
    Sets the Absolute Encoder offset at the Encoder Level.
    @@ -191,8 +185,8 @@ loadScripts(document, 'script');
  • encoder

    -
    public com.revrobotics.SparkMaxAnalogSensor encoder
    -
    The SparkMaxAnalogSensor representing the duty cycle encoder attached to the SparkMax analog port.
    +
    public com.revrobotics.SparkAnalogSensor encoder
    +
    The SparkAnalogSensor representing the duty cycle encoder attached to the SparkMax analog port.
  • @@ -224,17 +218,6 @@ loadScripts(document, 'script');

    Method Details

    • -
      -

      configureSparkMax

      -
      private void configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
      -
      Run the configuration until it succeeds or times out.
      -
      -
      Parameters:
      -
      config - Lambda supplier returning the error state.
      -
      -
      -
    • -
    • factoryDefault

      public void factoryDefault()
      diff --git a/docs/swervelib/encoders/SparkMaxEncoderSwerve.html b/docs/swervelib/encoders/SparkMaxEncoderSwerve.html index bb5ebee..cf1e327 100644 --- a/docs/swervelib/encoders/SparkMaxEncoderSwerve.html +++ b/docs/swervelib/encoders/SparkMaxEncoderSwerve.html @@ -1,18 +1,17 @@ - -SparkMaxEncoderSwerve + +SparkMaxEncoderSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
    • Package
    • Tree
    • -
    • Index
    • +
    • Index
    • Help
    @@ -141,34 +140,29 @@ loadScripts(document, 'script');
    Configure the absolute encoder to read from [0, 360) per second.
    -
    private void
    -
    configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
    +
    void
    +
    -
    Run the configuration until it succeeds or times out.
    -
    -
    void
    - -
    Reset the encoder to factory defaults.
    - - -
    + + +
    Get the instantiated absolute encoder Object.
    -
    double
    - -
    +
    double
    + +
    Get the absolute position of the encoder.
    -
    double
    - -
    +
    double
    + +
    Get the velocity in degrees/sec.
    -
    boolean
    -
    setAbsoluteEncoderOffset(double offset)
    -
    +
    boolean
    +
    setAbsoluteEncoderOffset(double offset)
    +
    Sets the Absolute Encoder Offset inside of the SparkMax's Memory.
    @@ -225,17 +219,6 @@ loadScripts(document, 'script');

    Method Details

    • -
      -

      configureSparkMax

      -
      private void configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
      -
      Run the configuration until it succeeds or times out.
      -
      -
      Parameters:
      -
      config - Lambda supplier returning the error state.
      -
      -
      -
    • -
    • factoryDefault

      public void factoryDefault()
      diff --git a/docs/swervelib/encoders/SwerveAbsoluteEncoder.html b/docs/swervelib/encoders/SwerveAbsoluteEncoder.html index 215b2ed..83b90b6 100644 --- a/docs/swervelib/encoders/SwerveAbsoluteEncoder.html +++ b/docs/swervelib/encoders/SwerveAbsoluteEncoder.html @@ -1,18 +1,17 @@ - -SwerveAbsoluteEncoder + +SwerveAbsoluteEncoder (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
    • Package
    • Tree
    • -
    • Index
    • +
    • Index
    • Help
    diff --git a/docs/swervelib/encoders/package-summary.html b/docs/swervelib/encoders/package-summary.html index 347176d..57037b7 100644 --- a/docs/swervelib/encoders/package-summary.html +++ b/docs/swervelib/encoders/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.encoders + +swervelib.encoders (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -90,7 +89,7 @@ loadScripts(document, 'script');
    -
    HELIUM CANandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
    +
    HELIUM Canandcoder from ReduxRobotics absolute encoder, attached through the CAN bus.
    diff --git a/docs/swervelib/encoders/package-tree.html b/docs/swervelib/encoders/package-tree.html index 4a04d41..d1b33b7 100644 --- a/docs/swervelib/encoders/package-tree.html +++ b/docs/swervelib/encoders/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.encoders Class Hierarchy + +swervelib.encoders Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/imu/ADIS16448Swerve.html b/docs/swervelib/imu/ADIS16448Swerve.html index bcc56eb..d3a767a 100644 --- a/docs/swervelib/imu/ADIS16448Swerve.html +++ b/docs/swervelib/imu/ADIS16448Swerve.html @@ -1,18 +1,17 @@ - -ADIS16448Swerve + +ADIS16448Swerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -84,28 +83,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private final edu.wpi.first.wpilibj.ADIS16448_IMU
      - -
      -
      ADIS16448_IMU device to read the current headings from.
      -
      -
      private edu.wpi.first.math.geometry.Rotation3d
      - -
      -
      Offset for the ADIS16448.
      -
      -
      -
      -
    • @@ -179,28 +156,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          imu

          -
          private final edu.wpi.first.wpilibj.ADIS16448_IMU imu
          -
          ADIS16448_IMU device to read the current headings from.
          -
          -
        • -
        • -
          -

          offset

          -
          private edu.wpi.first.math.geometry.Rotation3d offset
          -
          Offset for the ADIS16448.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/imu/ADIS16470Swerve.html b/docs/swervelib/imu/ADIS16470Swerve.html index 247f5aa..8bc7125 100644 --- a/docs/swervelib/imu/ADIS16470Swerve.html +++ b/docs/swervelib/imu/ADIS16470Swerve.html @@ -1,18 +1,17 @@ - -ADIS16470Swerve + +ADIS16470Swerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -84,28 +83,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private final edu.wpi.first.wpilibj.ADIS16470_IMU
      - -
      -
      ADIS16470_IMU device to read the current headings from.
      -
      -
      private edu.wpi.first.math.geometry.Rotation3d
      - -
      -
      Offset for the ADIS16470.
      -
      -
      -
      -
    • @@ -179,28 +156,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          imu

          -
          private final edu.wpi.first.wpilibj.ADIS16470_IMU imu
          -
          ADIS16470_IMU device to read the current headings from.
          -
          -
        • -
        • -
          -

          offset

          -
          private edu.wpi.first.math.geometry.Rotation3d offset
          -
          Offset for the ADIS16470.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/imu/ADXRS450Swerve.html b/docs/swervelib/imu/ADXRS450Swerve.html index 21d2a50..9f5d6de 100644 --- a/docs/swervelib/imu/ADXRS450Swerve.html +++ b/docs/swervelib/imu/ADXRS450Swerve.html @@ -1,18 +1,17 @@ - -ADXRS450Swerve + +ADXRS450Swerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -84,28 +83,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private final edu.wpi.first.wpilibj.ADXRS450_Gyro
      - -
      -
      ADXRS450_Gyro device to read the current headings from.
      -
      -
      private edu.wpi.first.math.geometry.Rotation3d
      - -
      -
      Offset for the ADXRS450.
      -
      -
      -
      -
    • @@ -179,28 +156,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          imu

          -
          private final edu.wpi.first.wpilibj.ADXRS450_Gyro imu
          -
          ADXRS450_Gyro device to read the current headings from.
          -
          -
        • -
        • -
          -

          offset

          -
          private edu.wpi.first.math.geometry.Rotation3d offset
          -
          Offset for the ADXRS450.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/imu/AnalogGyroSwerve.html b/docs/swervelib/imu/AnalogGyroSwerve.html index 9f32891..784ed4f 100644 --- a/docs/swervelib/imu/AnalogGyroSwerve.html +++ b/docs/swervelib/imu/AnalogGyroSwerve.html @@ -1,18 +1,17 @@ - -AnalogGyroSwerve + +AnalogGyroSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -84,28 +83,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private final edu.wpi.first.wpilibj.AnalogGyro
      - -
      -
      Gyroscope object.
      -
      -
      private edu.wpi.first.math.geometry.Rotation3d
      - -
      -
      Offset for the analog gyro.
      -
      -
      -
      -
    • @@ -179,28 +156,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          gyro

          -
          private final edu.wpi.first.wpilibj.AnalogGyro gyro
          -
          Gyroscope object.
          -
          -
        • -
        • -
          -

          offset

          -
          private edu.wpi.first.math.geometry.Rotation3d offset
          -
          Offset for the analog gyro.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/imu/NavXSwerve.html b/docs/swervelib/imu/NavXSwerve.html index 6830703..64a366d 100644 --- a/docs/swervelib/imu/NavXSwerve.html +++ b/docs/swervelib/imu/NavXSwerve.html @@ -1,18 +1,17 @@ - -NavXSwerve + +NavXSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -84,28 +83,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private com.kauailabs.navx.frc.AHRS
      - -
      -
      NavX IMU.
      -
      -
      private edu.wpi.first.math.geometry.Rotation3d
      - -
      -
      Offset for the NavX.
      -
      -
      -
      -
    • @@ -187,28 +164,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          gyro

          -
          private com.kauailabs.navx.frc.AHRS gyro
          -
          NavX IMU.
          -
          -
        • -
        • -
          -

          offset

          -
          private edu.wpi.first.math.geometry.Rotation3d offset
          -
          Offset for the NavX.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/imu/Pigeon2Swerve.html b/docs/swervelib/imu/Pigeon2Swerve.html index f152bd6..ce32867 100644 --- a/docs/swervelib/imu/Pigeon2Swerve.html +++ b/docs/swervelib/imu/Pigeon2Swerve.html @@ -1,18 +1,17 @@ - -Pigeon2Swerve + +Pigeon2Swerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -84,28 +83,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      (package private) com.ctre.phoenix.sensors.WPI_Pigeon2
      - -
      -
      Pigeon2 IMU device.
      -
      -
      private edu.wpi.first.math.geometry.Rotation3d
      - -
      -
      Offset for the Pigeon 2.
      -
      -
      -
      -
    • @@ -184,28 +161,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          imu

          -
          com.ctre.phoenix.sensors.WPI_Pigeon2 imu
          -
          Pigeon2 IMU device.
          -
          -
        • -
        • -
          -

          offset

          -
          private edu.wpi.first.math.geometry.Rotation3d offset
          -
          Offset for the Pigeon 2.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/imu/PigeonSwerve.html b/docs/swervelib/imu/PigeonSwerve.html index 472ba9d..5914b6f 100644 --- a/docs/swervelib/imu/PigeonSwerve.html +++ b/docs/swervelib/imu/PigeonSwerve.html @@ -1,18 +1,17 @@ - -PigeonSwerve + +PigeonSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -84,28 +83,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      (package private) com.ctre.phoenix.sensors.WPI_PigeonIMU
      - -
      -
      Pigeon v1 IMU device.
      -
      -
      private edu.wpi.first.math.geometry.Rotation3d
      - -
      -
      Offset for the Pigeon.
      -
      -
      -
      -
    • @@ -179,28 +156,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          imu

          -
          com.ctre.phoenix.sensors.WPI_PigeonIMU imu
          -
          Pigeon v1 IMU device.
          -
          -
        • -
        • -
          -

          offset

          -
          private edu.wpi.first.math.geometry.Rotation3d offset
          -
          Offset for the Pigeon.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/imu/SwerveIMU.html b/docs/swervelib/imu/SwerveIMU.html index 73072c4..aaf54c5 100644 --- a/docs/swervelib/imu/SwerveIMU.html +++ b/docs/swervelib/imu/SwerveIMU.html @@ -1,18 +1,17 @@ - -SwerveIMU + +SwerveIMU (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    diff --git a/docs/swervelib/imu/package-summary.html b/docs/swervelib/imu/package-summary.html index b24fb98..f4cf474 100644 --- a/docs/swervelib/imu/package-summary.html +++ b/docs/swervelib/imu/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.imu + +swervelib.imu (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/imu/package-tree.html b/docs/swervelib/imu/package-tree.html index d6efef8..6feac39 100644 --- a/docs/swervelib/imu/package-tree.html +++ b/docs/swervelib/imu/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.imu Class Hierarchy + +swervelib.imu Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/math/Matter.html b/docs/swervelib/math/Matter.html index 6e6dc83..0984f73 100644 --- a/docs/swervelib/math/Matter.html +++ b/docs/swervelib/math/Matter.html @@ -1,18 +1,17 @@ - -Matter + +Matter (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/math/SwerveDriveOdometry2.html b/docs/swervelib/math/SwerveDriveOdometry2.html deleted file mode 100644 index 59f993c..0000000 --- a/docs/swervelib/math/SwerveDriveOdometry2.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - -SwerveDriveOdometry2 - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class SwerveDriveOdometry2

    -
    -
    java.lang.Object -
    edu.wpi.first.math.kinematics.SwerveDriveOdometry -
    swervelib.math.SwerveDriveOdometry2
    -
    -
    -
    -
    -
    public class SwerveDriveOdometry2 -extends edu.wpi.first.math.kinematics.SwerveDriveOdometry
    -
    Clone of SwerveDriveOdometry except uses gyro pitch and roll to achieve a more accurate estimation. - Originally made by Team 1466.
    -
    -
    -
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private edu.wpi.first.math.geometry.Rotation2d
      - -
      -
      Gyro offset.
      -
      -
      private final edu.wpi.first.math.kinematics.SwerveDriveKinematics
      - -
      -
      Swerve drive kinematics.
      -
      -
      private final int
      - -
      -
      Number of swerve modules.
      -
      -
      private edu.wpi.first.math.geometry.Pose2d
      - -
      -
      Estimated pose.
      -
      -
      private edu.wpi.first.math.geometry.Rotation2d
      - -
      -
      Previous gyroscope angle.
      -
      -
      private final edu.wpi.first.math.kinematics.SwerveModulePosition[]
      - -
      -
      Previous swerve module positions.
      -
      -
      private final edu.wpi.first.math.kinematics.SwerveModuleState[]
      - -
      -
      Zero module states.
      -
      -
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      SwerveDriveOdometry2(edu.wpi.first.math.kinematics.SwerveDriveKinematics kinematics, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
      -
      -
      Constructs a SwerveDriveOdometry object with the default pose at the origin.
      -
      -
      SwerveDriveOdometry2(edu.wpi.first.math.kinematics.SwerveDriveKinematics kinematics, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d initialPose)
      -
      -
      Constructs a SwerveDriveOdometry object.
      -
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      edu.wpi.first.math.geometry.Pose2d
      - -
      -
      Returns the position of the robot on the field.
      -
      -
      void
      -
      resetPosition(edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d pose)
      -
      -
      Resets the robot's position on the field.
      -
      -
      edu.wpi.first.math.geometry.Pose2d
      -
      update(edu.wpi.first.math.geometry.Rotation2d gyroYaw, - edu.wpi.first.math.geometry.Rotation2d pitch, - edu.wpi.first.math.geometry.Rotation2d roll, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
      -
      -
      Updates the robot's position on the field using forward kinematics and integration of the pose over time.
      -
      -
      -
      -
      -
      -

      Methods inherited from class edu.wpi.first.math.kinematics.SwerveDriveOdometry

      -update
      -
      -

      Methods inherited from class java.lang.Object

      -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        m_kinematics

        -
        private final edu.wpi.first.math.kinematics.SwerveDriveKinematics m_kinematics
        -
        Swerve drive kinematics.
        -
        -
      • -
      • -
        -

        m_numModules

        -
        private final int m_numModules
        -
        Number of swerve modules.
        -
        -
      • -
      • -
        -

        m_previousModulePositions

        -
        private final edu.wpi.first.math.kinematics.SwerveModulePosition[] m_previousModulePositions
        -
        Previous swerve module positions.
        -
        -
      • -
      • -
        -

        m_zeroModuleStates

        -
        private final edu.wpi.first.math.kinematics.SwerveModuleState[] m_zeroModuleStates
        -
        Zero module states.
        -
        -
      • -
      • -
        -

        m_poseMeters

        -
        private edu.wpi.first.math.geometry.Pose2d m_poseMeters
        -
        Estimated pose.
        -
        -
      • -
      • -
        -

        m_gyroOffset

        -
        private edu.wpi.first.math.geometry.Rotation2d m_gyroOffset
        -
        Gyro offset.
        -
        -
      • -
      • -
        -

        m_previousAngle

        -
        private edu.wpi.first.math.geometry.Rotation2d m_previousAngle
        -
        Previous gyroscope angle.
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        SwerveDriveOdometry2

        -
        public SwerveDriveOdometry2(edu.wpi.first.math.kinematics.SwerveDriveKinematics kinematics, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d initialPose)
        -
        Constructs a SwerveDriveOdometry object.
        -
        -
        Parameters:
        -
        kinematics - The swerve drive kinematics for your drivetrain.
        -
        gyroAngle - The angle reported by the gyroscope.
        -
        modulePositions - The wheel positions reported by each module.
        -
        initialPose - The starting position of the robot on the field.
        -
        -
        -
      • -
      • -
        -

        SwerveDriveOdometry2

        -
        public SwerveDriveOdometry2(edu.wpi.first.math.kinematics.SwerveDriveKinematics kinematics, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
        -
        Constructs a SwerveDriveOdometry object with the default pose at the origin.
        -
        -
        Parameters:
        -
        kinematics - The swerve drive kinematics for your drivetrain.
        -
        gyroAngle - The angle reported by the gyroscope.
        -
        modulePositions - The wheel positions reported by each module.
        -
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        resetPosition

        -
        public void resetPosition(edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d pose)
        -
        Resets the robot's position on the field. - -

        The gyroscope angle does not need to be reset here on the user's robot code. The library - automatically takes care of offsetting the gyro angle. - -

        Similarly, module positions do not need to be reset in user code.

        -
        -
        Overrides:
        -
        resetPosition in class edu.wpi.first.math.kinematics.SwerveDriveOdometry
        -
        Parameters:
        -
        gyroAngle - The angle reported by the gyroscope.
        -
        modulePositions - The wheel positions reported by each module.,
        -
        pose - The position on the field that your robot is at.
        -
        -
        -
      • -
      • -
        -

        getPoseMeters

        -
        public edu.wpi.first.math.geometry.Pose2d getPoseMeters()
        -
        Returns the position of the robot on the field.
        -
        -
        Overrides:
        -
        getPoseMeters in class edu.wpi.first.math.kinematics.SwerveDriveOdometry
        -
        Returns:
        -
        The pose of the robot (x and y are in meters).
        -
        -
        -
      • -
      • -
        -

        update

        -
        public edu.wpi.first.math.geometry.Pose2d update(edu.wpi.first.math.geometry.Rotation2d gyroYaw, - edu.wpi.first.math.geometry.Rotation2d pitch, - edu.wpi.first.math.geometry.Rotation2d roll, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
        -
        Updates the robot's position on the field using forward kinematics and integration of the pose over time. This - method automatically calculates the current time to calculate period (difference between two timestamps). The - period is used to calculate the change in distance from a velocity. This also takes in an angle parameter which is - used instead of the angular rate that is calculated from forward kinematics. This also takes in pitch and roll to - allow for more accurate pose estimation on angled surfaces using a rotation matrix.
        -
        -
        Parameters:
        -
        gyroYaw - The yaw reported by the gyro.
        -
        pitch - The pitch reported by the gyro.
        -
        roll - The roll reported by the gyro.
        -
        modulePositions - The current position of all swerve modules. Please provide the positions in the same order - in which you instantiated your SwerveDriveKinematics.
        -
        Returns:
        -
        The new pose of the robot.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/swervelib/math/SwerveKinematics2.html b/docs/swervelib/math/SwerveKinematics2.html deleted file mode 100644 index 6c30fdc..0000000 --- a/docs/swervelib/math/SwerveKinematics2.html +++ /dev/null @@ -1,463 +0,0 @@ - - - - -SwerveKinematics2 - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class SwerveKinematics2

    -
    -
    java.lang.Object -
    edu.wpi.first.math.kinematics.SwerveDriveKinematics -
    swervelib.math.SwerveKinematics2
    -
    -
    -
    -
    -
    public class SwerveKinematics2 -extends edu.wpi.first.math.kinematics.SwerveDriveKinematics
    -
    Clone of WPI SwerveKinematics, which implements second order kinematics when calculating modules states from chassis - speed. Makes use of SwerveModuleState2 to add the angular velocity that is required of the module as an - output.
    -
    -
    -
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private final org.ejml.simple.SimpleMatrix
      - -
      -
      Second order kinematics inverse matrix.
      -
      -
      private final org.ejml.simple.SimpleMatrix
      - -
      -
      Forward kinematics matrix.
      -
      -
      private final org.ejml.simple.SimpleMatrix
      - -
      -
      Inverse kinematics matrix.
      -
      -
      private final edu.wpi.first.wpilibj.Timer
      - -
       
      -
      private final edu.wpi.first.math.geometry.Translation2d[]
      - -
      -
      Location of each swerve module in meters.
      -
      -
      private final SwerveModuleState2[]
      - -
      -
      Swerve module states.
      -
      -
      private final int
      - -
      -
      Number of swerve modules.
      -
      -
      private edu.wpi.first.math.kinematics.ChassisSpeeds
      - -
       
      -
      private edu.wpi.first.math.geometry.Translation2d
      - -
      -
      Previous CoR
      -
      -
      private double
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      SwerveKinematics2(edu.wpi.first.math.geometry.Translation2d... wheelsMeters)
      -
      -
      Constructs a swerve drive kinematics object.
      -
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      static void
      -
      desaturateWheelSpeeds(SwerveModuleState2[] moduleStates, - double attainableMaxSpeedMetersPerSecond)
      -
      -
      Renormalizes the wheel speeds if any individual speed is above the specified maximum.
      -
      -
      static void
      -
      desaturateWheelSpeeds(SwerveModuleState2[] moduleStates, - edu.wpi.first.math.kinematics.ChassisSpeeds currentChassisSpeed, - double attainableMaxModuleSpeedMetersPerSecond, - double attainableMaxTranslationalSpeedMetersPerSecond, - double attainableMaxRotationalVelocityRadiansPerSecond)
      -
      -
      Renormalizes the wheel speeds if any individual speed is above the specified maximum, as well as getting rid of - joystick saturation at edges of joystick.
      -
      -
      edu.wpi.first.math.kinematics.ChassisSpeeds
      - -
      -
      Performs forward kinematics to return the resulting chassis state from the given module states.
      -
      - -
      toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds chassisSpeeds)
      -
      -
      Performs inverse kinematics.
      -
      - -
      toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds chassisSpeeds, - edu.wpi.first.math.geometry.Translation2d centerOfRotationMeters)
      -
      -
      Performs inverse kinematics to return the module states from a desired chassis velocity.
      -
      -
      edu.wpi.first.math.geometry.Twist2d
      -
      toTwist2d(edu.wpi.first.math.kinematics.SwerveModulePosition... wheelDeltas)
      -
      -
      Performs forward kinematics to return the resulting chassis state from the given module states.
      -
      -
      -
      -
      -
      -

      Methods inherited from class edu.wpi.first.math.kinematics.SwerveDriveKinematics

      -desaturateWheelSpeeds, desaturateWheelSpeeds, toChassisSpeeds
      -
      -

      Methods inherited from class java.lang.Object

      -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        m_inverseKinematics

        -
        private final org.ejml.simple.SimpleMatrix m_inverseKinematics
        -
        Inverse kinematics matrix.
        -
        -
      • -
      • -
        -

        m_forwardKinematics

        -
        private final org.ejml.simple.SimpleMatrix m_forwardKinematics
        -
        Forward kinematics matrix.
        -
        -
      • -
      • -
        -

        bigInverseKinematics

        -
        private final org.ejml.simple.SimpleMatrix bigInverseKinematics
        -
        Second order kinematics inverse matrix.
        -
        -
      • -
      • -
        -

        m_numModules

        -
        private final int m_numModules
        -
        Number of swerve modules.
        -
        -
      • -
      • -
        -

        m_modules

        -
        private final edu.wpi.first.math.geometry.Translation2d[] m_modules
        -
        Location of each swerve module in meters.
        -
        -
      • -
      • -
        -

        m_moduleStates

        -
        private final SwerveModuleState2[] m_moduleStates
        -
        Swerve module states.
        -
        -
      • -
      • -
        -

        m_moduleAccelTimer

        -
        private final edu.wpi.first.wpilibj.Timer m_moduleAccelTimer
        -
        -
      • -
      • -
        -

        m_prevCoR

        -
        private edu.wpi.first.math.geometry.Translation2d m_prevCoR
        -
        Previous CoR
        -
        -
      • -
      • -
        -

        m_prevChassisSpeeds

        -
        private edu.wpi.first.math.kinematics.ChassisSpeeds m_prevChassisSpeeds
        -
        -
      • -
      • -
        -

        m_prevModuleAccelTime

        -
        private double m_prevModuleAccelTime
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        SwerveKinematics2

        -
        public SwerveKinematics2(edu.wpi.first.math.geometry.Translation2d... wheelsMeters)
        -
        Constructs a swerve drive kinematics object. This takes in a variable number of wheel locations as Translation2ds. - The order in which you pass in the wheel locations is the same order that you will receive the module states when - performing inverse kinematics. It is also expected that you pass in the module states in the same order when - calling the forward kinematics methods.
        -
        -
        Parameters:
        -
        wheelsMeters - The locations of the wheels relative to the physical center of the robot.
        -
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        desaturateWheelSpeeds

        -
        public static void desaturateWheelSpeeds(SwerveModuleState2[] moduleStates, - double attainableMaxSpeedMetersPerSecond)
        -
        Renormalizes the wheel speeds if any individual speed is above the specified maximum. - -

        Sometimes, after inverse kinematics, the requested speed from one or more modules may be - above the max attainable speed for the driving motor on that module. To fix this issue, one can reduce all the - wheel speeds to make sure that all requested module speeds are at-or-below the absolute threshold, while - maintaining the ratio of speeds between modules.

        -
        -
        Parameters:
        -
        moduleStates - Reference to array of module states. The array will be mutated with the - normalized speeds!
        -
        attainableMaxSpeedMetersPerSecond - The absolute max speed that a module can reach.
        -
        -
        -
      • -
      • -
        -

        desaturateWheelSpeeds

        -
        public static void desaturateWheelSpeeds(SwerveModuleState2[] moduleStates, - edu.wpi.first.math.kinematics.ChassisSpeeds currentChassisSpeed, - double attainableMaxModuleSpeedMetersPerSecond, - double attainableMaxTranslationalSpeedMetersPerSecond, - double attainableMaxRotationalVelocityRadiansPerSecond)
        -
        Renormalizes the wheel speeds if any individual speed is above the specified maximum, as well as getting rid of - joystick saturation at edges of joystick. - -

        Sometimes, after inverse kinematics, the requested speed from one or more modules may be - above the max attainable speed for the driving motor on that module. To fix this issue, one can reduce all the - wheel speeds to make sure that all requested module speeds are at-or-below the absolute threshold, while - maintaining the ratio of speeds between modules.

        -
        -
        Parameters:
        -
        moduleStates - Reference to array of module states. The array will be - mutated with the normalized speeds!
        -
        currentChassisSpeed - The current speed of the robot
        -
        attainableMaxModuleSpeedMetersPerSecond - The absolute max speed that a module can reach
        -
        attainableMaxTranslationalSpeedMetersPerSecond - The absolute max speed that your robot can reach while - translating
        -
        attainableMaxRotationalVelocityRadiansPerSecond - The absolute max speed the robot can reach while rotating
        -
        -
        -
      • -
      • -
        -

        toSwerveModuleStates

        -
        public SwerveModuleState2[] toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds chassisSpeeds, - edu.wpi.first.math.geometry.Translation2d centerOfRotationMeters)
        -
        Performs inverse kinematics to return the module states from a desired chassis velocity. This method is often used - to convert joystick values into module speeds and angles. - -

        This function also supports variable centers of rotation. During normal operations, the - center of rotation is usually the same as the physical center of the robot; therefore, the argument is defaulted to - that use case. However, if you wish to change the center of rotation for evasive maneuvers, vision alignment, or - for any other use case, you can do so. - -

        In the case that the desired chassis speeds are zero (i.e. the robot will be stationary), - the previously calculated module angle will be maintained.

        -
        -
        Overrides:
        -
        toSwerveModuleStates in class edu.wpi.first.math.kinematics.SwerveDriveKinematics
        -
        Parameters:
        -
        chassisSpeeds - The desired chassis speed.
        -
        centerOfRotationMeters - The center of rotation. For example, if you set the center of rotation at one corner - of the robot and provide a chassis speed that only has a dtheta component, the robot - will rotate around that corner.
        -
        Returns:
        -
        An array containing the module states. Use caution because these module states are not normalized. - Sometimes, a user input may cause one of the module speeds to go above the attainable max velocity. Use the - DesaturateWheelSpeeds function to rectify this issue.
        -
        -
        -
      • -
      • -
        -

        toSwerveModuleStates

        -
        public SwerveModuleState2[] toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds chassisSpeeds)
        -
        Performs inverse kinematics. See toSwerveModuleStates(ChassisSpeeds, Translation2d) toSwerveModuleStates - for more information.
        -
        -
        Overrides:
        -
        toSwerveModuleStates in class edu.wpi.first.math.kinematics.SwerveDriveKinematics
        -
        Parameters:
        -
        chassisSpeeds - The desired chassis speed.
        -
        Returns:
        -
        An array containing the module states.
        -
        -
        -
      • -
      • -
        -

        toChassisSpeeds

        -
        public edu.wpi.first.math.kinematics.ChassisSpeeds toChassisSpeeds(SwerveModuleState2... wheelStates)
        -
        Performs forward kinematics to return the resulting chassis state from the given module states. This method is - often used for odometry -- determining the robot's position on the field using data from the real-world speed and - angle of each module on the robot.
        -
        -
        Parameters:
        -
        wheelStates - The state of the modules (as a SwerveModuleState type) as measured from respective encoders and - gyros. The order of the swerve module states should be same as passed into the constructor of - this class.
        -
        Returns:
        -
        The resulting chassis speed.
        -
        -
        -
      • -
      • -
        -

        toTwist2d

        -
        public edu.wpi.first.math.geometry.Twist2d toTwist2d(edu.wpi.first.math.kinematics.SwerveModulePosition... wheelDeltas)
        -
        Performs forward kinematics to return the resulting chassis state from the given module states. This method is - often used for odometry -- determining the robot's position on the field using data from the real-world speed and - angle of each module on the robot.
        -
        -
        Overrides:
        -
        toTwist2d in class edu.wpi.first.math.kinematics.SwerveDriveKinematics
        -
        Parameters:
        -
        wheelDeltas - The latest change in position of the modules (as a SwerveModulePosition type) as measured from - respective encoders and gyros. The order of the swerve module states should be same as passed - into the constructor of this class.
        -
        Returns:
        -
        The resulting Twist2d.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/swervelib/math/SwerveMath.html b/docs/swervelib/math/SwerveMath.html index a923b7e..d738727 100644 --- a/docs/swervelib/math/SwerveMath.html +++ b/docs/swervelib/math/SwerveMath.html @@ -1,18 +1,17 @@ - -SwerveMath + +SwerveMath (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -120,87 +119,79 @@ loadScripts(document, 'script');
    Algebraically apply a deadband using a piece wise function.
    -
    private static double
    -
    calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d angle, - List<Matter> matter, - double robotMass, - SwerveDriveConfiguration config)
    -
    -
    Calculates the maximum acceleration allowed in a direction without tipping the robot.
    -
    -
    static double
    -
    calculateDegreesPerSteeringRotation(double angleGearRatio, +
    static double
    +
    calculateDegreesPerSteeringRotation(double angleGearRatio, double pulsePerRotation)
    -
    +
    Calculate the degrees per steering rotation for the integrated encoder.
    -
    static double
    - -
    +
    static double
    + +
    Calculate the practical maximum acceleration of the robot using the wheel coefficient of friction.
    -
    static double
    -
    calculateMaxAcceleration(double stallTorqueNm, +
    static double
    +
    calculateMaxAcceleration(double stallTorqueNm, double gearRatio, double moduleCount, double wheelDiameter, double robotMass)
    -
    +
    Calculate the maximum theoretical acceleration without friction.
    -
    static double
    -
    calculateMaxAngularVelocity(double maxSpeed, +
    static double
    +
    calculateMaxAngularVelocity(double maxSpeed, double furthestModuleX, double furthestModuleY)
    -
    +
    Calculate the maximum angular velocity.
    -
    static double
    -
    calculateMetersPerRotation(double wheelDiameter, +
    static double
    +
    calculateMetersPerRotation(double wheelDiameter, double driveGearRatio, double pulsePerRotation)
    -
    +
    Calculate the meters per rotation for the integrated encoder.
    -
    static edu.wpi.first.math.controller.SimpleMotorFeedforward
    -
    createDriveFeedforward(double optimalVoltage, +
    static edu.wpi.first.math.controller.SimpleMotorFeedforward
    +
    createDriveFeedforward(double optimalVoltage, double maxSpeed, double wheelGripCoefficientOfFriction)
    -
    +
    Create the drive feedforward for swerve modules.
    - -
    getSwerveModule(SwerveModule[] modules, + +
    getSwerveModule(SwerveModule[] modules, boolean front, boolean left)
    -
    +
    Get the fruthest module from center based on the module locations.
    -
    static edu.wpi.first.math.geometry.Translation2d
    -
    limitVelocity(edu.wpi.first.math.geometry.Translation2d commandedVelocity, +
    static edu.wpi.first.math.geometry.Translation2d
    +
    limitVelocity(edu.wpi.first.math.geometry.Translation2d commandedVelocity, edu.wpi.first.math.kinematics.ChassisSpeeds fieldVelocity, edu.wpi.first.math.geometry.Pose2d robotPose, double loopTime, double robotMass, List<Matter> matter, SwerveDriveConfiguration config)
    - -
    static double
    -
    normalizeAngle(double angle)
    -
    Normalize an angle to be within 0 to 360.
    +
    Limits a commanded velocity to prevent exceeding the maximum acceleration given by calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d, java.util.List<swervelib.math.Matter>, double, swervelib.parser.SwerveDriveConfiguration).
    static double
    -
    placeInAppropriate0To360Scope(double scopeReference, - double newAngle)
    +
    normalizeAngle(double angle)
    +
    Normalize an angle to be within 0 to 360.
    +
    +
    static double
    +
    placeInAppropriate0To360Scope(double scopeReference, + double newAngle)
    +
    Put an angle within the 360 deg scope of a reference.
    -
    static edu.wpi.first.math.geometry.Twist2d
    -
    PoseLog(edu.wpi.first.math.geometry.Pose2d transform)
    -
    +
    static edu.wpi.first.math.geometry.Twist2d
    +
    PoseLog(edu.wpi.first.math.geometry.Pose2d transform)
    +
    Logical inverse of the Pose exponential from 254.
    @@ -368,27 +359,6 @@ loadScripts(document, 'script');
  • -
    -

    calcMaxAccel

    -
    private static double calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d angle, - List<Matter> matter, - double robotMass, - SwerveDriveConfiguration config)
    -
    Calculates the maximum acceleration allowed in a direction without tipping the robot. Reads arm position from - NetworkTables and is passed the direction in question.
    -
    -
    Parameters:
    -
    angle - The direction in which to calculate max acceleration, as a Rotation2d. Note that this is - robot-relative.
    -
    matter - Matter that the robot is composed of in kg. (Includes chassis)
    -
    robotMass - The weight of the robot in kg. (Including manipulators, etc).
    -
    config - The swerve drive configuration.
    -
    Returns:
    -
    Maximum acceleration allowed in the robot direction.
    -
    -
    -
  • -
  • PoseLog

    public static edu.wpi.first.math.geometry.Twist2d PoseLog(edu.wpi.first.math.geometry.Pose2d transform)
    @@ -411,7 +381,7 @@ loadScripts(document, 'script'); double robotMass, List<Matter> matter, SwerveDriveConfiguration config)
  • -
    Limits a commanded velocity to prevent exceeding the maximum acceleration given by calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d, java.util.List<swervelib.math.Matter>, double, swervelib.parser.SwerveDriveConfiguration). +
    Limits a commanded velocity to prevent exceeding the maximum acceleration given by calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d, java.util.List<swervelib.math.Matter>, double, swervelib.parser.SwerveDriveConfiguration). Note that this takes and returns field-relative velocities.
    Parameters:
    diff --git a/docs/swervelib/math/SwerveModuleState2.html b/docs/swervelib/math/SwerveModuleState2.html deleted file mode 100644 index 49642a4..0000000 --- a/docs/swervelib/math/SwerveModuleState2.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - -SwerveModuleState2 - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class SwerveModuleState2

    -
    -
    java.lang.Object -
    edu.wpi.first.math.kinematics.SwerveModuleState -
    swervelib.math.SwerveModuleState2
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<edu.wpi.first.math.kinematics.SwerveModuleState>
    -
    -
    -
    public class SwerveModuleState2 -extends edu.wpi.first.math.kinematics.SwerveModuleState
    -
    Second order kinematics swerve module state.
    -
    -
    -
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      double
      - -
      -
      Rad per sec
      -
      -
      -
      -

      Fields inherited from class edu.wpi.first.math.kinematics.SwerveModuleState

      -angle, speedMetersPerSecond
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      - -
      -
      Constructs a SwerveModuleState with zeros for speed and angle.
      -
      -
      SwerveModuleState2(double speedMetersPerSecond, - edu.wpi.first.math.geometry.Rotation2d angle, - double omegaRadPerSecond)
      -
      -
      Constructs a SwerveModuleState.
      -
      -
      SwerveModuleState2(edu.wpi.first.math.kinematics.SwerveModuleState state, - double omegaRadPerSecond)
      -
      -
      Create a SwerveModuleState2 based on the SwerveModuleState with the radians per second defined.
      -
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - - -
      -
      Invert the swerve module state.
      -
      - -
      optimize(SwerveModuleState2 desiredState, - edu.wpi.first.math.geometry.Rotation2d currentAngle, - SwerveModuleState2 lastState, - double moduleSteerFeedForwardClosedLoop)
      -
      -
      Minimize the change in heading the desired swerve module state would require by potentially reversing the direction - the wheel spins.
      -
      -
      edu.wpi.first.math.kinematics.SwerveModuleState
      - -
      -
      Convert to a SwerveModuleState.
      -
      -
      -
      -
      -
      -

      Methods inherited from class edu.wpi.first.math.kinematics.SwerveModuleState

      -compareTo, equals, hashCode, optimize, toString
      -
      -

      Methods inherited from class java.lang.Object

      -clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        omegaRadPerSecond

        -
        public double omegaRadPerSecond
        -
        Rad per sec
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        SwerveModuleState2

        -
        public SwerveModuleState2()
        -
        Constructs a SwerveModuleState with zeros for speed and angle.
        -
        -
      • -
      • -
        -

        SwerveModuleState2

        -
        public SwerveModuleState2(double speedMetersPerSecond, - edu.wpi.first.math.geometry.Rotation2d angle, - double omegaRadPerSecond)
        -
        Constructs a SwerveModuleState.
        -
        -
        Parameters:
        -
        speedMetersPerSecond - The speed of the wheel of the module.
        -
        angle - The angle of the module.
        -
        omegaRadPerSecond - The angular velocity of the module.
        -
        -
        -
      • -
      • -
        -

        SwerveModuleState2

        -
        public SwerveModuleState2(edu.wpi.first.math.kinematics.SwerveModuleState state, - double omegaRadPerSecond)
        -
        Create a SwerveModuleState2 based on the SwerveModuleState with the radians per second defined.
        -
        -
        Parameters:
        -
        state - First order kinematic module state.
        -
        omegaRadPerSecond - Module wheel angular rotation in radians per second.
        -
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        optimize

        -
        public static SwerveModuleState2 optimize(SwerveModuleState2 desiredState, - edu.wpi.first.math.geometry.Rotation2d currentAngle, - SwerveModuleState2 lastState, - double moduleSteerFeedForwardClosedLoop)
        -
        Minimize the change in heading the desired swerve module state would require by potentially reversing the direction - the wheel spins. If this is used with the PIDController class's continuous input functionality, the furthest a - wheel will ever rotate is 90 degrees.
        -
        -
        Parameters:
        -
        desiredState - The desired state.
        -
        currentAngle - The current module angle.
        -
        lastState - The last state of the module.
        -
        moduleSteerFeedForwardClosedLoop - The module feed forward closed loop for the angle motor.
        -
        Returns:
        -
        Optimized swerve module state.
        -
        -
        -
      • -
      • -
        -

        invert

        -
        public SwerveModuleState2 invert()
        -
        Invert the swerve module state.
        -
        -
        Returns:
        -
        Current inverted SwerveModuleState2
        -
        -
        -
      • -
      • -
        -

        toSwerveModuleState

        -
        public edu.wpi.first.math.kinematics.SwerveModuleState toSwerveModuleState()
        -
        Convert to a SwerveModuleState.
        -
        -
        Returns:
        -
        SwerveModuleState with the same angle and speed.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/swervelib/math/SwervePoseEstimator2.InterpolationRecord.html b/docs/swervelib/math/SwervePoseEstimator2.InterpolationRecord.html deleted file mode 100644 index 98e1b23..0000000 --- a/docs/swervelib/math/SwervePoseEstimator2.InterpolationRecord.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - -SwervePoseEstimator2.InterpolationRecord - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class SwervePoseEstimator2.InterpolationRecord

    -
    -
    java.lang.Object -
    swervelib.math.SwervePoseEstimator2.InterpolationRecord
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.math.interpolation.Interpolatable<SwervePoseEstimator2.InterpolationRecord>
    -
    -
    -
    Enclosing class:
    -
    SwervePoseEstimator2
    -
    -
    -
    private class SwervePoseEstimator2.InterpolationRecord -extends Object -implements edu.wpi.first.math.interpolation.Interpolatable<SwervePoseEstimator2.InterpolationRecord>
    -
    Represents an odometry record. The record contains the inputs provided as well as the pose that was observed based - on these inputs, as well as the previous record and its inputs.
    -
    -
    -
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private final edu.wpi.first.math.geometry.Rotation2d
      - -
       
      -
      private final edu.wpi.first.math.geometry.Rotation2d
      - -
       
      -
      private final edu.wpi.first.math.geometry.Rotation2d
      - -
       
      -
      private final edu.wpi.first.math.kinematics.SwerveModulePosition[]
      - -
       
      -
      private final edu.wpi.first.math.geometry.Pose2d
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Modifier
      -
      Constructor
      -
      Description
      -
      private
      -
      InterpolationRecord(edu.wpi.first.math.geometry.Pose2d poseMeters, - edu.wpi.first.math.geometry.Rotation2d gyro, - edu.wpi.first.math.geometry.Rotation2d gyroPitch, - edu.wpi.first.math.geometry.Rotation2d gyroRoll, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
      -
      -
      Constructs an Interpolation Record with the specified parameters.
      -
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      boolean
      - -
       
      -
      int
      - -
       
      - - -
      -
      Return the interpolated record.
      -
      -
      -
      -
      -
      -

      Methods inherited from class java.lang.Object

      -clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        poseMeters

        -
        private final edu.wpi.first.math.geometry.Pose2d poseMeters
        -
        -
      • -
      • -
        -

        gyroAngle

        -
        private final edu.wpi.first.math.geometry.Rotation2d gyroAngle
        -
        -
      • -
      • -
        -

        gyroPitch

        -
        private final edu.wpi.first.math.geometry.Rotation2d gyroPitch
        -
        -
      • -
      • -
        -

        gyroRoll

        -
        private final edu.wpi.first.math.geometry.Rotation2d gyroRoll
        -
        -
      • -
      • -
        -

        modulePositions

        -
        private final edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        InterpolationRecord

        -
        private InterpolationRecord(edu.wpi.first.math.geometry.Pose2d poseMeters, - edu.wpi.first.math.geometry.Rotation2d gyro, - edu.wpi.first.math.geometry.Rotation2d gyroPitch, - edu.wpi.first.math.geometry.Rotation2d gyroRoll, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
        -
        Constructs an Interpolation Record with the specified parameters.
        -
        -
        Parameters:
        -
        poseMeters - The pose observed given the current sensor inputs and the previous pose.
        -
        gyro - The current gyro angle.
        -
        gyroPitch - The current gyro pitch.
        -
        gyroRoll - The current gyro roll.
        -
        modulePositions - The distances and rotations measured at each wheel.
        -
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      - -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/swervelib/math/SwervePoseEstimator2.html b/docs/swervelib/math/SwervePoseEstimator2.html deleted file mode 100644 index e121624..0000000 --- a/docs/swervelib/math/SwervePoseEstimator2.html +++ /dev/null @@ -1,502 +0,0 @@ - - - - -SwervePoseEstimator2 - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class SwervePoseEstimator2

    -
    -
    java.lang.Object -
    swervelib.math.SwervePoseEstimator2
    -
    -
    -
    -
    public class SwervePoseEstimator2 -extends Object
    -
    Clone of SwerveDrivePoseEstimator which takes into account gyroscope pitch and roll to achieve a more - accurate estimation, originally made by Team 1466.
    -
    -
    -
      - -
    • -
      -

      Nested Class Summary

      -
      Nested Classes
      -
      -
      Modifier and Type
      -
      Class
      -
      Description
      -
      private class 
      - -
      -
      Represents an odometry record.
      -
      -
      -
      -
    • - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private final edu.wpi.first.math.kinematics.SwerveDriveKinematics
      - -
      -
      Swerve drive kinematics.
      -
      -
      private final int
      - -
      -
      Number of swerve modules.
      -
      -
      private final SwerveDriveOdometry2
      - -
      -
      Enhanced swerve drive odometry.
      -
      -
      private final edu.wpi.first.math.interpolation.TimeInterpolatableBuffer<SwervePoseEstimator2.InterpolationRecord>
      - -
      -
      Interpolation buffer.
      -
      -
      private final edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
      - -
      -
      Matrix quotient.
      -
      -
      private final edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N3>
      - -
      -
      Vision standard deviations.
      -
      -
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      SwervePoseEstimator2(edu.wpi.first.math.kinematics.SwerveDriveKinematics kinematics, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d initialPoseMeters)
      -
      -
      Constructs a SwerveDrivePoseEstimator with default standard deviations for the model and vision measurements.
      -
      -
      SwervePoseEstimator2(edu.wpi.first.math.kinematics.SwerveDriveKinematics kinematics, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d initialPoseMeters, - edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> stateStdDevs, - edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> visionMeasurementStdDevs)
      -
      -
      Constructs a SwerveDrivePoseEstimator.
      -
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      void
      -
      addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d visionRobotPoseMeters, - double timestampSeconds)
      -
      -
      Adds a vision measurement to the Kalman Filter.
      -
      -
      void
      -
      addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d visionRobotPoseMeters, - double timestampSeconds, - edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> visionMeasurementStdDevs)
      -
      -
      Adds a vision measurement to the Kalman Filter.
      -
      -
      edu.wpi.first.math.geometry.Pose2d
      - -
      -
      Gets the estimated robot pose.
      -
      -
      void
      -
      resetPosition(edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d poseMeters)
      -
      -
      Resets the robot's position on the field.
      -
      -
      void
      -
      setVisionMeasurementStdDevs(edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> visionMeasurementStdDevs)
      -
      -
      Sets the pose estimator's trust of global measurements.
      -
      -
      edu.wpi.first.math.geometry.Pose2d
      -
      update(edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.geometry.Rotation2d gyroPitch, - edu.wpi.first.math.geometry.Rotation2d gyroRoll, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
      -
      -
      Updates the pose estimator with wheel encoder and gyro information.
      -
      -
      edu.wpi.first.math.geometry.Pose2d
      -
      updateWithTime(double currentTimeSeconds, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.geometry.Rotation2d gyroPitch, - edu.wpi.first.math.geometry.Rotation2d gyroRoll, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
      -
      -
      Updates the pose estimator with wheel encoder and gyro information.
      -
      -
      -
      -
      -
      -

      Methods inherited from class java.lang.Object

      -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        m_kinematics

        -
        private final edu.wpi.first.math.kinematics.SwerveDriveKinematics m_kinematics
        -
        Swerve drive kinematics.
        -
        -
      • -
      • -
        -

        m_odometry

        -
        private final SwerveDriveOdometry2 m_odometry
        -
        Enhanced swerve drive odometry.
        -
        -
      • -
      • -
        -

        m_q

        -
        private final edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> m_q
        -
        Matrix quotient.
        -
        -
      • -
      • -
        -

        m_numModules

        -
        private final int m_numModules
        -
        Number of swerve modules.
        -
        -
      • -
      • -
        -

        m_poseBuffer

        -
        private final edu.wpi.first.math.interpolation.TimeInterpolatableBuffer<SwervePoseEstimator2.InterpolationRecord> m_poseBuffer
        -
        Interpolation buffer.
        -
        -
      • -
      • -
        -

        m_visionK

        -
        private final edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N3> m_visionK
        -
        Vision standard deviations.
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        SwervePoseEstimator2

        -
        public SwervePoseEstimator2(edu.wpi.first.math.kinematics.SwerveDriveKinematics kinematics, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d initialPoseMeters)
        -
        Constructs a SwerveDrivePoseEstimator with default standard deviations for the model and vision measurements. - -

        The default standard deviations of the model states are 0.1 meters for x, 0.1 meters for y, - and 0.1 radians for heading. The default standard deviations of the vision measurements are 0.9 meters for x, 0.9 - meters for y, and 0.9 radians for heading.

        -
        -
        Parameters:
        -
        kinematics - A correctly-configured kinematics object for your drivetrain.
        -
        gyroAngle - The current gyro angle.
        -
        modulePositions - The current distance measurements and rotations of the swerve modules.
        -
        initialPoseMeters - The starting pose estimate.
        -
        -
        -
      • -
      • -
        -

        SwervePoseEstimator2

        -
        public SwervePoseEstimator2(edu.wpi.first.math.kinematics.SwerveDriveKinematics kinematics, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d initialPoseMeters, - edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> stateStdDevs, - edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> visionMeasurementStdDevs)
        -
        Constructs a SwerveDrivePoseEstimator.
        -
        -
        Parameters:
        -
        kinematics - A correctly-configured kinematics object for your drivetrain.
        -
        gyroAngle - The current gyro angle.
        -
        modulePositions - The current distance and rotation measurements of the swerve modules.
        -
        initialPoseMeters - The starting pose estimate.
        -
        stateStdDevs - Standard deviations of the pose estimate (x position in meters, y position in - meters, and heading in radians). Increase these numbers to trust your state - estimate less.
        -
        visionMeasurementStdDevs - Standard deviations of the vision pose measurement (x position in meters, y - position in meters, and heading in radians). Increase these numbers to trust the - vision pose measurement less.
        -
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        setVisionMeasurementStdDevs

        -
        public void setVisionMeasurementStdDevs(edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> visionMeasurementStdDevs)
        -
        Sets the pose estimator's trust of global measurements. This might be used to change trust in vision measurements - after the autonomous period, or to change trust as distance to a vision target increases.
        -
        -
        Parameters:
        -
        visionMeasurementStdDevs - Standard deviations of the vision measurements. Increase these numbers to trust - global measurements from vision less. This matrix is in the form [x, y, theta]^T, - with units in meters and radians.
        -
        -
        -
      • -
      • -
        -

        resetPosition

        -
        public void resetPosition(edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions, - edu.wpi.first.math.geometry.Pose2d poseMeters)
        -
        Resets the robot's position on the field. - -

        The gyroscope angle does not need to be reset in the user's robot code. The library - automatically takes care of offsetting the gyro angle.

        -
        -
        Parameters:
        -
        gyroAngle - The angle reported by the gyroscope.
        -
        modulePositions - The current distance measurements and rotations of the swerve modules.
        -
        poseMeters - The position on the field that your robot is at.
        -
        -
        -
      • -
      • -
        -

        getEstimatedPosition

        -
        public edu.wpi.first.math.geometry.Pose2d getEstimatedPosition()
        -
        Gets the estimated robot pose.
        -
        -
        Returns:
        -
        The estimated robot pose in meters.
        -
        -
        -
      • -
      • -
        -

        addVisionMeasurement

        -
        public void addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d visionRobotPoseMeters, - double timestampSeconds)
        -
        Adds a vision measurement to the Kalman Filter. This will correct the odometry pose estimate while still accounting - for measurement noise. - -

        This method can be called as infrequently as you want, as long as you are calling SwerveDrivePoseEstimator.update(edu.wpi.first.math.geometry.Rotation2d, edu.wpi.first.math.kinematics.SwerveModulePosition[]) every loop. - -

        To promote stability of the pose estimate and make it robust to bad vision data, we - recommend only adding vision measurements that are already within one meter or so of the current pose estimate.

        -
        -
        Parameters:
        -
        visionRobotPoseMeters - The pose of the robot as measured by the vision camera.
        -
        timestampSeconds - The timestamp of the vision measurement in seconds. Note that if you don't use your - own time source by calling - SwerveDrivePoseEstimator.updateWithTime(double, Rotation2d, SwerveModulePosition[]) then you must use a timestamp with an epoch since FPGA - startup (i.e., the epoch of this timestamp is the same epoch as - Timer.getFPGATimestamp().) This means that you should - use Timer.getFPGATimestamp() as your time source or sync - the epochs.
        -
        -
        -
      • -
      • -
        -

        addVisionMeasurement

        -
        public void addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d visionRobotPoseMeters, - double timestampSeconds, - edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> visionMeasurementStdDevs)
        -
        Adds a vision measurement to the Kalman Filter. This will correct the odometry pose estimate while still accounting - for measurement noise. - -

        This method can be called as infrequently as you want, as long as you are calling SwerveDrivePoseEstimator.update(edu.wpi.first.math.geometry.Rotation2d, edu.wpi.first.math.kinematics.SwerveModulePosition[]) every loop. - -

        To promote stability of the pose estimate and make it robust to bad vision data, we - recommend only adding vision measurements that are already within one meter or so of the current pose estimate. - -

        Note that the vision measurement standard deviations passed into this method will continue - to apply to future measurements until a subsequent call to - SwerveDrivePoseEstimator.setVisionMeasurementStdDevs(Matrix) or this method.

        -
        -
        Parameters:
        -
        visionRobotPoseMeters - The pose of the robot as measured by the vision camera.
        -
        timestampSeconds - The timestamp of the vision measurement in seconds. Note that if you don't use your - own time source by calling - SwerveDrivePoseEstimator.updateWithTime(double, Rotation2d, SwerveModulePosition[]), then you must use a timestamp with an epoch since FPGA - startup (i.e., the epoch of this timestamp is the same epoch as - Timer.getFPGATimestamp()). This means that you should - use Timer.getFPGATimestamp() as your time source in - this case.
        -
        visionMeasurementStdDevs - Standard deviations of the vision pose measurement (x position in meters, y - position in meters, and heading in radians). Increase these numbers to trust the - vision pose measurement less.
        -
        -
        -
      • -
      • -
        -

        update

        -
        public edu.wpi.first.math.geometry.Pose2d update(edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.geometry.Rotation2d gyroPitch, - edu.wpi.first.math.geometry.Rotation2d gyroRoll, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
        -
        Updates the pose estimator with wheel encoder and gyro information. This should be called every loop.
        -
        -
        Parameters:
        -
        gyroAngle - The current gyro angle.
        -
        gyroPitch - The current gyro pitch.
        -
        gyroRoll - The current gyro roll.
        -
        modulePositions - The current distance measurements and rotations of the swerve modules.
        -
        Returns:
        -
        The estimated pose of the robot in meters.
        -
        -
        -
      • -
      • -
        -

        updateWithTime

        -
        public edu.wpi.first.math.geometry.Pose2d updateWithTime(double currentTimeSeconds, - edu.wpi.first.math.geometry.Rotation2d gyroAngle, - edu.wpi.first.math.geometry.Rotation2d gyroPitch, - edu.wpi.first.math.geometry.Rotation2d gyroRoll, - edu.wpi.first.math.kinematics.SwerveModulePosition[] modulePositions)
        -
        Updates the pose estimator with wheel encoder and gyro information. This should be called every loop.
        -
        -
        Parameters:
        -
        currentTimeSeconds - Time at which this method was called, in seconds.
        -
        gyroAngle - The current gyro angle.
        -
        gyroPitch - The current gyro pitch.
        -
        gyroRoll - The current gyro roll.
        -
        modulePositions - The current distance measurements and rotations of the swerve modules.
        -
        Returns:
        -
        The estimated pose of the robot in meters.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/swervelib/math/package-summary.html b/docs/swervelib/math/package-summary.html index fc6c9f7..681c4ac 100644 --- a/docs/swervelib/math/package-summary.html +++ b/docs/swervelib/math/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.math + +swervelib.math (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/math/package-tree.html b/docs/swervelib/math/package-tree.html index 3a4b740..2aa09c1 100644 --- a/docs/swervelib/math/package-tree.html +++ b/docs/swervelib/math/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.math Class Hierarchy + +swervelib.math Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/motors/SparkFlexSwerve.html b/docs/swervelib/motors/SparkFlexSwerve.html new file mode 100644 index 0000000..69a694a --- /dev/null +++ b/docs/swervelib/motors/SparkFlexSwerve.html @@ -0,0 +1,648 @@ + + + + +SparkFlexSwerve (YAGSL-Example API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class SparkFlexSwerve

    +
    +
    java.lang.Object +
    swervelib.motors.SwerveMotor +
    swervelib.motors.SparkFlexSwerve
    +
    +
    +
    +
    +
    public class SparkFlexSwerve +extends SwerveMotor
    +
    An implementation of CANSparkFlex as a SwerveMotor.
    +
    +
    +
      + +
    • +
      +

      Field Summary

      +
      Fields
      +
      +
      Modifier and Type
      +
      Field
      +
      Description
      + + +
      +
      Absolute encoder attached to the SparkMax (if exists)
      +
      +
      com.revrobotics.RelativeEncoder
      + +
      +
      Integrated encoder.
      +
      +
      com.revrobotics.CANSparkFlex
      + +
      +
      SparkMAX Instance.
      +
      +
      com.revrobotics.SparkPIDController
      + +
      +
      Closed-loop PID controller.
      +
      +
      +
      +

      Fields inherited from class swervelib.motors.SwerveMotor

      +isDriveMotor, maximumRetries
      +
      +
    • + +
    • +
      +

      Constructor Summary

      +
      Constructors
      +
      +
      Constructor
      +
      Description
      +
      SparkFlexSwerve(int id, + boolean isDriveMotor)
      +
      +
      Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
      +
      +
      SparkFlexSwerve(com.revrobotics.CANSparkFlex motor, + boolean isDriveMotor)
      +
      +
      Initialize the swerve motor.
      +
      +
      +
      +
    • + +
    • +
      +

      Method Summary

      +
      +
      +
      +
      +
      Modifier and Type
      +
      Method
      +
      Description
      +
      void
      + +
      +
      Save the configurations from flash to EEPROM.
      +
      +
      void
      + +
      +
      Clear the sticky faults on the motor controller.
      +
      +
      void
      +
      configureCANStatusFrames(int CANStatus0, + int CANStatus1, + int CANStatus2, + int CANStatus3, + int CANStatus4)
      +
      +
      Set the CAN status frames.
      +
      +
      void
      +
      configureIntegratedEncoder(double positionConversionFactor)
      +
      +
      Configure the integrated encoder for the swerve module.
      +
      +
      void
      + +
      +
      Configure the PIDF values for the closed loop controller.
      +
      +
      void
      +
      configurePIDWrapping(double minInput, + double maxInput)
      +
      +
      Configure the PID wrapping for the position closed loop controller.
      +
      +
      void
      + +
      +
      Configure the factory defaults.
      +
      + + +
      +
      Get the motor object from the module.
      +
      +
      double
      + +
      +
      Get the position of the integrated encoder.
      +
      +
      double
      + +
      +
      Get the velocity of the integrated encoder.
      +
      +
      boolean
      + +
      +
      Queries whether the absolute encoder is directly attached to the motor controller.
      +
      +
      void
      +
      set(double percentOutput)
      +
      +
      Set the percentage output.
      +
      + + +
      +
      Set the absolute encoder to be a compatible absolute encoder.
      +
      +
      void
      +
      setCurrentLimit(int currentLimit)
      +
      +
      Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + voltage compensation.
      +
      +
      void
      +
      setInverted(boolean inverted)
      +
      +
      Set the motor to be inverted.
      +
      +
      void
      +
      setLoopRampRate(double rampRate)
      +
      +
      Set the maximum rate the open/closed loop output can change by.
      +
      +
      void
      +
      setMotorBrake(boolean isBrakeMode)
      +
      +
      Set the idle mode.
      +
      +
      void
      +
      setPosition(double position)
      +
      +
      Set the integrated encoder position.
      +
      +
      void
      +
      setReference(double setpoint, + double feedforward)
      +
      +
      Set the closed loop PID controller reference point.
      +
      +
      void
      +
      setReference(double setpoint, + double feedforward, + double position)
      +
      +
      Set the closed loop PID controller reference point.
      +
      +
      void
      +
      setVoltageCompensation(double nominalVoltage)
      +
      +
      Set the voltage compensation for the swerve module motor.
      +
      +
      +
      +
      +
      +

      Methods inherited from class java.lang.Object

      +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      +
      +
    • +
    +
    +
    +
      + +
    • +
      +

      Field Details

      +
        +
      • +
        +

        motor

        +
        public com.revrobotics.CANSparkFlex motor
        +
        SparkMAX Instance.
        +
        +
      • +
      • +
        +

        encoder

        +
        public com.revrobotics.RelativeEncoder encoder
        +
        Integrated encoder.
        +
        +
      • +
      • +
        +

        absoluteEncoder

        +
        public SwerveAbsoluteEncoder absoluteEncoder
        +
        Absolute encoder attached to the SparkMax (if exists)
        +
        +
      • +
      • +
        +

        pid

        +
        public com.revrobotics.SparkPIDController pid
        +
        Closed-loop PID controller.
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        SparkFlexSwerve

        +
        public SparkFlexSwerve(com.revrobotics.CANSparkFlex motor, + boolean isDriveMotor)
        +
        Initialize the swerve motor.
        +
        +
        Parameters:
        +
        motor - The SwerveMotor as a SparkFlex object.
        +
        isDriveMotor - Is the motor being initialized a drive motor?
        +
        +
        +
      • +
      • +
        +

        SparkFlexSwerve

        +
        public SparkFlexSwerve(int id, + boolean isDriveMotor)
        +
        Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
        +
        +
        Parameters:
        +
        id - CAN ID of the SparkMax.
        +
        isDriveMotor - Is the motor being initialized a drive motor?
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        setVoltageCompensation

        +
        public void setVoltageCompensation(double nominalVoltage)
        +
        Set the voltage compensation for the swerve module motor.
        +
        +
        Specified by:
        +
        setVoltageCompensation in class SwerveMotor
        +
        Parameters:
        +
        nominalVoltage - Nominal voltage for operation to output to.
        +
        +
        +
      • +
      • +
        +

        setCurrentLimit

        +
        public void setCurrentLimit(int currentLimit)
        +
        Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + voltage compensation. This is useful to protect the motor from current spikes.
        +
        +
        Specified by:
        +
        setCurrentLimit in class SwerveMotor
        +
        Parameters:
        +
        currentLimit - Current limit in AMPS at free speed.
        +
        +
        +
      • +
      • +
        +

        setLoopRampRate

        +
        public void setLoopRampRate(double rampRate)
        +
        Set the maximum rate the open/closed loop output can change by.
        +
        +
        Specified by:
        +
        setLoopRampRate in class SwerveMotor
        +
        Parameters:
        +
        rampRate - Time in seconds to go from 0 to full throttle.
        +
        +
        +
      • +
      • +
        +

        getMotor

        +
        public Object getMotor()
        +
        Get the motor object from the module.
        +
        +
        Specified by:
        +
        getMotor in class SwerveMotor
        +
        Returns:
        +
        Motor object.
        +
        +
        +
      • +
      • +
        +

        isAttachedAbsoluteEncoder

        +
        public boolean isAttachedAbsoluteEncoder()
        +
        Queries whether the absolute encoder is directly attached to the motor controller.
        +
        +
        Specified by:
        +
        isAttachedAbsoluteEncoder in class SwerveMotor
        +
        Returns:
        +
        connected absolute encoder state.
        +
        +
        +
      • +
      • +
        +

        factoryDefaults

        +
        public void factoryDefaults()
        +
        Configure the factory defaults.
        +
        +
        Specified by:
        +
        factoryDefaults in class SwerveMotor
        +
        +
        +
      • +
      • +
        +

        clearStickyFaults

        +
        public void clearStickyFaults()
        +
        Clear the sticky faults on the motor controller.
        +
        +
        Specified by:
        +
        clearStickyFaults in class SwerveMotor
        +
        +
        +
      • +
      • +
        +

        setAbsoluteEncoder

        +
        public SwerveMotor setAbsoluteEncoder(SwerveAbsoluteEncoder encoder)
        +
        Set the absolute encoder to be a compatible absolute encoder.
        +
        +
        Specified by:
        +
        setAbsoluteEncoder in class SwerveMotor
        +
        Parameters:
        +
        encoder - The encoder to use.
        +
        Returns:
        +
        The SwerveMotor for easy instantiation.
        +
        +
        +
      • +
      • +
        +

        configureIntegratedEncoder

        +
        public void configureIntegratedEncoder(double positionConversionFactor)
        +
        Configure the integrated encoder for the swerve module. Sets the conversion factors for position and velocity.
        +
        +
        Specified by:
        +
        configureIntegratedEncoder in class SwerveMotor
        +
        Parameters:
        +
        positionConversionFactor - The conversion factor to apply.
        +
        +
        +
      • +
      • +
        +

        configurePIDF

        +
        public void configurePIDF(PIDFConfig config)
        +
        Configure the PIDF values for the closed loop controller.
        +
        +
        Specified by:
        +
        configurePIDF in class SwerveMotor
        +
        Parameters:
        +
        config - Configuration class holding the PIDF values.
        +
        +
        +
      • +
      • +
        +

        configurePIDWrapping

        +
        public void configurePIDWrapping(double minInput, + double maxInput)
        +
        Configure the PID wrapping for the position closed loop controller.
        +
        +
        Specified by:
        +
        configurePIDWrapping in class SwerveMotor
        +
        Parameters:
        +
        minInput - Minimum PID input.
        +
        maxInput - Maximum PID input.
        +
        +
        +
      • +
      • +
        +

        configureCANStatusFrames

        +
        public void configureCANStatusFrames(int CANStatus0, + int CANStatus1, + int CANStatus2, + int CANStatus3, + int CANStatus4)
        +
        Set the CAN status frames.
        +
        +
        Parameters:
        +
        CANStatus0 - Applied Output, Faults, Sticky Faults, Is Follower
        +
        CANStatus1 - Motor Velocity, Motor Temperature, Motor Voltage, Motor Current
        +
        CANStatus2 - Motor Position
        +
        CANStatus3 - Analog Sensor Voltage, Analog Sensor Velocity, Analog Sensor Position
        +
        CANStatus4 - Alternate Encoder Velocity, Alternate Encoder Position
        +
        +
        +
      • +
      • +
        +

        setMotorBrake

        +
        public void setMotorBrake(boolean isBrakeMode)
        +
        Set the idle mode.
        +
        +
        Specified by:
        +
        setMotorBrake in class SwerveMotor
        +
        Parameters:
        +
        isBrakeMode - Set the brake mode.
        +
        +
        +
      • +
      • +
        +

        setInverted

        +
        public void setInverted(boolean inverted)
        +
        Set the motor to be inverted.
        +
        +
        Specified by:
        +
        setInverted in class SwerveMotor
        +
        Parameters:
        +
        inverted - State of inversion.
        +
        +
        +
      • +
      • +
        +

        burnFlash

        +
        public void burnFlash()
        +
        Save the configurations from flash to EEPROM.
        +
        +
        Specified by:
        +
        burnFlash in class SwerveMotor
        +
        +
        +
      • +
      • +
        +

        set

        +
        public void set(double percentOutput)
        +
        Set the percentage output.
        +
        +
        Specified by:
        +
        set in class SwerveMotor
        +
        Parameters:
        +
        percentOutput - percent out for the motor controller.
        +
        +
        +
      • +
      • +
        +

        setReference

        +
        public void setReference(double setpoint, + double feedforward)
        +
        Set the closed loop PID controller reference point.
        +
        +
        Specified by:
        +
        setReference in class SwerveMotor
        +
        Parameters:
        +
        setpoint - Setpoint in MPS or Angle in degrees.
        +
        feedforward - Feedforward in volt-meter-per-second or kV.
        +
        +
        +
      • +
      • +
        +

        setReference

        +
        public void setReference(double setpoint, + double feedforward, + double position)
        +
        Set the closed loop PID controller reference point.
        +
        +
        Specified by:
        +
        setReference in class SwerveMotor
        +
        Parameters:
        +
        setpoint - Setpoint in meters per second or angle in degrees.
        +
        feedforward - Feedforward in volt-meter-per-second or kV.
        +
        position - Only used on the angle motor, the position of the motor in degrees.
        +
        +
        +
      • +
      • +
        +

        getVelocity

        +
        public double getVelocity()
        +
        Get the velocity of the integrated encoder.
        +
        +
        Specified by:
        +
        getVelocity in class SwerveMotor
        +
        Returns:
        +
        velocity
        +
        +
        +
      • +
      • +
        +

        getPosition

        +
        public double getPosition()
        +
        Get the position of the integrated encoder.
        +
        +
        Specified by:
        +
        getPosition in class SwerveMotor
        +
        Returns:
        +
        Position
        +
        +
        +
      • +
      • +
        +

        setPosition

        +
        public void setPosition(double position)
        +
        Set the integrated encoder position.
        +
        +
        Specified by:
        +
        setPosition in class SwerveMotor
        +
        Parameters:
        +
        position - Integrated encoder position.
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    +
    +
    + + diff --git a/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html b/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html index b3e1c43..e8ec209 100644 --- a/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html +++ b/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html @@ -1,18 +1,17 @@ - -SparkMaxBrushedMotorSwerve + +SparkMaxBrushedMotorSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -103,19 +102,14 @@ loadScripts(document, 'script');
    Integrated encoder.
    -
    private boolean
    - +
    com.revrobotics.CANSparkMax
    +
    -
    Factory default already occurred.
    -
    -
    com.revrobotics.CANSparkMax
    - -
    SparkMAX Instance.
    -
    com.revrobotics.SparkMaxPIDController
    - -
    +
    com.revrobotics.SparkPIDController
    + +
    Closed-loop PID controller.
    @@ -132,17 +126,17 @@ loadScripts(document, 'script');
    Constructor
    Description
    -
    SparkMaxBrushedMotorSwerve(int id, +
    SparkMaxBrushedMotorSwerve(int id, boolean isDriveMotor, - com.revrobotics.SparkMaxRelativeEncoder.Type encoderType, + com.revrobotics.SparkRelativeEncoder.Type encoderType, int countsPerRevolution, boolean useDataPortQuadEncoder)
    Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
    -
    SparkMaxBrushedMotorSwerve(com.revrobotics.CANSparkMax motor, +
    SparkMaxBrushedMotorSwerve(com.revrobotics.CANSparkMax motor, boolean isDriveMotor, - com.revrobotics.SparkMaxRelativeEncoder.Type encoderType, + com.revrobotics.SparkRelativeEncoder.Type encoderType, int countsPerRevolution, boolean useDataPortQuadEncoder)
    @@ -197,88 +191,83 @@ loadScripts(document, 'script');
    Configure the PID wrapping for the position closed loop controller.
    -
    private void
    -
    configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
    +
    void
    +
    -
    Run the configuration until it succeeds or times out.
    -
    -
    void
    - -
    Configure the factory defaults.
    - - -
    + + +
    Get the motor object from the module.
    -
    double
    - -
    +
    double
    + +
    Get the position of the integrated encoder.
    -
    double
    - -
    +
    double
    + +
    Get the velocity of the integrated encoder.
    -
    boolean
    - -
    +
    boolean
    + +
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    void
    -
    set(double percentOutput)
    -
    +
    void
    +
    set(double percentOutput)
    +
    Set the percentage output.
    - - -
    + + +
    Set the absolute encoder to be a compatible absolute encoder.
    -
    void
    -
    setCurrentLimit(int currentLimit)
    -
    +
    void
    +
    setCurrentLimit(int currentLimit)
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with voltage compensation.
    -
    void
    -
    setInverted(boolean inverted)
    -
    +
    void
    +
    setInverted(boolean inverted)
    +
    Set the motor to be inverted.
    -
    void
    -
    setLoopRampRate(double rampRate)
    -
    +
    void
    +
    setLoopRampRate(double rampRate)
    +
    Set the maximum rate the open/closed loop output can change by.
    -
    void
    -
    setMotorBrake(boolean isBrakeMode)
    -
    +
    void
    +
    setMotorBrake(boolean isBrakeMode)
    +
    Set the idle mode.
    -
    void
    -
    setPosition(double position)
    -
    +
    void
    +
    setPosition(double position)
    +
    Set the integrated encoder position.
    -
    void
    -
    setReference(double setpoint, - double feedforward)
    -
    -
    Set the closed loop PID controller reference point.
    -
    void
    -
    setReference(double setpoint, - double feedforward, - double position)
    +
    setReference(double setpoint, + double feedforward)
    Set the closed loop PID controller reference point.
    void
    -
    setVoltageCompensation(double nominalVoltage)
    +
    setReference(double setpoint, + double feedforward, + double position)
    +
    Set the closed loop PID controller reference point.
    +
    +
    void
    +
    setVoltageCompensation(double nominalVoltage)
    +
    Set the voltage compensation for the swerve module motor.
    @@ -322,17 +311,10 @@ loadScripts(document, 'script');
  • pid

    -
    public com.revrobotics.SparkMaxPIDController pid
    +
    public com.revrobotics.SparkPIDController pid
    Closed-loop PID controller.
  • -
  • -
    -

    factoryDefaultOccurred

    -
    private boolean factoryDefaultOccurred
    -
    Factory default already occurred.
    -
    -
  • @@ -342,11 +324,11 @@ loadScripts(document, 'script');

    Constructor Details

    • -
      +

      SparkMaxBrushedMotorSwerve

      public SparkMaxBrushedMotorSwerve(com.revrobotics.CANSparkMax motor, boolean isDriveMotor, - com.revrobotics.SparkMaxRelativeEncoder.Type encoderType, + com.revrobotics.SparkRelativeEncoder.Type encoderType, int countsPerRevolution, boolean useDataPortQuadEncoder)
      Initialize the swerve motor.
      @@ -354,18 +336,18 @@ loadScripts(document, 'script');
      Parameters:
      motor - The SwerveMotor as a SparkMax object.
      isDriveMotor - Is the motor being initialized a drive motor?
      -
      encoderType - SparkMaxRelativeEncoder.Type of encoder to use for the CANSparkMax device.
      -
      countsPerRevolution - The number of encoder pulses for the SparkMaxRelativeEncoder.Type encoder per revolution.
      +
      encoderType - SparkRelativeEncoder.Type of encoder to use for the CANSparkMax device.
      +
      countsPerRevolution - The number of encoder pulses for the SparkRelativeEncoder.Type encoder per revolution.
      useDataPortQuadEncoder - Use the encoder attached to the data port of the spark max for a quadrature encoder.
    • -
      +

      SparkMaxBrushedMotorSwerve

      public SparkMaxBrushedMotorSwerve(int id, boolean isDriveMotor, - com.revrobotics.SparkMaxRelativeEncoder.Type encoderType, + com.revrobotics.SparkRelativeEncoder.Type encoderType, int countsPerRevolution, boolean useDataPortQuadEncoder)
      Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
      @@ -373,8 +355,8 @@ loadScripts(document, 'script');
      Parameters:
      id - CAN ID of the SparkMax.
      isDriveMotor - Is the motor being initialized a drive motor?
      -
      encoderType - SparkMaxRelativeEncoder.Type of encoder to use for the CANSparkMax device.
      -
      countsPerRevolution - The number of encoder pulses for the SparkMaxRelativeEncoder.Type encoder per revolution.
      +
      encoderType - SparkRelativeEncoder.Type of encoder to use for the CANSparkMax device.
      +
      countsPerRevolution - The number of encoder pulses for the SparkRelativeEncoder.Type encoder per revolution.
      useDataPortQuadEncoder - Use the encoder attached to the data port of the spark max for a quadrature encoder.
      @@ -388,17 +370,6 @@ loadScripts(document, 'script');

      Method Details

      • -
        -

        configureSparkMax

        -
        private void configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
        -
        Run the configuration until it succeeds or times out.
        -
        -
        Parameters:
        -
        config - Lambda supplier returning the error state.
        -
        -
        -
      • -
      • setVoltageCompensation

        public void setVoltageCompensation(double nominalVoltage)
        diff --git a/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html b/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html deleted file mode 100644 index f3cfa2b..0000000 --- a/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - -SparkMaxSwerve.SparkMAX_slotIdx - - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Enum Class SparkMaxSwerve.SparkMAX_slotIdx

        -
        -
        java.lang.Object -
        java.lang.Enum<SparkMaxSwerve.SparkMAX_slotIdx> -
        swervelib.motors.SparkMaxSwerve.SparkMAX_slotIdx
        -
        -
        -
        -
        -
        All Implemented Interfaces:
        -
        Serializable, Comparable<SparkMaxSwerve.SparkMAX_slotIdx>, Constable
        -
        -
        -
        Enclosing class:
        -
        SparkMaxSwerve
        -
        -
        -
        static enum SparkMaxSwerve.SparkMAX_slotIdx -extends Enum<SparkMaxSwerve.SparkMAX_slotIdx>
        -
        REV Slots for PID configuration.
        -
        -
        - -
        -
        -
          - -
        • -
          -

          Enum Constant Details

          - -
          -
        • - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            SparkMAX_slotIdx

            -
            private SparkMAX_slotIdx()
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            values

            -
            public static SparkMaxSwerve.SparkMAX_slotIdx[] values()
            -
            Returns an array containing the constants of this enum class, in -the order they are declared.
            -
            -
            Returns:
            -
            an array containing the constants of this enum class, in the order they are declared
            -
            -
            -
          • -
          • -
            -

            valueOf

            -
            public static SparkMaxSwerve.SparkMAX_slotIdx valueOf(String name)
            -
            Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
            -
            -
            Parameters:
            -
            name - the name of the enum constant to be returned.
            -
            Returns:
            -
            the enum constant with the specified name
            -
            Throws:
            -
            IllegalArgumentException - if this enum class has no constant with the specified name
            -
            NullPointerException - if the argument is null
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/swervelib/motors/SparkMaxSwerve.html b/docs/swervelib/motors/SparkMaxSwerve.html index 60982df..8a77870 100644 --- a/docs/swervelib/motors/SparkMaxSwerve.html +++ b/docs/swervelib/motors/SparkMaxSwerve.html @@ -1,18 +1,17 @@ - -SparkMaxSwerve + +SparkMaxSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    @@ -44,7 +43,7 @@ loadScripts(document, 'script');
    void
    -
    configureCANStatusFrames(int CANStatus0, +
    configureCANStatusFrames(int CANStatus0, int CANStatus1, int CANStatus2, int CANStatus3, - int CANStatus4)
    + int CANStatus4, + int CANStatus5, + int CANStatus6)
    Set the CAN status frames.
    @@ -208,88 +187,83 @@ loadScripts(document, 'script');
    Configure the PID wrapping for the position closed loop controller.
    -
    private void
    -
    configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
    +
    void
    +
    -
    Run the configuration until it succeeds or times out.
    -
    -
    void
    - -
    Configure the factory defaults.
    - - -
    + + +
    Get the motor object from the module.
    -
    double
    - -
    +
    double
    + +
    Get the position of the integrated encoder.
    -
    double
    - -
    +
    double
    + +
    Get the velocity of the integrated encoder.
    -
    boolean
    - -
    +
    boolean
    + +
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    void
    -
    set(double percentOutput)
    -
    +
    void
    +
    set(double percentOutput)
    +
    Set the percentage output.
    - - -
    + + +
    Set the absolute encoder to be a compatible absolute encoder.
    -
    void
    -
    setCurrentLimit(int currentLimit)
    -
    +
    void
    +
    setCurrentLimit(int currentLimit)
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with voltage compensation.
    -
    void
    -
    setInverted(boolean inverted)
    -
    +
    void
    +
    setInverted(boolean inverted)
    +
    Set the motor to be inverted.
    -
    void
    -
    setLoopRampRate(double rampRate)
    -
    +
    void
    +
    setLoopRampRate(double rampRate)
    +
    Set the maximum rate the open/closed loop output can change by.
    -
    void
    -
    setMotorBrake(boolean isBrakeMode)
    -
    +
    void
    +
    setMotorBrake(boolean isBrakeMode)
    +
    Set the idle mode.
    -
    void
    -
    setPosition(double position)
    -
    +
    void
    +
    setPosition(double position)
    +
    Set the integrated encoder position.
    -
    void
    -
    setReference(double setpoint, - double feedforward)
    -
    -
    Set the closed loop PID controller reference point.
    -
    void
    -
    setReference(double setpoint, - double feedforward, - double position)
    +
    setReference(double setpoint, + double feedforward)
    Set the closed loop PID controller reference point.
    void
    -
    setVoltageCompensation(double nominalVoltage)
    +
    setReference(double setpoint, + double feedforward, + double position)
    +
    Set the closed loop PID controller reference point.
    +
    +
    void
    +
    setVoltageCompensation(double nominalVoltage)
    +
    Set the voltage compensation for the swerve module motor.
    @@ -333,17 +307,10 @@ loadScripts(document, 'script');
  • pid

    -
    public com.revrobotics.SparkMaxPIDController pid
    +
    public com.revrobotics.SparkPIDController pid
    Closed-loop PID controller.
  • -
  • -
    -

    factoryDefaultOccurred

    -
    private boolean factoryDefaultOccurred
    -
    Factory default already occurred.
    -
    -
  • @@ -387,17 +354,6 @@ loadScripts(document, 'script');

    Method Details

    • -
      -

      configureSparkMax

      -
      private void configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
      -
      Run the configuration until it succeeds or times out.
      -
      -
      Parameters:
      -
      config - Lambda supplier returning the error state.
      -
      -
      -
    • -
    • setVoltageCompensation

      public void setVoltageCompensation(double nominalVoltage)
      @@ -542,13 +498,15 @@ loadScripts(document, 'script');
    • -
      +

      configureCANStatusFrames

      public void configureCANStatusFrames(int CANStatus0, int CANStatus1, int CANStatus2, int CANStatus3, - int CANStatus4)
      + int CANStatus4, + int CANStatus5, + int CANStatus6)
    Set the CAN status frames.
    Parameters:
    @@ -557,6 +515,8 @@ loadScripts(document, 'script');
    CANStatus2 - Motor Position
    CANStatus3 - Analog Sensor Voltage, Analog Sensor Velocity, Analog Sensor Position
    CANStatus4 - Alternate Encoder Velocity, Alternate Encoder Position
    +
    CANStatus5 - Duty Cycle Absolute Encoder Position, Duty Cycle Absolute Encoder Absolute Angle
    +
    CANStatus6 - Duty Cycle Absolute Encoder Velocity, Duty Cycle Absolute Encoder Frequency
    diff --git a/docs/swervelib/motors/SwerveMotor.html b/docs/swervelib/motors/SwerveMotor.html index 2b64dd9..98e0439 100644 --- a/docs/swervelib/motors/SwerveMotor.html +++ b/docs/swervelib/motors/SwerveMotor.html @@ -1,18 +1,17 @@ - -SwerveMotor + +SwerveMotor (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -77,7 +76,7 @@ loadScripts(document, 'script');
    Direct Known Subclasses:
    -
    SparkMaxBrushedMotorSwerve, SparkMaxSwerve, TalonFXSwerve, TalonSRXSwerve
    +
    SparkFlexSwerve, SparkMaxBrushedMotorSwerve, SparkMaxSwerve, TalonFXSwerve, TalonSRXSwerve

    public abstract class SwerveMotor diff --git a/docs/swervelib/motors/TalonFXSwerve.html b/docs/swervelib/motors/TalonFXSwerve.html index 1b50320..f395123 100644 --- a/docs/swervelib/motors/TalonFXSwerve.html +++ b/docs/swervelib/motors/TalonFXSwerve.html @@ -1,18 +1,17 @@ - -TalonFXSwerve + +TalonFXSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -51,7 +50,7 @@ loadScripts(document, 'script'); @@ -88,47 +87,6 @@ loadScripts(document, 'script');
  • Field Summary

    -
    Fields
    -
    -
    Modifier and Type
    -
    Field
    -
    Description
    -
    private final boolean
    - -
    -
    Whether the absolute encoder is integrated.
    -
    -
    private boolean
    - -
    -
    If the TalonFX configuration has changed.
    -
    -
    private final com.ctre.phoenix.motorcontrol.can.TalonFXConfiguration
    - -
    -
    Current TalonFX configuration.
    -
    -
    private final boolean
    - -
    -
    Factory default already occurred.
    -
    -
    (package private) com.ctre.phoenix.motorcontrol.can.WPI_TalonFX
    - -
    -
    TalonFX motor controller.
    -
    -
    private double
    - -
    -
    Nominal voltage default to use with feedforward.
    -
    -
    private double
    - -
    -
    The position conversion factor to convert raw sensor units to Meters Per 100ms, or Ticks to Degrees.
    -
    -

    Fields inherited from class swervelib.motors.SwerveMotor

    isDriveMotor, maximumRetries
    @@ -153,7 +111,7 @@ loadScripts(document, 'script');
    Construct the TalonFX swerve motor given the ID and CANBus.
    -
    TalonFXSwerve(com.ctre.phoenix.motorcontrol.can.WPI_TalonFX motor, +
    TalonFXSwerve(com.ctre.phoenix6.hardware.TalonFX motor, boolean isDriveMotor)
    Constructor for TalonFX swerve motor.
    @@ -218,89 +176,83 @@ loadScripts(document, 'script');
    Configure the PID wrapping for the position closed loop controller.
    -
    double
    -
    convertToNativeSensorUnits(double setpoint, - double position)
    +
    void
    +
    -
    Convert the setpoint into native sensor units.
    -
    -
    void
    - -
    Configure the factory defaults.
    - - -
    + + +
    Get the motor object from the module.
    -
    double
    - -
    +
    double
    + +
    Get the position of the integrated encoder.
    -
    double
    - -
    +
    double
    + +
    Get the velocity of the integrated encoder.
    -
    boolean
    - -
    +
    boolean
    + +
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    void
    -
    set(double percentOutput)
    -
    +
    void
    +
    set(double percentOutput)
    +
    Set the percentage output.
    - - -
    + + +
    Set the absolute encoder to be a compatible absolute encoder.
    -
    void
    -
    setCurrentLimit(int currentLimit)
    -
    +
    void
    +
    setCurrentLimit(int currentLimit)
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with voltage compensation.
    -
    void
    -
    setInverted(boolean inverted)
    -
    +
    void
    +
    setInverted(boolean inverted)
    +
    Set the motor to be inverted.
    -
    void
    -
    setLoopRampRate(double rampRate)
    -
    +
    void
    +
    setLoopRampRate(double rampRate)
    +
    Set the maximum rate the open/closed loop output can change by.
    -
    void
    -
    setMotorBrake(boolean isBrakeMode)
    -
    +
    void
    +
    setMotorBrake(boolean isBrakeMode)
    +
    Set the idle mode.
    -
    void
    -
    setPosition(double position)
    -
    +
    void
    +
    setPosition(double position)
    +
    Set the integrated encoder position.
    -
    void
    -
    setReference(double setpoint, - double feedforward)
    -
    -
    Set the closed loop PID controller reference point.
    -
    void
    -
    setReference(double setpoint, - double feedforward, - double position)
    +
    setReference(double setpoint, + double feedforward)
    Set the closed loop PID controller reference point.
    void
    -
    setVoltageCompensation(double nominalVoltage)
    +
    setReference(double setpoint, + double feedforward, + double position)
    +
    Set the closed loop PID controller reference point.
    +
    +
    void
    +
    setVoltageCompensation(double nominalVoltage)
    +
    Set the voltage compensation for the swerve module motor.
    @@ -315,88 +267,15 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        factoryDefaultOccurred

        -
        private final boolean factoryDefaultOccurred
        -
        Factory default already occurred.
        -
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        configuration

        -
        private final com.ctre.phoenix.motorcontrol.can.TalonFXConfiguration configuration
        -
        Current TalonFX configuration.
        -
        -
      • -
      • -
        -

        absoluteEncoder

        -
        private final boolean absoluteEncoder
        -
        Whether the absolute encoder is integrated.
        -
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        motor

        -
        com.ctre.phoenix.motorcontrol.can.WPI_TalonFX motor
        -
        TalonFX motor controller.
        -
        -
      • -
      • -
        -

        positionConversionFactor

        -
        private double positionConversionFactor
        -
        The position conversion factor to convert raw sensor units to Meters Per 100ms, or Ticks to Degrees.
        -
        -
      • -
      • -
        -

        configChanged

        -
        private boolean configChanged
        -
        If the TalonFX configuration has changed.
        -
        -
      • -
      • -
        -

        nominalVoltage

        -
        private double nominalVoltage
        -
        Nominal voltage default to use with feedforward.
        -
        -
      • -
      -
      -
    • Constructor Details

      • -
        +

        TalonFXSwerve

        -
        public TalonFXSwerve(com.ctre.phoenix.motorcontrol.can.WPI_TalonFX motor, +
        public TalonFXSwerve(com.ctre.phoenix6.hardware.TalonFX motor, boolean isDriveMotor)
        Constructor for TalonFX swerve motor.
        @@ -624,21 +503,6 @@ loadScripts(document, 'script');
      • -
        -

        convertToNativeSensorUnits

        -
        public double convertToNativeSensorUnits(double setpoint, - double position)
        -
        Convert the setpoint into native sensor units.
        -
        -
        Parameters:
        -
        setpoint - Setpoint to mutate. In meters per second or degrees.
        -
        position - Position in degrees, only used on angle motors.
        -
        Returns:
        -
        Setpoint as native sensor units. Encoder ticks per 100ms, or Encoder tick.
        -
        -
        -
      • -
      • setReference

        public void setReference(double setpoint, diff --git a/docs/swervelib/motors/TalonSRXSwerve.html b/docs/swervelib/motors/TalonSRXSwerve.html index 61e824e..8da5843 100644 --- a/docs/swervelib/motors/TalonSRXSwerve.html +++ b/docs/swervelib/motors/TalonSRXSwerve.html @@ -1,18 +1,17 @@ - -TalonSRXSwerve + +TalonSRXSwerve (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
  • @@ -51,7 +50,7 @@ loadScripts(document, 'script'); @@ -88,47 +87,6 @@ loadScripts(document, 'script');
  • Field Summary

    -
    Fields
    -
    -
    Modifier and Type
    -
    Field
    -
    Description
    -
    private final boolean
    - -
    -
    Whether the absolute encoder is integrated.
    -
    -
    private boolean
    - -
    -
    If the TalonFX configuration has changed.
    -
    -
    private final com.ctre.phoenix.motorcontrol.can.TalonSRXConfiguration
    - -
    -
    Current TalonFX configuration.
    -
    -
    private final boolean
    - -
    -
    Factory default already occurred.
    -
    -
    (package private) com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX
    - -
    -
    TalonSRX motor controller.
    -
    -
    private double
    - -
    -
    Nominal voltage default to use with feedforward.
    -
    -
    private double
    - -
    -
    The position conversion factor to convert raw sensor units to Meters Per 100ms, or Ticks to Degrees.
    -
    -

    Fields inherited from class swervelib.motors.SwerveMotor

    isDriveMotor, maximumRetries
    @@ -309,79 +267,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        factoryDefaultOccurred

        -
        private final boolean factoryDefaultOccurred
        -
        Factory default already occurred.
        -
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        configuration

        -
        private final com.ctre.phoenix.motorcontrol.can.TalonSRXConfiguration configuration
        -
        Current TalonFX configuration.
        -
        -
      • -
      • -
        -

        absoluteEncoder

        -
        private final boolean absoluteEncoder
        -
        Whether the absolute encoder is integrated.
        -
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        motor

        -
        com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX motor
        -
        TalonSRX motor controller.
        -
        -
      • -
      • -
        -

        positionConversionFactor

        -
        private double positionConversionFactor
        -
        The position conversion factor to convert raw sensor units to Meters Per 100ms, or Ticks to Degrees.
        -
        -
      • -
      • -
        -

        configChanged

        -
        private boolean configChanged
        -
        If the TalonFX configuration has changed.
        -
        -
      • -
      • -
        -

        nominalVoltage

        -
        private double nominalVoltage
        -
        Nominal voltage default to use with feedforward.
        -
        -
      • -
      -
      -
    • diff --git a/docs/swervelib/motors/package-summary.html b/docs/swervelib/motors/package-summary.html index ac9cd2b..2960d5f 100644 --- a/docs/swervelib/motors/package-summary.html +++ b/docs/swervelib/motors/package-summary.html @@ -1,26 +1,21 @@ - -swervelib.motors + +swervelib.motors (YAGSL-Example API) - - + -
  • @@ -84,23 +79,22 @@ loadScripts(document, 'script');
  • -
    -
    -
    +
    Classes
    +
    Class
    Description
    - +
    +
    An implementation of CANSparkFlex as a SwerveMotor.
    +
    + +
    Brushed motor control with SparkMax.
    - -
    + +
    An implementation of CANSparkMax as a SwerveMotor.
    - -
    -
    REV Slots for PID configuration.
    -
    Swerve motor abstraction which defines a standard interface for motors within a swerve module.
    @@ -115,7 +109,6 @@ loadScripts(document, 'script');
    -
  • diff --git a/docs/swervelib/motors/package-tree.html b/docs/swervelib/motors/package-tree.html index b3526cc..5e34559 100644 --- a/docs/swervelib/motors/package-tree.html +++ b/docs/swervelib/motors/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.motors Class Hierarchy + +swervelib.motors Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -61,6 +60,7 @@ loadScripts(document, 'script');
    diff --git a/docs/swervelib/package-summary.html b/docs/swervelib/package-summary.html index c5e73f3..09686c8 100644 --- a/docs/swervelib/package-summary.html +++ b/docs/swervelib/package-summary.html @@ -1,18 +1,17 @@ - -swervelib + +swervelib (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/package-tree.html b/docs/swervelib/package-tree.html index b673c5c..17014c0 100644 --- a/docs/swervelib/package-tree.html +++ b/docs/swervelib/package-tree.html @@ -1,18 +1,17 @@ - -swervelib Class Hierarchy + +swervelib Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/PIDFConfig.html b/docs/swervelib/parser/PIDFConfig.html index 03ee607..874fa1a 100644 --- a/docs/swervelib/parser/PIDFConfig.html +++ b/docs/swervelib/parser/PIDFConfig.html @@ -1,18 +1,17 @@ - -PIDFConfig + +PIDFConfig (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/SwerveControllerConfiguration.html b/docs/swervelib/parser/SwerveControllerConfiguration.html index 55f3250..074e693 100644 --- a/docs/swervelib/parser/SwerveControllerConfiguration.html +++ b/docs/swervelib/parser/SwerveControllerConfiguration.html @@ -1,18 +1,17 @@ - -SwerveControllerConfiguration + +SwerveControllerConfiguration (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/SwerveDriveConfiguration.html b/docs/swervelib/parser/SwerveDriveConfiguration.html index a0a3fe6..3c58ae5 100644 --- a/docs/swervelib/parser/SwerveDriveConfiguration.html +++ b/docs/swervelib/parser/SwerveDriveConfiguration.html @@ -1,18 +1,17 @@ - -SwerveDriveConfiguration + +SwerveDriveConfiguration (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -160,6 +159,11 @@ loadScripts(document, 'script');
    Create modules based off of the SwerveModuleConfiguration.
    +
    double
    + +
    +
    Assume the first module is the furthest.
    +
    @@ -270,6 +274,17 @@ loadScripts(document, 'script'); +
  • +
    +

    getDriveBaseRadiusMeters

    +
    public double getDriveBaseRadiusMeters()
    +
    Assume the first module is the furthest. Usually front-left.
    +
    +
    Returns:
    +
    Drive base radius from center of robot to the farthest wheel in meters.
    +
    +
    +
  • diff --git a/docs/swervelib/parser/SwerveModuleConfiguration.html b/docs/swervelib/parser/SwerveModuleConfiguration.html index 47fe2a8..1dfe39c 100644 --- a/docs/swervelib/parser/SwerveModuleConfiguration.html +++ b/docs/swervelib/parser/SwerveModuleConfiguration.html @@ -1,18 +1,17 @@ - -SwerveModuleConfiguration + +SwerveModuleConfiguration (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/SwerveModulePhysicalCharacteristics.html b/docs/swervelib/parser/SwerveModulePhysicalCharacteristics.html index fb4fbea..945e603 100644 --- a/docs/swervelib/parser/SwerveModulePhysicalCharacteristics.html +++ b/docs/swervelib/parser/SwerveModulePhysicalCharacteristics.html @@ -1,18 +1,17 @@ - -SwerveModulePhysicalCharacteristics + +SwerveModulePhysicalCharacteristics (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/SwerveParser.html b/docs/swervelib/parser/SwerveParser.html index 199c83e..b7c3930 100644 --- a/docs/swervelib/parser/SwerveParser.html +++ b/docs/swervelib/parser/SwerveParser.html @@ -1,18 +1,17 @@ - -SwerveParser + +SwerveParser (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -96,29 +95,24 @@ loadScripts(document, 'script');
    Parsed controllerproperties.json
    -
    private static final HashMap<String,Integer>
    - +
    static ModuleJson[]
    +
    -
    Module number mapped to the JSON name.
    -
    -
    static ModuleJson[]
    - -
    Array holding the module jsons given in SwerveDriveJson.
    - - -
    + + +
    Parsed modules/physicalproperties.json
    - - -
    + + +
    Parsed modules/pidfproperties.json
    - - -
    + + +
    Parsed swervedrive.json
    @@ -150,48 +144,38 @@ loadScripts(document, 'script');
    Modifier and Type
    Method
    Description
    -
    private void
    -
    checkDirectory(File directory)
    + +
    createSwerveDrive(double maxSpeed)
    -
    Check directory structure.
    -
    - -
    createSwerveDrive(double maxSpeed)
    -
    Create SwerveDrive from JSON configuration directory.
    - -
    createSwerveDrive(double maxSpeed, + +
    createSwerveDrive(double maxSpeed, double angleMotorConversionFactor, double driveMotorConversion)
    -
    -
    Create SwerveDrive from JSON configuration directory.
    -
    - -
    createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward driveFeedforward, - double maxSpeed)
    Create SwerveDrive from JSON configuration directory.
    -
    createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward driveFeedforward, +
    createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward driveFeedforward, + double maxSpeed)
    +
    +
    Create SwerveDrive from JSON configuration directory.
    +
    + +
    createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward driveFeedforward, double maxSpeed, double angleMotorConversionFactor, double driveMotorConversion)
    -
    +
    Create SwerveDrive from JSON configuration directory.
    - -
    getModuleConfigurationByName(String name, + + -
    +
    Get the swerve module by the json name.
    -
    private com.fasterxml.jackson.databind.JsonNode
    -
    openJson(File file)
    -
    -
    Open JSON file.
    -
    @@ -210,13 +194,6 @@ loadScripts(document, 'script');

    Field Details

    • -
      -

      moduleConfigs

      -
      private static final HashMap<String,Integer> moduleConfigs
      -
      Module number mapped to the JSON name.
      -
      -
    • -
    • swerveDriveJson

      public static SwerveDriveJson swerveDriveJson
      @@ -297,30 +274,6 @@ loadScripts(document, 'script');
    • -
      -

      openJson

      -
      private com.fasterxml.jackson.databind.JsonNode openJson(File file)
      -
      Open JSON file.
      -
      -
      Parameters:
      -
      file - JSON File to open.
      -
      Returns:
      -
      JsonNode of file.
      -
      -
      -
    • -
    • -
      -

      checkDirectory

      -
      private void checkDirectory(File directory)
      -
      Check directory structure.
      -
      -
      Parameters:
      -
      directory - JSON Configuration Directory
      -
      -
      -
    • -
    • createSwerveDrive

      public SwerveDrive createSwerveDrive(double maxSpeed)
      diff --git a/docs/swervelib/parser/deserializer/PIDFRange.html b/docs/swervelib/parser/deserializer/PIDFRange.html index 740e51e..9fe6c3f 100644 --- a/docs/swervelib/parser/deserializer/PIDFRange.html +++ b/docs/swervelib/parser/deserializer/PIDFRange.html @@ -1,18 +1,17 @@ - -PIDFRange + +PIDFRange (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
    • Package
    • Tree
    • -
    • Index
    • +
    • Index
    • Help
    diff --git a/docs/swervelib/parser/deserializer/package-summary.html b/docs/swervelib/parser/deserializer/package-summary.html index e161ec6..1afd5b3 100644 --- a/docs/swervelib/parser/deserializer/package-summary.html +++ b/docs/swervelib/parser/deserializer/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.parser.deserializer + +swervelib.parser.deserializer (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/deserializer/package-tree.html b/docs/swervelib/parser/deserializer/package-tree.html index 84dada5..727f1fa 100644 --- a/docs/swervelib/parser/deserializer/package-tree.html +++ b/docs/swervelib/parser/deserializer/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.parser.deserializer Class Hierarchy + +swervelib.parser.deserializer Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/ControllerPropertiesJson.html b/docs/swervelib/parser/json/ControllerPropertiesJson.html index 6a57afe..a9cd037 100644 --- a/docs/swervelib/parser/json/ControllerPropertiesJson.html +++ b/docs/swervelib/parser/json/ControllerPropertiesJson.html @@ -1,18 +1,17 @@ - -ControllerPropertiesJson + +ControllerPropertiesJson (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/DeviceJson.html b/docs/swervelib/parser/json/DeviceJson.html index 7faff10..1c8c75a 100644 --- a/docs/swervelib/parser/json/DeviceJson.html +++ b/docs/swervelib/parser/json/DeviceJson.html @@ -1,18 +1,17 @@ - -DeviceJson + +DeviceJson (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/ModuleJson.html b/docs/swervelib/parser/json/ModuleJson.html index a858125..710fd50 100644 --- a/docs/swervelib/parser/json/ModuleJson.html +++ b/docs/swervelib/parser/json/ModuleJson.html @@ -1,18 +1,17 @@ - -ModuleJson + +ModuleJson (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/MotorConfigDouble.html b/docs/swervelib/parser/json/MotorConfigDouble.html index d8a8f51..d800414 100644 --- a/docs/swervelib/parser/json/MotorConfigDouble.html +++ b/docs/swervelib/parser/json/MotorConfigDouble.html @@ -1,18 +1,17 @@ - -MotorConfigDouble + +MotorConfigDouble (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/MotorConfigInt.html b/docs/swervelib/parser/json/MotorConfigInt.html index efea3a5..ca89296 100644 --- a/docs/swervelib/parser/json/MotorConfigInt.html +++ b/docs/swervelib/parser/json/MotorConfigInt.html @@ -1,18 +1,17 @@ - -MotorConfigInt + +MotorConfigInt (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/PIDFPropertiesJson.html b/docs/swervelib/parser/json/PIDFPropertiesJson.html index ed99272..4f8ac35 100644 --- a/docs/swervelib/parser/json/PIDFPropertiesJson.html +++ b/docs/swervelib/parser/json/PIDFPropertiesJson.html @@ -1,18 +1,17 @@ - -PIDFPropertiesJson + +PIDFPropertiesJson (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/PhysicalPropertiesJson.html b/docs/swervelib/parser/json/PhysicalPropertiesJson.html index 0a0da3e..c6457c7 100644 --- a/docs/swervelib/parser/json/PhysicalPropertiesJson.html +++ b/docs/swervelib/parser/json/PhysicalPropertiesJson.html @@ -1,18 +1,17 @@ - -PhysicalPropertiesJson + +PhysicalPropertiesJson (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/SwerveDriveJson.html b/docs/swervelib/parser/json/SwerveDriveJson.html index 67242e9..34a6cdf 100644 --- a/docs/swervelib/parser/json/SwerveDriveJson.html +++ b/docs/swervelib/parser/json/SwerveDriveJson.html @@ -1,18 +1,17 @@ - -SwerveDriveJson + +SwerveDriveJson (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/modules/BoolMotorJson.html b/docs/swervelib/parser/json/modules/BoolMotorJson.html index f93fe33..cb26f88 100644 --- a/docs/swervelib/parser/json/modules/BoolMotorJson.html +++ b/docs/swervelib/parser/json/modules/BoolMotorJson.html @@ -1,18 +1,17 @@ - -BoolMotorJson + +BoolMotorJson (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/modules/LocationJson.html b/docs/swervelib/parser/json/modules/LocationJson.html index c8a341b..70dbedd 100644 --- a/docs/swervelib/parser/json/modules/LocationJson.html +++ b/docs/swervelib/parser/json/modules/LocationJson.html @@ -1,18 +1,17 @@ - -LocationJson + +LocationJson (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/modules/package-summary.html b/docs/swervelib/parser/json/modules/package-summary.html index e851b5e..824c224 100644 --- a/docs/swervelib/parser/json/modules/package-summary.html +++ b/docs/swervelib/parser/json/modules/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.parser.json.modules + +swervelib.parser.json.modules (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/modules/package-tree.html b/docs/swervelib/parser/json/modules/package-tree.html index f11ba68..d691d87 100644 --- a/docs/swervelib/parser/json/modules/package-tree.html +++ b/docs/swervelib/parser/json/modules/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.parser.json.modules Class Hierarchy + +swervelib.parser.json.modules Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/package-summary.html b/docs/swervelib/parser/json/package-summary.html index 6008d22..e50522f 100644 --- a/docs/swervelib/parser/json/package-summary.html +++ b/docs/swervelib/parser/json/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.parser.json + +swervelib.parser.json (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/json/package-tree.html b/docs/swervelib/parser/json/package-tree.html index 782fa5a..95cda37 100644 --- a/docs/swervelib/parser/json/package-tree.html +++ b/docs/swervelib/parser/json/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.parser.json Class Hierarchy + +swervelib.parser.json Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/package-summary.html b/docs/swervelib/parser/package-summary.html index 86e53df..a0917aa 100644 --- a/docs/swervelib/parser/package-summary.html +++ b/docs/swervelib/parser/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.parser + +swervelib.parser (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/parser/package-tree.html b/docs/swervelib/parser/package-tree.html index 1728b15..cc715f4 100644 --- a/docs/swervelib/parser/package-tree.html +++ b/docs/swervelib/parser/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.parser Class Hierarchy + +swervelib.parser Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/simulation/SwerveIMUSimulation.html b/docs/swervelib/simulation/SwerveIMUSimulation.html index 2d8218c..d89375f 100644 --- a/docs/swervelib/simulation/SwerveIMUSimulation.html +++ b/docs/swervelib/simulation/SwerveIMUSimulation.html @@ -1,18 +1,17 @@ - -SwerveIMUSimulation + +SwerveIMUSimulation (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -82,33 +81,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private double
      - -
      -
      Heading of the robot.
      -
      -
      private double
      - -
      -
      The last time the timer was read, used to determine position changes.
      -
      -
      private final edu.wpi.first.wpilibj.Timer
      - -
      -
      Main timer to control movement estimations.
      -
      -
      -
      -
    • @@ -186,35 +158,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          timer

          -
          private final edu.wpi.first.wpilibj.Timer timer
          -
          Main timer to control movement estimations.
          -
          -
        • -
        • -
          -

          lastTime

          -
          private double lastTime
          -
          The last time the timer was read, used to determine position changes.
          -
          -
        • -
        • -
          -

          angle

          -
          private double angle
          -
          Heading of the robot.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/simulation/SwerveModuleSimulation.html b/docs/swervelib/simulation/SwerveModuleSimulation.html index 4ec9cff..9d6b683 100644 --- a/docs/swervelib/simulation/SwerveModuleSimulation.html +++ b/docs/swervelib/simulation/SwerveModuleSimulation.html @@ -1,18 +1,17 @@ - -SwerveModuleSimulation + +SwerveModuleSimulation (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
      • Package
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
    @@ -45,13 +44,13 @@ loadScripts(document, 'script'); @@ -82,48 +81,6 @@ loadScripts(document, 'script');
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      private double
      - -
      -
      Time delta since last update
      -
      -
      private double
      - -
      -
      Fake motor position.
      -
      -
      private double
      - -
      -
      The fake speed of the previous state, used to calculate fakePos.
      -
      -
      private double
      - -
      -
      Last time queried.
      -
      -
      private edu.wpi.first.math.kinematics.SwerveModuleState
      - -
      -
      Current simulated swerve module state.
      -
      -
      private final edu.wpi.first.wpilibj.Timer
      - -
      -
      Main timer to simulate the passage of time.
      -
      -
      -
      -
    • @@ -177,56 +134,6 @@ loadScripts(document, 'script');
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          timer

          -
          private final edu.wpi.first.wpilibj.Timer timer
          -
          Main timer to simulate the passage of time.
          -
          -
        • -
        • -
          -

          dt

          -
          private double dt
          -
          Time delta since last update
          -
          -
        • -
        • -
          -

          fakePos

          -
          private double fakePos
          -
          Fake motor position.
          -
          -
        • -
        • -
          -

          fakeSpeed

          -
          private double fakeSpeed
          -
          The fake speed of the previous state, used to calculate fakePos.
          -
          -
        • -
        • -
          -

          lastTime

          -
          private double lastTime
          -
          Last time queried.
          -
          -
        • -
        • -
          -

          state

          -
          private edu.wpi.first.math.kinematics.SwerveModuleState state
          -
          Current simulated swerve module state.
          -
          -
        • -
        -
        -
      • diff --git a/docs/swervelib/simulation/ctre/PhysicsSim.html b/docs/swervelib/simulation/ctre/PhysicsSim.html deleted file mode 100644 index fdad661..0000000 --- a/docs/swervelib/simulation/ctre/PhysicsSim.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - -PhysicsSim - - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Class PhysicsSim

        -
        -
        java.lang.Object -
        swervelib.simulation.ctre.PhysicsSim
        -
        -
        -
        -
        public class PhysicsSim -extends Object
        -
        Manages physics simulation for CTRE products.
        -
        -
        -
          - -
        • -
          -

          Nested Class Summary

          -
          Nested Classes
          -
          -
          Modifier and Type
          -
          Class
          -
          Description
          -
          (package private) static class 
          - -
          -
          Holds information about a simulated device.
          -
          -
          -
          -
        • - -
        • -
          -

          Field Summary

          -
          Fields
          -
          -
          Modifier and Type
          -
          Field
          -
          Description
          - - -
           
          -
          private static PhysicsSim
          - -
           
          -
          -
          -
        • - -
        • -
          -

          Constructor Summary

          -
          Constructors
          -
          -
          Constructor
          -
          Description
          - -
           
          -
          -
          -
        • - -
        • -
          -

          Method Summary

          -
          -
          -
          -
          -
          Modifier and Type
          -
          Method
          -
          Description
          -
          void
          -
          addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX falcon, - double accelToFullTime, - double fullVel)
          -
          -
          Adds a TalonFX controller to the simulator.
          -
          -
          void
          -
          addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX falcon, - double accelToFullTime, - double fullVel, - boolean sensorPhase)
          -
          -
          Adds a TalonFX controller to the simulator.
          -
          -
          void
          -
          addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX talon, - double accelToFullTime, - double fullVel)
          -
          -
          Adds a TalonSRX controller to the simulator.
          -
          -
          void
          -
          addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX talon, - double accelToFullTime, - double fullVel, - boolean sensorPhase)
          -
          -
          Adds a TalonSRX controller to the simulator.
          -
          -
          void
          -
          addVictorSPX(com.ctre.phoenix.motorcontrol.can.VictorSPX victor)
          -
          -
          Adds a VictorSPX controller to the simulator.
          -
          -
          static PhysicsSim
          - -
          -
          Gets the robot simulator instance.
          -
          -
          (package private) static double
          -
          random(double max)
          -
           
          -
          (package private) static double
          -
          random(double min, - double max)
          -
           
          -
          void
          -
          run()
          -
          -
          Runs the simulator: - enable the robot - simulate sensors
          -
          -
          -
          -
          -
          -

          Methods inherited from class java.lang.Object

          -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          -
          -
        • -
        -
        -
        -
          - -
        • -
          -

          Field Details

          - -
          -
        • - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            PhysicsSim

            -
            public PhysicsSim()
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            getInstance

            -
            public static PhysicsSim getInstance()
            -
            Gets the robot simulator instance.
            -
            -
            Returns:
            -
            PhysicsSim instance.
            -
            -
            -
          • -
          • -
            -

            random

            -
            static double random(double min, - double max)
            -
            -
          • -
          • -
            -

            random

            -
            static double random(double max)
            -
            -
          • -
          • -
            -

            addTalonSRX

            -
            public void addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX talon, - double accelToFullTime, - double fullVel)
            -
            Adds a TalonSRX controller to the simulator.
            -
            -
            Parameters:
            -
            talon - The TalonSRX device
            -
            accelToFullTime - The time the motor takes to accelerate from 0 to full, in seconds
            -
            fullVel - The maximum motor velocity, in ticks per 100ms
            -
            -
            -
          • -
          • -
            -

            addTalonSRX

            -
            public void addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX talon, - double accelToFullTime, - double fullVel, - boolean sensorPhase)
            -
            Adds a TalonSRX controller to the simulator.
            -
            -
            Parameters:
            -
            talon - The TalonSRX device
            -
            accelToFullTime - The time the motor takes to accelerate from 0 to full, in seconds
            -
            fullVel - The maximum motor velocity, in ticks per 100ms
            -
            sensorPhase - The phase of the TalonSRX sensors
            -
            -
            -
          • -
          • -
            -

            addTalonFX

            -
            public void addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX falcon, - double accelToFullTime, - double fullVel)
            -
            Adds a TalonFX controller to the simulator.
            -
            -
            Parameters:
            -
            falcon - The TalonFX device
            -
            accelToFullTime - The time the motor takes to accelerate from 0 to full, in seconds
            -
            fullVel - The maximum motor velocity, in ticks per 100ms
            -
            -
            -
          • -
          • -
            -

            addTalonFX

            -
            public void addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX falcon, - double accelToFullTime, - double fullVel, - boolean sensorPhase)
            -
            Adds a TalonFX controller to the simulator.
            -
            -
            Parameters:
            -
            falcon - The TalonFX device
            -
            accelToFullTime - The time the motor takes to accelerate from 0 to full, in seconds
            -
            fullVel - The maximum motor velocity, in ticks per 100ms
            -
            sensorPhase - The phase of the TalonFX sensors
            -
            -
            -
          • -
          • -
            -

            addVictorSPX

            -
            public void addVictorSPX(com.ctre.phoenix.motorcontrol.can.VictorSPX victor)
            -
            Adds a VictorSPX controller to the simulator.
            -
            -
            Parameters:
            -
            victor - The VictorSPX device
            -
            -
            -
          • -
          • -
            -

            run

            -
            public void run()
            -
            Runs the simulator: - enable the robot - simulate sensors
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/swervelib/simulation/ctre/TalonFXSimProfile.html b/docs/swervelib/simulation/ctre/TalonFXSimProfile.html deleted file mode 100644 index 0833291..0000000 --- a/docs/swervelib/simulation/ctre/TalonFXSimProfile.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - -TalonFXSimProfile - - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Class TalonFXSimProfile

        -
        -
        java.lang.Object -
        swervelib.simulation.ctre.PhysicsSim.SimProfile -
        swervelib.simulation.ctre.TalonFXSimProfile
        -
        -
        -
        -
        -
        class TalonFXSimProfile -extends PhysicsSim.SimProfile
        -
        Holds information about a simulated TalonFX.
        -
        -
        -
          - -
        • -
          -

          Field Summary

          -
          Fields
          -
          -
          Modifier and Type
          -
          Field
          -
          Description
          -
          private final double
          - -
           
          -
          private final com.ctre.phoenix.motorcontrol.can.TalonFX
          - -
           
          -
          private final double
          - -
           
          -
          private final boolean
          - -
           
          -
          private double
          - -
          -
          The current velocity
          -
          -
          -
          -
        • - -
        • -
          -

          Constructor Summary

          -
          Constructors
          -
          -
          Constructor
          -
          Description
          -
          TalonFXSimProfile(com.ctre.phoenix.motorcontrol.can.TalonFX falcon, - double accelToFullTime, - double fullVel, - boolean sensorPhase)
          -
          -
          Creates a new simulation profile for a TalonFX device.
          -
          -
          -
          -
        • - -
        • -
          -

          Method Summary

          -
          -
          -
          -
          -
          Modifier and Type
          -
          Method
          -
          Description
          -
          void
          -
          run()
          -
          -
          Runs the simulation profile.
          -
          -
          -
          -
          -
          -

          Methods inherited from class swervelib.simulation.ctre.PhysicsSim.SimProfile

          -getPeriod
          -
          -

          Methods inherited from class java.lang.Object

          -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          -
          -
        • -
        -
        -
        -
          - -
        • -
          -

          Field Details

          -
            -
          • -
            -

            _falcon

            -
            private final com.ctre.phoenix.motorcontrol.can.TalonFX _falcon
            -
            -
          • -
          • -
            -

            _accelToFullTime

            -
            private final double _accelToFullTime
            -
            -
          • -
          • -
            -

            _fullVel

            -
            private final double _fullVel
            -
            -
          • -
          • -
            -

            _sensorPhase

            -
            private final boolean _sensorPhase
            -
            -
          • -
          • -
            -

            _vel

            -
            private double _vel
            -
            The current velocity
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            TalonFXSimProfile

            -
            public TalonFXSimProfile(com.ctre.phoenix.motorcontrol.can.TalonFX falcon, - double accelToFullTime, - double fullVel, - boolean sensorPhase)
            -
            Creates a new simulation profile for a TalonFX device.
            -
            -
            Parameters:
            -
            falcon - The TalonFX device
            -
            accelToFullTime - The time the motor takes to accelerate from 0 to full, in seconds
            -
            fullVel - The maximum motor velocity, in ticks per 100ms
            -
            sensorPhase - The phase of the TalonFX sensors
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            run

            -
            public void run()
            -
            Runs the simulation profile. - -

            This uses very rudimentary physics simulation and exists to allow users to test features of - our products in simulation using our examples out of the box. Users may modify this to utilize more accurate - physics simulation.

            -
            -
            Overrides:
            -
            run in class PhysicsSim.SimProfile
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/swervelib/simulation/ctre/TalonSRXSimProfile.html b/docs/swervelib/simulation/ctre/TalonSRXSimProfile.html deleted file mode 100644 index 12e400c..0000000 --- a/docs/swervelib/simulation/ctre/TalonSRXSimProfile.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - -TalonSRXSimProfile - - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Class TalonSRXSimProfile

        -
        -
        java.lang.Object -
        swervelib.simulation.ctre.PhysicsSim.SimProfile -
        swervelib.simulation.ctre.TalonSRXSimProfile
        -
        -
        -
        -
        -
        class TalonSRXSimProfile -extends PhysicsSim.SimProfile
        -
        Holds information about a simulated TalonSRX.
        -
        -
        -
          - -
        • -
          -

          Field Summary

          -
          Fields
          -
          -
          Modifier and Type
          -
          Field
          -
          Description
          -
          private final double
          - -
           
          -
          private final double
          - -
           
          -
          private final boolean
          - -
           
          -
          private final com.ctre.phoenix.motorcontrol.can.TalonSRX
          - -
           
          -
          private double
          - -
          -
          The current velocity
          -
          -
          -
          -
        • - -
        • -
          -

          Constructor Summary

          -
          Constructors
          -
          -
          Constructor
          -
          Description
          -
          TalonSRXSimProfile(com.ctre.phoenix.motorcontrol.can.TalonSRX talon, - double accelToFullTime, - double fullVel, - boolean sensorPhase)
          -
          -
          Creates a new simulation profile for a TalonSRX device.
          -
          -
          -
          -
        • - -
        • -
          -

          Method Summary

          -
          -
          -
          -
          -
          Modifier and Type
          -
          Method
          -
          Description
          -
          void
          -
          run()
          -
          -
          Runs the simulation profile.
          -
          -
          -
          -
          -
          -

          Methods inherited from class swervelib.simulation.ctre.PhysicsSim.SimProfile

          -getPeriod
          -
          -

          Methods inherited from class java.lang.Object

          -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          -
          -
        • -
        -
        -
        -
          - -
        • -
          -

          Field Details

          -
            -
          • -
            -

            _talon

            -
            private final com.ctre.phoenix.motorcontrol.can.TalonSRX _talon
            -
            -
          • -
          • -
            -

            _accelToFullTime

            -
            private final double _accelToFullTime
            -
            -
          • -
          • -
            -

            _fullVel

            -
            private final double _fullVel
            -
            -
          • -
          • -
            -

            _sensorPhase

            -
            private final boolean _sensorPhase
            -
            -
          • -
          • -
            -

            _vel

            -
            private double _vel
            -
            The current velocity
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            TalonSRXSimProfile

            -
            public TalonSRXSimProfile(com.ctre.phoenix.motorcontrol.can.TalonSRX talon, - double accelToFullTime, - double fullVel, - boolean sensorPhase)
            -
            Creates a new simulation profile for a TalonSRX device.
            -
            -
            Parameters:
            -
            talon - The TalonSRX device
            -
            accelToFullTime - The time the motor takes to accelerate from 0 to full, in seconds
            -
            fullVel - The maximum motor velocity, in ticks per 100ms
            -
            sensorPhase - The phase of the TalonSRX sensors
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            run

            -
            public void run()
            -
            Runs the simulation profile. - -

            This uses very rudimentary physics simulation and exists to allow users to test features of - our products in simulation using our examples out of the box. Users may modify this to utilize more accurate - physics simulation.

            -
            -
            Overrides:
            -
            run in class PhysicsSim.SimProfile
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/swervelib/simulation/ctre/package-summary.html b/docs/swervelib/simulation/ctre/package-summary.html deleted file mode 100644 index bf4a1ec..0000000 --- a/docs/swervelib/simulation/ctre/package-summary.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - -swervelib.simulation.ctre - - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Package swervelib.simulation.ctre

        -
        -
        -
        package swervelib.simulation.ctre
        -
        -
        CTRE Physics Simulator.
        -
        -
        - -
        -
        -
        -
        - - diff --git a/docs/swervelib/simulation/ctre/package-tree.html b/docs/swervelib/simulation/ctre/package-tree.html deleted file mode 100644 index 877fe03..0000000 --- a/docs/swervelib/simulation/ctre/package-tree.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - -swervelib.simulation.ctre Class Hierarchy - - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Hierarchy For Package swervelib.simulation.ctre

        -Package Hierarchies: - -
        -
        -

        Class Hierarchy

        - -
        -
        -
        -
        - - diff --git a/docs/swervelib/simulation/package-summary.html b/docs/swervelib/simulation/package-summary.html index f77f361..51af011 100644 --- a/docs/swervelib/simulation/package-summary.html +++ b/docs/swervelib/simulation/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.simulation + +swervelib.simulation (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
      • Class
      • Tree
      • -
      • Index
      • +
      • Index
      • Help
      @@ -75,10 +74,6 @@ loadScripts(document, 'script');
      Yet-Another Generic Swerve Library (YAGSL) main package AKA swervelib.
      - -
      -
      CTRE Physics Simulator.
      -
    • diff --git a/docs/swervelib/simulation/package-tree.html b/docs/swervelib/simulation/package-tree.html index 87fe4b5..207eae3 100644 --- a/docs/swervelib/simulation/package-tree.html +++ b/docs/swervelib/simulation/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.simulation Class Hierarchy + +swervelib.simulation Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
    • Package
    • Class
    • -
    • Index
    • +
    • Index
    • Help
    diff --git a/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html b/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html index 710c566..587dfee 100644 --- a/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html +++ b/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html @@ -1,18 +1,17 @@ - -SwerveDriveTelemetry.TelemetryVerbosity + +SwerveDriveTelemetry.TelemetryVerbosity (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • @@ -128,21 +127,6 @@ loadScripts(document, 'script');
    - -
  • -
    -

    Constructor Summary

    -
    Constructors
    -
    -
    Modifier
    -
    Constructor
    -
    Description
    -
    private
    - -
     
    -
    -
    -
  • @@ -216,20 +200,6 @@ the order they are declared.
  • - -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      TelemetryVerbosity

      -
      private TelemetryVerbosity()
      -
      -
    • -
    -
    -
  • diff --git a/docs/swervelib/telemetry/SwerveDriveTelemetry.html b/docs/swervelib/telemetry/SwerveDriveTelemetry.html index cecc52e..77da0f4 100644 --- a/docs/swervelib/telemetry/SwerveDriveTelemetry.html +++ b/docs/swervelib/telemetry/SwerveDriveTelemetry.html @@ -1,18 +1,17 @@ - -SwerveDriveTelemetry + +SwerveDriveTelemetry (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Package
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/telemetry/package-summary.html b/docs/swervelib/telemetry/package-summary.html index 8dda78c..af1dc20 100644 --- a/docs/swervelib/telemetry/package-summary.html +++ b/docs/swervelib/telemetry/package-summary.html @@ -1,18 +1,17 @@ - -swervelib.telemetry + +swervelib.telemetry (YAGSL-Example API) - - + @@ -36,7 +35,7 @@ loadScripts(document, 'script');
  • Class
  • Tree
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/swervelib/telemetry/package-tree.html b/docs/swervelib/telemetry/package-tree.html index 8dfbbc1..2109d3a 100644 --- a/docs/swervelib/telemetry/package-tree.html +++ b/docs/swervelib/telemetry/package-tree.html @@ -1,18 +1,17 @@ - -swervelib.telemetry Class Hierarchy + +swervelib.telemetry Class Hierarchy (YAGSL-Example API) - - + @@ -32,7 +31,7 @@ loadScripts(document, 'script');
  • Package
  • Class
  • -
  • Index
  • +
  • Index
  • Help
  • diff --git a/docs/type-search-index.js b/docs/type-search-index.js index 52aeb53..5e0eb7f 100644 --- a/docs/type-search-index.js +++ b/docs/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"p":"swervelib.imu","l":"ADIS16448Swerve"},{"p":"swervelib.imu","l":"ADIS16470Swerve"},{"p":"swervelib.imu","l":"ADXRS450Swerve"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"swervelib.encoders","l":"AnalogAbsoluteEncoderSwerve"},{"p":"swervelib.imu","l":"AnalogGyroSwerve"},{"p":"swervelib.parser.json.modules","l":"BoolMotorJson"},{"p":"swervelib.encoders","l":"CanAndCoderSwerve"},{"p":"swervelib.encoders","l":"CANCoderSwerve"},{"p":"swervelib.parser.json","l":"ControllerPropertiesJson"},{"p":"swervelib.parser.json","l":"DeviceJson"},{"p":"swervelib.parser.json.modules","l":"LocationJson"},{"p":"swervelib.math","l":"Matter"},{"p":"swervelib.parser.json","l":"ModuleJson"},{"p":"swervelib.parser.json","l":"MotorConfigDouble"},{"p":"swervelib.parser.json","l":"MotorConfigInt"},{"p":"swervelib.imu","l":"NavXSwerve"},{"p":"swervelib.parser.json","l":"PhysicalPropertiesJson"},{"p":"swervelib.simulation.ctre","l":"PhysicsSim"},{"p":"swervelib.parser","l":"PIDFConfig"},{"p":"swervelib.parser.json","l":"PIDFPropertiesJson"},{"p":"swervelib.parser.deserializer","l":"PIDFRange"},{"p":"swervelib.imu","l":"Pigeon2Swerve"},{"p":"swervelib.imu","l":"PigeonSwerve"},{"p":"swervelib.encoders","l":"PWMDutyCycleEncoderSwerve"},{"p":"swervelib.simulation.ctre","l":"PhysicsSim.SimProfile"},{"p":"swervelib.motors","l":"SparkMaxSwerve.SparkMAX_slotIdx"},{"p":"swervelib.encoders","l":"SparkMaxAnalogEncoderSwerve"},{"p":"swervelib.motors","l":"SparkMaxBrushedMotorSwerve"},{"p":"swervelib.encoders","l":"SparkMaxEncoderSwerve"},{"p":"swervelib.motors","l":"SparkMaxSwerve"},{"p":"swervelib.encoders","l":"SwerveAbsoluteEncoder"},{"p":"swervelib","l":"SwerveController"},{"p":"swervelib.parser","l":"SwerveControllerConfiguration"},{"p":"swervelib","l":"SwerveDrive"},{"p":"swervelib.parser","l":"SwerveDriveConfiguration"},{"p":"swervelib.parser.json","l":"SwerveDriveJson"},{"p":"swervelib.telemetry","l":"SwerveDriveTelemetry"},{"p":"swervelib.imu","l":"SwerveIMU"},{"p":"swervelib.simulation","l":"SwerveIMUSimulation"},{"p":"swervelib.math","l":"SwerveMath"},{"p":"swervelib","l":"SwerveModule"},{"p":"swervelib.parser","l":"SwerveModuleConfiguration"},{"p":"swervelib.parser","l":"SwerveModulePhysicalCharacteristics"},{"p":"swervelib.simulation","l":"SwerveModuleSimulation"},{"p":"swervelib.motors","l":"SwerveMotor"},{"p":"swervelib.parser","l":"SwerveParser"},{"p":"swervelib.simulation.ctre","l":"TalonFXSimProfile"},{"p":"swervelib.motors","l":"TalonFXSwerve"},{"p":"swervelib.simulation.ctre","l":"TalonSRXSimProfile"},{"p":"swervelib.motors","l":"TalonSRXSwerve"},{"p":"swervelib.telemetry","l":"SwerveDriveTelemetry.TelemetryVerbosity"},{"p":"swervelib.simulation.ctre","l":"VictorSPXSimProfile"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [{"p":"frc.robot.commands.swervedrive.drivebase","l":"AbsoluteDrive"},{"p":"frc.robot.commands.swervedrive.drivebase","l":"AbsoluteDriveAdv"},{"p":"frc.robot.commands.swervedrive.drivebase","l":"AbsoluteFieldDrive"},{"p":"swervelib.imu","l":"ADIS16448Swerve"},{"p":"swervelib.imu","l":"ADIS16470Swerve"},{"p":"swervelib.imu","l":"ADXRS450Swerve"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"swervelib.encoders","l":"AnalogAbsoluteEncoderSwerve"},{"p":"swervelib.imu","l":"AnalogGyroSwerve"},{"p":"frc.robot.commands.swervedrive.auto","l":"AutoBalanceCommand"},{"p":"frc.robot","l":"Constants.Auton"},{"p":"swervelib.parser.json.modules","l":"BoolMotorJson"},{"p":"swervelib.encoders","l":"CanAndCoderSwerve"},{"p":"swervelib.encoders","l":"CANCoderSwerve"},{"p":"frc.robot","l":"Constants"},{"p":"swervelib.parser.json","l":"ControllerPropertiesJson"},{"p":"swervelib.parser.json","l":"DeviceJson"},{"p":"frc.robot","l":"Constants.Drivebase"},{"p":"swervelib.parser.json.modules","l":"LocationJson"},{"p":"frc.robot","l":"Main"},{"p":"swervelib.math","l":"Matter"},{"p":"swervelib.parser.json","l":"ModuleJson"},{"p":"swervelib.parser.json","l":"MotorConfigDouble"},{"p":"swervelib.parser.json","l":"MotorConfigInt"},{"p":"swervelib.imu","l":"NavXSwerve"},{"p":"frc.robot","l":"Constants.OperatorConstants"},{"p":"swervelib.parser.json","l":"PhysicalPropertiesJson"},{"p":"swervelib.parser","l":"PIDFConfig"},{"p":"swervelib.parser.json","l":"PIDFPropertiesJson"},{"p":"swervelib.parser.deserializer","l":"PIDFRange"},{"p":"swervelib.imu","l":"Pigeon2Swerve"},{"p":"swervelib.imu","l":"PigeonSwerve"},{"p":"swervelib.encoders","l":"PWMDutyCycleEncoderSwerve"},{"p":"frc.robot","l":"Robot"},{"p":"frc.robot","l":"RobotContainer"},{"p":"swervelib.motors","l":"SparkFlexSwerve"},{"p":"swervelib.encoders","l":"SparkMaxAnalogEncoderSwerve"},{"p":"swervelib.motors","l":"SparkMaxBrushedMotorSwerve"},{"p":"swervelib.encoders","l":"SparkMaxEncoderSwerve"},{"p":"swervelib.motors","l":"SparkMaxSwerve"},{"p":"swervelib.encoders","l":"SwerveAbsoluteEncoder"},{"p":"swervelib","l":"SwerveController"},{"p":"swervelib.parser","l":"SwerveControllerConfiguration"},{"p":"swervelib","l":"SwerveDrive"},{"p":"swervelib.parser","l":"SwerveDriveConfiguration"},{"p":"swervelib.parser.json","l":"SwerveDriveJson"},{"p":"swervelib.telemetry","l":"SwerveDriveTelemetry"},{"p":"swervelib.imu","l":"SwerveIMU"},{"p":"swervelib.simulation","l":"SwerveIMUSimulation"},{"p":"swervelib.math","l":"SwerveMath"},{"p":"swervelib","l":"SwerveModule"},{"p":"swervelib.parser","l":"SwerveModuleConfiguration"},{"p":"swervelib.parser","l":"SwerveModulePhysicalCharacteristics"},{"p":"swervelib.simulation","l":"SwerveModuleSimulation"},{"p":"swervelib.motors","l":"SwerveMotor"},{"p":"swervelib.parser","l":"SwerveParser"},{"p":"frc.robot.subsystems.swervedrive","l":"SwerveSubsystem"},{"p":"swervelib.motors","l":"TalonFXSwerve"},{"p":"swervelib.motors","l":"TalonSRXSwerve"},{"p":"swervelib.telemetry","l":"SwerveDriveTelemetry.TelemetryVerbosity"},{"p":"frc.robot.commands.swervedrive.drivebase","l":"TeleopDrive"}];updateSearchResults(); \ No newline at end of file diff --git a/swervelib/SwerveDrive.java b/swervelib/SwerveDrive.java index d47d2f6..0915b08 100644 --- a/swervelib/SwerveDrive.java +++ b/swervelib/SwerveDrive.java @@ -100,6 +100,10 @@ public class SwerveDrive * correction. */ public boolean chassisVelocityCorrection = true; + /** + * Whether heading correction PID is currently active. + */ + private boolean correctionEnabled = false; /** * Whether to correct heading when driving translationally. Set to true to enable. */ @@ -116,6 +120,10 @@ public class SwerveDrive * Counter to synchronize the modules relative encoder with absolute encoder when not moving. */ private int moduleSynchronizationCounter = 0; + /** + * Deadband for speeds in heading correction. + */ + private final double HEADING_CORRECTION_DEADBAND = 0.01; /** * The last heading set in radians. */ @@ -396,27 +404,28 @@ public class SwerveDrive // https://www.chiefdelphi.com/t/whitepaper-swerve-drive-skew-and-second-order-kinematics/416964/5 if (chassisVelocityCorrection) { - double dtConstant = 0.009; - Pose2d robotPoseVel = new Pose2d(velocity.vxMetersPerSecond * dtConstant, - velocity.vyMetersPerSecond * dtConstant, - Rotation2d.fromRadians(velocity.omegaRadiansPerSecond * dtConstant)); - Twist2d twistVel = SwerveMath.PoseLog(robotPoseVel); - - velocity = new ChassisSpeeds(twistVel.dx / dtConstant, twistVel.dy / dtConstant, - twistVel.dtheta / dtConstant); + velocity = ChassisSpeeds.discretize(velocity, 0.02); } // Heading Angular Velocity Deadband, might make a configuration option later. // Originally made by Team 1466 Webb Robotics. + // Modified by Team 7525 Pioneers and BoiledBurntBagel of 6036 if (headingCorrection) { - if (Math.abs(velocity.omegaRadiansPerSecond) < 0.01) + if (Math.abs(velocity.omegaRadiansPerSecond) < HEADING_CORRECTION_DEADBAND + && (Math.abs(velocity.vxMetersPerSecond) > HEADING_CORRECTION_DEADBAND + || Math.abs(velocity.vyMetersPerSecond) > HEADING_CORRECTION_DEADBAND)) { + if (!correctionEnabled) + { + lastHeadingRadians = getYaw().getRadians(); + correctionEnabled = true; + } velocity.omegaRadiansPerSecond = swerveController.headingCalculate(lastHeadingRadians, getYaw().getRadians()); } else { - lastHeadingRadians = getYaw().getRadians(); + correctionEnabled = false; } } @@ -488,15 +497,6 @@ public class SwerveDrive SwerveDriveTelemetry.desiredStates[(module.moduleNumber * 2) + 1] = module.lastState.speedMetersPerSecond; } - if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) - { - SmartDashboard.putNumber( - "Module[" + module.configuration.name + "] Speed Setpoint: ", - module.lastState.speedMetersPerSecond); - SmartDashboard.putNumber( - "Module[" + module.configuration.name + "] Angle Setpoint: ", - module.lastState.angle.getDegrees()); - } } } @@ -897,13 +897,8 @@ public class SwerveDrive sumVelocity += Math.abs(moduleState.speedMetersPerSecond); if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) { - SmartDashboard.putNumber( - "Module[" + module.configuration.name + "] Relative Encoder", module.getRelativePosition()); - SmartDashboard.putNumber( - "Module[" + module.configuration.name + "] Absolute Encoder", module.getAbsolutePosition()); - SmartDashboard.putNumber( - "Module[" + module.configuration.name + "] Absolute Encoder Read Issue", - module.getAbsoluteEncoderReadIssue() ? 1 : 0); + module.updateTelemetry(); + SmartDashboard.putNumber("Adjusted IMU Yaw", getYaw().getDegrees()); } if (SwerveDriveTelemetry.verbosity.ordinal() >= TelemetryVerbosity.HIGH.ordinal()) { @@ -1051,7 +1046,7 @@ public class SwerveDrive * Reset the drive encoders on the robot, useful when manually resetting the robot without a reboot, like in * autonomous. */ - public void resetEncoders() + public void resetDriveEncoders() { for (SwerveModule module : swerveModules) { @@ -1059,19 +1054,6 @@ public class SwerveDrive } } - /** - * Configure whether the {@link SwerveModuleState} will be optimized to prevent spinning more than 90deg. - * - * @param optimizationEnabled Whether the module optimization is enabled. - */ - public void setModuleStateOptimization(boolean optimizationEnabled) - { - for (SwerveModule module : swerveModules) - { - module.moduleStateOptimization = optimizationEnabled; - } - } - /** * Pushes the Absolute Encoder offsets to the Encoder or Motor Controller, depending on type. Also removes the * internal offsets to prevent double offsetting. diff --git a/swervelib/SwerveModule.java b/swervelib/SwerveModule.java index 999ccc1..82b3ca9 100644 --- a/swervelib/SwerveModule.java +++ b/swervelib/SwerveModule.java @@ -4,6 +4,7 @@ import edu.wpi.first.math.controller.SimpleMotorFeedforward; import edu.wpi.first.math.geometry.Rotation2d; import edu.wpi.first.math.kinematics.SwerveModulePosition; import edu.wpi.first.math.kinematics.SwerveModuleState; +import edu.wpi.first.math.util.Units; import edu.wpi.first.wpilibj.DriverStation; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import swervelib.encoders.SwerveAbsoluteEncoder; @@ -48,15 +49,10 @@ public class SwerveModule * Last swerve module state applied. */ public SwerveModuleState lastState; - /** - * Enable {@link SwerveModuleState} optimizations so the angle is reversed and speed is reversed to ensure the module - * never turns more than 90deg. - */ - public boolean moduleStateOptimization = true; /** * Angle offset from the absolute encoder. */ - private double angleOffset; + private double angleOffset; /** * Simulated swerve module. */ @@ -114,7 +110,7 @@ public class SwerveModule // Config angle motor/controller angleMotor.configureIntegratedEncoder(moduleConfiguration.conversionFactors.angle); angleMotor.configurePIDF(moduleConfiguration.anglePIDF); - angleMotor.configurePIDWrapping(-180, 180); + angleMotor.configurePIDWrapping(0, 180); angleMotor.setInverted(moduleConfiguration.angleMotorInverted); angleMotor.setMotorBrake(false); @@ -178,11 +174,7 @@ public class SwerveModule */ public void setDesiredState(SwerveModuleState desiredState, boolean isOpenLoop, boolean force) { - if (moduleStateOptimization) - { - desiredState = SwerveModuleState.optimize(desiredState, - Rotation2d.fromDegrees(getAbsolutePosition())); - } + desiredState = SwerveModuleState.optimize(desiredState, Rotation2d.fromDegrees(getAbsolutePosition())); if (isOpenLoop) { @@ -190,40 +182,44 @@ public class SwerveModule driveMotor.set(percentOutput); } else { - if (desiredState.speedMetersPerSecond != lastState.speedMetersPerSecond) + // Taken from the CTRE SwerveModule class. + // https://api.ctr-electronics.com/phoenix6/release/java/src-html/com/ctre/phoenix6/mechanisms/swerve/SwerveModule.html#line.46 + /* From FRC 900's whitepaper, we add a cosine compensator to the applied drive velocity */ + /* To reduce the "skew" that occurs when changing direction */ + double steerMotorError = desiredState.angle.getDegrees() - getAbsolutePosition(); + /* If error is close to 0 rotations, we're already there, so apply full power */ + /* If the error is close to 0.25 rotations, then we're 90 degrees, so movement doesn't help us at all */ + double cosineScalar = Math.cos(Units.degreesToRadians(steerMotorError)); + /* Make sure we don't invert our drive, even though we shouldn't ever target over 90 degrees anyway */ + if (cosineScalar < 0.0) { - double velocity = desiredState.speedMetersPerSecond; - driveMotor.setReference(velocity, feedforward.calculate(velocity)); + cosineScalar = 0.0; } + + double velocity = desiredState.speedMetersPerSecond * (cosineScalar); + driveMotor.setReference(velocity, feedforward.calculate(velocity)); } + /* // Not necessary anymore. // If we are forcing the angle if (!force) { - // Prevents module rotation if speed is less than 1% + // Prevents module rotation if speed is less than 1% SwerveMath.antiJitter(desiredState, lastState, Math.min(maxSpeed, 4)); } - - if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) - { - SmartDashboard.putNumber("Module[" + configuration.name + "] Speed Setpoint:", desiredState.speedMetersPerSecond); - SmartDashboard.putNumber("Module[" + configuration.name + "] Angle Setpoint:", desiredState.angle.getDegrees()); - } + */ // Prevent module rotation if angle is the same as the previous angle. - if (desiredState.angle != lastState.angle || synchronizeEncoderQueued) + // Synchronize encoders if queued and send in the current position as the value from the absolute encoder. + if (absoluteEncoder != null && synchronizeEncoderQueued) { - // Synchronize encoders if queued and send in the current position as the value from the absolute encoder. - if (absoluteEncoder != null && synchronizeEncoderQueued) - { - double absoluteEncoderPosition = getAbsolutePosition(); - angleMotor.setPosition(absoluteEncoderPosition); - angleMotor.setReference(desiredState.angle.getDegrees(), 0, absoluteEncoderPosition); - synchronizeEncoderQueued = false; - } else - { - angleMotor.setReference(desiredState.angle.getDegrees(), 0); - } + double absoluteEncoderPosition = getAbsolutePosition(); + angleMotor.setPosition(absoluteEncoderPosition); + angleMotor.setReference(desiredState.angle.getDegrees(), 0, absoluteEncoderPosition); + synchronizeEncoderQueued = false; + } else + { + angleMotor.setReference(desiredState.angle.getDegrees(), 0); } lastState = desiredState; @@ -232,6 +228,12 @@ public class SwerveModule { simModule.updateStateAndPosition(desiredState); } + + if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) + { + SmartDashboard.putNumber("Module[" + configuration.name + "] Speed Setpoint", desiredState.speedMetersPerSecond); + SmartDashboard.putNumber("Module[" + configuration.name + "] Angle Setpoint", desiredState.angle.getDegrees()); + } } /** @@ -282,10 +284,6 @@ public class SwerveModule { return simModule.getPosition(); } - if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) - { - SmartDashboard.putNumber("Module[" + configuration.name + "] Angle", azimuth.getDegrees()); - } return new SwerveModulePosition(position, azimuth); } @@ -434,4 +432,20 @@ public class SwerveModule return absoluteEncoder.readingError; } } + + /** + * Update data sent to {@link SmartDashboard}. + */ + public void updateTelemetry() + { + if (absoluteEncoder != null) + { + SmartDashboard.putNumber("Module[" + configuration.name + "] Raw Absolute Encoder", + absoluteEncoder.getAbsolutePosition()); + } + SmartDashboard.putNumber("Module[" + configuration.name + "] Raw Motor Encoder", angleMotor.getPosition()); + SmartDashboard.putNumber("Module[" + configuration.name + "] Adjusted Absolute Encoder", getAbsolutePosition()); + SmartDashboard.putNumber("Module[" + configuration.name + "] Absolute Encoder Read Issue", + getAbsoluteEncoderReadIssue() ? 1 : 0); + } } diff --git a/swervelib/encoders/CANCoderSwerve.java b/swervelib/encoders/CANCoderSwerve.java index 87c93cc..5d8c328 100644 --- a/swervelib/encoders/CANCoderSwerve.java +++ b/swervelib/encoders/CANCoderSwerve.java @@ -1,12 +1,14 @@ package swervelib.encoders; -import com.ctre.phoenix.ErrorCode; -import com.ctre.phoenix.sensors.AbsoluteSensorRange; -import com.ctre.phoenix.sensors.CANCoderConfiguration; -import com.ctre.phoenix.sensors.MagnetFieldStrength; -import com.ctre.phoenix.sensors.SensorInitializationStrategy; -import com.ctre.phoenix.sensors.SensorTimeBase; -import com.ctre.phoenix.sensors.WPI_CANCoder; +import com.ctre.phoenix6.StatusCode; +import com.ctre.phoenix6.StatusSignal; +import com.ctre.phoenix6.configs.CANcoderConfiguration; +import com.ctre.phoenix6.configs.CANcoderConfigurator; +import com.ctre.phoenix6.configs.MagnetSensorConfigs; +import com.ctre.phoenix6.hardware.CANcoder; +import com.ctre.phoenix6.signals.AbsoluteSensorRangeValue; +import com.ctre.phoenix6.signals.MagnetHealthValue; +import com.ctre.phoenix6.signals.SensorDirectionValue; import edu.wpi.first.wpilibj.DriverStation; /** @@ -18,7 +20,7 @@ public class CANCoderSwerve extends SwerveAbsoluteEncoder /** * CANCoder with WPILib sendable and support. */ - public WPI_CANCoder encoder; + public CANcoder encoder; /** * Initialize the CANCoder on the standard CANBus. @@ -27,7 +29,7 @@ public class CANCoderSwerve extends SwerveAbsoluteEncoder */ public CANCoderSwerve(int id) { - encoder = new WPI_CANCoder(id); + encoder = new CANcoder(id); } /** @@ -38,7 +40,7 @@ public class CANCoderSwerve extends SwerveAbsoluteEncoder */ public CANCoderSwerve(int id, String canbus) { - encoder = new WPI_CANCoder(id, canbus); + encoder = new CANcoder(id, canbus); } /** @@ -47,7 +49,7 @@ public class CANCoderSwerve extends SwerveAbsoluteEncoder @Override public void factoryDefault() { - encoder.configFactoryDefault(); + encoder.getConfigurator().apply(new CANcoderConfiguration()); } /** @@ -67,13 +69,13 @@ public class CANCoderSwerve extends SwerveAbsoluteEncoder @Override public void configure(boolean inverted) { - CANCoderConfiguration canCoderConfiguration = new CANCoderConfiguration(); - canCoderConfiguration.absoluteSensorRange = AbsoluteSensorRange.Unsigned_0_to_360; - canCoderConfiguration.sensorDirection = inverted; - canCoderConfiguration.initializationStrategy = - SensorInitializationStrategy.BootToAbsolutePosition; - canCoderConfiguration.sensorTimeBase = SensorTimeBase.PerSecond; - encoder.configAllSettings(canCoderConfiguration); + CANcoderConfigurator cfg = encoder.getConfigurator(); + MagnetSensorConfigs magnetSensorConfiguration = new MagnetSensorConfigs(); + cfg.refresh(magnetSensorConfiguration); + cfg.apply(magnetSensorConfiguration + .withAbsoluteSensorRange(AbsoluteSensorRangeValue.Unsigned_0To1) + .withSensorDirection(inverted ? SensorDirectionValue.Clockwise_Positive + : SensorDirectionValue.CounterClockwise_Positive)); } /** @@ -85,46 +87,38 @@ public class CANCoderSwerve extends SwerveAbsoluteEncoder public double getAbsolutePosition() { readingError = false; - MagnetFieldStrength strength = encoder.getMagnetFieldStrength(); + MagnetHealthValue strength = encoder.getMagnetHealth().getValue(); - if (strength != MagnetFieldStrength.Good_GreenLED) + if (strength != MagnetHealthValue.Magnet_Green) { DriverStation.reportWarning( "CANCoder " + encoder.getDeviceID() + " magnetic field is less than ideal.\n", false); } - if (strength == MagnetFieldStrength.Invalid_Unknown || strength == MagnetFieldStrength.BadRange_RedLED) + if (strength == MagnetHealthValue.Magnet_Invalid || strength == MagnetHealthValue.Magnet_Red) { readingError = true; DriverStation.reportWarning("CANCoder " + encoder.getDeviceID() + " reading was faulty.\n", false); return 0; } - double angle = encoder.getAbsolutePosition(); + StatusSignal angle = encoder.getAbsolutePosition().refresh(); // Taken from democat's library. // Source: https://github.com/democat3457/swerve-lib/blob/7c03126b8c22f23a501b2c2742f9d173a5bcbc40/src/main/java/com/swervedrivespecialties/swervelib/ctre/CanCoderFactoryBuilder.java#L51-L74 - ErrorCode code = encoder.getLastError(); for (int i = 0; i < maximumRetries; i++) { - if (code == ErrorCode.OK) + if (angle.getStatus() == StatusCode.OK) { break; } - try - { - Thread.sleep(10); - } catch (InterruptedException e) - { - } - angle = encoder.getAbsolutePosition(); - code = encoder.getLastError(); + angle = angle.waitForUpdate(0.01); } - if (code != ErrorCode.OK) + if (angle.getStatus() != StatusCode.OK) { readingError = true; DriverStation.reportWarning("CANCoder " + encoder.getDeviceID() + " reading was faulty, ignoring.\n", false); } - return angle; + return angle.getValue() * 360; } /** @@ -139,16 +133,23 @@ public class CANCoderSwerve extends SwerveAbsoluteEncoder } /** - * Sets the Absolute Encoder Offset inside of the CANcoder's Memory. + * Sets the Absolute Encoder Offset within the CANcoder's Memory. * - * @param offset the offset the Absolute Encoder uses as the zero point. + * @param offset the offset the Absolute Encoder uses as the zero point in degrees. * @return if setting Absolute Encoder Offset was successful or not. */ @Override public boolean setAbsoluteEncoderOffset(double offset) { - ErrorCode error = encoder.configMagnetOffset(offset); - if (error == ErrorCode.OK) + CANcoderConfigurator cfg = encoder.getConfigurator(); + MagnetSensorConfigs magCfg = new MagnetSensorConfigs(); + StatusCode error = cfg.refresh(magCfg); + if (error != StatusCode.OK) + { + return false; + } + error = cfg.apply(magCfg.withMagnetOffset(offset / 360)); + if (error == StatusCode.OK) { return true; } @@ -165,6 +166,6 @@ public class CANCoderSwerve extends SwerveAbsoluteEncoder @Override public double getVelocity() { - return encoder.getVelocity(); + return encoder.getVelocity().getValue() * 360; } } diff --git a/swervelib/encoders/CanAndCoderSwerve.java b/swervelib/encoders/CanAndCoderSwerve.java index 7e7c19d..4b21498 100644 --- a/swervelib/encoders/CanAndCoderSwerve.java +++ b/swervelib/encoders/CanAndCoderSwerve.java @@ -1,31 +1,31 @@ package swervelib.encoders; -import com.reduxrobotics.sensors.canandcoder.CANandcoder; +import com.reduxrobotics.sensors.canandcoder.Canandcoder; import edu.wpi.first.wpilibj.DriverStation; /** - * HELIUM {@link CANandcoder} from ReduxRobotics absolute encoder, attached through the CAN bus. + * HELIUM {@link Canandcoder} from ReduxRobotics absolute encoder, attached through the CAN bus. */ public class CanAndCoderSwerve extends SwerveAbsoluteEncoder { /** - * The {@link CANandcoder} representing the CANandCoder on the CAN bus. + * The {@link Canandcoder} representing the CANandCoder on the CAN bus. */ - public CANandcoder encoder; + public Canandcoder encoder; /** * Inversion state of the encoder. */ private boolean inverted = false; /** - * Create the {@link CANandcoder} + * Create the {@link Canandcoder} * * @param canid The CAN ID whenever the CANandCoder is operating on the CANBus. */ public CanAndCoderSwerve(int canid) { - encoder = new CANandcoder(canid); + encoder = new Canandcoder(canid); } /** diff --git a/swervelib/encoders/SparkMaxAnalogEncoderSwerve.java b/swervelib/encoders/SparkMaxAnalogEncoderSwerve.java index 1f79cbf..0508bca 100644 --- a/swervelib/encoders/SparkMaxAnalogEncoderSwerve.java +++ b/swervelib/encoders/SparkMaxAnalogEncoderSwerve.java @@ -2,8 +2,8 @@ package swervelib.encoders; import com.revrobotics.CANSparkMax; import com.revrobotics.REVLibError; -import com.revrobotics.SparkMaxAnalogSensor; -import com.revrobotics.SparkMaxAnalogSensor.Mode; +import com.revrobotics.SparkAnalogSensor; +import com.revrobotics.SparkAnalogSensor.Mode; import edu.wpi.first.wpilibj.DriverStation; import java.util.function.Supplier; import swervelib.motors.SwerveMotor; @@ -15,9 +15,9 @@ public class SparkMaxAnalogEncoderSwerve extends SwerveAbsoluteEncoder { /** - * The {@link SparkMaxAnalogSensor} representing the duty cycle encoder attached to the SparkMax analog port. + * The {@link SparkAnalogSensor} representing the duty cycle encoder attached to the SparkMax analog port. */ - public SparkMaxAnalogSensor encoder; + public SparkAnalogSensor encoder; /** * Create the {@link SparkMaxAnalogEncoderSwerve} object as a analog sensor from the {@link CANSparkMax} motor data diff --git a/swervelib/encoders/SparkMaxEncoderSwerve.java b/swervelib/encoders/SparkMaxEncoderSwerve.java index 87f9782..f95d36d 100644 --- a/swervelib/encoders/SparkMaxEncoderSwerve.java +++ b/swervelib/encoders/SparkMaxEncoderSwerve.java @@ -3,7 +3,7 @@ package swervelib.encoders; import com.revrobotics.AbsoluteEncoder; import com.revrobotics.CANSparkMax; import com.revrobotics.REVLibError; -import com.revrobotics.SparkMaxAbsoluteEncoder.Type; +import com.revrobotics.SparkAbsoluteEncoder.Type; import edu.wpi.first.wpilibj.DriverStation; import java.util.function.Supplier; import swervelib.motors.SwerveMotor; diff --git a/swervelib/imu/ADIS16448Swerve.java b/swervelib/imu/ADIS16448Swerve.java index 683ece0..d60f8c6 100644 --- a/swervelib/imu/ADIS16448Swerve.java +++ b/swervelib/imu/ADIS16448Swerve.java @@ -37,9 +37,8 @@ public class ADIS16448Swerve extends SwerveIMU @Override public void factoryDefault() { - offset = new Rotation3d( - Math.toRadians(imu.getYComplementaryAngle()), Math.toRadians(imu.getXComplementaryAngle()), - Math.toRadians(imu.getAngle())); + offset = new Rotation3d(0, 0, 0); + imu.calibrate(); } /** @@ -68,9 +67,9 @@ public class ADIS16448Swerve extends SwerveIMU */ public Rotation3d getRawRotation3d() { - return new Rotation3d( - Math.toRadians(imu.getYComplementaryAngle()), Math.toRadians(imu.getXComplementaryAngle()), - Math.toRadians(imu.getAngle())); + return new Rotation3d(Math.toRadians(-imu.getGyroAngleX()), + Math.toRadians(-imu.getGyroAngleY()), + Math.toRadians(-imu.getGyroAngleZ())); } /** diff --git a/swervelib/imu/ADIS16470Swerve.java b/swervelib/imu/ADIS16470Swerve.java index 0068e4b..5a102bf 100644 --- a/swervelib/imu/ADIS16470Swerve.java +++ b/swervelib/imu/ADIS16470Swerve.java @@ -2,6 +2,7 @@ package swervelib.imu; import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.math.geometry.Translation3d; +import edu.wpi.first.wpilibj.ADIS16470_IMU.IMUAxis; import edu.wpi.first.wpilibj.ADIS16470_IMU; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import java.util.Optional; @@ -38,9 +39,8 @@ public class ADIS16470Swerve extends SwerveIMU @Override public void factoryDefault() { - offset = new Rotation3d( - Math.toRadians(imu.getYComplementaryAngle()), Math.toRadians(imu.getXComplementaryAngle()), - Math.toRadians(imu.getAngle())); + offset = new Rotation3d(0, 0, 0); + imu.calibrate(); } /** @@ -69,9 +69,7 @@ public class ADIS16470Swerve extends SwerveIMU */ public Rotation3d getRawRotation3d() { - return new Rotation3d( - Math.toRadians(imu.getYComplementaryAngle()), Math.toRadians(imu.getXComplementaryAngle()), - Math.toRadians(imu.getAngle())); + return new Rotation3d(0, 0, Math.toRadians(-imu.getAngle(IMUAxis.kYaw))); } /** diff --git a/swervelib/imu/ADXRS450Swerve.java b/swervelib/imu/ADXRS450Swerve.java index ba29264..f313fb0 100644 --- a/swervelib/imu/ADXRS450Swerve.java +++ b/swervelib/imu/ADXRS450Swerve.java @@ -37,7 +37,8 @@ public class ADXRS450Swerve extends SwerveIMU @Override public void factoryDefault() { - offset = new Rotation3d(0, 0, Math.toRadians(imu.getAngle())); + imu.calibrate(); + offset = new Rotation3d(0, 0, 0);//Math.toRadians(-imu.getAngle())); } /** @@ -66,7 +67,7 @@ public class ADXRS450Swerve extends SwerveIMU */ public Rotation3d getRawRotation3d() { - return new Rotation3d(0, 0, Math.toRadians(imu.getAngle())); + return new Rotation3d(0, 0, Math.toRadians(-imu.getAngle())); } /** diff --git a/swervelib/imu/AnalogGyroSwerve.java b/swervelib/imu/AnalogGyroSwerve.java index 124bd36..590666f 100644 --- a/swervelib/imu/AnalogGyroSwerve.java +++ b/swervelib/imu/AnalogGyroSwerve.java @@ -44,7 +44,8 @@ public class AnalogGyroSwerve extends SwerveIMU @Override public void factoryDefault() { - offset = new Rotation3d(0, 0, Math.toRadians(gyro.getAngle())); + gyro.calibrate(); + offset = new Rotation3d(0, 0, 0); } /** @@ -73,7 +74,7 @@ public class AnalogGyroSwerve extends SwerveIMU */ public Rotation3d getRawRotation3d() { - return new Rotation3d(0, 0, Math.toRadians(gyro.getAngle())); + return new Rotation3d(0, 0, Math.toRadians(-gyro.getAngle())); } /** diff --git a/swervelib/imu/NavXSwerve.java b/swervelib/imu/NavXSwerve.java index e34bc26..272efaf 100644 --- a/swervelib/imu/NavXSwerve.java +++ b/swervelib/imu/NavXSwerve.java @@ -96,10 +96,7 @@ public class NavXSwerve extends SwerveIMU public void factoryDefault() { // gyro.reset(); // Reported to be slow - offset = new Rotation3d(new Quaternion(gyro.getQuaternionW(), - gyro.getQuaternionX(), - gyro.getQuaternionY(), - gyro.getQuaternionZ())); + offset = gyro.getRotation3d(); } /** @@ -125,13 +122,10 @@ public class NavXSwerve extends SwerveIMU * * @return {@link Rotation3d} from the IMU. */ + @Override public Rotation3d getRawRotation3d() { - return new Rotation3d(new Quaternion(gyro.getQuaternionW() * 0.5, - gyro.getQuaternionX() * 0.5, - gyro.getQuaternionY() * 0.5, - gyro.getQuaternionZ() * - 0.5)); // TODO: Remove when Studica's official release is made. + return gyro.getRotation3d(); } /** @@ -142,7 +136,7 @@ public class NavXSwerve extends SwerveIMU @Override public Rotation3d getRotation3d() { - return getRawRotation3d().minus(offset); + return gyro.getRotation3d().minus(offset); } /** diff --git a/swervelib/imu/Pigeon2Swerve.java b/swervelib/imu/Pigeon2Swerve.java index 086a3b0..61fb6f8 100644 --- a/swervelib/imu/Pigeon2Swerve.java +++ b/swervelib/imu/Pigeon2Swerve.java @@ -1,7 +1,9 @@ package swervelib.imu; -import com.ctre.phoenix.sensors.Pigeon2Configuration; -import com.ctre.phoenix.sensors.WPI_Pigeon2; +import com.ctre.phoenix6.StatusSignal; +import com.ctre.phoenix6.configs.Pigeon2Configuration; +import com.ctre.phoenix6.configs.Pigeon2Configurator; +import com.ctre.phoenix6.hardware.Pigeon2; import edu.wpi.first.math.geometry.Quaternion; import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.math.geometry.Translation3d; @@ -17,7 +19,7 @@ public class Pigeon2Swerve extends SwerveIMU /** * Pigeon2 IMU device. */ - WPI_Pigeon2 imu; + Pigeon2 imu; /** * Offset for the Pigeon 2. */ @@ -31,9 +33,7 @@ public class Pigeon2Swerve extends SwerveIMU */ public Pigeon2Swerve(int canid, String canbus) { - imu = new WPI_Pigeon2(canid, canbus); - Pigeon2Configuration config = new Pigeon2Configuration(); - imu.configAllSettings(config); + imu = new Pigeon2(canid, canbus); SmartDashboard.putData(imu); } @@ -53,8 +53,11 @@ public class Pigeon2Swerve extends SwerveIMU @Override public void factoryDefault() { - imu.configFactoryDefault(); - imu.configEnableCompass(false); // Compass utilization causes readings to jump dramatically in some cases. + Pigeon2Configurator cfg = imu.getConfigurator(); + Pigeon2Configuration config = new Pigeon2Configuration(); + + // Compass utilization causes readings to jump dramatically in some cases. + cfg.apply(config.Pigeon2Features.withEnableCompass(false)); } /** @@ -84,9 +87,12 @@ public class Pigeon2Swerve extends SwerveIMU @Override public Rotation3d getRawRotation3d() { - double[] wxyz = new double[4]; - imu.get6dQuaternion(wxyz); - return new Rotation3d(new Quaternion(wxyz[0], wxyz[1], wxyz[2], wxyz[3])); + // TODO: Switch to suppliers. + StatusSignal w = imu.getQuatW(); + StatusSignal x = imu.getQuatX(); + StatusSignal y = imu.getQuatY(); + StatusSignal z = imu.getQuatZ(); + return new Rotation3d(new Quaternion(w.refresh().getValue(), x.refresh().getValue(), y.refresh().getValue(), z.refresh().getValue())); } /** @@ -109,9 +115,12 @@ public class Pigeon2Swerve extends SwerveIMU @Override public Optional getAccel() { - short[] initial = new short[3]; - imu.getBiasedAccelerometer(initial); - return Optional.of(new Translation3d(initial[0], initial[1], initial[2]).times(9.81 / 16384.0)); + // TODO: Switch to suppliers. + StatusSignal xAcc = imu.getAccelerationX(); + StatusSignal yAcc = imu.getAccelerationX(); + StatusSignal zAcc = imu.getAccelerationX(); + + return Optional.of(new Translation3d(xAcc.refresh().getValue(), yAcc.refresh().getValue(), zAcc.refresh().getValue()).times(9.81 / 16384.0)); } /** diff --git a/swervelib/math/SwerveMath.java b/swervelib/math/SwerveMath.java index 4ab9a2d..0b4fdd5 100644 --- a/swervelib/math/SwerveMath.java +++ b/swervelib/math/SwerveMath.java @@ -8,7 +8,6 @@ import edu.wpi.first.math.geometry.Translation3d; import edu.wpi.first.math.geometry.Twist2d; import edu.wpi.first.math.kinematics.ChassisSpeeds; import edu.wpi.first.math.kinematics.SwerveModuleState; -import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import java.util.List; import swervelib.SwerveController; import swervelib.SwerveModule; @@ -214,12 +213,7 @@ public class SwerveMath } double horizontalDistance = projectedHorizontalCg.plus(projectedWheelbaseEdge).getNorm(); - double maxAccel = 9.81 * horizontalDistance / robotCG.getZ(); - if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) - { - SmartDashboard.putNumber("calcMaxAccel", maxAccel); - } - return maxAccel; + return 9.81 * horizontalDistance / robotCG.getZ(); } /** @@ -275,18 +269,10 @@ public class SwerveMath { // Get the robot's current field-relative velocity Translation2d currentVelocity = SwerveController.getTranslation2d(fieldVelocity); - if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) - { - SmartDashboard.putNumber("currentVelocity", currentVelocity.getX()); - } // Calculate the commanded change in velocity by subtracting current velocity // from commanded velocity Translation2d deltaV = commandedVelocity.minus(currentVelocity); - if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) - { - SmartDashboard.putNumber("deltaV", deltaV.getX()); - } // Creates an acceleration vector with the direction of delta V and a magnitude // of the maximum allowed acceleration in that direction diff --git a/swervelib/motors/SparkFlexSwerve.java b/swervelib/motors/SparkFlexSwerve.java new file mode 100644 index 0000000..a5aef96 --- /dev/null +++ b/swervelib/motors/SparkFlexSwerve.java @@ -0,0 +1,447 @@ +package swervelib.motors; + +import com.revrobotics.AbsoluteEncoder; +import com.revrobotics.CANSparkFlex; +import com.revrobotics.CANSparkMax; +import com.revrobotics.CANSparkBase.ControlType; +import com.revrobotics.CANSparkBase.IdleMode; +import com.revrobotics.CANSparkLowLevel.MotorType; +import com.revrobotics.CANSparkLowLevel.PeriodicFrame; +import com.revrobotics.MotorFeedbackSensor; +import com.revrobotics.REVLibError; +import com.revrobotics.RelativeEncoder; +import com.revrobotics.SparkAnalogSensor; +import com.revrobotics.SparkPIDController; +import edu.wpi.first.wpilibj.DriverStation; +import java.util.function.Supplier; +import swervelib.encoders.SwerveAbsoluteEncoder; +import swervelib.parser.PIDFConfig; +import swervelib.telemetry.SwerveDriveTelemetry; + +/** + * An implementation of {@link CANSparkFlex} as a {@link SwerveMotor}. + */ +public class SparkFlexSwerve extends SwerveMotor +{ + + /** + * SparkMAX Instance. + */ + public CANSparkFlex motor; + /** + * Integrated encoder. + */ + public RelativeEncoder encoder; + /** + * Absolute encoder attached to the SparkMax (if exists) + */ + public SwerveAbsoluteEncoder absoluteEncoder; + /** + * Closed-loop PID controller. + */ + public SparkPIDController pid; + /** + * Factory default already occurred. + */ + private boolean factoryDefaultOccurred = false; + + /** + * Initialize the swerve motor. + * + * @param motor The SwerveMotor as a SparkFlex object. + * @param isDriveMotor Is the motor being initialized a drive motor? + */ + public SparkFlexSwerve(CANSparkFlex motor, boolean isDriveMotor) + { + this.motor = motor; + this.isDriveMotor = isDriveMotor; + factoryDefaults(); + clearStickyFaults(); + + encoder = motor.getEncoder(); + pid = motor.getPIDController(); + pid.setFeedbackDevice( + encoder); // Configure feedback of the PID controller as the integrated encoder. + + // Spin off configurations in a different thread. + // configureSparkMax(() -> motor.setCANTimeout(0)); // Commented out because it prevents feedback. + } + + /** + * Initialize the {@link SwerveMotor} as a {@link CANSparkMax} connected to a Brushless Motor. + * + * @param id CAN ID of the SparkMax. + * @param isDriveMotor Is the motor being initialized a drive motor? + */ + public SparkFlexSwerve(int id, boolean isDriveMotor) + { + this(new CANSparkFlex(id, MotorType.kBrushless), isDriveMotor); + } + + /** + * Run the configuration until it succeeds or times out. + * + * @param config Lambda supplier returning the error state. + */ + private void configureSparkFlex(Supplier config) + { + for (int i = 0; i < maximumRetries; i++) + { + if (config.get() == REVLibError.kOk) + { + return; + } + } + DriverStation.reportWarning("Failure configuring motor " + motor.getDeviceId(), true); + } + + /** + * Set the voltage compensation for the swerve module motor. + * + * @param nominalVoltage Nominal voltage for operation to output to. + */ + @Override + public void setVoltageCompensation(double nominalVoltage) + { + configureSparkFlex(() -> motor.enableVoltageCompensation(nominalVoltage)); + } + + /** + * Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with + * voltage compensation. This is useful to protect the motor from current spikes. + * + * @param currentLimit Current limit in AMPS at free speed. + */ + @Override + public void setCurrentLimit(int currentLimit) + { + configureSparkFlex(() -> motor.setSmartCurrentLimit(currentLimit)); + } + + /** + * Set the maximum rate the open/closed loop output can change by. + * + * @param rampRate Time in seconds to go from 0 to full throttle. + */ + @Override + public void setLoopRampRate(double rampRate) + { + configureSparkFlex(() -> motor.setOpenLoopRampRate(rampRate)); + configureSparkFlex(() -> motor.setClosedLoopRampRate(rampRate)); + } + + /** + * Get the motor object from the module. + * + * @return Motor object. + */ + @Override + public Object getMotor() + { + return motor; + } + + /** + * Queries whether the absolute encoder is directly attached to the motor controller. + * + * @return connected absolute encoder state. + */ + @Override + public boolean isAttachedAbsoluteEncoder() + { + return absoluteEncoder != null; + } + + /** + * Configure the factory defaults. + */ + @Override + public void factoryDefaults() + { + if (!factoryDefaultOccurred) + { + configureSparkFlex(motor::restoreFactoryDefaults); + factoryDefaultOccurred = true; + } + } + + /** + * Clear the sticky faults on the motor controller. + */ + @Override + public void clearStickyFaults() + { + configureSparkFlex(motor::clearFaults); + } + + /** + * Set the absolute encoder to be a compatible absolute encoder. + * + * @param encoder The encoder to use. + * @return The {@link SwerveMotor} for easy instantiation. + */ + @Override + public SwerveMotor setAbsoluteEncoder(SwerveAbsoluteEncoder encoder) + { + if (encoder.getAbsoluteEncoder() instanceof MotorFeedbackSensor) + { + DriverStation.reportWarning( + "IF possible configure the duty cycle encoder offset in the REV Hardware Client instead of using the" + + " absoluteEncoderOffset in the Swerve Module JSON!", + false); + absoluteEncoder = encoder; + configureSparkFlex(() -> pid.setFeedbackDevice((MotorFeedbackSensor) absoluteEncoder.getAbsoluteEncoder())); + } + return this; + } + + /** + * Configure the integrated encoder for the swerve module. Sets the conversion factors for position and velocity. + * + * @param positionConversionFactor The conversion factor to apply. + */ + @Override + public void configureIntegratedEncoder(double positionConversionFactor) + { + if (absoluteEncoder == null) + { + configureSparkFlex(() -> encoder.setPositionConversionFactor(positionConversionFactor)); + configureSparkFlex(() -> encoder.setVelocityConversionFactor(positionConversionFactor / 60)); + + // Taken from + // https://github.com/frc3512/SwerveBot-2022/blob/9d31afd05df6c630d5acb4ec2cf5d734c9093bf8/src/main/java/frc/lib/util/CANSparkMaxUtil.java#L67 + configureCANStatusFrames(10, 20, 20, 500, 500); + } else + { + configureSparkFlex(() -> { + if (absoluteEncoder.getAbsoluteEncoder() instanceof AbsoluteEncoder) + { + return ((AbsoluteEncoder) absoluteEncoder.getAbsoluteEncoder()).setPositionConversionFactor( + positionConversionFactor); + } else + { + return ((SparkAnalogSensor) absoluteEncoder.getAbsoluteEncoder()).setPositionConversionFactor( + positionConversionFactor); + } + }); + configureSparkFlex(() -> { + if (absoluteEncoder.getAbsoluteEncoder() instanceof AbsoluteEncoder) + { + return ((AbsoluteEncoder) absoluteEncoder.getAbsoluteEncoder()).setVelocityConversionFactor( + positionConversionFactor / 60); + } else + { + return ((SparkAnalogSensor) absoluteEncoder.getAbsoluteEncoder()).setVelocityConversionFactor( + positionConversionFactor / 60); + } + }); + } + } + + /** + * Configure the PIDF values for the closed loop controller. + * + * @param config Configuration class holding the PIDF values. + */ + @Override + public void configurePIDF(PIDFConfig config) + { +// int pidSlot = +// isDriveMotor ? SparkMAX_slotIdx.Velocity.ordinal() : SparkMAX_slotIdx.Position.ordinal(); + int pidSlot = 0; + configureSparkFlex(() -> pid.setP(config.p, pidSlot)); + configureSparkFlex(() -> pid.setI(config.i, pidSlot)); + configureSparkFlex(() -> pid.setD(config.d, pidSlot)); + configureSparkFlex(() -> pid.setFF(config.f, pidSlot)); + configureSparkFlex(() -> pid.setIZone(config.iz, pidSlot)); + configureSparkFlex(() -> pid.setOutputRange(config.output.min, config.output.max, pidSlot)); + } + + /** + * Configure the PID wrapping for the position closed loop controller. + * + * @param minInput Minimum PID input. + * @param maxInput Maximum PID input. + */ + @Override + public void configurePIDWrapping(double minInput, double maxInput) + { + configureSparkFlex(() -> pid.setPositionPIDWrappingEnabled(true)); + configureSparkFlex(() -> pid.setPositionPIDWrappingMinInput(minInput)); + configureSparkFlex(() -> pid.setPositionPIDWrappingMaxInput(maxInput)); + } + + /** + * Set the CAN status frames. + * + * @param CANStatus0 Applied Output, Faults, Sticky Faults, Is Follower + * @param CANStatus1 Motor Velocity, Motor Temperature, Motor Voltage, Motor Current + * @param CANStatus2 Motor Position + * @param CANStatus3 Analog Sensor Voltage, Analog Sensor Velocity, Analog Sensor Position + * @param CANStatus4 Alternate Encoder Velocity, Alternate Encoder Position + */ + public void configureCANStatusFrames( + int CANStatus0, int CANStatus1, int CANStatus2, int CANStatus3, int CANStatus4) + { + configureSparkFlex(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus0, CANStatus0)); + configureSparkFlex(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus1, CANStatus1)); + configureSparkFlex(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus2, CANStatus2)); + configureSparkFlex(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus3, CANStatus3)); + configureSparkFlex(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus4, CANStatus4)); + // TODO: Configure Status Frame 5 and 6 if necessary + // https://docs.revrobotics.com/sparkmax/operating-modes/control-interfaces + } + + /** + * Set the idle mode. + * + * @param isBrakeMode Set the brake mode. + */ + @Override + public void setMotorBrake(boolean isBrakeMode) + { + configureSparkFlex(() -> motor.setIdleMode(isBrakeMode ? IdleMode.kBrake : IdleMode.kCoast)); + } + + /** + * Set the motor to be inverted. + * + * @param inverted State of inversion. + */ + @Override + public void setInverted(boolean inverted) + { + motor.setInverted(inverted); + } + + /** + * Save the configurations from flash to EEPROM. + */ + @Override + public void burnFlash() + { + try + { + Thread.sleep(200); + } catch (Exception e) + { + } + configureSparkFlex(() -> motor.burnFlash()); + } + + /** + * Set the percentage output. + * + * @param percentOutput percent out for the motor controller. + */ + @Override + public void set(double percentOutput) + { + motor.set(percentOutput); + } + + /** + * Set the closed loop PID controller reference point. + * + * @param setpoint Setpoint in MPS or Angle in degrees. + * @param feedforward Feedforward in volt-meter-per-second or kV. + */ + @Override + public void setReference(double setpoint, double feedforward) + { + boolean possibleBurnOutIssue = true; +// int pidSlot = +// isDriveMotor ? SparkMAX_slotIdx.Velocity.ordinal() : SparkMAX_slotIdx.Position.ordinal(); + int pidSlot = 0; + + if (isDriveMotor) + { + configureSparkFlex(() -> + pid.setReference( + setpoint, + ControlType.kVelocity, + pidSlot, + feedforward)); + } else + { + configureSparkFlex(() -> + pid.setReference( + setpoint, + ControlType.kPosition, + pidSlot, + feedforward)); + if(SwerveDriveTelemetry.isSimulation) + { + encoder.setPosition(setpoint); + } + } + } + + /** + * Set the closed loop PID controller reference point. + * + * @param setpoint Setpoint in meters per second or angle in degrees. + * @param feedforward Feedforward in volt-meter-per-second or kV. + * @param position Only used on the angle motor, the position of the motor in degrees. + */ + @Override + public void setReference(double setpoint, double feedforward, double position) + { + setReference(setpoint, feedforward); + } + + /** + * Get the velocity of the integrated encoder. + * + * @return velocity + */ + @Override + public double getVelocity() + { + return absoluteEncoder == null ? encoder.getVelocity() : absoluteEncoder.getVelocity(); + } + + /** + * Get the position of the integrated encoder. + * + * @return Position + */ + @Override + public double getPosition() + { + return absoluteEncoder == null ? encoder.getPosition() : absoluteEncoder.getAbsolutePosition(); + } + + /** + * Set the integrated encoder position. + * + * @param position Integrated encoder position. + */ + @Override + public void setPosition(double position) + { + if (absoluteEncoder == null) + { + configureSparkFlex(() -> encoder.setPosition(position)); + } + } + + /** + * REV Slots for PID configuration. + */ + enum SparkMAX_slotIdx + { + /** + * Slot 1, used for position PID's. + */ + Position, + /** + * Slot 2, used for velocity PID's. + */ + Velocity, + /** + * Slot 3, used arbitrarily. (Documentation show simulations). + */ + Simulation + } +} diff --git a/swervelib/motors/SparkMaxBrushedMotorSwerve.java b/swervelib/motors/SparkMaxBrushedMotorSwerve.java index ba1add7..fc7d94e 100644 --- a/swervelib/motors/SparkMaxBrushedMotorSwerve.java +++ b/swervelib/motors/SparkMaxBrushedMotorSwerve.java @@ -2,15 +2,15 @@ package swervelib.motors; import com.revrobotics.AbsoluteEncoder; import com.revrobotics.CANSparkMax; -import com.revrobotics.CANSparkMax.ControlType; -import com.revrobotics.CANSparkMax.IdleMode; -import com.revrobotics.CANSparkMaxLowLevel.MotorType; -import com.revrobotics.CANSparkMaxLowLevel.PeriodicFrame; +import com.revrobotics.CANSparkBase.ControlType; +import com.revrobotics.CANSparkBase.IdleMode; +import com.revrobotics.CANSparkLowLevel.MotorType; +import com.revrobotics.CANSparkLowLevel.PeriodicFrame; import com.revrobotics.REVLibError; import com.revrobotics.RelativeEncoder; import com.revrobotics.SparkMaxAlternateEncoder; -import com.revrobotics.SparkMaxPIDController; -import com.revrobotics.SparkMaxRelativeEncoder.Type; +import com.revrobotics.SparkPIDController; +import com.revrobotics.SparkRelativeEncoder.Type; import edu.wpi.first.wpilibj.DriverStation; import java.util.function.Supplier; import swervelib.encoders.SwerveAbsoluteEncoder; @@ -38,7 +38,7 @@ public class SparkMaxBrushedMotorSwerve extends SwerveMotor /** * Closed-loop PID controller. */ - public SparkMaxPIDController pid; + public SparkPIDController pid; /** * Factory default already occurred. */ diff --git a/swervelib/motors/SparkMaxSwerve.java b/swervelib/motors/SparkMaxSwerve.java index 7ec5c2b..e0aa13b 100644 --- a/swervelib/motors/SparkMaxSwerve.java +++ b/swervelib/motors/SparkMaxSwerve.java @@ -1,20 +1,21 @@ package swervelib.motors; import com.revrobotics.AbsoluteEncoder; +import com.revrobotics.CANSparkBase.ControlType; +import com.revrobotics.CANSparkBase.IdleMode; +import com.revrobotics.CANSparkLowLevel.MotorType; +import com.revrobotics.CANSparkLowLevel.PeriodicFrame; import com.revrobotics.CANSparkMax; -import com.revrobotics.CANSparkMax.ControlType; -import com.revrobotics.CANSparkMax.IdleMode; -import com.revrobotics.CANSparkMaxLowLevel.MotorType; -import com.revrobotics.CANSparkMaxLowLevel.PeriodicFrame; import com.revrobotics.MotorFeedbackSensor; import com.revrobotics.REVLibError; import com.revrobotics.RelativeEncoder; -import com.revrobotics.SparkMaxAnalogSensor; -import com.revrobotics.SparkMaxPIDController; +import com.revrobotics.SparkAnalogSensor; +import com.revrobotics.SparkPIDController; import edu.wpi.first.wpilibj.DriverStation; import java.util.function.Supplier; import swervelib.encoders.SwerveAbsoluteEncoder; import swervelib.parser.PIDFConfig; +import swervelib.telemetry.SwerveDriveTelemetry; /** * An implementation of {@link CANSparkMax} as a {@link SwerveMotor}. @@ -37,7 +38,7 @@ public class SparkMaxSwerve extends SwerveMotor /** * Closed-loop PID controller. */ - public SparkMaxPIDController pid; + public SparkPIDController pid; /** * Factory default already occurred. */ @@ -208,7 +209,7 @@ public class SparkMaxSwerve extends SwerveMotor // Taken from // https://github.com/frc3512/SwerveBot-2022/blob/9d31afd05df6c630d5acb4ec2cf5d734c9093bf8/src/main/java/frc/lib/util/CANSparkMaxUtil.java#L67 - configureCANStatusFrames(10, 20, 20, 500, 500); + configureCANStatusFrames(10, 20, 20, 500, 500, 200, 200); } else { configureSparkMax(() -> { @@ -218,7 +219,7 @@ public class SparkMaxSwerve extends SwerveMotor positionConversionFactor); } else { - return ((SparkMaxAnalogSensor) absoluteEncoder.getAbsoluteEncoder()).setPositionConversionFactor( + return ((SparkAnalogSensor) absoluteEncoder.getAbsoluteEncoder()).setPositionConversionFactor( positionConversionFactor); } }); @@ -229,7 +230,7 @@ public class SparkMaxSwerve extends SwerveMotor positionConversionFactor / 60); } else { - return ((SparkMaxAnalogSensor) absoluteEncoder.getAbsoluteEncoder()).setVelocityConversionFactor( + return ((SparkAnalogSensor) absoluteEncoder.getAbsoluteEncoder()).setVelocityConversionFactor( positionConversionFactor / 60); } }); @@ -247,12 +248,12 @@ public class SparkMaxSwerve extends SwerveMotor // int pidSlot = // isDriveMotor ? SparkMAX_slotIdx.Velocity.ordinal() : SparkMAX_slotIdx.Position.ordinal(); int pidSlot = 0; - configureSparkMax(() -> pid.setP(config.p, pidSlot)); - configureSparkMax(() -> pid.setI(config.i, pidSlot)); - configureSparkMax(() -> pid.setD(config.d, pidSlot)); - configureSparkMax(() -> pid.setFF(config.f, pidSlot)); - configureSparkMax(() -> pid.setIZone(config.iz, pidSlot)); - configureSparkMax(() -> pid.setOutputRange(config.output.min, config.output.max, pidSlot)); + configureSparkMax(() -> pid.setP(config.p)); + configureSparkMax(() -> pid.setI(config.i)); + configureSparkMax(() -> pid.setD(config.d)); + configureSparkMax(() -> pid.setFF(config.f)); + configureSparkMax(() -> pid.setIZone(config.iz)); + configureSparkMax(() -> pid.setOutputRange(config.output.min, config.output.max)); } /** @@ -277,16 +278,19 @@ public class SparkMaxSwerve extends SwerveMotor * @param CANStatus2 Motor Position * @param CANStatus3 Analog Sensor Voltage, Analog Sensor Velocity, Analog Sensor Position * @param CANStatus4 Alternate Encoder Velocity, Alternate Encoder Position + * @param CANStatus5 Duty Cycle Absolute Encoder Position, Duty Cycle Absolute Encoder Absolute Angle + * @param CANStatus6 Duty Cycle Absolute Encoder Velocity, Duty Cycle Absolute Encoder Frequency */ public void configureCANStatusFrames( - int CANStatus0, int CANStatus1, int CANStatus2, int CANStatus3, int CANStatus4) + int CANStatus0, int CANStatus1, int CANStatus2, int CANStatus3, int CANStatus4, int CANStatus5, int CANStatus6) { configureSparkMax(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus0, CANStatus0)); configureSparkMax(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus1, CANStatus1)); configureSparkMax(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus2, CANStatus2)); configureSparkMax(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus3, CANStatus3)); configureSparkMax(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus4, CANStatus4)); - // TODO: Configure Status Frame 5 and 6 if necessary + configureSparkMax(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus5, CANStatus5)); + configureSparkMax(() -> motor.setPeriodicFramePeriod(PeriodicFrame.kStatus6, CANStatus6)); // https://docs.revrobotics.com/sparkmax/operating-modes/control-interfaces } @@ -368,6 +372,10 @@ public class SparkMaxSwerve extends SwerveMotor ControlType.kPosition, pidSlot, feedforward)); + if (SwerveDriveTelemetry.isSimulation) + { + encoder.setPosition(setpoint); + } } } diff --git a/swervelib/motors/TalonFXSwerve.java b/swervelib/motors/TalonFXSwerve.java index 8afc6bf..c292cca 100644 --- a/swervelib/motors/TalonFXSwerve.java +++ b/swervelib/motors/TalonFXSwerve.java @@ -1,21 +1,18 @@ package swervelib.motors; -import com.ctre.phoenix.motorcontrol.DemandType; -import com.ctre.phoenix.motorcontrol.NeutralMode; -import com.ctre.phoenix.motorcontrol.StatusFrameEnhanced; -import com.ctre.phoenix.motorcontrol.TalonFXControlMode; -import com.ctre.phoenix.motorcontrol.TalonFXFeedbackDevice; -import com.ctre.phoenix.motorcontrol.can.TalonFXConfiguration; -import com.ctre.phoenix.motorcontrol.can.WPI_TalonFX; -import edu.wpi.first.wpilibj.Timer; +import com.ctre.phoenix6.configs.TalonFXConfiguration; +import com.ctre.phoenix6.configs.TalonFXConfigurator; +import com.ctre.phoenix6.controls.MotionMagicVoltage; +import com.ctre.phoenix6.controls.VelocityVoltage; +import com.ctre.phoenix6.hardware.TalonFX; +import com.ctre.phoenix6.signals.FeedbackSensorSourceValue; +import com.ctre.phoenix6.signals.NeutralModeValue; import swervelib.encoders.SwerveAbsoluteEncoder; -import swervelib.math.SwerveMath; import swervelib.parser.PIDFConfig; -import swervelib.simulation.ctre.PhysicsSim; import swervelib.telemetry.SwerveDriveTelemetry; /** - * {@link com.ctre.phoenix.motorcontrol.can.TalonFX} Swerve Motor. Made by Team 1466 WebbRobotics. + * {@link com.ctre.phoenix6.hardware.TalonFX} Swerve Motor. Made by Team 1466 WebbRobotics. */ public class TalonFXSwerve extends SwerveMotor { @@ -23,31 +20,31 @@ public class TalonFXSwerve extends SwerveMotor /** * Factory default already occurred. */ - private final boolean factoryDefaultOccurred = false; + private final boolean factoryDefaultOccurred = false; /** * Current TalonFX configuration. */ - private final TalonFXConfiguration configuration = new TalonFXConfiguration(); + private TalonFXConfiguration configuration = new TalonFXConfiguration(); /** * Whether the absolute encoder is integrated. */ - private final boolean absoluteEncoder = false; + private final boolean absoluteEncoder = false; + /** + * Motion magic angle voltage setter. + */ + private final MotionMagicVoltage m_angleVoltageSetter = new MotionMagicVoltage(0); +// /** +// * Motion Magic exponential voltage setters. +// */ +// private final MotionMagicExpoVoltage m_angleVoltageExpoSetter = new MotionMagicExpoVoltage(0); + /** + * Velocity voltage setter for controlling drive motor. + */ + private final VelocityVoltage m_velocityVoltageSetter = new VelocityVoltage(0); /** * TalonFX motor controller. */ - WPI_TalonFX motor; - /** - * The position conversion factor to convert raw sensor units to Meters Per 100ms, or Ticks to Degrees. - */ - private double positionConversionFactor = 1; - /** - * If the TalonFX configuration has changed. - */ - private boolean configChanged = true; - /** - * Nominal voltage default to use with feedforward. - */ - private double nominalVoltage = 12.0; + TalonFX motor; /** * Constructor for TalonFX swerve motor. @@ -55,7 +52,7 @@ public class TalonFXSwerve extends SwerveMotor * @param motor Motor to use. * @param isDriveMotor Whether this motor is a drive motor. */ - public TalonFXSwerve(WPI_TalonFX motor, boolean isDriveMotor) + public TalonFXSwerve(TalonFX motor, boolean isDriveMotor) { this.isDriveMotor = isDriveMotor; this.motor = motor; @@ -63,10 +60,10 @@ public class TalonFXSwerve extends SwerveMotor factoryDefaults(); clearStickyFaults(); - if (SwerveDriveTelemetry.isSimulation) - { - PhysicsSim.getInstance().addTalonFX(motor, .25, 6800); - } +// if (SwerveDriveTelemetry.isSimulation) +// { +//// PhysicsSim.getInstance().addTalonFX(motor, .25, 6800); +// } } /** @@ -78,7 +75,7 @@ public class TalonFXSwerve extends SwerveMotor */ public TalonFXSwerve(int id, String canbus, boolean isDriveMotor) { - this(new WPI_TalonFX(id, canbus), isDriveMotor); + this(new TalonFX(id, canbus), isDriveMotor); } /** @@ -89,7 +86,7 @@ public class TalonFXSwerve extends SwerveMotor */ public TalonFXSwerve(int id, boolean isDriveMotor) { - this(new WPI_TalonFX(id), isDriveMotor); + this(new TalonFX(id), isDriveMotor); } /** @@ -100,10 +97,18 @@ public class TalonFXSwerve extends SwerveMotor { if (!factoryDefaultOccurred) { - motor.configFactoryDefault(); - motor.setSensorPhase(true); - motor.configSelectedFeedbackSensor(TalonFXFeedbackDevice.IntegratedSensor, 0, 30); - motor.configNeutralDeadband(0.001); + TalonFXConfigurator cfg = motor.getConfigurator(); + configuration.MotorOutput.NeutralMode = NeutralModeValue.Brake; + configuration.ClosedLoopGeneral.ContinuousWrap = true; + cfg.apply(configuration); + + m_angleVoltageSetter.UpdateFreqHz = 0; +// m_angleVoltageExpoSetter.UpdateFreqHz = 0; + m_velocityVoltageSetter.UpdateFreqHz = 0; +// motor.configFactoryDefault(); +// motor.setSensorPhase(true); +// motor.configSelectedFeedbackSensor(TalonFXFeedbackDevice.IntegratedSensor, 0, 30); +// motor.configNeutralDeadband(0.001); } } @@ -146,7 +151,22 @@ public class TalonFXSwerve extends SwerveMotor @Override public void configureIntegratedEncoder(double positionConversionFactor) { - this.positionConversionFactor = positionConversionFactor; + TalonFXConfigurator cfg = motor.getConfigurator(); + cfg.refresh(configuration); + + positionConversionFactor = 1 / positionConversionFactor; + + configuration.MotionMagic = configuration.MotionMagic + .withMotionMagicCruiseVelocity(100 / positionConversionFactor) + .withMotionMagicAcceleration((100 / positionConversionFactor) / 0.100) + .withMotionMagicExpo_kV(0.12 * positionConversionFactor) + .withMotionMagicExpo_kA(0.1); + + configuration.Feedback = configuration.Feedback + .withSensorToMechanismRatio(positionConversionFactor) + .withFeedbackSensorSource(FeedbackSensorSourceValue.RotorSensor); + + cfg.apply(configuration); // Taken from democat's library. // https://github.com/democat3457/swerve-lib/blob/7c03126b8c22f23a501b2c2742f9d173a5bcbc40/src/main/java/com/swervedrivespecialties/swervelib/ctre/Falcon500DriveControllerFactoryBuilder.java#L16 configureCANStatusFrames(250); @@ -159,7 +179,7 @@ public class TalonFXSwerve extends SwerveMotor */ public void configureCANStatusFrames(int CANStatus1) { - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1); } /** @@ -182,17 +202,17 @@ public class TalonFXSwerve extends SwerveMotor int CANStatus10, int CANStatus12, int CANStatus13, int CANStatus14, int CANStatus21, int CANStatusCurrent) { - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, CANStatus2); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_3_Quadrature, CANStatus3); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_4_AinTempVbat, CANStatus4); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_8_PulseWidth, CANStatus8); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_10_Targets, CANStatus10); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_12_Feedback1, CANStatus12); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_13_Base_PIDF0, CANStatus13); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_14_Turn_PIDF1, CANStatus14); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_21_FeedbackIntegrated, CANStatus21); - motor.setStatusFramePeriod(StatusFrameEnhanced.Status_Brushless_Current, CANStatusCurrent); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, CANStatus2); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_3_Quadrature, CANStatus3); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_4_AinTempVbat, CANStatus4); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_8_PulseWidth, CANStatus8); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_10_Targets, CANStatus10); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_12_Feedback1, CANStatus12); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_13_Base_PIDF0, CANStatus13); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_14_Turn_PIDF1, CANStatus14); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_21_FeedbackIntegrated, CANStatus21); +// motor.setStatusFramePeriod(StatusFrameEnhanced.Status_Brushless_Current, CANStatusCurrent); // TODO: Configure Status Frame 2 thru 21 if necessary // https://v5.docs.ctr-electronics.com/en/stable/ch18_CommonAPI.html#setting-status-frame-periods @@ -206,13 +226,14 @@ public class TalonFXSwerve extends SwerveMotor @Override public void configurePIDF(PIDFConfig config) { - configuration.slot0.kP = config.p; - configuration.slot0.kI = config.i; - configuration.slot0.kD = config.d; - configuration.slot0.kF = config.f; - configuration.slot0.integralZone = config.iz; - configuration.slot0.closedLoopPeakOutput = config.output.max; - configChanged = true; + TalonFXConfigurator cfg = motor.getConfigurator(); + cfg.refresh(configuration.Slot0); + cfg.apply(configuration.Slot0.withKP(config.p) + .withKI(config.i) + .withKD(config.d) + .withKS(config.f)); +// configuration.slot0.integralZone = config.iz; +// configuration.slot0.closedLoopPeakOutput = config.output.max; } /** @@ -224,7 +245,10 @@ public class TalonFXSwerve extends SwerveMotor @Override public void configurePIDWrapping(double minInput, double maxInput) { - // Do nothing + TalonFXConfigurator cfg = motor.getConfigurator(); + cfg.refresh(configuration.ClosedLoopGeneral); + configuration.ClosedLoopGeneral.ContinuousWrap = true; + cfg.apply(configuration.ClosedLoopGeneral); } /** @@ -235,7 +259,7 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setMotorBrake(boolean isBrakeMode) { - motor.setNeutralMode(isBrakeMode ? NeutralMode.Brake : NeutralMode.Coast); + motor.setNeutralMode(isBrakeMode ? NeutralModeValue.Brake : NeutralModeValue.Coast); } /** @@ -246,7 +270,7 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setInverted(boolean inverted) { - Timer.delay(1); +// Timer.delay(1); motor.setInverted(inverted); } @@ -256,11 +280,7 @@ public class TalonFXSwerve extends SwerveMotor @Override public void burnFlash() { - if (configChanged) - { - motor.configAllSettings(configuration, 0); - configChanged = false; - } + // Do nothing } /** @@ -274,20 +294,6 @@ public class TalonFXSwerve extends SwerveMotor motor.set(percentOutput); } - /** - * Convert the setpoint into native sensor units. - * - * @param setpoint Setpoint to mutate. In meters per second or degrees. - * @param position Position in degrees, only used on angle motors. - * @return Setpoint as native sensor units. Encoder ticks per 100ms, or Encoder tick. - */ - public double convertToNativeSensorUnits(double setpoint, double position) - { - setpoint = - isDriveMotor ? setpoint * .1 : SwerveMath.placeInAppropriate0To360Scope(position, setpoint); - return setpoint / positionConversionFactor; - } - /** * Set the closed loop PID controller reference point. * @@ -310,27 +316,17 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setReference(double setpoint, double feedforward, double position) { - if (SwerveDriveTelemetry.isSimulation) - { - PhysicsSim.getInstance().run(); - } - - burnFlash(); +// if (SwerveDriveTelemetry.isSimulation) +// { +// PhysicsSim.getInstance().run(); +// } if (isDriveMotor) { - motor.set( - TalonFXControlMode.Velocity, - convertToNativeSensorUnits(setpoint, position), - DemandType.ArbitraryFeedForward, - feedforward / nominalVoltage); + motor.setControl(m_velocityVoltageSetter.withVelocity(setpoint)); } else { - motor.set( - TalonFXControlMode.Position, - convertToNativeSensorUnits(setpoint, position), - DemandType.ArbitraryFeedForward, - feedforward); + motor.setControl(m_angleVoltageSetter.withPosition(setpoint)); } } @@ -342,7 +338,7 @@ public class TalonFXSwerve extends SwerveMotor @Override public double getVelocity() { - return (motor.getSelectedSensorVelocity() * 10) * positionConversionFactor; + return motor.getVelocity().getValue(); } /** @@ -353,7 +349,7 @@ public class TalonFXSwerve extends SwerveMotor @Override public double getPosition() { - return motor.getSelectedSensorPosition() * positionConversionFactor; + return motor.getPosition().getValue(); } /** @@ -367,7 +363,8 @@ public class TalonFXSwerve extends SwerveMotor if (!absoluteEncoder && !SwerveDriveTelemetry.isSimulation) { position = position < 0 ? (position % 360) + 360 : position; - motor.setSelectedSensorPosition(position / positionConversionFactor, 0, 0); + TalonFXConfigurator cfg = motor.getConfigurator(); + cfg.setPosition(position); } } @@ -379,9 +376,7 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setVoltageCompensation(double nominalVoltage) { - configuration.voltageCompSaturation = nominalVoltage; - configChanged = true; - this.nominalVoltage = nominalVoltage; + // Do not implement } /** @@ -393,9 +388,9 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setCurrentLimit(int currentLimit) { - configuration.supplyCurrLimit.currentLimit = currentLimit; - configuration.supplyCurrLimit.enable = true; - configChanged = true; + TalonFXConfigurator cfg = motor.getConfigurator(); + cfg.refresh(configuration.CurrentLimits); + cfg.apply(configuration.CurrentLimits.withStatorCurrentLimit(currentLimit).withStatorCurrentLimitEnable(true)); } /** @@ -406,9 +401,9 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setLoopRampRate(double rampRate) { - configuration.closedloopRamp = rampRate; - configuration.openloopRamp = rampRate; - configChanged = true; + TalonFXConfigurator cfg = motor.getConfigurator(); + cfg.refresh(configuration.ClosedLoopRamps); + cfg.apply(configuration.ClosedLoopRamps.withVoltageClosedLoopRampPeriod(rampRate)); } /** diff --git a/swervelib/motors/TalonSRXSwerve.java b/swervelib/motors/TalonSRXSwerve.java index 9a469fa..0290d82 100644 --- a/swervelib/motors/TalonSRXSwerve.java +++ b/swervelib/motors/TalonSRXSwerve.java @@ -11,7 +11,6 @@ import edu.wpi.first.wpilibj.Timer; import swervelib.encoders.SwerveAbsoluteEncoder; import swervelib.math.SwerveMath; import swervelib.parser.PIDFConfig; -import swervelib.simulation.ctre.PhysicsSim; import swervelib.telemetry.SwerveDriveTelemetry; /** @@ -64,10 +63,6 @@ public class TalonSRXSwerve extends SwerveMotor factoryDefaults(); clearStickyFaults(); - if (SwerveDriveTelemetry.isSimulation) - { - PhysicsSim.getInstance().addTalonSRX(motor, .25, 6800); - } } /** @@ -298,10 +293,6 @@ public class TalonSRXSwerve extends SwerveMotor @Override public void setReference(double setpoint, double feedforward, double position) { - if (SwerveDriveTelemetry.isSimulation) - { - PhysicsSim.getInstance().run(); - } burnFlash(); diff --git a/swervelib/parser/SwerveDriveConfiguration.java b/swervelib/parser/SwerveDriveConfiguration.java index e55d693..f0df58a 100644 --- a/swervelib/parser/SwerveDriveConfiguration.java +++ b/swervelib/parser/SwerveDriveConfiguration.java @@ -81,4 +81,15 @@ public class SwerveDriveConfiguration } return modArr; } + + /** + * Assume the first module is the furthest. Usually front-left. + * + * @return Drive base radius from center of robot to the farthest wheel in meters. + */ + public double getDriveBaseRadiusMeters() + { + Translation2d furthestModule = moduleLocationsMeters[0]; + return Math.abs(Math.sqrt(Math.pow(furthestModule.getX(), 2) + Math.pow(furthestModule.getY(), 2))); + } } diff --git a/swervelib/parser/json/DeviceJson.java b/swervelib/parser/json/DeviceJson.java index 9f130d5..9b3a8aa 100644 --- a/swervelib/parser/json/DeviceJson.java +++ b/swervelib/parser/json/DeviceJson.java @@ -1,6 +1,6 @@ package swervelib.parser.json; -import com.revrobotics.SparkMaxRelativeEncoder.Type; +import com.revrobotics.SparkRelativeEncoder.Type; import edu.wpi.first.wpilibj.DriverStation; import edu.wpi.first.wpilibj.I2C; import edu.wpi.first.wpilibj.SPI; @@ -20,6 +20,7 @@ import swervelib.imu.NavXSwerve; import swervelib.imu.Pigeon2Swerve; import swervelib.imu.PigeonSwerve; import swervelib.imu.SwerveIMU; +import swervelib.motors.SparkFlexSwerve; import swervelib.motors.SparkMaxBrushedMotorSwerve; import swervelib.motors.SparkMaxSwerve; import swervelib.motors.SwerveMotor; @@ -175,6 +176,8 @@ public class DeviceJson case "neo": case "sparkmax": return new SparkMaxSwerve(id, isDriveMotor); + case "sparkflex": + return new SparkFlexSwerve(id, isDriveMotor); case "falcon": case "talonfx": return new TalonFXSwerve(id, canbus != null ? canbus : "", isDriveMotor); diff --git a/swervelib/simulation/ctre/PhysicsSim.java b/swervelib/simulation/ctre/PhysicsSim.java deleted file mode 100644 index 1254e99..0000000 --- a/swervelib/simulation/ctre/PhysicsSim.java +++ /dev/null @@ -1,172 +0,0 @@ -package swervelib.simulation.ctre; - -import com.ctre.phoenix.motorcontrol.can.TalonFX; -import com.ctre.phoenix.motorcontrol.can.TalonSRX; -import com.ctre.phoenix.motorcontrol.can.VictorSPX; -import java.util.ArrayList; - -/** - * Manages physics simulation for CTRE products. - */ -public class PhysicsSim -{ - - private static PhysicsSim sim; - private final ArrayList _simProfiles = new ArrayList(); - - /** - * Gets the robot simulator instance. - * - * @return {@link PhysicsSim} instance. - */ - public static PhysicsSim getInstance() - { - if (sim == null) - { - sim = new PhysicsSim(); - } - return sim; - } - - /* scales a random domain of [0, 2pi] to [min, max] while prioritizing the peaks */ - static double random(double min, double max) - { - return (max - min) / 2 * Math.sin((Math.random() % 2 * Math.PI)) - + (max + min) / 2; - } - - static double random(double max) - { - return random(0, max); - } - - /** - * Adds a TalonSRX controller to the simulator. - * - * @param talon The TalonSRX device - * @param accelToFullTime The time the motor takes to accelerate from 0 to full, in seconds - * @param fullVel The maximum motor velocity, in ticks per 100ms - */ - public void addTalonSRX(TalonSRX talon, final double accelToFullTime, final double fullVel) - { - addTalonSRX(talon, accelToFullTime, fullVel, false); - } - - /** - * Adds a TalonSRX controller to the simulator. - * - * @param talon The TalonSRX device - * @param accelToFullTime The time the motor takes to accelerate from 0 to full, in seconds - * @param fullVel The maximum motor velocity, in ticks per 100ms - * @param sensorPhase The phase of the TalonSRX sensors - */ - public void addTalonSRX( - TalonSRX talon, - final double accelToFullTime, - final double fullVel, - final boolean sensorPhase) - { - if (talon != null) - { - TalonSRXSimProfile simTalon = - new TalonSRXSimProfile(talon, accelToFullTime, fullVel, sensorPhase); - _simProfiles.add(simTalon); - } - } - - /** - * Adds a TalonFX controller to the simulator. - * - * @param falcon The TalonFX device - * @param accelToFullTime The time the motor takes to accelerate from 0 to full, in seconds - * @param fullVel The maximum motor velocity, in ticks per 100ms - */ - public void addTalonFX(TalonFX falcon, final double accelToFullTime, final double fullVel) - { - addTalonFX(falcon, accelToFullTime, fullVel, false); - } - - /** - * Adds a TalonFX controller to the simulator. - * - * @param falcon The TalonFX device - * @param accelToFullTime The time the motor takes to accelerate from 0 to full, in seconds - * @param fullVel The maximum motor velocity, in ticks per 100ms - * @param sensorPhase The phase of the TalonFX sensors - */ - public void addTalonFX( - TalonFX falcon, - final double accelToFullTime, - final double fullVel, - final boolean sensorPhase) - { - if (falcon != null) - { - TalonFXSimProfile simFalcon = - new TalonFXSimProfile(falcon, accelToFullTime, fullVel, sensorPhase); - _simProfiles.add(simFalcon); - } - } - - /** - * Adds a VictorSPX controller to the simulator. - * - * @param victor The VictorSPX device - */ - public void addVictorSPX(VictorSPX victor) - { - if (victor != null) - { - VictorSPXSimProfile simVictor = new VictorSPXSimProfile(victor); - _simProfiles.add(simVictor); - } - } - - /** - * Runs the simulator: - enable the robot - simulate sensors - */ - public void run() - { - // Simulate devices - for (SimProfile simProfile : _simProfiles) - { - simProfile.run(); - } - } - - /** - * Holds information about a simulated device. - */ - static class SimProfile - { - - private long _lastTime; - private boolean _running = false; - - /** - * Runs the simulation profile. Implemented by device-specific profiles. - */ - public void run() - { - } - - /** - * Returns the time since last call, in milliseconds. - */ - protected double getPeriod() - { - // set the start time if not yet running - if (!_running) - { - _lastTime = System.nanoTime(); - _running = true; - } - - long now = System.nanoTime(); - final double period = (now - _lastTime) / 1000000.; - _lastTime = now; - - return period; - } - } -} diff --git a/swervelib/simulation/ctre/TalonFXSimProfile.java b/swervelib/simulation/ctre/TalonFXSimProfile.java deleted file mode 100644 index 1c57d2e..0000000 --- a/swervelib/simulation/ctre/TalonFXSimProfile.java +++ /dev/null @@ -1,92 +0,0 @@ -package swervelib.simulation.ctre; - -import static swervelib.simulation.ctre.PhysicsSim.random; - -import com.ctre.phoenix.motorcontrol.can.TalonFX; -import swervelib.simulation.ctre.PhysicsSim.SimProfile; - -/** - * Holds information about a simulated TalonFX. - */ -class TalonFXSimProfile extends SimProfile -{ - - private final TalonFX _falcon; - private final double _accelToFullTime; - private final double _fullVel; - private final boolean _sensorPhase; - - /** The current position */ - // private double _pos = 0; - /** - * The current velocity - */ - private double _vel = 0; - - /** - * Creates a new simulation profile for a TalonFX device. - * - * @param falcon The TalonFX device - * @param accelToFullTime The time the motor takes to accelerate from 0 to full, in seconds - * @param fullVel The maximum motor velocity, in ticks per 100ms - * @param sensorPhase The phase of the TalonFX sensors - */ - public TalonFXSimProfile( - final TalonFX falcon, - final double accelToFullTime, - final double fullVel, - final boolean sensorPhase) - { - this._falcon = falcon; - this._accelToFullTime = accelToFullTime; - this._fullVel = fullVel; - this._sensorPhase = sensorPhase; - } - - /** - * Runs the simulation profile. - * - *

    This uses very rudimentary physics simulation and exists to allow users to test features of - * our products in simulation using our examples out of the box. Users may modify this to utilize more accurate - * physics simulation. - */ - public void run() - { - final double period = getPeriod(); - final double accelAmount = _fullVel / _accelToFullTime * period / 1000; - - /// DEVICE SPEED SIMULATION - - double outPerc = _falcon.getSimCollection().getMotorOutputLeadVoltage() / 12; - if (_sensorPhase) - { - outPerc *= -1; - } - // Calculate theoretical velocity with some randomness - double theoreticalVel = outPerc * _fullVel * random(0.95, 1); - // Simulate motor load - if (theoreticalVel > _vel + accelAmount) - { - _vel += accelAmount; - } else if (theoreticalVel < _vel - accelAmount) - { - _vel -= accelAmount; - } else - { - _vel += 0.9 * (theoreticalVel - _vel); - } - // _pos += _vel * period / 100; - - /// SET SIM PHYSICS INPUTS - - _falcon.getSimCollection().addIntegratedSensorPosition((int) (_vel * period / 100)); - _falcon.getSimCollection().setIntegratedSensorVelocity((int) _vel); - - double supplyCurrent = Math.abs(outPerc) * 30 * random(0.95, 1.05); - double statorCurrent = outPerc == 0 ? 0 : supplyCurrent / Math.abs(outPerc); - _falcon.getSimCollection().setSupplyCurrent(supplyCurrent); - _falcon.getSimCollection().setStatorCurrent(statorCurrent); - - _falcon.getSimCollection().setBusVoltage(12 - outPerc * outPerc * 3 / 4 * random(0.95, 1.05)); - } -} diff --git a/swervelib/simulation/ctre/TalonSRXSimProfile.java b/swervelib/simulation/ctre/TalonSRXSimProfile.java deleted file mode 100644 index 7b55fc7..0000000 --- a/swervelib/simulation/ctre/TalonSRXSimProfile.java +++ /dev/null @@ -1,92 +0,0 @@ -package swervelib.simulation.ctre; - -import static swervelib.simulation.ctre.PhysicsSim.random; - -import com.ctre.phoenix.motorcontrol.can.TalonSRX; -import swervelib.simulation.ctre.PhysicsSim.SimProfile; - -/** - * Holds information about a simulated TalonSRX. - */ -class TalonSRXSimProfile extends SimProfile -{ - - private final TalonSRX _talon; - private final double _accelToFullTime; - private final double _fullVel; - private final boolean _sensorPhase; - - /** The current position */ - // private double _pos = 0; - /** - * The current velocity - */ - private double _vel = 0; - - /** - * Creates a new simulation profile for a TalonSRX device. - * - * @param talon The TalonSRX device - * @param accelToFullTime The time the motor takes to accelerate from 0 to full, in seconds - * @param fullVel The maximum motor velocity, in ticks per 100ms - * @param sensorPhase The phase of the TalonSRX sensors - */ - public TalonSRXSimProfile( - final TalonSRX talon, - final double accelToFullTime, - final double fullVel, - final boolean sensorPhase) - { - this._talon = talon; - this._accelToFullTime = accelToFullTime; - this._fullVel = fullVel; - this._sensorPhase = sensorPhase; - } - - /** - * Runs the simulation profile. - * - *

    This uses very rudimentary physics simulation and exists to allow users to test features of - * our products in simulation using our examples out of the box. Users may modify this to utilize more accurate - * physics simulation. - */ - public void run() - { - final double period = getPeriod(); - final double accelAmount = _fullVel / _accelToFullTime * period / 1000; - - /// DEVICE SPEED SIMULATION - - double outPerc = _talon.getSimCollection().getMotorOutputLeadVoltage() / 12; - if (_sensorPhase) - { - outPerc *= -1; - } - // Calculate theoretical velocity with some randomness - double theoreticalVel = outPerc * _fullVel * random(0.95, 1); - // Simulate motor load - if (theoreticalVel > _vel + accelAmount) - { - _vel += accelAmount; - } else if (theoreticalVel < _vel - accelAmount) - { - _vel -= accelAmount; - } else - { - _vel += 0.9 * (theoreticalVel - _vel); - } - // _pos += _vel * period / 100; - - /// SET SIM PHYSICS INPUTS - - _talon.getSimCollection().addQuadraturePosition((int) (_vel * period / 100)); - _talon.getSimCollection().setQuadratureVelocity((int) _vel); - - double supplyCurrent = Math.abs(outPerc) * 30 * random(0.95, 1.05); - double statorCurrent = outPerc == 0 ? 0 : supplyCurrent / Math.abs(outPerc); - _talon.getSimCollection().setSupplyCurrent(supplyCurrent); - _talon.getSimCollection().setStatorCurrent(statorCurrent); - - _talon.getSimCollection().setBusVoltage(12 - outPerc * outPerc * 3 / 4 * random(0.95, 1.05)); - } -} diff --git a/swervelib/simulation/ctre/VictorSPXSimProfile.java b/swervelib/simulation/ctre/VictorSPXSimProfile.java deleted file mode 100644 index a4d1009..0000000 --- a/swervelib/simulation/ctre/VictorSPXSimProfile.java +++ /dev/null @@ -1,41 +0,0 @@ -package swervelib.simulation.ctre; - -import static swervelib.simulation.ctre.PhysicsSim.random; - -import com.ctre.phoenix.motorcontrol.can.VictorSPX; -import swervelib.simulation.ctre.PhysicsSim.SimProfile; - -/** - * Holds information about a simulated VictorSPX. - */ -class VictorSPXSimProfile extends SimProfile -{ - - public final VictorSPX _victor; - - /** - * Creates a new simulation profile for a VictorSPX device. - * - * @param victor The VictorSPX device - */ - public VictorSPXSimProfile(final VictorSPX victor) - { - this._victor = victor; - } - - /** - * Runs the simulation profile. - * - *

    This uses very rudimentary physics simulation and exists to allow users to test features of - * our products in simulation using our examples out of the box. Users may modify this to utilize more accurate - * physics simulation. - */ - public void run() - { - // final double period = getPeriod(); - - // Device voltage simulation - double outPerc = _victor.getSimCollection().getMotorOutputLeadVoltage() / 12; - _victor.getSimCollection().setBusVoltage(12 - outPerc * outPerc * 3 / 4 * random(0.95, 1.05)); - } -} diff --git a/swervelib/simulation/ctre/package-info.java b/swervelib/simulation/ctre/package-info.java deleted file mode 100644 index d38353a..0000000 --- a/swervelib/simulation/ctre/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * CTRE Physics Simulator. - */ -package swervelib.simulation.ctre;