diff --git a/docs/allclasses-index.html b/docs/allclasses-index.html index 36bc1e3..e444f76 100644 --- a/docs/allclasses-index.html +++ b/docs/allclasses-index.html @@ -1,11 +1,11 @@ - + All Classes and Interfaces - + @@ -116,6 +116,14 @@ loadScripts(document, 'script');
SwerveModulePhysicalCharacteristics parsed data.
+
PhysicsSim
+
+
Manages physics simulation for CTRE products.
+
+
PhysicsSim.SimProfile
+
+
Holds information about a simulated device.
+
PIDFConfig
Hold the PIDF and Integral Zone values for a PID.
@@ -217,10 +225,18 @@ loadScripts(document, 'script');
Helper class used to parse the JSON directory with specified configuration options.
-
TalonFXSwerve
+
TalonFXSimProfile
+
Holds information about a simulated TalonFX.
+
+
TalonFXSwerve
+
TalonFX Swerve Motor.
+
TalonSRXSimProfile
+
+
Holds information about a simulated TalonSRX.
+
TalonSRXSwerve
WPI_TalonSRX Swerve Motor.
@@ -237,6 +253,10 @@ loadScripts(document, 'script');
The Talon SRX Slot profile used to configure the motor to use for the PID.
+ +
+
Holds information about a simulated VictorSPX.
+
diff --git a/docs/allpackages-index.html b/docs/allpackages-index.html index b7af180..73654c7 100644 --- a/docs/allpackages-index.html +++ b/docs/allpackages-index.html @@ -1,11 +1,11 @@ - + All Packages - + @@ -74,6 +74,8 @@ loadScripts(document, 'script');
 
swervelib.simulation
 
+
swervelib.simulation.ctre
+
 
diff --git a/docs/constant-values.html b/docs/constant-values.html index 588a90a..942e213 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -1,11 +1,11 @@ - + Constant Field Values - + @@ -65,9 +65,12 @@ loadScripts(document, 'script');
Modifier and Type
Constant Field
Value
-
private final boolean
-
factoryDefaultOccurred
+
private final boolean
+
absoluteEncoder
false
+
private final boolean
+
factoryDefaultOccurred
+
false
  • diff --git a/docs/element-list b/docs/element-list index f9425ee..969b9dc 100644 --- a/docs/element-list +++ b/docs/element-list @@ -8,3 +8,4 @@ swervelib.parser.deserializer swervelib.parser.json swervelib.parser.json.modules swervelib.simulation +swervelib.simulation.ctre diff --git a/docs/help-doc.html b/docs/help-doc.html index 1d91b4c..9aa66f4 100644 --- a/docs/help-doc.html +++ b/docs/help-doc.html @@ -1,11 +1,11 @@ - + API Help - + diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html index 0cb44e9..6b0b72d 100644 --- a/docs/index-files/index-1.html +++ b/docs/index-files/index-1.html @@ -1,11 +1,11 @@ - + A-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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.SparkMaxSwerve
    @@ -85,6 +85,26 @@ loadScripts(document, 'script');
    Absolute encoder offset from 0 in degrees.
    +
    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, boolean) - Method in class swervelib.SwerveDrive
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with @@ -219,7 +239,7 @@ loadScripts(document, 'script');
    Secondary PID for talons.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index dd3d9cd..cb9936c 100644 --- a/docs/index-files/index-10.html +++ b/docs/index-files/index-10.html @@ -1,11 +1,11 @@ - + K-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -58,7 +58,7 @@ loadScripts(document, 'script');
    Swerve Kinematics object utilizing second order kinematics.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index ec3d240..332d9eb 100644 --- a/docs/index-files/index-11.html +++ b/docs/index-files/index-11.html @@ -1,11 +1,11 @@ - + L-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    L

    lastAngle - Variable in class swervelib.SwerveController
    @@ -89,7 +89,7 @@ loadScripts(document, 'script');
    Point all modules toward the robot center, thus making the robot very difficult to move.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index bb7d69a..0145d08 100644 --- a/docs/index-files/index-12.html +++ b/docs/index-files/index-12.html @@ -1,11 +1,11 @@ - + M-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    M

    m_forwardKinematics - Variable in class swervelib.math.SwerveKinematics2
    @@ -188,7 +188,7 @@ loadScripts(document, 'script');
    Default constructor with values.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 856221b..a616440 100644 --- a/docs/index-files/index-13.html +++ b/docs/index-files/index-13.html @@ -1,11 +1,11 @@ - + N-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    N

    NavXSwerve - Class in swervelib.imu
    @@ -61,8 +61,12 @@ loadScripts(document, 'script');
    Constructor for the NavX swerve.
    +
    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 R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 5ee9853..e48f94f 100644 --- a/docs/index-files/index-14.html +++ b/docs/index-files/index-14.html @@ -1,11 +1,11 @@ - + O-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    O

    omegaRadPerSecond - Variable in class swervelib.math.SwerveModuleState2
    @@ -74,7 +74,7 @@ loadScripts(document, 'script');
    The PIDF output range.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 6cf224b..28f2621 100644 --- a/docs/index-files/index-15.html +++ b/docs/index-files/index-15.html @@ -1,11 +1,11 @@ - + P-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -71,6 +71,16 @@ loadScripts(document, 'script');
    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.SparkMaxSwerve
    Closed-loop PID controller.
    @@ -135,13 +145,17 @@ loadScripts(document, 'script');
    Generate the SwerveIMU for pigeon.
    +
    placeInAppropriate0To360Scope(double, double) - Method in class swervelib.motors.TalonFXSwerve
    +
    +
    Put an angle within the the 360 deg scope of a reference.
    +
    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.
    +
    The position conversion factor to convert raw sensor units to Meters Per 100ms, or Ticks to Degrees.
    positionConversionFactor - Variable in class swervelib.motors.TalonSRXSwerve
    @@ -156,7 +170,7 @@ loadScripts(document, 'script');
    Primary PID for talons.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 078025c..9bdc227 100644 --- a/docs/index-files/index-16.html +++ b/docs/index-files/index-16.html @@ -1,11 +1,11 @@ - + R-Index - + @@ -50,13 +50,17 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    +
     
    REMOTE_SENSOR_0 - Enum constant in enum class swervelib.motors.TalonSRXSwerve.CTRE_remoteSensor
    Remote sensor 0.
    @@ -73,8 +77,28 @@ loadScripts(document, 'script');
    Resets odometry to the given pose.
    +
    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 R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index e4322c5..7c52391 100644 --- a/docs/index-files/index-17.html +++ b/docs/index-files/index-17.html @@ -1,11 +1,11 @@ - + S-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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.SparkMaxSwerve
    @@ -261,6 +261,8 @@ loadScripts(document, 'script');
    Set the yaw in degrees.
    +
    sim - Static variable in class swervelib.simulation.ctre.PhysicsSim
    +
     
    simIMU - Variable in class swervelib.SwerveDrive
    Simulation of the swerve drive.
    @@ -269,6 +271,8 @@ loadScripts(document, 'script');
    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.
    @@ -415,6 +419,8 @@ loadScripts(document, 'script');
     
    swervelib.simulation - package swervelib.simulation
     
    +
    swervelib.simulation.ctre - package swervelib.simulation.ctre
    +
     
    SwerveMath - Class in swervelib.math
    Mathematical functions which pertain to swerve drive.
    @@ -500,7 +506,7 @@ loadScripts(document, 'script');
    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 R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index b1a768f..3e2469d 100644 --- a/docs/index-files/index-18.html +++ b/docs/index-files/index-18.html @@ -1,11 +1,11 @@ - + T-Index - + @@ -50,9 +50,17 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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.
    @@ -69,6 +77,14 @@ loadScripts(document, 'script');
    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.
    @@ -134,7 +150,7 @@ loadScripts(document, 'script');
    The device type, e.g.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 2229e0f..c677a43 100644 --- a/docs/index-files/index-19.html +++ b/docs/index-files/index-19.html @@ -1,11 +1,11 @@ - + U-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    U

    updateOdometry() - Method in class swervelib.SwerveDrive
    @@ -67,7 +67,7 @@ loadScripts(document, 'script');
    Update the position and state of the module.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 480f432..d98fa65 100644 --- a/docs/index-files/index-2.html +++ b/docs/index-files/index-2.html @@ -1,11 +1,11 @@ - + B-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    B

    bigInverseKinematics - Variable in class swervelib.math.SwerveKinematics2
    @@ -80,7 +80,7 @@ loadScripts(document, 'script');
    Save the configurations from flash to EEPROM.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 4b2c2a9..4443cba 100644 --- a/docs/index-files/index-20.html +++ b/docs/index-files/index-20.html @@ -1,11 +1,11 @@ - + V-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -101,8 +101,16 @@ the order they are declared.
    PIDF configuration options for the drive motor closed-loop PID controller.
    +
    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.
    +
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 780bb36..fcc31ea 100644 --- a/docs/index-files/index-21.html +++ b/docs/index-files/index-21.html @@ -1,11 +1,11 @@ - + W-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    W

    wheelDiameter - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    @@ -74,7 +74,7 @@ loadScripts(document, 'script');
    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 R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 21540ea..1e8986f 100644 --- a/docs/index-files/index-22.html +++ b/docs/index-files/index-22.html @@ -1,11 +1,11 @@ - + X-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -58,7 +58,7 @@ loadScripts(document, 'script');
    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 R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index a7ed783..faeb60e 100644 --- a/docs/index-files/index-23.html +++ b/docs/index-files/index-23.html @@ -1,11 +1,11 @@ - + Y-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -78,7 +78,7 @@ loadScripts(document, 'script');
    Offset for the NavX yaw reading.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 2fb80c7..9fa7666 100644 --- a/docs/index-files/index-24.html +++ b/docs/index-files/index-24.html @@ -1,11 +1,11 @@ - + Z-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -58,7 +58,7 @@ loadScripts(document, 'script');
    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 R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 new file mode 100644 index 0000000..b834bd2 --- /dev/null +++ b/docs/index-files/index-25.html @@ -0,0 +1,93 @@ + + + + +_-Index + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Index

    +
    +A B C D E F G H I K L M N O P 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 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 index a0f6b92..62fbcc1 100644 --- a/docs/index-files/index-3.html +++ b/docs/index-files/index-3.html @@ -1,11 +1,11 @@ - + C-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    C

    calcMaxAccel(Rotation2d, double, double, Translation3d, SwerveDriveConfiguration) - Static method in class swervelib.math.SwerveMath
    @@ -166,6 +166,14 @@ loadScripts(document, 'script');
    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.
    +
    +
    configuration - Variable in class swervelib.motors.TalonFXSwerve
    +
    +
    Current TalonFX configuration.
    +
    configuration - Variable in class swervelib.SwerveModule
    Swerve module configuration options.
    @@ -244,6 +252,10 @@ loadScripts(document, 'script');
    ControllerPropertiesJson() - Constructor for class swervelib.parser.json.ControllerPropertiesJson
     
    +
    convertToNativeSensorUnits(double) - Method in class swervelib.motors.TalonFXSwerve
    +
    +
    Convert the setpoint into native sensor units.
    +
    createControllerConfiguration(SwerveDriveConfiguration) - Method in class swervelib.parser.json.ControllerPropertiesJson
    Create the SwerveControllerConfiguration based on parsed and given data.
    @@ -299,7 +311,7 @@ loadScripts(document, 'script');
    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 R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 6f9f310..26ad7c5 100644 --- a/docs/index-files/index-4.html +++ b/docs/index-files/index-4.html @@ -1,11 +1,11 @@ - + D-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -133,7 +133,7 @@ loadScripts(document, 'script');
    Time delta since last update
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 60f0345..4774b7b 100644 --- a/docs/index-files/index-5.html +++ b/docs/index-files/index-5.html @@ -1,11 +1,11 @@ - + E-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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.CANCoderSwerve
    @@ -74,7 +74,7 @@ loadScripts(document, 'script');
    Encoder pulse per rotation for non-integrated encoders.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index d23e5a4..d596fc2 100644 --- a/docs/index-files/index-6.html +++ b/docs/index-files/index-6.html @@ -1,11 +1,11 @@ - + F-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -150,7 +150,7 @@ loadScripts(document, 'script');
    Fourth PID slot for talons.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 4c46444..37e9955 100644 --- a/docs/index-files/index-7.html +++ b/docs/index-files/index-7.html @@ -1,11 +1,11 @@ - + G-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

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

    G

    gearRatio - Variable in class swervelib.parser.json.PhysicalPropertiesJson
    @@ -129,6 +129,10 @@ loadScripts(document, 'script');
    Get the instantiated IMU object.
    +
    getInstance() - Static method in class swervelib.simulation.ctre.PhysicsSim
    +
    +
    Gets the robot simulator instance.
    +
    getModuleConfigurationByName(String, SwerveDriveConfiguration) - Static method in class swervelib.parser.SwerveParser
    Get the swerve module by the json name.
    @@ -153,6 +157,10 @@ loadScripts(document, 'script');
    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.
    @@ -193,6 +201,10 @@ loadScripts(document, 'script');
    Get the encoder conversion for position encoders.
    +
    getRawPosition() - Method in class swervelib.motors.TalonFXSwerve
    +
    +
    Get the raw position.
    +
    getRelativePosition() - Method in class swervelib.SwerveModule
    Get the relative angle in degrees.
    @@ -302,7 +314,7 @@ loadScripts(document, 'script');
    NavX IMU.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index a3a95b1..cbc3649 100644 --- a/docs/index-files/index-8.html +++ b/docs/index-files/index-8.html @@ -1,11 +1,11 @@ - + H-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -62,7 +62,7 @@ loadScripts(document, 'script');
    PIDF for the heading of the robot.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 index 35cfc5b..d3cf6ba 100644 --- a/docs/index-files/index-9.html +++ b/docs/index-files/index-9.html @@ -1,11 +1,11 @@ - + I-Index - + @@ -50,7 +50,7 @@ loadScripts(document, 'script');

    Index

    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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
    @@ -130,7 +130,7 @@ loadScripts(document, 'script');
    Integral zone of the PID.
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +A B C D E F G H I K L M N O P 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 36aadaf..e5fe83c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,11 +1,11 @@ - + Overview - + @@ -72,6 +72,8 @@ loadScripts(document, 'script');
     
    swervelib.simulation
     
    +
    swervelib.simulation.ctre
    +
     
    diff --git a/docs/member-search-index.js b/docs/member-search-index.js index 6c5e45c..96a418b 100644 --- a/docs/member-search-index.js +++ b/docs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"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":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double, boolean)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double,boolean)"},{"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.imu","c":"AnalogGyroSwerve","l":"AnalogGyroSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.math","c":"SwerveModuleState2","l":"angle"},{"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","c":"SwerveModulePhysicalCharacteristics","l":"angleEncoderPulsePerRotation"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleGearRatio"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"angleJoystickRadiusDeadband"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"angleJoyStickRadiusDeadband"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleKV"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotor"},{"p":"swervelib","c":"SwerveModule","l":"angleMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorCurrentLimit"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"angleMotorFreeSpeedRPM"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorFreeSpeedRPM"},{"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":"applyDeadband(double, boolean, double)","u":"applyDeadband(double,boolean,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"AUXILIARY_PID"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"bigInverseKinematics"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"BoolMotorJson()","u":"%3Cinit%3E()"},{"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, double, double, Translation3d, SwerveDriveConfiguration)","u":"calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,double,double,edu.wpi.first.math.geometry.Translation3d,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateAngleKV(double, double, double)","u":"calculateAngleKV(double,double,double)"},{"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.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.parser","c":"SwerveParser","l":"checkDirectory(File)","u":"checkDirectory(java.io.File)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","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":"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":"CANCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"configure(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"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":"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":"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.parser","c":"SwerveParser","l":"controllerPropertiesJson"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"ControllerPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"createControllerConfiguration(SwerveDriveConfiguration)","u":"createControllerConfiguration(swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"createDriveFeedforward()"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createEncoder()"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createIMU()"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createIntegratedEncoder(SwerveMotor)","u":"createIntegratedEncoder(swervelib.motors.SwerveMotor)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"createModuleConfiguration(PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics)","u":"createModuleConfiguration(swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,double,swervelib.parser.SwerveModulePhysicalCharacteristics)"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"createModules(SwerveModuleConfiguration[])","u":"createModules(swervelib.parser.SwerveModuleConfiguration[])"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createMotor(boolean)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"createPhysicalProperties(double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"createPIDController()"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"CTRE_pidIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"CTRE_remoteSensor()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"CTRE_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"currentLimit"},{"p":"swervelib.parser","c":"PIDFConfig","l":"d"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"desaturateWheelSpeeds(SwerveModuleState2[], ChassisSpeeds, double, double, double)","u":"desaturateWheelSpeeds(swervelib.math.SwerveModuleState2[],edu.wpi.first.math.kinematics.ChassisSpeeds,double,double,double)"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"desaturateWheelSpeeds(SwerveModuleState2[], double)","u":"desaturateWheelSpeeds(swervelib.math.SwerveModuleState2[],double)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"DeviceJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"Distance"},{"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(Translation2d, double, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveEncoderPulsePerRotation"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveGearRatio"},{"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":"CANCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"encoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"encoder"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"encoderPulsePerRotation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"f"},{"p":"swervelib.encoders","c":"CANCoderSwerve","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":"SparkMaxSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaultOccurred"},{"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.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"FOURTH_PID"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"gearRatio"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsolutePosition()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsolutePosition()"},{"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.parser","c":"SwerveParser","l":"getModuleConfigurationByName(String, SwerveDriveConfiguration)","u":"getModuleConfigurationByName(java.lang.String,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"getModulePositions()"},{"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","c":"SwerveIMUSimulation","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPose()"},{"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.parser","c":"SwerveModuleConfiguration","l":"getPositionEncoderConversion(boolean)"},{"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.simulation","c":"SwerveModuleSimulation","l":"getState()"},{"p":"swervelib","c":"SwerveModule","l":"getState()"},{"p":"swervelib","c":"SwerveDrive","l":"getStates()"},{"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)","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":"getTranslation2d(ChassisSpeeds)","u":"getTranslation2d(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"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":"ADIS16448Swerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"gyro"},{"p":"swervelib.imu","c":"NavXSwerve","l":"gyro"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"heading"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"headingPIDF"},{"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.parser.json","c":"ModuleJson","l":"inverted"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"invertedIMU"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"invertedIMU"},{"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.parser","c":"PIDFConfig","l":"iz"},{"p":"swervelib","c":"SwerveDrive","l":"kinematics"},{"p":"swervelib","c":"SwerveController","l":"lastAngle"},{"p":"swervelib","c":"SwerveModule","l":"lastAngle"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"lastTime"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"lastTime"},{"p":"swervelib.math","c":"SwerveMath","l":"limitVelocity(Translation2d, ChassisSpeeds, Pose2d, double, double, double, Translation3d, SwerveDriveConfiguration)","u":"limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,double,edu.wpi.first.math.geometry.Translation3d,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.math","c":"SwerveKinematics2","l":"m_forwardKinematics"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_inverseKinematics"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_modules"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_moduleStates"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_numModules"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_prevCoR"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"max"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxAngularVelocity"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"maxSpeed"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxSpeed"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"maxSpeed"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"maxSpeed"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"min"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleConfigs"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","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":"SwerveDrive","l":"moduleSynchronizationCounter"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"MotionProfile"},{"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.imu","c":"NavXSwerve","l":"NavXSwerve()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveModuleState2","l":"omegaRadPerSecond"},{"p":"swervelib.parser","c":"SwerveParser","l":"openJson(File)","u":"openJson(java.io.File)"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","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":"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":"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.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.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"PRIMARY_PID"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"rampRate"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"REMOTE_SENSOR_0"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"REMOTE_SENSOR_1"},{"p":"swervelib","c":"SwerveDrive","l":"replaceSwerveModuleFeedforward(SimpleMotorFeedforward)","u":"replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib","c":"SwerveDrive","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"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":"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.simulation","c":"SwerveIMUSimulation","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setChassisSpeeds(ChassisSpeeds)","u":"setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"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(SwerveModuleState2, boolean)","u":"setDesiredState(swervelib.math.SwerveModuleState2,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":"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":"SwerveDrive","l":"setModuleStates(SwerveModuleState2[], boolean)","u":"setModuleStates(swervelib.math.SwerveModuleState2[],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.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":"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":"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.imu","c":"ADIS16448Swerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"SwerveIMU","l":"setYaw(double)"},{"p":"swervelib","c":"SwerveDrive","l":"simIMU"},{"p":"swervelib","c":"SwerveModule","l":"simModule"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Simulation"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"SparkMaxEncoderSwerve(SwerveMotor)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor)"},{"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.math","c":"SwerveModuleState2","l":"speedMetersPerSecond"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"state"},{"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)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double)"},{"p":"swervelib","c":"SwerveDrive","l":"SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.SwerveControllerConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDriveConfiguration"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, double, boolean)","u":"%3Cinit%3E(swervelib.parser.SwerveModuleConfiguration[],swervelib.imu.SwerveIMU,double,boolean)"},{"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.imu","c":"SwerveIMU","l":"SwerveIMU()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"SwerveIMUSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"SwerveKinematics2(Translation2d...)","u":"%3Cinit%3E(edu.wpi.first.math.geometry.Translation2d...)"},{"p":"swervelib.math","c":"SwerveMath","l":"SwerveMath()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveModule","l":"SwerveModule(int, SwerveModuleConfiguration)","u":"%3Cinit%3E(int,swervelib.parser.SwerveModuleConfiguration)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,double,swervelib.parser.SwerveModulePhysicalCharacteristics)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,double,swervelib.parser.SwerveModulePhysicalCharacteristics,boolean,boolean,boolean)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(double, double, double, double, double, double, int, int)","u":"%3Cinit%3E(double,double,double,double,double,double,int,int)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(double, double, double, double, double, double, int, int, double, double, int, int)","u":"%3Cinit%3E(double,double,double,double,double,double,int,int,double,double,int,int)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveModules"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"SwerveModuleSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveModuleState2","l":"SwerveModuleState2()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveModuleState2","l":"SwerveModuleState2(double, Rotation2d, double)","u":"%3Cinit%3E(double,edu.wpi.first.math.geometry.Rotation2d,double)"},{"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":"synchronizeEncoders()"},{"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(WPI_TalonFX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.WPI_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":"swervelib","c":"SwerveController","l":"thetaController"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"THIRD_PID"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"timer"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"timer"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"toChassisSpeeds(SwerveModuleState2...)","u":"toChassisSpeeds(swervelib.math.SwerveModuleState2...)"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"toSwerveModuleStates(ChassisSpeeds)","u":"toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"toSwerveModuleStates(ChassisSpeeds, Translation2d)","u":"toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"toTwist2d(SwerveModulePosition...)","u":"toTwist2d(edu.wpi.first.math.kinematics.SwerveModulePosition...)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"Turning"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"type"},{"p":"swervelib","c":"SwerveDrive","l":"updateOdometry()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"updateOdometry(SwerveKinematics2, SwerveModuleState2[], Pose2d[], Field2d)","u":"updateOdometry(swervelib.math.SwerveKinematics2,swervelib.math.SwerveModuleState2[],edu.wpi.first.math.geometry.Pose2d[],edu.wpi.first.wpilibj.smartdashboard.Field2d)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"updateStateAndPosition(SwerveModuleState2)","u":"updateStateAndPosition(swervelib.math.SwerveModuleState2)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"values()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"values()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"values()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Velocity"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"Velocity"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"velocityPIDF"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"wheelDiameter"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"wheelDiameter"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib","c":"SwerveController","l":"withinHypotDeadband(double, double)","u":"withinHypotDeadband(double,double)"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"x"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"y"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"yawOffset"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"yawOffset"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"yawOffset"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"yawOffset"},{"p":"swervelib.imu","c":"NavXSwerve","l":"yawOffset"},{"p":"swervelib","c":"SwerveDrive","l":"zeroGyro()"}];updateSearchResults(); \ No newline at end of file +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":"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.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, boolean)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double,boolean)"},{"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.imu","c":"AnalogGyroSwerve","l":"AnalogGyroSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.math","c":"SwerveModuleState2","l":"angle"},{"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","c":"SwerveModulePhysicalCharacteristics","l":"angleEncoderPulsePerRotation"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleGearRatio"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"angleJoystickRadiusDeadband"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"angleJoyStickRadiusDeadband"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleKV"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotor"},{"p":"swervelib","c":"SwerveModule","l":"angleMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorCurrentLimit"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"angleMotorFreeSpeedRPM"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorFreeSpeedRPM"},{"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":"applyDeadband(double, boolean, double)","u":"applyDeadband(double,boolean,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"AUXILIARY_PID"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"bigInverseKinematics"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"BoolMotorJson()","u":"%3Cinit%3E()"},{"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, double, double, Translation3d, SwerveDriveConfiguration)","u":"calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,double,double,edu.wpi.first.math.geometry.Translation3d,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateAngleKV(double, double, double)","u":"calculateAngleKV(double,double,double)"},{"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.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.parser","c":"SwerveParser","l":"checkDirectory(File)","u":"checkDirectory(java.io.File)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","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":"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":"TalonFXSwerve","l":"configuration"},{"p":"swervelib","c":"SwerveModule","l":"configuration"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"configure(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"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":"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":"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.parser","c":"SwerveParser","l":"controllerPropertiesJson"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"ControllerPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"convertToNativeSensorUnits(double)"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"createControllerConfiguration(SwerveDriveConfiguration)","u":"createControllerConfiguration(swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"createDriveFeedforward()"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createEncoder()"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createIMU()"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createIntegratedEncoder(SwerveMotor)","u":"createIntegratedEncoder(swervelib.motors.SwerveMotor)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"createModuleConfiguration(PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics)","u":"createModuleConfiguration(swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,double,swervelib.parser.SwerveModulePhysicalCharacteristics)"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"createModules(SwerveModuleConfiguration[])","u":"createModules(swervelib.parser.SwerveModuleConfiguration[])"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createMotor(boolean)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"createPhysicalProperties(double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"createPIDController()"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"CTRE_pidIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"CTRE_remoteSensor()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"CTRE_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"currentLimit"},{"p":"swervelib.parser","c":"PIDFConfig","l":"d"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"desaturateWheelSpeeds(SwerveModuleState2[], ChassisSpeeds, double, double, double)","u":"desaturateWheelSpeeds(swervelib.math.SwerveModuleState2[],edu.wpi.first.math.kinematics.ChassisSpeeds,double,double,double)"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"desaturateWheelSpeeds(SwerveModuleState2[], double)","u":"desaturateWheelSpeeds(swervelib.math.SwerveModuleState2[],double)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"DeviceJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"Distance"},{"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(Translation2d, double, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveEncoderPulsePerRotation"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveGearRatio"},{"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":"CANCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"encoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"encoder"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"encoderPulsePerRotation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"f"},{"p":"swervelib.encoders","c":"CANCoderSwerve","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":"SparkMaxSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaultOccurred"},{"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.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"FOURTH_PID"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"gearRatio"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsolutePosition()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsolutePosition()"},{"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.parser","c":"SwerveParser","l":"getModuleConfigurationByName(String, SwerveDriveConfiguration)","u":"getModuleConfigurationByName(java.lang.String,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"getModulePositions()"},{"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":"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.parser","c":"SwerveModuleConfiguration","l":"getPositionEncoderConversion(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getRawPosition()"},{"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.simulation","c":"SwerveModuleSimulation","l":"getState()"},{"p":"swervelib","c":"SwerveModule","l":"getState()"},{"p":"swervelib","c":"SwerveDrive","l":"getStates()"},{"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)","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":"getTranslation2d(ChassisSpeeds)","u":"getTranslation2d(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"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":"ADIS16448Swerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getYawPitchRoll(double[])"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"gyro"},{"p":"swervelib.imu","c":"NavXSwerve","l":"gyro"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"heading"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"headingPIDF"},{"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.parser.json","c":"ModuleJson","l":"inverted"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"invertedIMU"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"invertedIMU"},{"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.parser","c":"PIDFConfig","l":"iz"},{"p":"swervelib","c":"SwerveDrive","l":"kinematics"},{"p":"swervelib","c":"SwerveController","l":"lastAngle"},{"p":"swervelib","c":"SwerveModule","l":"lastAngle"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"lastTime"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"lastTime"},{"p":"swervelib.math","c":"SwerveMath","l":"limitVelocity(Translation2d, ChassisSpeeds, Pose2d, double, double, double, Translation3d, SwerveDriveConfiguration)","u":"limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,double,edu.wpi.first.math.geometry.Translation3d,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.math","c":"SwerveKinematics2","l":"m_forwardKinematics"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_inverseKinematics"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_modules"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_moduleStates"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_numModules"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"m_prevCoR"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"max"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxAngularVelocity"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"maxSpeed"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxSpeed"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"maxSpeed"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"maxSpeed"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"min"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleConfigs"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","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":"SwerveDrive","l":"moduleSynchronizationCounter"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"MotionProfile"},{"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.imu","c":"NavXSwerve","l":"NavXSwerve()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveMath","l":"normalizeAngle(double)"},{"p":"swervelib.math","c":"SwerveModuleState2","l":"omegaRadPerSecond"},{"p":"swervelib.parser","c":"SwerveParser","l":"openJson(File)","u":"openJson(java.io.File)"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","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":"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":"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.motors","c":"TalonFXSwerve","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"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.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"PRIMARY_PID"},{"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.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"REMOTE_SENSOR_0"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"REMOTE_SENSOR_1"},{"p":"swervelib","c":"SwerveDrive","l":"replaceSwerveModuleFeedforward(SimpleMotorFeedforward)","u":"replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib","c":"SwerveDrive","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"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":"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":"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.simulation","c":"SwerveIMUSimulation","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setChassisSpeeds(ChassisSpeeds)","u":"setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"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(SwerveModuleState2, boolean)","u":"setDesiredState(swervelib.math.SwerveModuleState2,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":"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":"SwerveDrive","l":"setModuleStates(SwerveModuleState2[], boolean)","u":"setModuleStates(swervelib.math.SwerveModuleState2[],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.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":"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":"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.imu","c":"ADIS16448Swerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"setYaw(double)"},{"p":"swervelib.imu","c":"SwerveIMU","l":"setYaw(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.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"SparkMaxEncoderSwerve(SwerveMotor)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor)"},{"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.math","c":"SwerveModuleState2","l":"speedMetersPerSecond"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"state"},{"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)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double)"},{"p":"swervelib","c":"SwerveDrive","l":"SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.SwerveControllerConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDriveConfiguration"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, double, boolean)","u":"%3Cinit%3E(swervelib.parser.SwerveModuleConfiguration[],swervelib.imu.SwerveIMU,double,boolean)"},{"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.imu","c":"SwerveIMU","l":"SwerveIMU()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"SwerveIMUSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"SwerveKinematics2(Translation2d...)","u":"%3Cinit%3E(edu.wpi.first.math.geometry.Translation2d...)"},{"p":"swervelib.math","c":"SwerveMath","l":"SwerveMath()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveModule","l":"SwerveModule(int, SwerveModuleConfiguration)","u":"%3Cinit%3E(int,swervelib.parser.SwerveModuleConfiguration)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,double,swervelib.parser.SwerveModulePhysicalCharacteristics)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, double, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,double,swervelib.parser.SwerveModulePhysicalCharacteristics,boolean,boolean,boolean)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(double, double, double, double, double, double, int, int)","u":"%3Cinit%3E(double,double,double,double,double,double,int,int)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(double, double, double, double, double, double, int, int, double, double, int, int)","u":"%3Cinit%3E(double,double,double,double,double,double,int,int,double,double,int,int)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveModules"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"SwerveModuleSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveModuleState2","l":"SwerveModuleState2()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveModuleState2","l":"SwerveModuleState2(double, Rotation2d, double)","u":"%3Cinit%3E(double,edu.wpi.first.math.geometry.Rotation2d,double)"},{"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":"synchronizeEncoders()"},{"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","c":"SwerveController","l":"thetaController"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"THIRD_PID"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"timer"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"timer"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"toChassisSpeeds(SwerveModuleState2...)","u":"toChassisSpeeds(swervelib.math.SwerveModuleState2...)"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"toSwerveModuleStates(ChassisSpeeds)","u":"toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"toSwerveModuleStates(ChassisSpeeds, Translation2d)","u":"toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib.math","c":"SwerveKinematics2","l":"toTwist2d(SwerveModulePosition...)","u":"toTwist2d(edu.wpi.first.math.kinematics.SwerveModulePosition...)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"Turning"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"type"},{"p":"swervelib","c":"SwerveDrive","l":"updateOdometry()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"updateOdometry(SwerveKinematics2, SwerveModuleState2[], Pose2d[], Field2d)","u":"updateOdometry(swervelib.math.SwerveKinematics2,swervelib.math.SwerveModuleState2[],edu.wpi.first.math.geometry.Pose2d[],edu.wpi.first.wpilibj.smartdashboard.Field2d)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"updateStateAndPosition(SwerveModuleState2)","u":"updateStateAndPosition(swervelib.math.SwerveModuleState2)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_pidIdx","l":"values()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_remoteSensor","l":"values()"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"values()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Velocity"},{"p":"swervelib.motors","c":"TalonSRXSwerve.CTRE_slotIdx","l":"Velocity"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"velocityPIDF"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"VictorSPXSimProfile(VictorSPX)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.VictorSPX)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"wheelDiameter"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"wheelDiameter"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib","c":"SwerveController","l":"withinHypotDeadband(double, double)","u":"withinHypotDeadband(double,double)"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"x"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"y"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"yawOffset"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"yawOffset"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"yawOffset"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"yawOffset"},{"p":"swervelib.imu","c":"NavXSwerve","l":"yawOffset"},{"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 b2e0cf7..89390fc 100644 --- a/docs/overview-summary.html +++ b/docs/overview-summary.html @@ -1,11 +1,11 @@ - + Generated Documentation (Untitled) - + diff --git a/docs/overview-tree.html b/docs/overview-tree.html index 0159156..1361084 100644 --- a/docs/overview-tree.html +++ b/docs/overview-tree.html @@ -1,11 +1,11 @@ - + Class Hierarchy - + @@ -60,7 +60,8 @@ loadScripts(document, 'script');
  • swervelib.parser.deserializer,
  • swervelib.parser.json,
  • swervelib.parser.json.modules,
  • -
  • swervelib.simulation
  • +
  • swervelib.simulation,
  • +
  • swervelib.simulation.ctre
  • @@ -76,6 +77,14 @@ loadScripts(document, 'script');
  • 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
  • diff --git a/docs/package-search-index.js b/docs/package-search-index.js index d14f7be..c6dda5b 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"}];updateSearchResults(); \ No newline at end of file +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"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/swervelib/SwerveController.html b/docs/swervelib/SwerveController.html index 314b1b0..a457335 100644 --- a/docs/swervelib/SwerveController.html +++ b/docs/swervelib/SwerveController.html @@ -1,11 +1,11 @@ - + SwerveController - + diff --git a/docs/swervelib/SwerveDrive.html b/docs/swervelib/SwerveDrive.html index db489cc..6e2f919 100644 --- a/docs/swervelib/SwerveDrive.html +++ b/docs/swervelib/SwerveDrive.html @@ -1,11 +1,11 @@ - + SwerveDrive - + diff --git a/docs/swervelib/SwerveModule.html b/docs/swervelib/SwerveModule.html index 1aaf066..4c08fa1 100644 --- a/docs/swervelib/SwerveModule.html +++ b/docs/swervelib/SwerveModule.html @@ -1,11 +1,11 @@ - + SwerveModule - + diff --git a/docs/swervelib/encoders/CANCoderSwerve.html b/docs/swervelib/encoders/CANCoderSwerve.html index e8ed17a..ea4799a 100644 --- a/docs/swervelib/encoders/CANCoderSwerve.html +++ b/docs/swervelib/encoders/CANCoderSwerve.html @@ -1,11 +1,11 @@ - + CANCoderSwerve - + diff --git a/docs/swervelib/encoders/SparkMaxEncoderSwerve.html b/docs/swervelib/encoders/SparkMaxEncoderSwerve.html index b60cfea..ba4f6fc 100644 --- a/docs/swervelib/encoders/SparkMaxEncoderSwerve.html +++ b/docs/swervelib/encoders/SparkMaxEncoderSwerve.html @@ -1,11 +1,11 @@ - + SparkMaxEncoderSwerve - + diff --git a/docs/swervelib/encoders/SwerveAbsoluteEncoder.html b/docs/swervelib/encoders/SwerveAbsoluteEncoder.html index 8053bff..f8c14d1 100644 --- a/docs/swervelib/encoders/SwerveAbsoluteEncoder.html +++ b/docs/swervelib/encoders/SwerveAbsoluteEncoder.html @@ -1,11 +1,11 @@ - + SwerveAbsoluteEncoder - + diff --git a/docs/swervelib/encoders/package-summary.html b/docs/swervelib/encoders/package-summary.html index 189bfef..df869c6 100644 --- a/docs/swervelib/encoders/package-summary.html +++ b/docs/swervelib/encoders/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.encoders - + diff --git a/docs/swervelib/encoders/package-tree.html b/docs/swervelib/encoders/package-tree.html index 53c64d6..5304d9b 100644 --- a/docs/swervelib/encoders/package-tree.html +++ b/docs/swervelib/encoders/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.encoders Class Hierarchy - + diff --git a/docs/swervelib/imu/ADIS16448Swerve.html b/docs/swervelib/imu/ADIS16448Swerve.html index f64a9a8..5e3ad15 100644 --- a/docs/swervelib/imu/ADIS16448Swerve.html +++ b/docs/swervelib/imu/ADIS16448Swerve.html @@ -1,11 +1,11 @@ - + ADIS16448Swerve - + diff --git a/docs/swervelib/imu/ADIS16470Swerve.html b/docs/swervelib/imu/ADIS16470Swerve.html index 573c8fb..6099093 100644 --- a/docs/swervelib/imu/ADIS16470Swerve.html +++ b/docs/swervelib/imu/ADIS16470Swerve.html @@ -1,11 +1,11 @@ - + ADIS16470Swerve - + diff --git a/docs/swervelib/imu/ADXRS450Swerve.html b/docs/swervelib/imu/ADXRS450Swerve.html index 03456c1..84bda81 100644 --- a/docs/swervelib/imu/ADXRS450Swerve.html +++ b/docs/swervelib/imu/ADXRS450Swerve.html @@ -1,11 +1,11 @@ - + ADXRS450Swerve - + diff --git a/docs/swervelib/imu/AnalogGyroSwerve.html b/docs/swervelib/imu/AnalogGyroSwerve.html index db58538..9da22db 100644 --- a/docs/swervelib/imu/AnalogGyroSwerve.html +++ b/docs/swervelib/imu/AnalogGyroSwerve.html @@ -1,11 +1,11 @@ - + AnalogGyroSwerve - + diff --git a/docs/swervelib/imu/NavXSwerve.html b/docs/swervelib/imu/NavXSwerve.html index fe4775f..6a5fae5 100644 --- a/docs/swervelib/imu/NavXSwerve.html +++ b/docs/swervelib/imu/NavXSwerve.html @@ -1,11 +1,11 @@ - + NavXSwerve - + diff --git a/docs/swervelib/imu/Pigeon2Swerve.html b/docs/swervelib/imu/Pigeon2Swerve.html index 16b1e75..85c88ff 100644 --- a/docs/swervelib/imu/Pigeon2Swerve.html +++ b/docs/swervelib/imu/Pigeon2Swerve.html @@ -1,11 +1,11 @@ - + Pigeon2Swerve - + diff --git a/docs/swervelib/imu/PigeonSwerve.html b/docs/swervelib/imu/PigeonSwerve.html index b0ae35b..2c25b7c 100644 --- a/docs/swervelib/imu/PigeonSwerve.html +++ b/docs/swervelib/imu/PigeonSwerve.html @@ -1,11 +1,11 @@ - + PigeonSwerve - + diff --git a/docs/swervelib/imu/SwerveIMU.html b/docs/swervelib/imu/SwerveIMU.html index e4c5002..481ba89 100644 --- a/docs/swervelib/imu/SwerveIMU.html +++ b/docs/swervelib/imu/SwerveIMU.html @@ -1,11 +1,11 @@ - + SwerveIMU - + diff --git a/docs/swervelib/imu/package-summary.html b/docs/swervelib/imu/package-summary.html index 12d69e8..cef4a0d 100644 --- a/docs/swervelib/imu/package-summary.html +++ b/docs/swervelib/imu/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.imu - + diff --git a/docs/swervelib/imu/package-tree.html b/docs/swervelib/imu/package-tree.html index ef7ff2c..4118c74 100644 --- a/docs/swervelib/imu/package-tree.html +++ b/docs/swervelib/imu/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.imu Class Hierarchy - + diff --git a/docs/swervelib/math/SwerveKinematics2.html b/docs/swervelib/math/SwerveKinematics2.html index 6d64d4e..18bd41e 100644 --- a/docs/swervelib/math/SwerveKinematics2.html +++ b/docs/swervelib/math/SwerveKinematics2.html @@ -1,11 +1,11 @@ - + SwerveKinematics2 - + diff --git a/docs/swervelib/math/SwerveMath.html b/docs/swervelib/math/SwerveMath.html index 740edcb..c63a8cc 100644 --- a/docs/swervelib/math/SwerveMath.html +++ b/docs/swervelib/math/SwerveMath.html @@ -1,11 +1,11 @@ - + SwerveMath - + @@ -176,6 +176,11 @@ loadScripts(document, 'script');
    Limits a commanded velocity to prevent exceeding the maximum acceleration given by calcMaxAccel(Rotation2d, double, double, Translation3d, SwerveDriveConfiguration).
    +
    static double
    +
    normalizeAngle(double angle)
    +
    +
    Normalize an angle to be within 0 to 360.
    +
    @@ -244,6 +249,19 @@ loadScripts(document, 'script');
  • +
    +

    normalizeAngle

    +
    public static double normalizeAngle(double angle)
    +
    Normalize an angle to be within 0 to 360.
    +
    +
    Parameters:
    +
    angle - Angle in degrees.
    +
    Returns:
    +
    Normalized angle in degrees.
    +
    +
    +
  • +
  • applyDeadband

    public static double applyDeadband(double value, diff --git a/docs/swervelib/math/SwerveModuleState2.html b/docs/swervelib/math/SwerveModuleState2.html index 43693c4..47cfb3a 100644 --- a/docs/swervelib/math/SwerveModuleState2.html +++ b/docs/swervelib/math/SwerveModuleState2.html @@ -1,11 +1,11 @@ - + SwerveModuleState2 - + diff --git a/docs/swervelib/math/package-summary.html b/docs/swervelib/math/package-summary.html index 398486d..685a33d 100644 --- a/docs/swervelib/math/package-summary.html +++ b/docs/swervelib/math/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.math - + diff --git a/docs/swervelib/math/package-tree.html b/docs/swervelib/math/package-tree.html index 299b822..41e3284 100644 --- a/docs/swervelib/math/package-tree.html +++ b/docs/swervelib/math/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.math Class Hierarchy - + diff --git a/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html b/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html index 278c6eb..7abd113 100644 --- a/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html +++ b/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html @@ -1,11 +1,11 @@ - + SparkMaxSwerve.SparkMAX_slotIdx - + diff --git a/docs/swervelib/motors/SparkMaxSwerve.html b/docs/swervelib/motors/SparkMaxSwerve.html index 54f4014..a218925 100644 --- a/docs/swervelib/motors/SparkMaxSwerve.html +++ b/docs/swervelib/motors/SparkMaxSwerve.html @@ -1,11 +1,11 @@ - + SparkMaxSwerve - + diff --git a/docs/swervelib/motors/SwerveMotor.html b/docs/swervelib/motors/SwerveMotor.html index 75f58fd..21f50b6 100644 --- a/docs/swervelib/motors/SwerveMotor.html +++ b/docs/swervelib/motors/SwerveMotor.html @@ -1,11 +1,11 @@ - + SwerveMotor - + @@ -381,7 +381,7 @@ loadScripts(document, 'script');
    Set the closed loop PID controller reference point.
    Parameters:
    -
    setpoint - Setpoint in MPS or Angle in degrees.
    +
    setpoint - Setpoint in meters per second or angle in degrees.
    feedforward - Feedforward in volt-meter-per-second or kV.
    @@ -393,7 +393,7 @@ loadScripts(document, 'script');
    Get the velocity of the integrated encoder.
    Returns:
    -
    velocity
    +
    velocity in meters per second or degrees per second.
  • @@ -404,7 +404,7 @@ loadScripts(document, 'script');
    Get the position of the integrated encoder.
    Returns:
    -
    Position
    +
    Position in meters or degrees.
    diff --git a/docs/swervelib/motors/TalonFXSwerve.html b/docs/swervelib/motors/TalonFXSwerve.html index 74e2269..83dc5c5 100644 --- a/docs/swervelib/motors/TalonFXSwerve.html +++ b/docs/swervelib/motors/TalonFXSwerve.html @@ -1,11 +1,11 @@ - + TalonFXSwerve - + @@ -80,7 +80,7 @@ loadScripts(document, 'script');
    public class TalonFXSwerve extends SwerveMotor
    -
    TalonFX Swerve Motor.
    +
    TalonFX Swerve Motor. Made by Team 1466 WebbRobotics.
  • +
    +

    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
    @@ -295,17 +343,17 @@ loadScripts(document, 'script');
  • -
    -

    absoluteEncoder

    -
    private boolean absoluteEncoder
    -
    Whether the absolute encoder is integrated.
    -
    -
  • -
  • positionConversionFactor

    private double positionConversionFactor
    -
    The position conversion factor.
    +
    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.
  • @@ -411,7 +459,15 @@ loadScripts(document, 'script');
    Specified by:
    configureIntegratedEncoder in class SwerveMotor
    Parameters:
    -
    positionConversionFactor - The conversion factor to apply for position.
    +
    positionConversionFactor - The conversion factor to apply for position.


    Degrees:
    + + 360 / (angleGearRatio * encoderTicksPerRotation) +

    +


    Meters:
    + + (Math.PI * wheelDiameter) / (driveGearRatio * encoderTicksPerRotation) + +

    @@ -494,6 +550,35 @@ loadScripts(document, 'script');
  • +
    +

    placeInAppropriate0To360Scope

    +
    private double placeInAppropriate0To360Scope(double scopeReference, + double newAngle)
    +
    Put an angle within the the 360 deg scope of a reference. For example, given a scope reference of 756 degrees, + assumes the full scope is (720-1080), and places an angle of 22 degrees into it, returning 742 deg.
    +
    +
    Parameters:
    +
    scopeReference - Current Angle (deg)
    +
    newAngle - Target Angle (deg)
    +
    Returns:
    +
    Closest angle within scope (deg)
    +
    +
    +
  • +
  • +
    +

    convertToNativeSensorUnits

    +
    public double convertToNativeSensorUnits(double setpoint)
    +
    Convert the setpoint into native sensor units.
    +
    +
    Parameters:
    +
    setpoint - Setpoint to mutate. In meters per second or degrees.
    +
    Returns:
    +
    Setpoint as native sensor units. Encoder ticks per 100ms, or Encoder tick.
    +
    +
    +
  • +
  • setReference

    public void setReference(double setpoint, @@ -517,7 +602,18 @@ loadScripts(document, 'script');
    Specified by:
    getVelocity in class SwerveMotor
    Returns:
    -
    velocity
    +
    velocity in Meters Per Second, or Degrees per Second.
    + +
    +
  • +
  • +
    +

    getRawPosition

    +
    public double getRawPosition()
    +
    Get the raw position.
    +
    +
    Returns:
    +
    Position in meters or degrees.
  • @@ -530,7 +626,7 @@ loadScripts(document, 'script');
    Specified by:
    getPosition in class SwerveMotor
    Returns:
    -
    Position
    +
    Position in Meters or Degrees.
    @@ -543,7 +639,7 @@ loadScripts(document, 'script');
    Specified by:
    setPosition in class SwerveMotor
    Parameters:
    -
    position - Integrated encoder position. Should be angle in degrees or meters per second.
    +
    position - Integrated encoder position. Should be angle in degrees or meters.
    diff --git a/docs/swervelib/motors/TalonSRXSwerve.CTRE_pidIdx.html b/docs/swervelib/motors/TalonSRXSwerve.CTRE_pidIdx.html index ed9dc7e..c20e087 100644 --- a/docs/swervelib/motors/TalonSRXSwerve.CTRE_pidIdx.html +++ b/docs/swervelib/motors/TalonSRXSwerve.CTRE_pidIdx.html @@ -1,11 +1,11 @@ - + TalonSRXSwerve.CTRE_pidIdx - + diff --git a/docs/swervelib/motors/TalonSRXSwerve.CTRE_remoteSensor.html b/docs/swervelib/motors/TalonSRXSwerve.CTRE_remoteSensor.html index 7ae4edf..f0a77d1 100644 --- a/docs/swervelib/motors/TalonSRXSwerve.CTRE_remoteSensor.html +++ b/docs/swervelib/motors/TalonSRXSwerve.CTRE_remoteSensor.html @@ -1,11 +1,11 @@ - + TalonSRXSwerve.CTRE_remoteSensor - + diff --git a/docs/swervelib/motors/TalonSRXSwerve.CTRE_slotIdx.html b/docs/swervelib/motors/TalonSRXSwerve.CTRE_slotIdx.html index ff305ab..8f62215 100644 --- a/docs/swervelib/motors/TalonSRXSwerve.CTRE_slotIdx.html +++ b/docs/swervelib/motors/TalonSRXSwerve.CTRE_slotIdx.html @@ -1,11 +1,11 @@ - + TalonSRXSwerve.CTRE_slotIdx - + diff --git a/docs/swervelib/motors/TalonSRXSwerve.html b/docs/swervelib/motors/TalonSRXSwerve.html index 7be882c..a464b0f 100644 --- a/docs/swervelib/motors/TalonSRXSwerve.html +++ b/docs/swervelib/motors/TalonSRXSwerve.html @@ -1,11 +1,11 @@ - + TalonSRXSwerve - + diff --git a/docs/swervelib/motors/package-summary.html b/docs/swervelib/motors/package-summary.html index e88ffe9..779e31a 100644 --- a/docs/swervelib/motors/package-summary.html +++ b/docs/swervelib/motors/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.motors - + diff --git a/docs/swervelib/motors/package-tree.html b/docs/swervelib/motors/package-tree.html index 3cb2113..ed221eb 100644 --- a/docs/swervelib/motors/package-tree.html +++ b/docs/swervelib/motors/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.motors Class Hierarchy - + diff --git a/docs/swervelib/package-summary.html b/docs/swervelib/package-summary.html index 45cadb3..ad1300d 100644 --- a/docs/swervelib/package-summary.html +++ b/docs/swervelib/package-summary.html @@ -1,11 +1,11 @@ - + swervelib - + diff --git a/docs/swervelib/package-tree.html b/docs/swervelib/package-tree.html index c77650e..e5dc0b3 100644 --- a/docs/swervelib/package-tree.html +++ b/docs/swervelib/package-tree.html @@ -1,11 +1,11 @@ - + swervelib Class Hierarchy - + diff --git a/docs/swervelib/parser/PIDFConfig.html b/docs/swervelib/parser/PIDFConfig.html index c225736..926a252 100644 --- a/docs/swervelib/parser/PIDFConfig.html +++ b/docs/swervelib/parser/PIDFConfig.html @@ -1,11 +1,11 @@ - + PIDFConfig - + diff --git a/docs/swervelib/parser/SwerveControllerConfiguration.html b/docs/swervelib/parser/SwerveControllerConfiguration.html index 414a4c5..371715a 100644 --- a/docs/swervelib/parser/SwerveControllerConfiguration.html +++ b/docs/swervelib/parser/SwerveControllerConfiguration.html @@ -1,11 +1,11 @@ - + SwerveControllerConfiguration - + diff --git a/docs/swervelib/parser/SwerveDriveConfiguration.html b/docs/swervelib/parser/SwerveDriveConfiguration.html index fd870a5..c2bd468 100644 --- a/docs/swervelib/parser/SwerveDriveConfiguration.html +++ b/docs/swervelib/parser/SwerveDriveConfiguration.html @@ -1,11 +1,11 @@ - + SwerveDriveConfiguration - + diff --git a/docs/swervelib/parser/SwerveModuleConfiguration.html b/docs/swervelib/parser/SwerveModuleConfiguration.html index a0dc88d..6917772 100644 --- a/docs/swervelib/parser/SwerveModuleConfiguration.html +++ b/docs/swervelib/parser/SwerveModuleConfiguration.html @@ -1,11 +1,11 @@ - + SwerveModuleConfiguration - + diff --git a/docs/swervelib/parser/SwerveModulePhysicalCharacteristics.html b/docs/swervelib/parser/SwerveModulePhysicalCharacteristics.html index 6aada94..ea3c718 100644 --- a/docs/swervelib/parser/SwerveModulePhysicalCharacteristics.html +++ b/docs/swervelib/parser/SwerveModulePhysicalCharacteristics.html @@ -1,11 +1,11 @@ - + SwerveModulePhysicalCharacteristics - + diff --git a/docs/swervelib/parser/SwerveParser.html b/docs/swervelib/parser/SwerveParser.html index 7d68096..55e289f 100644 --- a/docs/swervelib/parser/SwerveParser.html +++ b/docs/swervelib/parser/SwerveParser.html @@ -1,11 +1,11 @@ - + SwerveParser - + diff --git a/docs/swervelib/parser/deserializer/PIDFRange.html b/docs/swervelib/parser/deserializer/PIDFRange.html index 5758647..6fa74e1 100644 --- a/docs/swervelib/parser/deserializer/PIDFRange.html +++ b/docs/swervelib/parser/deserializer/PIDFRange.html @@ -1,11 +1,11 @@ - + PIDFRange - + diff --git a/docs/swervelib/parser/deserializer/package-summary.html b/docs/swervelib/parser/deserializer/package-summary.html index bc59543..8ccbab9 100644 --- a/docs/swervelib/parser/deserializer/package-summary.html +++ b/docs/swervelib/parser/deserializer/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.parser.deserializer - + diff --git a/docs/swervelib/parser/deserializer/package-tree.html b/docs/swervelib/parser/deserializer/package-tree.html index 378179e..9fe36d9 100644 --- a/docs/swervelib/parser/deserializer/package-tree.html +++ b/docs/swervelib/parser/deserializer/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.parser.deserializer Class Hierarchy - + diff --git a/docs/swervelib/parser/json/ControllerPropertiesJson.html b/docs/swervelib/parser/json/ControllerPropertiesJson.html index 53fbd7b..622a2f2 100644 --- a/docs/swervelib/parser/json/ControllerPropertiesJson.html +++ b/docs/swervelib/parser/json/ControllerPropertiesJson.html @@ -1,11 +1,11 @@ - + ControllerPropertiesJson - + diff --git a/docs/swervelib/parser/json/DeviceJson.html b/docs/swervelib/parser/json/DeviceJson.html index fe9672b..ab2660e 100644 --- a/docs/swervelib/parser/json/DeviceJson.html +++ b/docs/swervelib/parser/json/DeviceJson.html @@ -1,11 +1,11 @@ - + DeviceJson - + diff --git a/docs/swervelib/parser/json/ModuleJson.html b/docs/swervelib/parser/json/ModuleJson.html index e7494c8..8692e1e 100644 --- a/docs/swervelib/parser/json/ModuleJson.html +++ b/docs/swervelib/parser/json/ModuleJson.html @@ -1,11 +1,11 @@ - + ModuleJson - + diff --git a/docs/swervelib/parser/json/MotorConfigDouble.html b/docs/swervelib/parser/json/MotorConfigDouble.html index 56bdac3..6fc338e 100644 --- a/docs/swervelib/parser/json/MotorConfigDouble.html +++ b/docs/swervelib/parser/json/MotorConfigDouble.html @@ -1,11 +1,11 @@ - + MotorConfigDouble - + diff --git a/docs/swervelib/parser/json/MotorConfigInt.html b/docs/swervelib/parser/json/MotorConfigInt.html index e064b1b..ffa502b 100644 --- a/docs/swervelib/parser/json/MotorConfigInt.html +++ b/docs/swervelib/parser/json/MotorConfigInt.html @@ -1,11 +1,11 @@ - + MotorConfigInt - + diff --git a/docs/swervelib/parser/json/PIDFPropertiesJson.html b/docs/swervelib/parser/json/PIDFPropertiesJson.html index 2eec26f..50e4447 100644 --- a/docs/swervelib/parser/json/PIDFPropertiesJson.html +++ b/docs/swervelib/parser/json/PIDFPropertiesJson.html @@ -1,11 +1,11 @@ - + PIDFPropertiesJson - + diff --git a/docs/swervelib/parser/json/PhysicalPropertiesJson.html b/docs/swervelib/parser/json/PhysicalPropertiesJson.html index 5c8dd4e..a3b8b62 100644 --- a/docs/swervelib/parser/json/PhysicalPropertiesJson.html +++ b/docs/swervelib/parser/json/PhysicalPropertiesJson.html @@ -1,11 +1,11 @@ - + PhysicalPropertiesJson - + diff --git a/docs/swervelib/parser/json/SwerveDriveJson.html b/docs/swervelib/parser/json/SwerveDriveJson.html index d986895..1f461bc 100644 --- a/docs/swervelib/parser/json/SwerveDriveJson.html +++ b/docs/swervelib/parser/json/SwerveDriveJson.html @@ -1,11 +1,11 @@ - + SwerveDriveJson - + diff --git a/docs/swervelib/parser/json/modules/BoolMotorJson.html b/docs/swervelib/parser/json/modules/BoolMotorJson.html index 1b27e7a..f29d6a0 100644 --- a/docs/swervelib/parser/json/modules/BoolMotorJson.html +++ b/docs/swervelib/parser/json/modules/BoolMotorJson.html @@ -1,11 +1,11 @@ - + BoolMotorJson - + diff --git a/docs/swervelib/parser/json/modules/LocationJson.html b/docs/swervelib/parser/json/modules/LocationJson.html index d4def59..26eb739 100644 --- a/docs/swervelib/parser/json/modules/LocationJson.html +++ b/docs/swervelib/parser/json/modules/LocationJson.html @@ -1,11 +1,11 @@ - + LocationJson - + diff --git a/docs/swervelib/parser/json/modules/package-summary.html b/docs/swervelib/parser/json/modules/package-summary.html index aa9cb7e..d7d5237 100644 --- a/docs/swervelib/parser/json/modules/package-summary.html +++ b/docs/swervelib/parser/json/modules/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.parser.json.modules - + diff --git a/docs/swervelib/parser/json/modules/package-tree.html b/docs/swervelib/parser/json/modules/package-tree.html index 04c1603..a5f0c04 100644 --- a/docs/swervelib/parser/json/modules/package-tree.html +++ b/docs/swervelib/parser/json/modules/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.parser.json.modules Class Hierarchy - + diff --git a/docs/swervelib/parser/json/package-summary.html b/docs/swervelib/parser/json/package-summary.html index fa1c5dc..ead919c 100644 --- a/docs/swervelib/parser/json/package-summary.html +++ b/docs/swervelib/parser/json/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.parser.json - + diff --git a/docs/swervelib/parser/json/package-tree.html b/docs/swervelib/parser/json/package-tree.html index 2572569..50ac56f 100644 --- a/docs/swervelib/parser/json/package-tree.html +++ b/docs/swervelib/parser/json/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.parser.json Class Hierarchy - + diff --git a/docs/swervelib/parser/package-summary.html b/docs/swervelib/parser/package-summary.html index 2e1befc..dcd0db1 100644 --- a/docs/swervelib/parser/package-summary.html +++ b/docs/swervelib/parser/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.parser - + diff --git a/docs/swervelib/parser/package-tree.html b/docs/swervelib/parser/package-tree.html index d5ddb79..ae1ddfe 100644 --- a/docs/swervelib/parser/package-tree.html +++ b/docs/swervelib/parser/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.parser Class Hierarchy - + diff --git a/docs/swervelib/simulation/SwerveIMUSimulation.html b/docs/swervelib/simulation/SwerveIMUSimulation.html index 04a2769..e4d218d 100644 --- a/docs/swervelib/simulation/SwerveIMUSimulation.html +++ b/docs/swervelib/simulation/SwerveIMUSimulation.html @@ -1,11 +1,11 @@ - + SwerveIMUSimulation - + diff --git a/docs/swervelib/simulation/SwerveModuleSimulation.html b/docs/swervelib/simulation/SwerveModuleSimulation.html index cf3e424..63a3d74 100644 --- a/docs/swervelib/simulation/SwerveModuleSimulation.html +++ b/docs/swervelib/simulation/SwerveModuleSimulation.html @@ -1,11 +1,11 @@ - + SwerveModuleSimulation - + diff --git a/docs/swervelib/simulation/ctre/PhysicsSim.SimProfile.html b/docs/swervelib/simulation/ctre/PhysicsSim.SimProfile.html new file mode 100644 index 0000000..98dfe2e --- /dev/null +++ b/docs/swervelib/simulation/ctre/PhysicsSim.SimProfile.html @@ -0,0 +1,220 @@ + + + + +PhysicsSim.SimProfile + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class PhysicsSim.SimProfile

    +
    +
    java.lang.Object +
    swervelib.simulation.ctre.PhysicsSim.SimProfile
    +
    +
    +
    +
    Direct Known Subclasses:
    +
    TalonFXSimProfile, TalonSRXSimProfile, VictorSPXSimProfile
    +
    +
    +
    Enclosing class:
    +
    PhysicsSim
    +
    +
    +
    static class PhysicsSim.SimProfile +extends Object
    +
    Holds information about a simulated device.
    +
    +
    +
      + +
    • +
      +

      Field Summary

      +
      Fields
      +
      +
      Modifier and Type
      +
      Field
      +
      Description
      +
      private long
      + +
       
      +
      private boolean
      + +
       
      +
      +
      +
    • + +
    • +
      +

      Constructor Summary

      +
      Constructors
      +
      +
      Constructor
      +
      Description
      + +
       
      +
      +
      +
    • + +
    • +
      +

      Method Summary

      +
      +
      +
      +
      +
      Modifier and Type
      +
      Method
      +
      Description
      +
      protected double
      + +
      +
      Returns the time since last call, in milliseconds.
      +
      +
      void
      +
      run()
      +
      +
      Runs the simulation profile.
      +
      +
      +
      +
      +
      +

      Methods inherited from class java.lang.Object

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

      Field Details

      +
        +
      • +
        +

        _lastTime

        +
        private long _lastTime
        +
        +
      • +
      • +
        +

        _running

        +
        private boolean _running
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        SimProfile

        +
        SimProfile()
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        run

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

        getPeriod

        +
        protected double getPeriod()
        +
        Returns the time since last call, in milliseconds.
        +
        +
      • +
      +
      +
    • +
    +
    + +
    +
    +
    + + diff --git a/docs/swervelib/simulation/ctre/PhysicsSim.html b/docs/swervelib/simulation/ctre/PhysicsSim.html new file mode 100644 index 0000000..8037a45 --- /dev/null +++ b/docs/swervelib/simulation/ctre/PhysicsSim.html @@ -0,0 +1,359 @@ + + + + +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 final 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.
        +
        +
      • +
      • +
        +

        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 new file mode 100644 index 0000000..ecf5a43 --- /dev/null +++ b/docs/swervelib/simulation/ctre/TalonFXSimProfile.html @@ -0,0 +1,258 @@ + + + + +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 new file mode 100644 index 0000000..504b3b4 --- /dev/null +++ b/docs/swervelib/simulation/ctre/TalonSRXSimProfile.html @@ -0,0 +1,258 @@ + + + + +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/VictorSPXSimProfile.html b/docs/swervelib/simulation/ctre/VictorSPXSimProfile.html new file mode 100644 index 0000000..0bd5767 --- /dev/null +++ b/docs/swervelib/simulation/ctre/VictorSPXSimProfile.html @@ -0,0 +1,210 @@ + + + + +VictorSPXSimProfile + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class VictorSPXSimProfile

    +
    +
    java.lang.Object +
    swervelib.simulation.ctre.PhysicsSim.SimProfile +
    swervelib.simulation.ctre.VictorSPXSimProfile
    +
    +
    +
    +
    +
    class VictorSPXSimProfile +extends PhysicsSim.SimProfile
    +
    Holds information about a simulated VictorSPX.
    +
    +
    +
      + +
    • +
      +

      Field Summary

      +
      Fields
      +
      +
      Modifier and Type
      +
      Field
      +
      Description
      +
      final com.ctre.phoenix.motorcontrol.can.VictorSPX
      + +
       
      +
      +
      +
    • + +
    • +
      +

      Constructor Summary

      +
      Constructors
      +
      +
      Constructor
      +
      Description
      +
      VictorSPXSimProfile(com.ctre.phoenix.motorcontrol.can.VictorSPX victor)
      +
      +
      Creates a new simulation profile for a VictorSPX 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

      +
        +
      • +
        +

        _victor

        +
        public final com.ctre.phoenix.motorcontrol.can.VictorSPX _victor
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        VictorSPXSimProfile

        +
        public VictorSPXSimProfile(com.ctre.phoenix.motorcontrol.can.VictorSPX victor)
        +
        Creates a new simulation profile for a VictorSPX device.
        +
        +
        Parameters:
        +
        victor - The VictorSPX device
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      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 new file mode 100644 index 0000000..b775d86 --- /dev/null +++ b/docs/swervelib/simulation/ctre/package-summary.html @@ -0,0 +1,111 @@ + + + + +swervelib.simulation.ctre + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Package swervelib.simulation.ctre

    +
    +
    +
    package swervelib.simulation.ctre
    +
    + +
    +
    +
    +
    + + diff --git a/docs/swervelib/simulation/ctre/package-tree.html b/docs/swervelib/simulation/ctre/package-tree.html new file mode 100644 index 0000000..21d825e --- /dev/null +++ b/docs/swervelib/simulation/ctre/package-tree.html @@ -0,0 +1,78 @@ + + + + +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 6cceb1e..c273d30 100644 --- a/docs/swervelib/simulation/package-summary.html +++ b/docs/swervelib/simulation/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.simulation - + @@ -70,16 +70,18 @@ loadScripts(document, 'script');
    Description
    swervelib
     
    -
    swervelib.encoders
    +
    swervelib.simulation.ctre
     
    -
    swervelib.imu
    +
    swervelib.encoders
     
    -
    swervelib.math
    +
    swervelib.imu
     
    -
    swervelib.motors
    +
    swervelib.math
     
    -
    swervelib.parser
    +
    swervelib.motors
     
    +
    swervelib.parser
    +
     
    diff --git a/docs/swervelib/simulation/package-tree.html b/docs/swervelib/simulation/package-tree.html index 99b23d5..596dc1e 100644 --- a/docs/swervelib/simulation/package-tree.html +++ b/docs/swervelib/simulation/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.simulation Class Hierarchy - + diff --git a/docs/type-search-index.js b/docs/type-search-index.js index 3b152dd..81e1759 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.imu","l":"AnalogGyroSwerve"},{"p":"swervelib.parser.json.modules","l":"BoolMotorJson"},{"p":"swervelib.encoders","l":"CANCoderSwerve"},{"p":"swervelib.parser.json","l":"ControllerPropertiesJson"},{"p":"swervelib.motors","l":"TalonSRXSwerve.CTRE_pidIdx"},{"p":"swervelib.motors","l":"TalonSRXSwerve.CTRE_remoteSensor"},{"p":"swervelib.motors","l":"TalonSRXSwerve.CTRE_slotIdx"},{"p":"swervelib.parser.json","l":"DeviceJson"},{"p":"swervelib.parser.json.modules","l":"LocationJson"},{"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.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.motors","l":"SparkMaxSwerve.SparkMAX_slotIdx"},{"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.imu","l":"SwerveIMU"},{"p":"swervelib.simulation","l":"SwerveIMUSimulation"},{"p":"swervelib.math","l":"SwerveKinematics2"},{"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.math","l":"SwerveModuleState2"},{"p":"swervelib.motors","l":"SwerveMotor"},{"p":"swervelib.parser","l":"SwerveParser"},{"p":"swervelib.motors","l":"TalonFXSwerve"},{"p":"swervelib.motors","l":"TalonSRXSwerve"}];updateSearchResults(); \ No newline at end of file +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.imu","l":"AnalogGyroSwerve"},{"p":"swervelib.parser.json.modules","l":"BoolMotorJson"},{"p":"swervelib.encoders","l":"CANCoderSwerve"},{"p":"swervelib.parser.json","l":"ControllerPropertiesJson"},{"p":"swervelib.motors","l":"TalonSRXSwerve.CTRE_pidIdx"},{"p":"swervelib.motors","l":"TalonSRXSwerve.CTRE_remoteSensor"},{"p":"swervelib.motors","l":"TalonSRXSwerve.CTRE_slotIdx"},{"p":"swervelib.parser.json","l":"DeviceJson"},{"p":"swervelib.parser.json.modules","l":"LocationJson"},{"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.simulation.ctre","l":"PhysicsSim.SimProfile"},{"p":"swervelib.motors","l":"SparkMaxSwerve.SparkMAX_slotIdx"},{"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.imu","l":"SwerveIMU"},{"p":"swervelib.simulation","l":"SwerveIMUSimulation"},{"p":"swervelib.math","l":"SwerveKinematics2"},{"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.math","l":"SwerveModuleState2"},{"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.simulation.ctre","l":"VictorSPXSimProfile"}];updateSearchResults(); \ No newline at end of file diff --git a/swervelib/SwerveModule.java b/swervelib/SwerveModule.java index 879b58b..8daf3d6 100644 --- a/swervelib/SwerveModule.java +++ b/swervelib/SwerveModule.java @@ -86,10 +86,13 @@ public class SwerveModule // Config angle encoders absoluteEncoder = moduleConfiguration.absoluteEncoder; - absoluteEncoder.factoryDefault(); - absoluteEncoder.configure(moduleConfiguration.absoluteEncoderInverted); - angleMotor.configureIntegratedEncoder(moduleConfiguration.getPositionEncoderConversion(false)); - angleMotor.setPosition(absoluteEncoder.getAbsolutePosition() - angleOffset); + if (absoluteEncoder != null) + { + absoluteEncoder.factoryDefault(); + absoluteEncoder.configure(moduleConfiguration.absoluteEncoderInverted); + angleMotor.configureIntegratedEncoder(moduleConfiguration.getPositionEncoderConversion(false)); + angleMotor.setPosition(absoluteEncoder.getAbsolutePosition() - angleOffset); + } // Config angle motor/controller angleMotor.configurePIDF(moduleConfiguration.anglePIDF); @@ -119,7 +122,10 @@ public class SwerveModule */ public void synchronizeEncoders() { - angleMotor.setPosition(absoluteEncoder.getAbsolutePosition() - angleOffset); + if (absoluteEncoder != null) + { + angleMotor.setPosition(absoluteEncoder.getAbsolutePosition() - angleOffset); + } } /** diff --git a/swervelib/math/SwerveMath.java b/swervelib/math/SwerveMath.java index 105dc9b..7bdc16b 100644 --- a/swervelib/math/SwerveMath.java +++ b/swervelib/math/SwerveMath.java @@ -46,6 +46,18 @@ public class SwerveMath return (Math.PI * wheelDiameter) / (driveGearRatio * pulsePerRotation); } + /** + * Normalize an angle to be within 0 to 360. + * + * @param angle Angle in degrees. + * @return Normalized angle in degrees. + */ + public static double normalizeAngle(double angle) + { + Rotation2d angleRotation = Rotation2d.fromDegrees(angle); + return new Rotation2d(angleRotation.getCos(), angleRotation.getSin()).getDegrees(); + } + /** * Algebraically apply a deadband using a piece wise function. * diff --git a/swervelib/motors/SwerveMotor.java b/swervelib/motors/SwerveMotor.java index 542b5dc..2a90b59 100644 --- a/swervelib/motors/SwerveMotor.java +++ b/swervelib/motors/SwerveMotor.java @@ -83,7 +83,7 @@ public abstract class SwerveMotor /** * Set the closed loop PID controller reference point. * - * @param setpoint Setpoint in MPS or Angle in degrees. + * @param setpoint Setpoint in meters per second or angle in degrees. * @param feedforward Feedforward in volt-meter-per-second or kV. */ public abstract void setReference(double setpoint, double feedforward); @@ -91,14 +91,14 @@ public abstract class SwerveMotor /** * Get the velocity of the integrated encoder. * - * @return velocity + * @return velocity in meters per second or degrees per second. */ public abstract double getVelocity(); /** * Get the position of the integrated encoder. * - * @return Position + * @return Position in meters or degrees. */ public abstract double getPosition(); diff --git a/swervelib/motors/TalonFXSwerve.java b/swervelib/motors/TalonFXSwerve.java index d49470a..7619986 100644 --- a/swervelib/motors/TalonFXSwerve.java +++ b/swervelib/motors/TalonFXSwerve.java @@ -3,17 +3,15 @@ package swervelib.motors; import com.ctre.phoenix.motorcontrol.ControlMode; import com.ctre.phoenix.motorcontrol.DemandType; import com.ctre.phoenix.motorcontrol.NeutralMode; -import com.ctre.phoenix.motorcontrol.RemoteFeedbackDevice; -import com.ctre.phoenix.motorcontrol.SupplyCurrentLimitConfiguration; +import com.ctre.phoenix.motorcontrol.can.TalonFXConfiguration; import com.ctre.phoenix.motorcontrol.can.WPI_TalonFX; -import com.ctre.phoenix.sensors.CANCoder; +import frc.robot.Robot; import swervelib.encoders.SwerveAbsoluteEncoder; -import swervelib.motors.TalonSRXSwerve.CTRE_remoteSensor; -import swervelib.motors.TalonSRXSwerve.CTRE_slotIdx; import swervelib.parser.PIDFConfig; +import swervelib.simulation.ctre.PhysicsSim; /** - * {@link com.ctre.phoenix.motorcontrol.can.TalonFX} Swerve Motor. + * {@link com.ctre.phoenix.motorcontrol.can.TalonFX} Swerve Motor. Made by Team 1466 WebbRobotics. */ public class TalonFXSwerve extends SwerveMotor { @@ -21,19 +19,27 @@ 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(); + /** + * Whether the absolute encoder is integrated. + */ + private final boolean absoluteEncoder = false; /** * TalonFX motor controller. */ WPI_TalonFX motor; /** - * Whether the absolute encoder is integrated. - */ - private boolean absoluteEncoder = false; - /** - * The position conversion factor. + * 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; /** * Constructor for TalonFX swerve motor. @@ -48,6 +54,11 @@ public class TalonFXSwerve extends SwerveMotor factoryDefaults(); clearStickyFaults(); + + if (!Robot.isReal()) + { + PhysicsSim.getInstance().addTalonFX(motor, .25, 6800); + } } /** @@ -82,6 +93,7 @@ public class TalonFXSwerve extends SwerveMotor if (!factoryDefaultOccurred) { motor.configFactoryDefault(); + motor.setSensorPhase(true); } } @@ -103,26 +115,27 @@ public class TalonFXSwerve extends SwerveMotor @Override public SwerveMotor setAbsoluteEncoder(SwerveAbsoluteEncoder encoder) { - if (encoder.getAbsoluteEncoder() instanceof CANCoder) - { - motor.configSelectedFeedbackSensor(RemoteFeedbackDevice.RemoteSensor0); - motor.configRemoteFeedbackFilter((CANCoder) encoder.getAbsoluteEncoder(), - CTRE_remoteSensor.REMOTE_SENSOR_0.ordinal()); - absoluteEncoder = true; - } + // Do not support. 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 for position. + * @param positionConversionFactor The conversion factor to apply for position.


    Degrees:
    + * + * 360 / (angleGearRatio * encoderTicksPerRotation) + *

    + *


    Meters:
    + * + * (Math.PI * wheelDiameter) / (driveGearRatio * encoderTicksPerRotation) + * + *

    */ @Override public void configureIntegratedEncoder(double positionConversionFactor) { this.positionConversionFactor = positionConversionFactor; - motor.configSelectedFeedbackCoefficient(positionConversionFactor); } /** @@ -133,13 +146,13 @@ public class TalonFXSwerve extends SwerveMotor @Override public void configurePIDF(PIDFConfig config) { - int slotIdx = isDriveMotor ? CTRE_slotIdx.Velocity.ordinal() : CTRE_slotIdx.Turning.ordinal(); - motor.config_kP(slotIdx, config.p); - motor.config_kI(slotIdx, config.i); - motor.config_kD(slotIdx, config.d); - motor.config_kF(slotIdx, config.f); - motor.config_IntegralZone(slotIdx, config.iz); - motor.configClosedLoopPeakOutput(slotIdx, config.output.max); + 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; } /** @@ -182,7 +195,11 @@ public class TalonFXSwerve extends SwerveMotor @Override public void burnFlash() { - // Do nothing + if (configChanged) + { + motor.configAllSettings(configuration); + configChanged = false; + } } /** @@ -196,6 +213,64 @@ public class TalonFXSwerve extends SwerveMotor motor.set(percentOutput); } + /** + * Put an angle within the the 360 deg scope of a reference. For example, given a scope reference of 756 degrees, + * assumes the full scope is (720-1080), and places an angle of 22 degrees into it, returning 742 deg. + * + * @param scopeReference Current Angle (deg) + * @param newAngle Target Angle (deg) + * @return Closest angle within scope (deg) + */ + private double placeInAppropriate0To360Scope(double scopeReference, double newAngle) + { + double lowerBound; + double upperBound; + double lowerOffset = scopeReference % 360; + + // Create the interval from the reference angle. + if (lowerOffset >= 0) + { + lowerBound = scopeReference - lowerOffset; + upperBound = scopeReference + (360 - lowerOffset); + } else + { + upperBound = scopeReference - lowerOffset; + lowerBound = scopeReference - (360 + lowerOffset); + } + // Put the angle in the interval. + while (newAngle < lowerBound) + { + newAngle += 360; + } + while (newAngle > upperBound) + { + newAngle -= 360; + } + // Smooth the transition between interval boundaries. + if (newAngle - scopeReference > 180) + { + newAngle -= 360; + } else if (newAngle - scopeReference < -180) + { + newAngle += 360; + } + return newAngle; + } + + /** + * Convert the setpoint into native sensor units. + * + * @param setpoint Setpoint to mutate. In meters per second or degrees. + * @return Setpoint as native sensor units. Encoder ticks per 100ms, or Encoder tick. + */ + public double convertToNativeSensorUnits(double setpoint) + { + setpoint = isDriveMotor ? + setpoint * .1 : + placeInAppropriate0To360Scope(getRawPosition(), setpoint); + return setpoint / positionConversionFactor; + } + /** * Set the closed loop PID controller reference point. * @@ -205,44 +280,63 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setReference(double setpoint, double feedforward) { - motor.set(isDriveMotor ? ControlMode.Velocity : ControlMode.Position, isDriveMotor ? setpoint * .1 : setpoint, + if (!Robot.isReal()) + { + PhysicsSim.getInstance().run(); + } + + burnFlash(); + + motor.set(isDriveMotor ? ControlMode.Velocity : ControlMode.Position, + convertToNativeSensorUnits(setpoint), DemandType.ArbitraryFeedForward, - feedforward); + feedforward * -0.3); + // Credit to Team 3181 for the -0.3, I'm not sure why it works, but it does. } /** * Get the velocity of the integrated encoder. * - * @return velocity + * @return velocity in Meters Per Second, or Degrees per Second. */ @Override public double getVelocity() { - return motor.getSelectedSensorVelocity() * (10 * positionConversionFactor); + return (motor.getSelectedSensorVelocity() * 10) * positionConversionFactor; } /** - * Get the position of the integrated encoder. + * Get the raw position. * - * @return Position + * @return Position in meters or degrees. */ - @Override - public double getPosition() + public double getRawPosition() { return motor.getSelectedSensorPosition() * positionConversionFactor; } + /** + * Get the position of the integrated encoder. + * + * @return Position in Meters or Degrees. + */ + @Override + public double getPosition() + { + return isDriveMotor ? getRawPosition() : getRawPosition() % 360; + } + /** * Set the integrated encoder position. * - * @param position Integrated encoder position. Should be angle in degrees or meters per second. + * @param position Integrated encoder position. Should be angle in degrees or meters. */ @Override public void setPosition(double position) { - if (!absoluteEncoder) + if (!absoluteEncoder && Robot.isReal()) { - motor.setSelectedSensorPosition(position * positionConversionFactor); + motor.setSelectedSensorPosition(convertToNativeSensorUnits(position)); } } @@ -254,8 +348,8 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setVoltageCompensation(double nominalVoltage) { - motor.enableVoltageCompensation(true); - motor.configVoltageCompSaturation(nominalVoltage); + configuration.voltageCompSaturation = nominalVoltage; + configChanged = true; } /** @@ -267,11 +361,9 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setCurrentLimit(int currentLimit) { - SupplyCurrentLimitConfiguration config = new SupplyCurrentLimitConfiguration(); - motor.configGetSupplyCurrentLimit(config); - config.currentLimit = currentLimit; - config.enable = true; - motor.configSupplyCurrentLimit(config); + configuration.supplyCurrLimit.currentLimit = currentLimit; + configuration.supplyCurrLimit.enable = true; + configChanged = true; } /** @@ -282,8 +374,9 @@ public class TalonFXSwerve extends SwerveMotor @Override public void setLoopRampRate(double rampRate) { - motor.configClosedloopRamp(rampRate); - motor.configOpenloopRamp(rampRate); + configuration.closedloopRamp = rampRate; + configuration.openloopRamp = rampRate; + configChanged = true; } /** diff --git a/swervelib/parser/SwerveModuleConfiguration.java b/swervelib/parser/SwerveModuleConfiguration.java index 5db7113..12b6e6c 100644 --- a/swervelib/parser/SwerveModuleConfiguration.java +++ b/swervelib/parser/SwerveModuleConfiguration.java @@ -172,7 +172,7 @@ public class SwerveModuleConfiguration physicalCharacteristics.driveGearRatio, physicalCharacteristics.driveEncoderPulsePerRotation) : calculateDegreesPerSteeringRotation( - angleMotor.isAttachedAbsoluteEncoder() ? 1 : physicalCharacteristics.angleGearRatio, + physicalCharacteristics.angleGearRatio, physicalCharacteristics.angleEncoderPulsePerRotation); } } diff --git a/swervelib/parser/json/DeviceJson.java b/swervelib/parser/json/DeviceJson.java index 70438f7..b26547b 100644 --- a/swervelib/parser/json/DeviceJson.java +++ b/swervelib/parser/json/DeviceJson.java @@ -44,6 +44,7 @@ public class DeviceJson { switch (type) { + case "none": case "integrated": case "attached": return null; @@ -113,9 +114,12 @@ public class DeviceJson */ public SwerveAbsoluteEncoder createIntegratedEncoder(SwerveMotor motor) { - if (type.equals("sparkmax")) + switch (type) { - return new SparkMaxEncoderSwerve(motor); + case "sparkmax": + return new SparkMaxEncoderSwerve(motor); + case "none": + return null; } throw new RuntimeException("Could not create absolute encoder from data port of " + type + " id " + id); } diff --git a/swervelib/parser/json/ModuleJson.java b/swervelib/parser/json/ModuleJson.java index f78e909..70a6fa3 100644 --- a/swervelib/parser/json/ModuleJson.java +++ b/swervelib/parser/json/ModuleJson.java @@ -1,11 +1,8 @@ package swervelib.parser.json; import edu.wpi.first.math.util.Units; -import swervelib.encoders.CANCoderSwerve; import swervelib.encoders.SwerveAbsoluteEncoder; import swervelib.motors.SwerveMotor; -import swervelib.motors.TalonFXSwerve; -import swervelib.motors.TalonSRXSwerve; import swervelib.parser.PIDFConfig; import swervelib.parser.SwerveModuleConfiguration; import swervelib.parser.SwerveModulePhysicalCharacteristics; @@ -68,10 +65,6 @@ public class ModuleJson { absEncoder = angle.createIntegratedEncoder(angleMotor); angleMotor.setAbsoluteEncoder(absEncoder); - } else if ((angleMotor instanceof TalonFXSwerve || angleMotor instanceof TalonSRXSwerve) && - absEncoder instanceof CANCoderSwerve) - { - angleMotor.setAbsoluteEncoder(absEncoder); } return new SwerveModuleConfiguration(drive.createMotor(true), angleMotor, absEncoder, diff --git a/swervelib/simulation/ctre/PhysicsSim.java b/swervelib/simulation/ctre/PhysicsSim.java new file mode 100644 index 0000000..373fad8 --- /dev/null +++ b/swervelib/simulation/ctre/PhysicsSim.java @@ -0,0 +1,155 @@ +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 final PhysicsSim sim = new PhysicsSim(); + private final ArrayList _simProfiles = new ArrayList(); + + /** + * Gets the robot simulator instance. + */ + public static PhysicsSim getInstance() + { + 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.IEEEremainder(Math.random(), 2 * 3.14159)) + (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; + } + } +} \ No newline at end of file diff --git a/swervelib/simulation/ctre/TalonFXSimProfile.java b/swervelib/simulation/ctre/TalonFXSimProfile.java new file mode 100644 index 0000000..46f6b02 --- /dev/null +++ b/swervelib/simulation/ctre/TalonFXSimProfile.java @@ -0,0 +1,88 @@ +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)); + } +} \ No newline at end of file diff --git a/swervelib/simulation/ctre/TalonSRXSimProfile.java b/swervelib/simulation/ctre/TalonSRXSimProfile.java new file mode 100644 index 0000000..299f33c --- /dev/null +++ b/swervelib/simulation/ctre/TalonSRXSimProfile.java @@ -0,0 +1,88 @@ +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 new file mode 100644 index 0000000..f1553ad --- /dev/null +++ b/swervelib/simulation/ctre/VictorSPXSimProfile.java @@ -0,0 +1,41 @@ +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)); + } +}