From ef58f545df1d1aa3071d82dc6b384ee1674dd346 Mon Sep 17 00:00:00 2001 From: thenetworkgrinch Date: Mon, 27 Feb 2023 21:45:50 -0600 Subject: [PATCH] Removed IEEE remainder for set position --- docs/allclasses-index.html | 4 +- docs/allpackages-index.html | 4 +- docs/constant-values.html | 4 +- docs/help-doc.html | 4 +- docs/index-files/index-1.html | 4 +- docs/index-files/index-10.html | 4 +- docs/index-files/index-11.html | 4 +- docs/index-files/index-12.html | 4 +- docs/index-files/index-13.html | 4 +- docs/index-files/index-14.html | 4 +- docs/index-files/index-15.html | 4 +- docs/index-files/index-16.html | 4 +- docs/index-files/index-17.html | 4 +- docs/index-files/index-18.html | 4 +- docs/index-files/index-19.html | 4 +- docs/index-files/index-2.html | 4 +- docs/index-files/index-20.html | 4 +- docs/index-files/index-21.html | 4 +- docs/index-files/index-22.html | 4 +- docs/index-files/index-23.html | 4 +- docs/index-files/index-24.html | 4 +- docs/index-files/index-25.html | 4 +- docs/index-files/index-3.html | 12 +- docs/index-files/index-4.html | 4 +- docs/index-files/index-5.html | 4 +- docs/index-files/index-6.html | 4 +- docs/index-files/index-7.html | 6 +- docs/index-files/index-8.html | 4 +- docs/index-files/index-9.html | 8 +- docs/index.html | 4 +- docs/member-search-index.js | 2 +- docs/overview-summary.html | 4 +- docs/overview-tree.html | 4 +- docs/swervelib/SwerveController.html | 4 +- docs/swervelib/SwerveDrive.html | 81 +++++---- docs/swervelib/SwerveModule.html | 4 +- .../encoders/AnalogAbsoluteEncoderSwerve.html | 4 +- docs/swervelib/encoders/CANCoderSwerve.html | 4 +- .../encoders/SparkMaxEncoderSwerve.html | 4 +- .../encoders/SwerveAbsoluteEncoder.html | 4 +- docs/swervelib/encoders/package-summary.html | 4 +- docs/swervelib/encoders/package-tree.html | 4 +- docs/swervelib/imu/ADIS16448Swerve.html | 4 +- docs/swervelib/imu/ADIS16470Swerve.html | 4 +- docs/swervelib/imu/ADXRS450Swerve.html | 4 +- docs/swervelib/imu/AnalogGyroSwerve.html | 4 +- docs/swervelib/imu/NavXSwerve.html | 4 +- docs/swervelib/imu/Pigeon2Swerve.html | 4 +- docs/swervelib/imu/PigeonSwerve.html | 4 +- docs/swervelib/imu/SwerveIMU.html | 4 +- docs/swervelib/imu/package-summary.html | 4 +- docs/swervelib/imu/package-tree.html | 4 +- docs/swervelib/math/Matter.html | 4 +- docs/swervelib/math/SwerveKinematics2.html | 4 +- docs/swervelib/math/SwerveMath.html | 4 +- docs/swervelib/math/SwerveModuleState2.html | 4 +- docs/swervelib/math/package-summary.html | 4 +- docs/swervelib/math/package-tree.html | 4 +- .../motors/SparkMaxBrushedMotorSwerve.html | 4 +- .../SparkMaxSwerve.SparkMAX_slotIdx.html | 4 +- docs/swervelib/motors/SparkMaxSwerve.html | 4 +- docs/swervelib/motors/SwerveMotor.html | 4 +- docs/swervelib/motors/TalonFXSwerve.html | 159 ++++++++++++------ docs/swervelib/motors/TalonSRXSwerve.html | 159 ++++++++++++------ docs/swervelib/motors/package-summary.html | 4 +- docs/swervelib/motors/package-tree.html | 4 +- docs/swervelib/package-summary.html | 4 +- docs/swervelib/package-tree.html | 4 +- docs/swervelib/parser/PIDFConfig.html | 4 +- .../parser/SwerveControllerConfiguration.html | 4 +- .../parser/SwerveDriveConfiguration.html | 4 +- .../parser/SwerveModuleConfiguration.html | 4 +- .../SwerveModulePhysicalCharacteristics.html | 4 +- docs/swervelib/parser/SwerveParser.html | 4 +- .../parser/deserializer/PIDFRange.html | 4 +- .../parser/deserializer/package-summary.html | 4 +- .../parser/deserializer/package-tree.html | 4 +- .../parser/json/ControllerPropertiesJson.html | 4 +- docs/swervelib/parser/json/DeviceJson.html | 4 +- docs/swervelib/parser/json/ModuleJson.html | 4 +- .../parser/json/MotorConfigDouble.html | 4 +- .../swervelib/parser/json/MotorConfigInt.html | 4 +- .../parser/json/PIDFPropertiesJson.html | 4 +- .../parser/json/PhysicalPropertiesJson.html | 4 +- .../parser/json/SwerveDriveJson.html | 4 +- .../parser/json/modules/BoolMotorJson.html | 4 +- .../parser/json/modules/LocationJson.html | 4 +- .../parser/json/modules/package-summary.html | 4 +- .../parser/json/modules/package-tree.html | 4 +- .../parser/json/package-summary.html | 4 +- docs/swervelib/parser/json/package-tree.html | 4 +- docs/swervelib/parser/package-summary.html | 4 +- docs/swervelib/parser/package-tree.html | 4 +- .../simulation/SwerveIMUSimulation.html | 4 +- .../simulation/SwerveModuleSimulation.html | 4 +- .../ctre/PhysicsSim.SimProfile.html | 4 +- .../swervelib/simulation/ctre/PhysicsSim.html | 4 +- .../simulation/ctre/TalonFXSimProfile.html | 4 +- .../simulation/ctre/TalonSRXSimProfile.html | 4 +- .../simulation/ctre/VictorSPXSimProfile.html | 4 +- .../simulation/ctre/package-summary.html | 4 +- .../simulation/ctre/package-tree.html | 4 +- .../swervelib/simulation/package-summary.html | 4 +- docs/swervelib/simulation/package-tree.html | 4 +- ...erveDriveTelemetry.TelemetryVerbosity.html | 4 +- .../telemetry/SwerveDriveTelemetry.html | 4 +- docs/swervelib/telemetry/package-summary.html | 4 +- docs/swervelib/telemetry/package-tree.html | 4 +- swervelib/SwerveDrive.java | 30 ++-- swervelib/motors/TalonFXSwerve.java | 35 ++++ swervelib/motors/TalonSRXSwerve.java | 35 ++++ 111 files changed, 565 insertions(+), 366 deletions(-) diff --git a/docs/allclasses-index.html b/docs/allclasses-index.html index 4ae75ce..faef0d7 100644 --- a/docs/allclasses-index.html +++ b/docs/allclasses-index.html @@ -1,11 +1,11 @@ - + All Classes and Interfaces - + diff --git a/docs/allpackages-index.html b/docs/allpackages-index.html index dfde17a..2026fd4 100644 --- a/docs/allpackages-index.html +++ b/docs/allpackages-index.html @@ -1,11 +1,11 @@ - + All Packages - + diff --git a/docs/constant-values.html b/docs/constant-values.html index 67da277..1f7598d 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -1,11 +1,11 @@ - + Constant Field Values - + diff --git a/docs/help-doc.html b/docs/help-doc.html index ba11838..01b5e9e 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 c31b58d..0473e99 100644 --- a/docs/index-files/index-1.html +++ b/docs/index-files/index-1.html @@ -1,11 +1,11 @@ - + A-Index - + diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html index 00cb4f3..2c0ff7a 100644 --- a/docs/index-files/index-10.html +++ b/docs/index-files/index-10.html @@ -1,11 +1,11 @@ - + K-Index - + diff --git a/docs/index-files/index-11.html b/docs/index-files/index-11.html index ac25567..cddee7e 100644 --- a/docs/index-files/index-11.html +++ b/docs/index-files/index-11.html @@ -1,11 +1,11 @@ - + L-Index - + diff --git a/docs/index-files/index-12.html b/docs/index-files/index-12.html index 2307b12..58d55c3 100644 --- a/docs/index-files/index-12.html +++ b/docs/index-files/index-12.html @@ -1,11 +1,11 @@ - + M-Index - + diff --git a/docs/index-files/index-13.html b/docs/index-files/index-13.html index 453ac7a..cec1ca2 100644 --- a/docs/index-files/index-13.html +++ b/docs/index-files/index-13.html @@ -1,11 +1,11 @@ - + N-Index - + diff --git a/docs/index-files/index-14.html b/docs/index-files/index-14.html index 864dd97..92eab14 100644 --- a/docs/index-files/index-14.html +++ b/docs/index-files/index-14.html @@ -1,11 +1,11 @@ - + O-Index - + diff --git a/docs/index-files/index-15.html b/docs/index-files/index-15.html index c360a26..4aaacf6 100644 --- a/docs/index-files/index-15.html +++ b/docs/index-files/index-15.html @@ -1,11 +1,11 @@ - + P-Index - + diff --git a/docs/index-files/index-16.html b/docs/index-files/index-16.html index d8d9edb..e7f6198 100644 --- a/docs/index-files/index-16.html +++ b/docs/index-files/index-16.html @@ -1,11 +1,11 @@ - + R-Index - + diff --git a/docs/index-files/index-17.html b/docs/index-files/index-17.html index e5c0955..a974767 100644 --- a/docs/index-files/index-17.html +++ b/docs/index-files/index-17.html @@ -1,11 +1,11 @@ - + S-Index - + diff --git a/docs/index-files/index-18.html b/docs/index-files/index-18.html index 1969c74..a86b1d7 100644 --- a/docs/index-files/index-18.html +++ b/docs/index-files/index-18.html @@ -1,11 +1,11 @@ - + T-Index - + diff --git a/docs/index-files/index-19.html b/docs/index-files/index-19.html index ec3ebac..7e5179b 100644 --- a/docs/index-files/index-19.html +++ b/docs/index-files/index-19.html @@ -1,11 +1,11 @@ - + U-Index - + diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html index eeca3fd..cde76db 100644 --- a/docs/index-files/index-2.html +++ b/docs/index-files/index-2.html @@ -1,11 +1,11 @@ - + B-Index - + diff --git a/docs/index-files/index-20.html b/docs/index-files/index-20.html index 2ba839d..0998ea3 100644 --- a/docs/index-files/index-20.html +++ b/docs/index-files/index-20.html @@ -1,11 +1,11 @@ - + V-Index - + diff --git a/docs/index-files/index-21.html b/docs/index-files/index-21.html index fe17518..b11b212 100644 --- a/docs/index-files/index-21.html +++ b/docs/index-files/index-21.html @@ -1,11 +1,11 @@ - + W-Index - + diff --git a/docs/index-files/index-22.html b/docs/index-files/index-22.html index 5f96f7c..e9635f9 100644 --- a/docs/index-files/index-22.html +++ b/docs/index-files/index-22.html @@ -1,11 +1,11 @@ - + X-Index - + diff --git a/docs/index-files/index-23.html b/docs/index-files/index-23.html index 316fc2c..8d4e5e8 100644 --- a/docs/index-files/index-23.html +++ b/docs/index-files/index-23.html @@ -1,11 +1,11 @@ - + Y-Index - + diff --git a/docs/index-files/index-24.html b/docs/index-files/index-24.html index 320fe5a..9d988fe 100644 --- a/docs/index-files/index-24.html +++ b/docs/index-files/index-24.html @@ -1,11 +1,11 @@ - + Z-Index - + diff --git a/docs/index-files/index-25.html b/docs/index-files/index-25.html index b03831c..0e552a6 100644 --- a/docs/index-files/index-25.html +++ b/docs/index-files/index-25.html @@ -1,11 +1,11 @@ - + _-Index - + diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html index 8626292..b34030d 100644 --- a/docs/index-files/index-3.html +++ b/docs/index-files/index-3.html @@ -1,11 +1,11 @@ - + C-Index - + @@ -226,6 +226,14 @@ loadScripts(document, 'script');
Set the CAN status frames.
+
configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int) - Method in class swervelib.motors.TalonFXSwerve
+
+
Set the CAN status frames.
+
+
configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int) - Method in class swervelib.motors.TalonSRXSwerve
+
+
Set the CAN status frames.
+
configureIntegratedEncoder(double) - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
Configure the integrated encoder for the swerve module.
diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html index 6030e46..16b02ae 100644 --- a/docs/index-files/index-4.html +++ b/docs/index-files/index-4.html @@ -1,11 +1,11 @@ - + D-Index - + diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html index 41c8f45..9fe5529 100644 --- a/docs/index-files/index-5.html +++ b/docs/index-files/index-5.html @@ -1,11 +1,11 @@ - + E-Index - + diff --git a/docs/index-files/index-6.html b/docs/index-files/index-6.html index 21a8886..d132be9 100644 --- a/docs/index-files/index-6.html +++ b/docs/index-files/index-6.html @@ -1,11 +1,11 @@ - + F-Index - + diff --git a/docs/index-files/index-7.html b/docs/index-files/index-7.html index 4c78ba3..3a34cd0 100644 --- a/docs/index-files/index-7.html +++ b/docs/index-files/index-7.html @@ -1,11 +1,11 @@ - + G-Index - + @@ -147,7 +147,7 @@ loadScripts(document, 'script');
getModulePositions() - Method in class swervelib.SwerveDrive
-
Gets the current module positions (azimuth and wheel position (meters))
+
Gets the current module positions (azimuth and wheel position (meters)).
getMotor() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html index 06696a8..9889bb0 100644 --- a/docs/index-files/index-8.html +++ b/docs/index-files/index-8.html @@ -1,11 +1,11 @@ - + H-Index - + diff --git a/docs/index-files/index-9.html b/docs/index-files/index-9.html index 06d81ea..509e116 100644 --- a/docs/index-files/index-9.html +++ b/docs/index-files/index-9.html @@ -1,11 +1,11 @@ - + I-Index - + @@ -109,6 +109,10 @@ loadScripts(document, 'script');
Invert the imu measurements.
+
invertOdometry - Variable in class swervelib.SwerveDrive
+
+
Invert odometry readings of drive motor positions, used as a patch for debugging currently.
+
isAttachedAbsoluteEncoder() - Method in class swervelib.motors.SparkMaxBrushedMotorSwerve
Queries whether the absolute encoder is directly attached to the motor controller.
diff --git a/docs/index.html b/docs/index.html index 0bd635a..c3e6b52 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,11 +1,11 @@ - + Overview - + diff --git a/docs/member-search-index.js b/docs/member-search-index.js index d72e46e..b40eae6 100644 --- a/docs/member-search-index.js +++ b/docs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_accelToFullTime"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_accelToFullTime"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_falcon"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_fullVel"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_fullVel"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"_lastTime"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"_running"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_sensorPhase"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_sensorPhase"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"_simProfiles"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_talon"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"_vel"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"_vel"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"_victor"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"absoluteEncoder"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"absoluteEncoder"},{"p":"swervelib","c":"SwerveModule","l":"absoluteEncoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"absoluteEncoderInverted"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"absoluteEncoderInverted"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"absoluteEncoderOffset"},{"p":"swervelib","c":"SwerveController","l":"addSlewRateLimiters(SlewRateLimiter, SlewRateLimiter, SlewRateLimiter)","u":"addSlewRateLimiters(edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonFX(TalonFX, double, double)","u":"addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX,double,double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonFX(TalonFX, double, double, boolean)","u":"addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX,double,double,boolean)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonSRX(TalonSRX, double, double)","u":"addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX,double,double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonSRX(TalonSRX, double, double, boolean)","u":"addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX,double,double,boolean)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addVictorSPX(VictorSPX)","u":"addVictorSPX(com.ctre.phoenix.motorcontrol.can.VictorSPX)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double, boolean, double)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double,boolean,double)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"ADIS16448Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"ADIS16470Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"ADXRS450Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(AnalogInput)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.AnalogInput)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"AnalogGyroSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.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.json","c":"ModuleJson","l":"angleEncoderPulsePerRevolution"},{"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","c":"SwerveController","l":"angleLimiter"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotor"},{"p":"swervelib","c":"SwerveModule","l":"angleMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotorEncoderPulsePerRevolution"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"angleMotorFreeSpeedRPM"},{"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.math","c":"SwerveKinematics2","l":"bigInverseKinematics"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"BoolMotorJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"burnFlash()"},{"p":"swervelib.math","c":"SwerveMath","l":"calcMaxAccel(Rotation2d, List, double, SwerveDriveConfiguration)","u":"calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.math","c":"SwerveMath","l":"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":"AnalogAbsoluteEncoderSwerve","l":"clearStickyFaults()"},{"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":"SparkMaxBrushedMotorSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"clearStickyFaults()"},{"p":"swervelib","c":"SwerveController","l":"config"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configChanged"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configChanged"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configuration"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configuration"},{"p":"swervelib","c":"SwerveModule","l":"configuration"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"configure(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.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.motors","c":"TalonSRXSwerve","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.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.telemetry","c":"SwerveDriveTelemetry","l":"desiredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredStates"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"DeviceJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"drive"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"drive"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"drive"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,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":"AnalogAbsoluteEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"encoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"encoder"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"encoderPulsePerRotation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"f"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"factoryDefault()"},{"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":"SparkMaxBrushedMotorSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaults()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakePos"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakeSpeed"},{"p":"swervelib","c":"SwerveModule","l":"feedforward"},{"p":"swervelib","c":"SwerveDrive","l":"field"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"forwardDirection"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"gearRatio"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsoluteEncoder()"},{"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":"AnalogAbsoluteEncoderSwerve","l":"getAbsolutePosition()"},{"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":"SparkMaxBrushedMotorSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getMotor()"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"getPeriod()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPose()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getPosition()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getPosition()"},{"p":"swervelib","c":"SwerveModule","l":"getPosition()"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"getPositionEncoderConversion(boolean)"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double)","u":"getRawTargetSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double, double)","u":"getRawTargetSpeeds(double,double,double,double)"},{"p":"swervelib","c":"SwerveModule","l":"getRelativePosition()"},{"p":"swervelib","c":"SwerveDrive","l":"getRobotVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getRoll()"},{"p":"swervelib","c":"SwerveDrive","l":"getRoll()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getState()"},{"p":"swervelib","c":"SwerveModule","l":"getState()"},{"p":"swervelib","c":"SwerveDrive","l":"getStates()"},{"p":"swervelib.math","c":"SwerveMath","l":"getSwerveModule(SwerveModule[], boolean, boolean)","u":"getSwerveModule(swervelib.SwerveModule[],boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveModulePoses(Pose2d)","u":"getSwerveModulePoses(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double)","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":"SparkMaxBrushedMotorSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getYaw()"},{"p":"swervelib","c":"SwerveDrive","l":"getYaw()"},{"p":"swervelib.imu","c":"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","c":"SwerveController","l":"headingCalculate(double, double)","u":"headingCalculate(double,double)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"headingPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"HIGH"},{"p":"swervelib.parser","c":"PIDFConfig","l":"i"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"id"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"imu"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"imu"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"imu"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"imu"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"imu"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"imu"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"imu"},{"p":"swervelib","c":"SwerveDrive","l":"imu"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"inverted"},{"p":"swervelib.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":"SparkMaxBrushedMotorSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isDriveMotor"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"isSimulation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"iz"},{"p":"swervelib","c":"SwerveDrive","l":"kinematics"},{"p":"swervelib","c":"SwerveModule","l":"lastAngle"},{"p":"swervelib","c":"SwerveController","l":"lastAngleScalar"},{"p":"swervelib","c":"SwerveDrive","l":"lastHeadingRadians"},{"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, List, SwerveDriveConfiguration)","u":"limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,java.util.List,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"location"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"LocationJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"lockPose()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"LOW"},{"p":"swervelib.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.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"MACHINE"},{"p":"swervelib.math","c":"Matter","l":"mass"},{"p":"swervelib.math","c":"Matter","l":"massMoment()"},{"p":"swervelib.math","c":"Matter","l":"Matter(Translation3d, double)","u":"%3Cinit%3E(edu.wpi.first.math.geometry.Translation3d,double)"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"max"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxAngularVelocity"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxAngularVelocity"},{"p":"swervelib.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.telemetry","c":"SwerveDriveTelemetry","l":"maxSpeed"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredStates"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"min"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleConfigs"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleCount"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"moduleCount"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"ModuleJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleJsons"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"moduleLocation"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleLocationsMeters"},{"p":"swervelib","c":"SwerveModule","l":"moduleNumber"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"modules"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"modules"},{"p":"swervelib","c":"SwerveDrive","l":"moduleSynchronizationCounter"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"motor"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SerialPort.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SerialPort.Port)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"nominalVoltage"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"nominalVoltage"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"NONE"},{"p":"swervelib.math","c":"SwerveMath","l":"normalizeAngle(double)"},{"p":"swervelib.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":"SparkMaxBrushedMotorSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"pid"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double)","u":"%3Cinit%3E(double,double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"pidfPropertiesJson"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"PIDFPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"PIDFRange()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"PigeonSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"p":"swervelib.math","c":"Matter","l":"position"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Position"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"positionConversionFactor"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"positionConversionFactor"},{"p":"swervelib","c":"SwerveDrive","l":"postTrajectory(Trajectory)","u":"postTrajectory(edu.wpi.first.math.trajectory.Trajectory)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"rampRate"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"random(double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"random(double, double)","u":"random(double,double)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"readingError"},{"p":"swervelib","c":"SwerveDrive","l":"replaceSwerveModuleFeedforward(SimpleMotorFeedforward)","u":"replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib","c":"SwerveDrive","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"robotRotation"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"rotationUnit"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"run()"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"run()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"set(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.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":"SparkMaxBrushedMotorSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib","c":"SwerveModule","l":"setDesiredState(SwerveModuleState2, boolean)","u":"setDesiredState(swervelib.math.SwerveModuleState2,boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setModuleStates(SwerveModuleState2[], boolean)","u":"setModuleStates(swervelib.math.SwerveModuleState2[],boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveModule","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setMotorIdleMode(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.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.telemetry","c":"SwerveDriveTelemetry","l":"sizeFrontBack"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"sizeLeftRight"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkMaxRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean,com.revrobotics.SparkMaxRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(int, boolean, SparkMaxRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(int,boolean,com.revrobotics.SparkMaxRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"SparkMaxEncoderSwerve(SwerveMotor)","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","c":"SwerveDrive","l":"stateStdDevs"},{"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.telemetry","c":"SwerveDriveTelemetry","l":"SwerveDriveTelemetry()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"SwerveIMU()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"SwerveIMUSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"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, double, double)","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,double,double)"},{"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.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"TelemetryVerbosity()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveController","l":"thetaController"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"timer"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"timer"},{"p":"swervelib.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.parser.json","c":"DeviceJson","l":"type"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"updateData()"},{"p":"swervelib","c":"SwerveDrive","l":"updateOdometry()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"updateOdometry(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.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"values()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Velocity"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"velocityPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"verbosity"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"VictorSPXSimProfile(VictorSPX)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.VictorSPX)"},{"p":"swervelib","c":"SwerveDrive","l":"visionMeasurementStdDevs"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"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.telemetry","c":"SwerveDriveTelemetry","l":"wheelLocations"},{"p":"swervelib","c":"SwerveController","l":"withinHypotDeadband(double, double)","u":"withinHypotDeadband(double,double)"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"x"},{"p":"swervelib","c":"SwerveController","l":"xLimiter"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"y"},{"p":"swervelib.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":"SwerveController","l":"yLimiter"},{"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":"SparkMaxBrushedMotorSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"absoluteEncoder"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"absoluteEncoder"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"absoluteEncoder"},{"p":"swervelib","c":"SwerveModule","l":"absoluteEncoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"absoluteEncoderInverted"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"absoluteEncoderInverted"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"absoluteEncoderOffset"},{"p":"swervelib","c":"SwerveController","l":"addSlewRateLimiters(SlewRateLimiter, SlewRateLimiter, SlewRateLimiter)","u":"addSlewRateLimiters(edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonFX(TalonFX, double, double)","u":"addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX,double,double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonFX(TalonFX, double, double, boolean)","u":"addTalonFX(com.ctre.phoenix.motorcontrol.can.TalonFX,double,double,boolean)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonSRX(TalonSRX, double, double)","u":"addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX,double,double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addTalonSRX(TalonSRX, double, double, boolean)","u":"addTalonSRX(com.ctre.phoenix.motorcontrol.can.TalonSRX,double,double,boolean)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"addVictorSPX(VictorSPX)","u":"addVictorSPX(com.ctre.phoenix.motorcontrol.can.VictorSPX)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double, boolean, double)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double,boolean,double)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"ADIS16448Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"ADIS16470Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"ADXRS450Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(AnalogInput)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.AnalogInput)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"AnalogGyroSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.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.json","c":"ModuleJson","l":"angleEncoderPulsePerRevolution"},{"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","c":"SwerveController","l":"angleLimiter"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotor"},{"p":"swervelib","c":"SwerveModule","l":"angleMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotorEncoderPulsePerRevolution"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"angleMotorFreeSpeedRPM"},{"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.math","c":"SwerveKinematics2","l":"bigInverseKinematics"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"BoolMotorJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"burnFlash()"},{"p":"swervelib.math","c":"SwerveMath","l":"calcMaxAccel(Rotation2d, List, double, SwerveDriveConfiguration)","u":"calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.math","c":"SwerveMath","l":"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":"AnalogAbsoluteEncoderSwerve","l":"clearStickyFaults()"},{"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":"SparkMaxBrushedMotorSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"clearStickyFaults()"},{"p":"swervelib","c":"SwerveController","l":"config"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configChanged"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configChanged"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configuration"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configuration"},{"p":"swervelib","c":"SwerveModule","l":"configuration"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"configure(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.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.motors","c":"TalonSRXSwerve","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.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.telemetry","c":"SwerveDriveTelemetry","l":"desiredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredStates"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"DeviceJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"drive"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"drive"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"drive"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,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":"AnalogAbsoluteEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"encoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"encoder"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"encoderPulsePerRotation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"f"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"factoryDefault()"},{"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":"SparkMaxBrushedMotorSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaultOccurred"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaults()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakePos"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakeSpeed"},{"p":"swervelib","c":"SwerveModule","l":"feedforward"},{"p":"swervelib","c":"SwerveDrive","l":"field"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"forwardDirection"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"gearRatio"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsoluteEncoder()"},{"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":"AnalogAbsoluteEncoderSwerve","l":"getAbsolutePosition()"},{"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":"SparkMaxBrushedMotorSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getMotor()"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"getPeriod()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPose()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getPosition()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getPosition()"},{"p":"swervelib","c":"SwerveModule","l":"getPosition()"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"getPositionEncoderConversion(boolean)"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double)","u":"getRawTargetSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double, double)","u":"getRawTargetSpeeds(double,double,double,double)"},{"p":"swervelib","c":"SwerveModule","l":"getRelativePosition()"},{"p":"swervelib","c":"SwerveDrive","l":"getRobotVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getRoll()"},{"p":"swervelib","c":"SwerveDrive","l":"getRoll()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getState()"},{"p":"swervelib","c":"SwerveModule","l":"getState()"},{"p":"swervelib","c":"SwerveDrive","l":"getStates()"},{"p":"swervelib.math","c":"SwerveMath","l":"getSwerveModule(SwerveModule[], boolean, boolean)","u":"getSwerveModule(swervelib.SwerveModule[],boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveModulePoses(Pose2d)","u":"getSwerveModulePoses(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double)","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":"SparkMaxBrushedMotorSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getYaw()"},{"p":"swervelib","c":"SwerveDrive","l":"getYaw()"},{"p":"swervelib.imu","c":"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","c":"SwerveController","l":"headingCalculate(double, double)","u":"headingCalculate(double,double)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"headingPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"HIGH"},{"p":"swervelib.parser","c":"PIDFConfig","l":"i"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"id"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"imu"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"imu"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"imu"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"imu"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"imu"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"imu"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"imu"},{"p":"swervelib","c":"SwerveDrive","l":"imu"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"inverted"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"inverted"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"invertedIMU"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"invertedIMU"},{"p":"swervelib","c":"SwerveDrive","l":"invertOdometry"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isDriveMotor"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"isSimulation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"iz"},{"p":"swervelib","c":"SwerveDrive","l":"kinematics"},{"p":"swervelib","c":"SwerveModule","l":"lastAngle"},{"p":"swervelib","c":"SwerveController","l":"lastAngleScalar"},{"p":"swervelib","c":"SwerveDrive","l":"lastHeadingRadians"},{"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, List, SwerveDriveConfiguration)","u":"limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,java.util.List,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"location"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"LocationJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"lockPose()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"LOW"},{"p":"swervelib.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.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"MACHINE"},{"p":"swervelib.math","c":"Matter","l":"mass"},{"p":"swervelib.math","c":"Matter","l":"massMoment()"},{"p":"swervelib.math","c":"Matter","l":"Matter(Translation3d, double)","u":"%3Cinit%3E(edu.wpi.first.math.geometry.Translation3d,double)"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"max"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxAngularVelocity"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxAngularVelocity"},{"p":"swervelib.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.telemetry","c":"SwerveDriveTelemetry","l":"maxSpeed"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredStates"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"min"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleConfigs"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleCount"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"moduleCount"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"ModuleJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleJsons"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"moduleLocation"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleLocationsMeters"},{"p":"swervelib","c":"SwerveModule","l":"moduleNumber"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"modules"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"modules"},{"p":"swervelib","c":"SwerveDrive","l":"moduleSynchronizationCounter"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"motor"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SerialPort.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SerialPort.Port)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"nominalVoltage"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"nominalVoltage"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"NONE"},{"p":"swervelib.math","c":"SwerveMath","l":"normalizeAngle(double)"},{"p":"swervelib.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":"SparkMaxBrushedMotorSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"pid"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double)","u":"%3Cinit%3E(double,double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"pidfPropertiesJson"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"PIDFPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"PIDFRange()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"PigeonSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"p":"swervelib.math","c":"Matter","l":"position"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Position"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"positionConversionFactor"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"positionConversionFactor"},{"p":"swervelib","c":"SwerveDrive","l":"postTrajectory(Trajectory)","u":"postTrajectory(edu.wpi.first.math.trajectory.Trajectory)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"rampRate"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"random(double)"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"random(double, double)","u":"random(double,double)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"readingError"},{"p":"swervelib","c":"SwerveDrive","l":"replaceSwerveModuleFeedforward(SimpleMotorFeedforward)","u":"replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib","c":"SwerveDrive","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"robotRotation"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"rotationUnit"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim","l":"run()"},{"p":"swervelib.simulation.ctre","c":"PhysicsSim.SimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"TalonFXSimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"TalonSRXSimProfile","l":"run()"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"run()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"set(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.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":"SparkMaxBrushedMotorSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib","c":"SwerveModule","l":"setDesiredState(SwerveModuleState2, boolean)","u":"setDesiredState(swervelib.math.SwerveModuleState2,boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setModuleStates(SwerveModuleState2[], boolean)","u":"setModuleStates(swervelib.math.SwerveModuleState2[],boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveModule","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setMotorIdleMode(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.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.telemetry","c":"SwerveDriveTelemetry","l":"sizeFrontBack"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"sizeLeftRight"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkMaxRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean,com.revrobotics.SparkMaxRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(int, boolean, SparkMaxRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(int,boolean,com.revrobotics.SparkMaxRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"SparkMaxEncoderSwerve(SwerveMotor)","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","c":"SwerveDrive","l":"stateStdDevs"},{"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.telemetry","c":"SwerveDriveTelemetry","l":"SwerveDriveTelemetry()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"SwerveIMU()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"SwerveIMUSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"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, double, double)","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,double,double)"},{"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.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"TelemetryVerbosity()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveController","l":"thetaController"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"timer"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"timer"},{"p":"swervelib.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.parser.json","c":"DeviceJson","l":"type"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"updateData()"},{"p":"swervelib","c":"SwerveDrive","l":"updateOdometry()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"updateOdometry(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.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"values()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Velocity"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"velocityPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"verbosity"},{"p":"swervelib.simulation.ctre","c":"VictorSPXSimProfile","l":"VictorSPXSimProfile(VictorSPX)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.VictorSPX)"},{"p":"swervelib","c":"SwerveDrive","l":"visionMeasurementStdDevs"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"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.telemetry","c":"SwerveDriveTelemetry","l":"wheelLocations"},{"p":"swervelib","c":"SwerveController","l":"withinHypotDeadband(double, double)","u":"withinHypotDeadband(double,double)"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"x"},{"p":"swervelib","c":"SwerveController","l":"xLimiter"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"y"},{"p":"swervelib.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":"SwerveController","l":"yLimiter"},{"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 c234853..3b128a6 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 137d42b..7d909f6 100644 --- a/docs/overview-tree.html +++ b/docs/overview-tree.html @@ -1,11 +1,11 @@ - + Class Hierarchy - + diff --git a/docs/swervelib/SwerveController.html b/docs/swervelib/SwerveController.html index 1bd07e5..f3e876d 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 ba96851..006073d 100644 --- a/docs/swervelib/SwerveDrive.html +++ b/docs/swervelib/SwerveDrive.html @@ -1,11 +1,11 @@ - + SwerveDrive - + @@ -101,55 +101,60 @@ loadScripts(document, 'script');
Swerve IMU device for sensing the heading of the robot.
- - +
boolean
+
+
Invert odometry readings of drive motor positions, used as a patch for debugging currently.
+
+ + +
Swerve Kinematics object utilizing second order kinematics.
-
private double
- -
+
private double
+ +
The last heading set in radians.
-
private int
- -
+
private int
+ +
Counter to synchronize the modules relative encoder with absolute encoder when not moving.
- - -
+ + +
Simulation of the swerve drive.
-
edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
- -
+
edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
+ +
Trustworthiness of the internal model of how motors should be moving Measured in expected standard deviation (meters of position and degrees of rotation)
- - -
+ + +
Swerve controller for controlling heading of the robot.
- - -
+ + +
Swerve drive configuration.
-
final edu.wpi.first.math.estimator.SwerveDrivePoseEstimator
- -
+
final edu.wpi.first.math.estimator.SwerveDrivePoseEstimator
+ +
Swerve odometry.
-
private final SwerveModule[]
- -
+
private final SwerveModule[]
+ +
Swerve modules.
-
edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
- -
+
edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
+ +
Trustworthiness of the vision system Measured in expected standard deviation (meters of position and degrees of rotation)
@@ -222,7 +227,7 @@ loadScripts(document, 'script');
edu.wpi.first.math.kinematics.SwerveModulePosition[]
-
Gets the current module positions (azimuth and wheel position (meters))
+
Gets the current module positions (azimuth and wheel position (meters)).
edu.wpi.first.math.geometry.Rotation2d
@@ -386,6 +391,13 @@ loadScripts(document, 'script');
  • +
    +

    invertOdometry

    +
    public boolean invertOdometry
    +
    Invert odometry readings of drive motor positions, used as a patch for debugging currently.
    +
    +
  • +
  • imu

    private SwerveIMU imu
    @@ -594,7 +606,8 @@ loadScripts(document, 'script');

    getModulePositions

    public edu.wpi.first.math.kinematics.SwerveModulePosition[] getModulePositions()
    -
    Gets the current module positions (azimuth and wheel position (meters))
    +
    Gets the current module positions (azimuth and wheel position (meters)). Inverts the distance from each module if + invertOdometry is true.
    Returns:
    A list of SwerveModulePositions containg the current module positions
    @@ -719,7 +732,7 @@ loadScripts(document, 'script'); boolean soft, double trustWorthiness)
  • Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with - the given timestamp of the vision measurement. THIS WILL BREAK IF UPDATED TOO OFTEN.
    + the given timestamp of the vision measurement.
    Parameters:
    robotPose - Robot Pose2d as measured by vision.
    diff --git a/docs/swervelib/SwerveModule.html b/docs/swervelib/SwerveModule.html index 696db89..ca54666 100644 --- a/docs/swervelib/SwerveModule.html +++ b/docs/swervelib/SwerveModule.html @@ -1,11 +1,11 @@ - + SwerveModule - + diff --git a/docs/swervelib/encoders/AnalogAbsoluteEncoderSwerve.html b/docs/swervelib/encoders/AnalogAbsoluteEncoderSwerve.html index 83cd002..7aa2887 100644 --- a/docs/swervelib/encoders/AnalogAbsoluteEncoderSwerve.html +++ b/docs/swervelib/encoders/AnalogAbsoluteEncoderSwerve.html @@ -1,11 +1,11 @@ - + AnalogAbsoluteEncoderSwerve - + diff --git a/docs/swervelib/encoders/CANCoderSwerve.html b/docs/swervelib/encoders/CANCoderSwerve.html index 0e2b9a7..6784423 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 6c2cb05..aab6f86 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 c2453b2..39bd50f 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 d673296..959e5cd 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 8b04eee..a57a274 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 65c6de8..887c967 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 52c367c..8fd8ab5 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 668efea..760636d 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 f4b3009..7e4e94d 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 b78d4b6..af7a8a9 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 0e202fa..6ec7db3 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 b048c93..f2147ac 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 43ecbc4..fd966d5 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 47485b1..253164d 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 a3d3759..607a407 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/Matter.html b/docs/swervelib/math/Matter.html index 30abea8..c9c2083 100644 --- a/docs/swervelib/math/Matter.html +++ b/docs/swervelib/math/Matter.html @@ -1,11 +1,11 @@ - + Matter - + diff --git a/docs/swervelib/math/SwerveKinematics2.html b/docs/swervelib/math/SwerveKinematics2.html index 810df4a..fcaef0c 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 ada32b1..425e2fd 100644 --- a/docs/swervelib/math/SwerveMath.html +++ b/docs/swervelib/math/SwerveMath.html @@ -1,11 +1,11 @@ - + SwerveMath - + diff --git a/docs/swervelib/math/SwerveModuleState2.html b/docs/swervelib/math/SwerveModuleState2.html index 4e379b3..2a2cb9a 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 a92e97d..41a543c 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 f12fdf1..76dae74 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/SparkMaxBrushedMotorSwerve.html b/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html index 7cd7e72..6218291 100644 --- a/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html +++ b/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html @@ -1,11 +1,11 @@ - + SparkMaxBrushedMotorSwerve - + diff --git a/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html b/docs/swervelib/motors/SparkMaxSwerve.SparkMAX_slotIdx.html index 2e6e11b..36e251d 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 937b669..e07b3e8 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 be39692..640c6cb 100644 --- a/docs/swervelib/motors/SwerveMotor.html +++ b/docs/swervelib/motors/SwerveMotor.html @@ -1,11 +1,11 @@ - + SwerveMotor - + diff --git a/docs/swervelib/motors/TalonFXSwerve.html b/docs/swervelib/motors/TalonFXSwerve.html index c72277f..b855e84 100644 --- a/docs/swervelib/motors/TalonFXSwerve.html +++ b/docs/swervelib/motors/TalonFXSwerve.html @@ -1,11 +1,11 @@ - + TalonFXSwerve - + @@ -188,102 +188,117 @@ loadScripts(document, 'script');
    Set the CAN status frames.
    void
    -
    configureIntegratedEncoder(double positionConversionFactor)
    +
    configureCANStatusFrames(int CANStatus1, + int CANStatus2, + int CANStatus3, + int CANStatus4, + int CANStatus8, + int CANStatus10, + int CANStatus12, + int CANStatus13, + int CANStatus14, + int CANStatus21, + int CANStatusCurrent)
    -
    Configure the integrated encoder for the swerve module.
    +
    Set the CAN status frames.
    void
    - +
    configureIntegratedEncoder(double positionConversionFactor)
    +
    Configure the integrated encoder for the swerve module.
    +
    +
    void
    + +
    Configure the PIDF values for the closed loop controller.
    -
    void
    -
    configurePIDWrapping(double minInput, +
    void
    +
    configurePIDWrapping(double minInput, double maxInput)
    -
    +
    Configure the PID wrapping for the position closed loop controller.
    -
    double
    -
    convertToNativeSensorUnits(double setpoint)
    -
    +
    double
    +
    convertToNativeSensorUnits(double setpoint)
    +
    Convert the setpoint into native sensor units.
    -
    void
    - -
    +
    void
    + +
    Configure the factory defaults.
    - - -
    + + +
    Get the motor object from the module.
    -
    double
    - -
    +
    double
    + +
    Get the position of the integrated encoder.
    -
    double
    - -
    +
    double
    + +
    Get the velocity of the integrated encoder.
    -
    boolean
    - -
    +
    boolean
    + +
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    private double
    -
    placeInAppropriate0To360Scope(double scopeReference, +
    private double
    +
    placeInAppropriate0To360Scope(double scopeReference, double newAngle)
    -
    +
    Put an angle within the the 360 deg scope of a reference.
    -
    void
    -
    set(double percentOutput)
    -
    +
    void
    +
    set(double percentOutput)
    +
    Set the percentage output.
    - - -
    + + +
    Set the absolute encoder to be a compatible absolute encoder.
    -
    void
    -
    setCurrentLimit(int currentLimit)
    -
    +
    void
    +
    setCurrentLimit(int currentLimit)
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with voltage compensation.
    -
    void
    -
    setInverted(boolean inverted)
    -
    +
    void
    +
    setInverted(boolean inverted)
    +
    Set the motor to be inverted.
    -
    void
    -
    setLoopRampRate(double rampRate)
    -
    +
    void
    +
    setLoopRampRate(double rampRate)
    +
    Set the maximum rate the open/closed loop output can change by.
    -
    void
    -
    setMotorBrake(boolean isBrakeMode)
    -
    +
    void
    +
    setMotorBrake(boolean isBrakeMode)
    +
    Set the idle mode.
    -
    void
    -
    setPosition(double position)
    -
    +
    void
    +
    setPosition(double position)
    +
    Set the integrated encoder position.
    -
    void
    -
    setReference(double setpoint, +
    void
    +
    setReference(double setpoint, double feedforward)
    -
    +
    Set the closed loop PID controller reference point.
    -
    void
    -
    setVoltageCompensation(double nominalVoltage)
    -
    +
    void
    +
    setVoltageCompensation(double nominalVoltage)
    +
    Set the voltage compensation for the swerve module motor.
    @@ -497,6 +512,38 @@ loadScripts(document, 'script');
  • +
    +

    configureCANStatusFrames

    +
    public void configureCANStatusFrames(int CANStatus1, + int CANStatus2, + int CANStatus3, + int CANStatus4, + int CANStatus8, + int CANStatus10, + int CANStatus12, + int CANStatus13, + int CANStatus14, + int CANStatus21, + int CANStatusCurrent)
    +
    Set the CAN status frames.
    +
    +
    Parameters:
    +
    CANStatus1 - Applied Motor Output, Fault Information, Limit Switch Information
    +
    CANStatus2 - Selected Sensor Position (PID 0), Selected Sensor Velocity (PID 0), Brushed Supply Current + Measurement, Sticky Fault Information
    +
    CANStatus3 - Quadrature Information
    +
    CANStatus4 - Analog Input, Supply Battery Voltage, Controller Temperature
    +
    CANStatus8 - Pulse Width Information
    +
    CANStatus10 - Motion Profiling/Motion Magic Information
    +
    CANStatus12 - Selected Sensor Position (Aux PID 1), Selected Sensor Velocity (Aux PID 1)
    +
    CANStatus13 - PID0 (Primary PID) Information
    +
    CANStatus14 - PID1 (Auxiliary PID) Information
    +
    CANStatus21 - Integrated Sensor Position (Talon FX), Integrated Sensor Velocity (Talon FX)
    +
    CANStatusCurrent - Brushless Supply Current Measurement, Brushless Stator Current Measurement
    +
    +
    +
  • +
  • configurePIDF

    public void configurePIDF(PIDFConfig config)
    diff --git a/docs/swervelib/motors/TalonSRXSwerve.html b/docs/swervelib/motors/TalonSRXSwerve.html index 509038e..f16d991 100644 --- a/docs/swervelib/motors/TalonSRXSwerve.html +++ b/docs/swervelib/motors/TalonSRXSwerve.html @@ -1,11 +1,11 @@ - + TalonSRXSwerve - + @@ -182,102 +182,117 @@ loadScripts(document, 'script');
    Set the CAN status frames.
  • void
    -
    configureIntegratedEncoder(double positionConversionFactor)
    +
    configureCANStatusFrames(int CANStatus1, + int CANStatus2, + int CANStatus3, + int CANStatus4, + int CANStatus8, + int CANStatus10, + int CANStatus12, + int CANStatus13, + int CANStatus14, + int CANStatus21, + int CANStatusCurrent)
    -
    Configure the integrated encoder for the swerve module.
    +
    Set the CAN status frames.
    void
    - +
    configureIntegratedEncoder(double positionConversionFactor)
    +
    Configure the integrated encoder for the swerve module.
    +
    +
    void
    + +
    Configure the PIDF values for the closed loop controller.
    -
    void
    -
    configurePIDWrapping(double minInput, +
    void
    +
    configurePIDWrapping(double minInput, double maxInput)
    -
    +
    Configure the PID wrapping for the position closed loop controller.
    -
    double
    -
    convertToNativeSensorUnits(double setpoint)
    -
    +
    double
    +
    convertToNativeSensorUnits(double setpoint)
    +
    Convert the setpoint into native sensor units.
    -
    void
    - -
    +
    void
    + +
    Configure the factory defaults.
    - - -
    + + +
    Get the motor object from the module.
    -
    double
    - -
    +
    double
    + +
    Get the position of the integrated encoder.
    -
    double
    - -
    +
    double
    + +
    Get the velocity of the integrated encoder.
    -
    boolean
    - -
    +
    boolean
    + +
    Queries whether the absolute encoder is directly attached to the motor controller.
    -
    private double
    -
    placeInAppropriate0To360Scope(double scopeReference, +
    private double
    +
    placeInAppropriate0To360Scope(double scopeReference, double newAngle)
    -
    +
    Put an angle within the the 360 deg scope of a reference.
    -
    void
    -
    set(double percentOutput)
    -
    +
    void
    +
    set(double percentOutput)
    +
    Set the percentage output.
    - - -
    + + +
    Set the absolute encoder to be a compatible absolute encoder.
    -
    void
    -
    setCurrentLimit(int currentLimit)
    -
    +
    void
    +
    setCurrentLimit(int currentLimit)
    +
    Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with voltage compensation.
    -
    void
    -
    setInverted(boolean inverted)
    -
    +
    void
    +
    setInverted(boolean inverted)
    +
    Set the motor to be inverted.
    -
    void
    -
    setLoopRampRate(double rampRate)
    -
    +
    void
    +
    setLoopRampRate(double rampRate)
    +
    Set the maximum rate the open/closed loop output can change by.
    -
    void
    -
    setMotorBrake(boolean isBrakeMode)
    -
    +
    void
    +
    setMotorBrake(boolean isBrakeMode)
    +
    Set the idle mode.
    -
    void
    -
    setPosition(double position)
    -
    +
    void
    +
    setPosition(double position)
    +
    Set the integrated encoder position.
    -
    void
    -
    setReference(double setpoint, +
    void
    +
    setReference(double setpoint, double feedforward)
    -
    +
    Set the closed loop PID controller reference point.
    -
    void
    -
    setVoltageCompensation(double nominalVoltage)
    -
    +
    void
    +
    setVoltageCompensation(double nominalVoltage)
    +
    Set the voltage compensation for the swerve module motor.
    @@ -476,6 +491,38 @@ loadScripts(document, 'script');
  • +
    +

    configureCANStatusFrames

    +
    public void configureCANStatusFrames(int CANStatus1, + int CANStatus2, + int CANStatus3, + int CANStatus4, + int CANStatus8, + int CANStatus10, + int CANStatus12, + int CANStatus13, + int CANStatus14, + int CANStatus21, + int CANStatusCurrent)
    +
    Set the CAN status frames.
    +
    +
    Parameters:
    +
    CANStatus1 - Applied Motor Output, Fault Information, Limit Switch Information
    +
    CANStatus2 - Selected Sensor Position (PID 0), Selected Sensor Velocity (PID 0), Brushed Supply Current + Measurement, Sticky Fault Information
    +
    CANStatus3 - Quadrature Information
    +
    CANStatus4 - Analog Input, Supply Battery Voltage, Controller Temperature
    +
    CANStatus8 - Pulse Width Information
    +
    CANStatus10 - Motion Profiling/Motion Magic Information
    +
    CANStatus12 - Selected Sensor Position (Aux PID 1), Selected Sensor Velocity (Aux PID 1)
    +
    CANStatus13 - PID0 (Primary PID) Information
    +
    CANStatus14 - PID1 (Auxiliary PID) Information
    +
    CANStatus21 - Integrated Sensor Position (Talon FX), Integrated Sensor Velocity (Talon FX)
    +
    CANStatusCurrent - Brushless Supply Current Measurement, Brushless Stator Current Measurement
    +
    +
    +
  • +
  • configurePIDF

    public void configurePIDF(PIDFConfig config)
    diff --git a/docs/swervelib/motors/package-summary.html b/docs/swervelib/motors/package-summary.html index 2c0f410..f1a924d 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 83c7083..fc27502 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 3176bcf..973f64f 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 bd8bce6..e6ab312 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 b0b5c62..9fb8387 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 2eb6f47..48be576 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 34c44db..1e67168 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 e9504de..0711306 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 f9f00ad..36bbbff 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 92aa675..f49ae9c 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 0bf8ba6..14f6763 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 23ee9e2..2eb08fa 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 f0a8839..997078e 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 00acea8..d008de9 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 d33efc9..7929e5b 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 8a6b99b..3f5e88e 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 0f11fe5..88632ed 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 ef0676f..8eb0a0b 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 7302d5e..abf8747 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 f452c32..35bcfd5 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 8f588b7..58a4688 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 00080e3..9079178 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 9bb2be9..c5fecd8 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 eb68109..dcca564 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 96c93cb..fed5886 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 dcc42db..3f3f76c 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 0eec26d..ab18284 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 8acdafe..b0c7de0 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 7fc749b..a030596 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 28f7d08..9951345 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 df18c20..ac7a81c 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 index d22df89..dbb9e72 100644 --- a/docs/swervelib/simulation/ctre/PhysicsSim.SimProfile.html +++ b/docs/swervelib/simulation/ctre/PhysicsSim.SimProfile.html @@ -1,11 +1,11 @@ - + PhysicsSim.SimProfile - + diff --git a/docs/swervelib/simulation/ctre/PhysicsSim.html b/docs/swervelib/simulation/ctre/PhysicsSim.html index 8301446..301bc28 100644 --- a/docs/swervelib/simulation/ctre/PhysicsSim.html +++ b/docs/swervelib/simulation/ctre/PhysicsSim.html @@ -1,11 +1,11 @@ - + PhysicsSim - + diff --git a/docs/swervelib/simulation/ctre/TalonFXSimProfile.html b/docs/swervelib/simulation/ctre/TalonFXSimProfile.html index 1bdeb41..4358734 100644 --- a/docs/swervelib/simulation/ctre/TalonFXSimProfile.html +++ b/docs/swervelib/simulation/ctre/TalonFXSimProfile.html @@ -1,11 +1,11 @@ - + TalonFXSimProfile - + diff --git a/docs/swervelib/simulation/ctre/TalonSRXSimProfile.html b/docs/swervelib/simulation/ctre/TalonSRXSimProfile.html index 753629a..cbc5994 100644 --- a/docs/swervelib/simulation/ctre/TalonSRXSimProfile.html +++ b/docs/swervelib/simulation/ctre/TalonSRXSimProfile.html @@ -1,11 +1,11 @@ - + TalonSRXSimProfile - + diff --git a/docs/swervelib/simulation/ctre/VictorSPXSimProfile.html b/docs/swervelib/simulation/ctre/VictorSPXSimProfile.html index bf6d493..a372035 100644 --- a/docs/swervelib/simulation/ctre/VictorSPXSimProfile.html +++ b/docs/swervelib/simulation/ctre/VictorSPXSimProfile.html @@ -1,11 +1,11 @@ - + VictorSPXSimProfile - + diff --git a/docs/swervelib/simulation/ctre/package-summary.html b/docs/swervelib/simulation/ctre/package-summary.html index 607e096..bf8de92 100644 --- a/docs/swervelib/simulation/ctre/package-summary.html +++ b/docs/swervelib/simulation/ctre/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.simulation.ctre - + diff --git a/docs/swervelib/simulation/ctre/package-tree.html b/docs/swervelib/simulation/ctre/package-tree.html index 917f879..2dc0dbd 100644 --- a/docs/swervelib/simulation/ctre/package-tree.html +++ b/docs/swervelib/simulation/ctre/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.simulation.ctre Class Hierarchy - + diff --git a/docs/swervelib/simulation/package-summary.html b/docs/swervelib/simulation/package-summary.html index 868460d..0b68a7f 100644 --- a/docs/swervelib/simulation/package-summary.html +++ b/docs/swervelib/simulation/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.simulation - + diff --git a/docs/swervelib/simulation/package-tree.html b/docs/swervelib/simulation/package-tree.html index 9382ef5..77bad7d 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/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html b/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html index d7976e3..2ae32d7 100644 --- a/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html +++ b/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html @@ -1,11 +1,11 @@ - + SwerveDriveTelemetry.TelemetryVerbosity - + diff --git a/docs/swervelib/telemetry/SwerveDriveTelemetry.html b/docs/swervelib/telemetry/SwerveDriveTelemetry.html index 5c7872f..2d3579e 100644 --- a/docs/swervelib/telemetry/SwerveDriveTelemetry.html +++ b/docs/swervelib/telemetry/SwerveDriveTelemetry.html @@ -1,11 +1,11 @@ - + SwerveDriveTelemetry - + diff --git a/docs/swervelib/telemetry/package-summary.html b/docs/swervelib/telemetry/package-summary.html index ea37a39..d7cfb6a 100644 --- a/docs/swervelib/telemetry/package-summary.html +++ b/docs/swervelib/telemetry/package-summary.html @@ -1,11 +1,11 @@ - + swervelib.telemetry - + diff --git a/docs/swervelib/telemetry/package-tree.html b/docs/swervelib/telemetry/package-tree.html index e1de47d..52886c6 100644 --- a/docs/swervelib/telemetry/package-tree.html +++ b/docs/swervelib/telemetry/package-tree.html @@ -1,11 +1,11 @@ - + swervelib.telemetry Class Hierarchy - + diff --git a/swervelib/SwerveDrive.java b/swervelib/SwerveDrive.java index 3fdcf94..f6fe1e1 100644 --- a/swervelib/SwerveDrive.java +++ b/swervelib/SwerveDrive.java @@ -69,23 +69,27 @@ public class SwerveDrive * Trustworthiness of the vision system Measured in expected standard deviation (meters of position and degrees of * rotation) */ - public Matrix visionMeasurementStdDevs = VecBuilder.fill(0.9, 0.9, 0.9); + public Matrix visionMeasurementStdDevs = VecBuilder.fill(0.9, 0.9, 0.9); + /** + * Invert odometry readings of drive motor positions, used as a patch for debugging currently. + */ + public boolean invertOdometry = false; /** * Swerve IMU device for sensing the heading of the robot. */ - private SwerveIMU imu; + private SwerveIMU imu; /** * Simulation of the swerve drive. */ - private SwerveIMUSimulation simIMU; + private SwerveIMUSimulation simIMU; /** * Counter to synchronize the modules relative encoder with absolute encoder when not moving. */ - private int moduleSynchronizationCounter = 0; + private int moduleSynchronizationCounter = 0; /** * The last heading set in radians. */ - private double lastHeadingRadians = 0; + private double lastHeadingRadians = 0; /** * Creates a new swerve drivebase subsystem. Robot is controlled via the {@link SwerveDrive#drive} method, or via the @@ -261,9 +265,10 @@ public class SwerveDrive if (SwerveDriveTelemetry.verbosity.ordinal() >= TelemetryVerbosity.HIGH.ordinal()) { - SwerveModuleState2 moduleState = module.getState(); - SwerveDriveTelemetry.desiredStates[module.moduleNumber * 2] = moduleState.angle.getDegrees(); - SwerveDriveTelemetry.desiredStates[(module.moduleNumber * 2) + 1] = moduleState.speedMetersPerSecond; + SwerveDriveTelemetry.desiredStates[module.moduleNumber * + 2] = desiredStates[module.moduleNumber].angle.getDegrees(); + SwerveDriveTelemetry.desiredStates[(module.moduleNumber * 2) + + 1] = desiredStates[module.moduleNumber].speedMetersPerSecond; } if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) { @@ -367,7 +372,8 @@ public class SwerveDrive } /** - * Gets the current module positions (azimuth and wheel position (meters)) + * Gets the current module positions (azimuth and wheel position (meters)). Inverts the distance from each module if + * {@link #invertOdometry} is true. * * @return A list of SwerveModulePositions containg the current module positions */ @@ -378,6 +384,10 @@ public class SwerveDrive for (SwerveModule module : swerveModules) { positions[module.moduleNumber] = module.getPosition(); + if (invertOdometry) + { + positions[module.moduleNumber].distanceMeters *= -1; + } } return positions; } @@ -629,7 +639,7 @@ public class SwerveDrive /** * Add a vision measurement to the {@link SwerveDrivePoseEstimator} and update the {@link SwerveIMU} gyro reading with - * the given timestamp of the vision measurement. THIS WILL BREAK IF UPDATED TOO OFTEN. + * the given timestamp of the vision measurement. * * @param robotPose Robot {@link Pose2d} as measured by vision. * @param timestamp Timestamp the measurement was taken as time since startup, should be taken from diff --git a/swervelib/motors/TalonFXSwerve.java b/swervelib/motors/TalonFXSwerve.java index 19e1123..967fdfa 100644 --- a/swervelib/motors/TalonFXSwerve.java +++ b/swervelib/motors/TalonFXSwerve.java @@ -155,6 +155,40 @@ public class TalonFXSwerve extends SwerveMotor public void configureCANStatusFrames(int CANStatus1) { motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1); + } + + /** + * Set the CAN status frames. + * + * @param CANStatus1 Applied Motor Output, Fault Information, Limit Switch Information + * @param CANStatus2 Selected Sensor Position (PID 0), Selected Sensor Velocity (PID 0), Brushed Supply Current + * Measurement, Sticky Fault Information + * @param CANStatus3 Quadrature Information + * @param CANStatus4 Analog Input, Supply Battery Voltage, Controller Temperature + * @param CANStatus8 Pulse Width Information + * @param CANStatus10 Motion Profiling/Motion Magic Information + * @param CANStatus12 Selected Sensor Position (Aux PID 1), Selected Sensor Velocity (Aux PID 1) + * @param CANStatus13 PID0 (Primary PID) Information + * @param CANStatus14 PID1 (Auxiliary PID) Information + * @param CANStatus21 Integrated Sensor Position (Talon FX), Integrated Sensor Velocity (Talon FX) + * @param CANStatusCurrent Brushless Supply Current Measurement, Brushless Stator Current Measurement + */ + public void configureCANStatusFrames(int CANStatus1, int CANStatus2, int CANStatus3, int CANStatus4, int CANStatus8, + int CANStatus10, int CANStatus12, int CANStatus13, int CANStatus14, + int CANStatus21, int CANStatusCurrent) + { + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, CANStatus2); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_3_Quadrature, CANStatus3); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_4_AinTempVbat, CANStatus4); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_8_PulseWidth, CANStatus8); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_10_Targets, CANStatus10); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_12_Feedback1, CANStatus12); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_13_Base_PIDF0, CANStatus13); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_14_Turn_PIDF1, CANStatus14); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_21_FeedbackIntegrated, CANStatus21); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_Brushless_Current, CANStatusCurrent); + // TODO: Configure Status Frame 2 thru 21 if necessary // https://v5.docs.ctr-electronics.com/en/stable/ch18_CommonAPI.html#setting-status-frame-periods } @@ -346,6 +380,7 @@ public class TalonFXSwerve extends SwerveMotor { if (!absoluteEncoder && !SwerveDriveTelemetry.isSimulation) { + position = position < 0 ? (position % 360) + 360 : position; // Fixes initial 360 movement. motor.setSelectedSensorPosition(position / positionConversionFactor, 0, 250); } } diff --git a/swervelib/motors/TalonSRXSwerve.java b/swervelib/motors/TalonSRXSwerve.java index 6a7a650..47dad38 100644 --- a/swervelib/motors/TalonSRXSwerve.java +++ b/swervelib/motors/TalonSRXSwerve.java @@ -145,6 +145,40 @@ public class TalonSRXSwerve extends SwerveMotor public void configureCANStatusFrames(int CANStatus1) { motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1); + } + + /** + * Set the CAN status frames. + * + * @param CANStatus1 Applied Motor Output, Fault Information, Limit Switch Information + * @param CANStatus2 Selected Sensor Position (PID 0), Selected Sensor Velocity (PID 0), Brushed Supply Current + * Measurement, Sticky Fault Information + * @param CANStatus3 Quadrature Information + * @param CANStatus4 Analog Input, Supply Battery Voltage, Controller Temperature + * @param CANStatus8 Pulse Width Information + * @param CANStatus10 Motion Profiling/Motion Magic Information + * @param CANStatus12 Selected Sensor Position (Aux PID 1), Selected Sensor Velocity (Aux PID 1) + * @param CANStatus13 PID0 (Primary PID) Information + * @param CANStatus14 PID1 (Auxiliary PID) Information + * @param CANStatus21 Integrated Sensor Position (Talon FX), Integrated Sensor Velocity (Talon FX) + * @param CANStatusCurrent Brushless Supply Current Measurement, Brushless Stator Current Measurement + */ + public void configureCANStatusFrames(int CANStatus1, int CANStatus2, int CANStatus3, int CANStatus4, int CANStatus8, + int CANStatus10, int CANStatus12, int CANStatus13, int CANStatus14, + int CANStatus21, int CANStatusCurrent) + { + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_1_General, CANStatus1); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, CANStatus2); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_3_Quadrature, CANStatus3); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_4_AinTempVbat, CANStatus4); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_8_PulseWidth, CANStatus8); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_10_Targets, CANStatus10); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_12_Feedback1, CANStatus12); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_13_Base_PIDF0, CANStatus13); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_14_Turn_PIDF1, CANStatus14); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_21_FeedbackIntegrated, CANStatus21); + motor.setStatusFramePeriod(StatusFrameEnhanced.Status_Brushless_Current, CANStatusCurrent); + // TODO: Configure Status Frame 2 thru 21 if necessary // https://v5.docs.ctr-electronics.com/en/stable/ch18_CommonAPI.html#setting-status-frame-periods } @@ -336,6 +370,7 @@ public class TalonSRXSwerve extends SwerveMotor { if (!absoluteEncoder && !SwerveDriveTelemetry.isSimulation) { + position = position < 0 ? (position % 360) + 360 : position; // Fixes initial 360 movement. motor.setSelectedSensorPosition(position / positionConversionFactor, 0, 250); } }