diff --git a/docs/allclasses-index.html b/docs/allclasses-index.html index 8efd1c2..2360371 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 86dfc60..2323841 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 20015a0..d7093be 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 0323d23..ffb3a7f 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 6887f4a..8b989a7 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 9423519..d723315 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 9c78e02..29dc5ef 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 f0a2e05..cadefe4 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 cd2e9c8..b6713cb 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 26b32d8..66901b6 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 c1f4034..49882c0 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 105d0d1..d22404d 100644 --- a/docs/index-files/index-16.html +++ b/docs/index-files/index-16.html @@ -1,11 +1,11 @@ - + Q-Index - + diff --git a/docs/index-files/index-17.html b/docs/index-files/index-17.html index df75911..f8f4915 100644 --- a/docs/index-files/index-17.html +++ b/docs/index-files/index-17.html @@ -1,11 +1,11 @@ - + R-Index - + diff --git a/docs/index-files/index-18.html b/docs/index-files/index-18.html index b866898..2348137 100644 --- a/docs/index-files/index-18.html +++ b/docs/index-files/index-18.html @@ -1,11 +1,11 @@ - + S-Index - + @@ -221,6 +221,38 @@ loadScripts(document, 'script');
Set the heading correction capabilities of YAGSL.
+
setInverted(boolean) - Method in class swervelib.imu.ADIS16448Swerve
+
+
Set the gyro to invert its default direction
+
+
setInverted(boolean) - Method in class swervelib.imu.ADIS16470Swerve
+
+
Set the gyro to invert its default direction
+
+
setInverted(boolean) - Method in class swervelib.imu.ADXRS450Swerve
+
+
Set the gyro to invert its default direction
+
+
setInverted(boolean) - Method in class swervelib.imu.AnalogGyroSwerve
+
+
Set the gyro to invert its default direction
+
+
setInverted(boolean) - Method in class swervelib.imu.NavXSwerve
+
+
Set the gyro to invert its default direction
+
+
setInverted(boolean) - Method in class swervelib.imu.Pigeon2Swerve
+
+
Set the gyro to invert its default direction
+
+
setInverted(boolean) - Method in class swervelib.imu.PigeonSwerve
+
+
Set the gyro to invert its default direction
+
+
setInverted(boolean) - Method in class swervelib.imu.SwerveIMU
+
+
Set the gyro to invert its default direction.
+
setInverted(boolean) - Method in class swervelib.motors.SparkFlexSwerve
Set the motor to be inverted.
@@ -558,10 +590,6 @@ loadScripts(document, 'script');
Current simulated swerve module state.
-
stateStdDevs - Variable in class swervelib.SwerveDrive
-
-
Standard deviation of encoders and gyroscopes, usually should not change.
-
stopOdometryThread() - Method in class swervelib.SwerveDrive
Stop the odometry thread in favor of manually updating odometry.
diff --git a/docs/index-files/index-19.html b/docs/index-files/index-19.html index eff998d..01aafbc 100644 --- a/docs/index-files/index-19.html +++ b/docs/index-files/index-19.html @@ -1,11 +1,11 @@ - + T-Index - + diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html index e36a03b..3a419d7 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 ae135c7..5c75476 100644 --- a/docs/index-files/index-20.html +++ b/docs/index-files/index-20.html @@ -1,11 +1,11 @@ - + U-Index - + diff --git a/docs/index-files/index-21.html b/docs/index-files/index-21.html index f99e65d..4207f5a 100644 --- a/docs/index-files/index-21.html +++ b/docs/index-files/index-21.html @@ -1,11 +1,11 @@ - + V-Index - + @@ -105,12 +105,6 @@ the order they are declared.
The current telemetry verbosity level.
-
visionMeasurementStdDevs - Variable in class swervelib.SwerveDrive
-
-
The standard deviation of the vision measurement, for best accuracy calculate the standard deviation at 2 or more - points and fit a line to it and modify this using SwerveDrive.addVisionMeasurement(Pose2d, double, Matrix) - with the calculated optimal standard deviation.
-
A B C D E F G H I K L M N O P Q R S T U V W X Y Z 
All Classes and Interfaces|All Packages|Constant Field Values diff --git a/docs/index-files/index-22.html b/docs/index-files/index-22.html index e2b6973..02e1a17 100644 --- a/docs/index-files/index-22.html +++ b/docs/index-files/index-22.html @@ -1,11 +1,11 @@ - + W-Index - + diff --git a/docs/index-files/index-23.html b/docs/index-files/index-23.html index 010d66a..30a0676 100644 --- a/docs/index-files/index-23.html +++ b/docs/index-files/index-23.html @@ -1,11 +1,11 @@ - + X-Index - + diff --git a/docs/index-files/index-24.html b/docs/index-files/index-24.html index c721e52..d30547e 100644 --- a/docs/index-files/index-24.html +++ b/docs/index-files/index-24.html @@ -1,11 +1,11 @@ - + Y-Index - + diff --git a/docs/index-files/index-25.html b/docs/index-files/index-25.html index 789ae1b..083cf0c 100644 --- a/docs/index-files/index-25.html +++ b/docs/index-files/index-25.html @@ -1,11 +1,11 @@ - + Z-Index - + diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html index eb1b030..f6ae1e9 100644 --- a/docs/index-files/index-3.html +++ b/docs/index-files/index-3.html @@ -1,11 +1,11 @@ - + C-Index - + diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html index 8895ca9..a180726 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 724d2b5..deee326 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 8cc36ba..b266239 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 67b0053..ac4764e 100644 --- a/docs/index-files/index-7.html +++ b/docs/index-files/index-7.html @@ -1,11 +1,11 @@ - + G-Index - + @@ -271,6 +271,10 @@ loadScripts(document, 'script');
Get the motor object from the module.
+
getOdometryHeading() - Method in class swervelib.SwerveDrive
+
+
Fetch the latest odometry heading, should be trusted over SwerveDrive.getYaw().
+
getPitch() - Method in class swervelib.simulation.SwerveIMUSimulation
Pitch is not simulated currently, always returns 0.
diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html index 1d36ca4..b2b0aa4 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 1530470..a27c378 100644 --- a/docs/index-files/index-9.html +++ b/docs/index-files/index-9.html @@ -1,11 +1,11 @@ - + I-Index - + @@ -119,18 +119,38 @@ loadScripts(document, 'script');
Defines which motors are inverted.
+
invertedIMU - Variable in class swervelib.imu.ADIS16448Swerve
+
+
Inversion for the gyro
+
+
invertedIMU - Variable in class swervelib.imu.ADIS16470Swerve
+
+
Inversion for the gyro
+
+
invertedIMU - Variable in class swervelib.imu.ADXRS450Swerve
+
+
Inversion for the gyro
+
+
invertedIMU - Variable in class swervelib.imu.AnalogGyroSwerve
+
+
Inversion for the gyro
+
+
invertedIMU - Variable in class swervelib.imu.NavXSwerve
+
+
Inversion for the gyro
+
+
invertedIMU - Variable in class swervelib.imu.Pigeon2Swerve
+
+
Inversion for the gyro
+
+
invertedIMU - Variable in class swervelib.imu.PigeonSwerve
+
+
Inversion for the gyro
+
invertedIMU - Variable in class swervelib.parser.json.SwerveDriveJson
Invert the IMU of the robot.
-
invertedIMU - Variable in class swervelib.parser.SwerveDriveConfiguration
-
-
Invert the imu measurements.
-
-
invertOdometry - Variable in class swervelib.SwerveDrive
-
-
Invert odometry readings of drive motor positions, used as a patch for debugging currently.
-
isAttachedAbsoluteEncoder() - Method in class swervelib.motors.SparkFlexSwerve
Queries whether the absolute encoder is directly attached to the motor controller.
diff --git a/docs/index.html b/docs/index.html index 21de759..800fb5d 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 63da821..7e43806 100644 --- a/docs/member-search-index.js +++ b/docs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"absoluteEncoder"},{"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.motors","c":"SparkFlexSwerve","l":"absoluteEncoderOffsetWarning"},{"p":"swervelib.telemetry","c":"Alert","l":"active"},{"p":"swervelib.telemetry","c":"Alert","l":"activeStartTime"},{"p":"swervelib","c":"SwerveController","l":"addSlewRateLimiters(SlewRateLimiter, SlewRateLimiter, SlewRateLimiter)","u":"addSlewRateLimiters(edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double, Matrix)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double,edu.wpi.first.math.Matrix)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"ADIS16448Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"ADIS16470Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"ADXRS450Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.telemetry","c":"Alert","l":"Alert(String, Alert.AlertType)","u":"%3Cinit%3E(java.lang.String,swervelib.telemetry.Alert.AlertType)"},{"p":"swervelib.telemetry","c":"Alert","l":"Alert(String, String, Alert.AlertType)","u":"%3Cinit%3E(java.lang.String,java.lang.String,swervelib.telemetry.Alert.AlertType)"},{"p":"swervelib.telemetry","c":"Alert.SendableAlerts","l":"alerts"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"AlertType()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(AnalogInput)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.AnalogInput)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"AnalogGyroSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"angle"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"angle"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"angle"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"angle"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"angle"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"angle"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"angleJoystickRadiusDeadband"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"angleJoyStickRadiusDeadband"},{"p":"swervelib","c":"SwerveController","l":"angleLimiter"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotor"},{"p":"swervelib","c":"SwerveModule","l":"angleMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotorInverted"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorRampRate"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleOffset"},{"p":"swervelib","c":"SwerveModule","l":"angleOffset"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"anglePIDF"},{"p":"swervelib.math","c":"SwerveMath","l":"antiJitter(SwerveModuleState, SwerveModuleState, double)","u":"antiJitter(edu.wpi.first.math.kinematics.SwerveModuleState,edu.wpi.first.math.kinematics.SwerveModuleState,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"applyDeadband(double, boolean, double)","u":"applyDeadband(double,boolean,double)"},{"p":"swervelib","c":"SwerveDrive","l":"attainableMaxRotationalVelocityRadiansPerSecond"},{"p":"swervelib","c":"SwerveDrive","l":"attainableMaxTranslationalSpeedMetersPerSecond"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"BoolMotorJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"burnFlash()"},{"p":"swervelib.math","c":"SwerveMath","l":"calcMaxAccel(Rotation2d, List, double, SwerveDriveConfiguration)","u":"calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateDegreesPerSteeringRotation(double)"},{"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)","u":"calculateMetersPerRotation(double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMetersPerRotation(double, double, double)","u":"calculateMetersPerRotation(double,double,double)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"CanAndCoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"canbus"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"CANCoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"CANCoderSwerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"canIdWarning"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"cannotSetOffset"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"cannotSetOffset"},{"p":"swervelib","c":"SwerveDrive","l":"chassisVelocityCorrection"},{"p":"swervelib.parser","c":"SwerveParser","l":"checkDirectory(File)","u":"checkDirectory(java.io.File)"},{"p":"swervelib","c":"SwerveDrive","l":"checkIfTunerXCompatible()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"clearStickyFaults()"},{"p":"swervelib","c":"SwerveController","l":"config"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configChanged"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configuration"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configuration"},{"p":"swervelib","c":"SwerveModule","l":"configuration"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"configure(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configureSparkFlex(Supplier)","u":"configureSparkFlex(java.util.function.Supplier)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.parser","c":"SwerveParser","l":"controllerPropertiesJson"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"ControllerPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"conversionFactor"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"conversionFactor"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"conversionFactor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"conversionFactor"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"conversionFactors"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"convertToNativeSensorUnits(double, double)","u":"convertToNativeSensorUnits(double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"correctionEnabled"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"createControllerConfiguration(SwerveDriveConfiguration, double)","u":"createControllerConfiguration(swervelib.parser.SwerveDriveConfiguration,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"createDriveFeedforward(double, double, double)","u":"createDriveFeedforward(double,double,double)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createEncoder(SwerveMotor)","u":"createEncoder(swervelib.motors.SwerveMotor)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createIMU()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"createModuleConfiguration(PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String)","u":"createModuleConfiguration(swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"createModules(SwerveModuleConfiguration[], SimpleMotorFeedforward)","u":"createModules(swervelib.parser.SwerveModuleConfiguration[],edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createMotor(boolean)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"createPhysicalProperties()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"createPIDController()"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(double, double, double)","u":"createSwerveDrive(double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(SimpleMotorFeedforward, double)","u":"createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(SimpleMotorFeedforward, double, double, double)","u":"createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward,double,double,double)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"currentLimit"},{"p":"swervelib.parser","c":"PIDFConfig","l":"d"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredStates"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"DeviceJson()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"doesNotSupportIntegratedOffsets"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"drive"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"drive"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"drive"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds, boolean, Translation2d)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds,boolean,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds, Translation2d)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean, Translation2d)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"driveFieldOriented(ChassisSpeeds)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"driveFieldOriented(ChassisSpeeds, Translation2d)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"driveMotor"},{"p":"swervelib","c":"SwerveModule","l":"driveMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"driveMotorInverted"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveMotorRampRate"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"dt"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"encoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"encoder"},{"p":"swervelib","c":"SwerveModule","l":"encoderOffsetWarning"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"ERROR"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"ERROR_TRACE"},{"p":"swervelib.parser","c":"PIDFConfig","l":"f"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"factoryDefault()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"factoryDefaultOccurred"},{"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":"SparkFlexSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaults()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"failureConfiguring"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"failureConfiguring"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"failureConfiguring"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"failureConfiguringAlert"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakePos"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakeSpeed"},{"p":"swervelib","c":"SwerveModule","l":"feedforward"},{"p":"swervelib","c":"SwerveDrive","l":"field"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"forwardDirection"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"front"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsoluteEncoder()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsoluteEncoder()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsoluteEncoderReadIssue()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsolutePosition()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsolutePosition()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getAccel()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getAccel()"},{"p":"swervelib","c":"SwerveDrive","l":"getAccel()"},{"p":"swervelib","c":"SwerveModule","l":"getAngleMotor()"},{"p":"swervelib","c":"SwerveModule","l":"getConfiguration()"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"getDriveBaseRadiusMeters()"},{"p":"swervelib","c":"SwerveModule","l":"getDriveMotor()"},{"p":"swervelib","c":"SwerveDrive","l":"getFieldVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getGyroRotation3d()"},{"p":"swervelib","c":"SwerveDrive","l":"getGyroRotation3d()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getIMU()"},{"p":"swervelib","c":"SwerveController","l":"getJoystickAngle(double, double)","u":"getJoystickAngle(double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"getMaximumAngularVelocity()"},{"p":"swervelib","c":"SwerveDrive","l":"getMaximumVelocity()"},{"p":"swervelib.parser","c":"SwerveParser","l":"getModuleConfigurationByName(String, SwerveDriveConfiguration)","u":"getModuleConfigurationByName(java.lang.String,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"getModulePositions()"},{"p":"swervelib","c":"SwerveDrive","l":"getModules()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getMotor()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPose()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getPosition()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getPosition()"},{"p":"swervelib","c":"SwerveModule","l":"getPosition()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getRawRotation3d()"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double)","u":"getRawTargetSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double, double)","u":"getRawTargetSpeeds(double,double,double,double)"},{"p":"swervelib","c":"SwerveModule","l":"getRelativePosition()"},{"p":"swervelib","c":"SwerveDrive","l":"getRobotVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getRoll()"},{"p":"swervelib","c":"SwerveDrive","l":"getRoll()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getRotation3d()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getState()"},{"p":"swervelib","c":"SwerveModule","l":"getState()"},{"p":"swervelib","c":"SwerveDrive","l":"getStates()"},{"p":"swervelib.telemetry","c":"Alert.SendableAlerts","l":"getStrings(Alert.AlertType)","u":"getStrings(swervelib.telemetry.Alert.AlertType)"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveController()"},{"p":"swervelib.math","c":"SwerveMath","l":"getSwerveModule(SwerveModule[], boolean, boolean)","u":"getSwerveModule(swervelib.SwerveModule[],boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveModulePoses(Pose2d)","u":"getSwerveModulePoses(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double, double)","u":"getTargetSpeeds(double,double,double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double, double, double)","u":"getTargetSpeeds(double,double,double,double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getTranslation2d(ChassisSpeeds)","u":"getTranslation2d(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getYaw()"},{"p":"swervelib","c":"SwerveDrive","l":"getYaw()"},{"p":"swervelib.telemetry","c":"Alert","l":"groups"},{"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":"SwerveDrive","l":"HEADING_CORRECTION_DEADBAND"},{"p":"swervelib","c":"SwerveController","l":"headingCalculate(double, double)","u":"headingCalculate(double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"headingCorrection"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"headingPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"HIGH"},{"p":"swervelib.parser","c":"PIDFConfig","l":"i"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"i2cLockupWarning"},{"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":"inaccurateVelocities"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"inaccurateVelocities"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"INFO"},{"p":"swervelib.telemetry","c":"Alert.SendableAlerts","l":"initSendable(SendableBuilder)","u":"initSendable(edu.wpi.first.util.sendable.SendableBuilder)"},{"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":"SparkFlexSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isDriveMotor"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"isInverted"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"isSimulation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"iz"},{"p":"swervelib","c":"SwerveDrive","l":"kinematics"},{"p":"swervelib","c":"SwerveController","l":"lastAngleScalar"},{"p":"swervelib","c":"SwerveDrive","l":"lastHeadingRadians"},{"p":"swervelib","c":"SwerveModule","l":"lastState"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"lastTime"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"lastTime"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"left"},{"p":"swervelib.math","c":"SwerveMath","l":"limitVelocity(Translation2d, ChassisSpeeds, Pose2d, double, double, List, SwerveDriveConfiguration)","u":"limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,java.util.List,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"location"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"LocationJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"lockPose()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"LOW"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"m_angleVoltageSetter"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"m_velocityVoltageSetter"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"MACHINE"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"magnetFieldLessThanIdeal"},{"p":"swervelib.math","c":"Matter","l":"mass"},{"p":"swervelib.math","c":"Matter","l":"massMoment()"},{"p":"swervelib.math","c":"Matter","l":"Matter(Translation3d, double)","u":"%3Cinit%3E(edu.wpi.first.math.geometry.Translation3d,double)"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"max"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxAngularVelocity"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxAngularVelocity"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"maximumRetries"},{"p":"swervelib.motors","c":"SwerveMotor","l":"maximumRetries"},{"p":"swervelib","c":"SwerveModule","l":"maxSpeed"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxSpeed"},{"p":"swervelib","c":"SwerveDrive","l":"maxSpeedMPS"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredStates"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"min"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleConfigs"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleCount"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"moduleCount"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"ModuleJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleJsons"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"moduleLocation"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleLocationsMeters"},{"p":"swervelib","c":"SwerveModule","l":"moduleNumber"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"modules"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"modules"},{"p":"swervelib","c":"SwerveDrive","l":"moduleSynchronizationCounter"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"motor"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"name"},{"p":"swervelib.imu","c":"NavXSwerve","l":"navXError"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(I2C.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.I2C.Port)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SerialPort.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SerialPort.Port)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SPI.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SPI.Port)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"noEncoderAlert"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"noEncoderDefinedAlert"},{"p":"swervelib","c":"SwerveModule","l":"noEncoderWarning"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"nominalVoltage"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"NONE"},{"p":"swervelib.math","c":"SwerveMath","l":"normalizeAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"odometryLock"},{"p":"swervelib","c":"SwerveDrive","l":"odometryThread"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"offset"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"offset"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"offset"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"offset"},{"p":"swervelib.imu","c":"NavXSwerve","l":"offset"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"offset"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"offset"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"offsetFailure"},{"p":"swervelib.parser","c":"SwerveParser","l":"openJson(File)","u":"openJson(java.io.File)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"optimalVoltage"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"optimalVoltage"},{"p":"swervelib.parser","c":"PIDFConfig","l":"output"},{"p":"swervelib.parser","c":"PIDFConfig","l":"p"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"physicalCharacteristics"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"physicalCharacteristics"},{"p":"swervelib.parser","c":"SwerveParser","l":"physicalPropertiesJson"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"PhysicalPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"pid"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double)","u":"%3Cinit%3E(double,double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"pidfPropertiesJson"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"PIDFPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"PIDFRange()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"PigeonSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.math","c":"SwerveMath","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"PoseLog(Pose2d)","u":"PoseLog(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib.math","c":"Matter","l":"position"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"Position"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Position"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"positionConversionFactor"},{"p":"swervelib","c":"SwerveDrive","l":"postTrajectory(Trajectory)","u":"postTrajectory(edu.wpi.first.math.trajectory.Trajectory)"},{"p":"swervelib","c":"SwerveDrive","l":"pushOffsetsToControllers()"},{"p":"swervelib","c":"SwerveModule","l":"pushOffsetsToControllers()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"PWMDutyCycleEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib","c":"SwerveModule","l":"queueSynchronizeEncoders()"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"rampRate"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"readingError"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"readingFaulty"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"readingIgnored"},{"p":"swervelib","c":"SwerveDrive","l":"replaceSwerveModuleFeedforward(SimpleMotorFeedforward)","u":"replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib","c":"SwerveDrive","l":"resetDriveEncoders()"},{"p":"swervelib","c":"SwerveDrive","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveDrive","l":"restoreInternalOffset()"},{"p":"swervelib","c":"SwerveModule","l":"restoreInternalOffset()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"robotRotation"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"rotationUnit"},{"p":"swervelib.telemetry","c":"Alert.SendableAlerts","l":"SendableAlerts()","u":"%3Cinit%3E()"},{"p":"swervelib.telemetry","c":"Alert","l":"set(boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"set(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setAngleMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngleMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngleMotorVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setChassisSpeeds(ChassisSpeeds)","u":"setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib","c":"SwerveModule","l":"setDesiredState(SwerveModuleState, boolean, boolean)","u":"setDesiredState(edu.wpi.first.math.kinematics.SwerveModuleState,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setDriveMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setDriveMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setDriveMotorVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setGyro(Rotation3d)","u":"setGyro(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib","c":"SwerveDrive","l":"setGyroOffset(Rotation3d)","u":"setGyroOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib","c":"SwerveDrive","l":"setHeadingCorrection(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setHeadingCorrection(boolean, double)","u":"setHeadingCorrection(boolean,double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib","c":"SwerveController","l":"setMaximumAngularVelocity(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeed(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeed(double, boolean, double)","u":"setMaximumSpeed(double,boolean,double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeeds(double, double, double)","u":"setMaximumSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"setModuleStates(SwerveModuleState[], boolean)","u":"setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[],boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveModule","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setMotorIdleMode(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setOdometryPeriod(double)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"SwerveIMU","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setPosition(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setRawModuleStates(SwerveModuleState[], boolean)","u":"setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[],boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.telemetry","c":"Alert","l":"setText(String)","u":"setText(java.lang.String)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"simIMU"},{"p":"swervelib","c":"SwerveModule","l":"simModule"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"Simulation"},{"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":"SparkFlexSwerve","l":"SparkFlexSwerve(CANSparkFlex, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkFlex,boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"SparkFlexSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"SparkMaxAnalogEncoderSwerve(SwerveMotor)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean,com.revrobotics.SparkRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(int, boolean, SparkRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(int,boolean,com.revrobotics.SparkRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"SparkMaxEncoderSwerve(SwerveMotor, int)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"SparkMaxSwerve(CANSparkMax, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"SparkMaxSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"state"},{"p":"swervelib","c":"SwerveDrive","l":"stateStdDevs"},{"p":"swervelib","c":"SwerveDrive","l":"stopOdometryThread()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"SwerveAbsoluteEncoder()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"swerveController"},{"p":"swervelib","c":"SwerveController","l":"SwerveController(SwerveControllerConfiguration)","u":"%3Cinit%3E(swervelib.parser.SwerveControllerConfiguration)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.SwerveControllerConfiguration,double)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDriveConfiguration"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, boolean, SimpleMotorFeedforward, SwerveModulePhysicalCharacteristics)","u":"%3Cinit%3E(swervelib.parser.SwerveModuleConfiguration[],swervelib.imu.SwerveIMU,boolean,edu.wpi.first.math.controller.SimpleMotorFeedforward,swervelib.parser.SwerveModulePhysicalCharacteristics)"},{"p":"swervelib.parser","c":"SwerveParser","l":"swerveDriveJson"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"SwerveDriveJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDrivePoseEstimator"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"SwerveDriveTelemetry()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"SwerveIMU()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"SwerveIMUSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveMath","l":"SwerveMath()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveModule","l":"SwerveModule(int, SwerveModuleConfiguration, SimpleMotorFeedforward)","u":"%3Cinit%3E(int,swervelib.parser.SwerveModuleConfiguration,edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean, String)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.parser.json.MotorConfigDouble,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,boolean,boolean,boolean,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.parser.json.MotorConfigDouble,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double)","u":"%3Cinit%3E(swervelib.parser.json.MotorConfigDouble,double,double)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double, int, int, double, double)","u":"%3Cinit%3E(swervelib.parser.json.MotorConfigDouble,double,double,int,int,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveModules"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"SwerveModuleSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"SwerveMotor()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"SwerveParser(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"swervelib","c":"SwerveModule","l":"synchronizeEncoderQueued"},{"p":"swervelib","c":"SwerveDrive","l":"synchronizeModuleEncoders()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(int, String, boolean)","u":"%3Cinit%3E(int,java.lang.String,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(TalonFX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix6.hardware.TalonFX,boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"TalonSRXSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"TalonSRXSwerve(WPI_TalonSRX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX,boolean)"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"TelemetryVerbosity()","u":"%3Cinit%3E()"},{"p":"swervelib.telemetry","c":"Alert","l":"text"},{"p":"swervelib","c":"SwerveController","l":"thetaController"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"timer"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"timer"},{"p":"swervelib","c":"SwerveDrive","l":"tunerXRecommendation"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"type"},{"p":"swervelib.telemetry","c":"Alert","l":"type"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"updateData()"},{"p":"swervelib","c":"SwerveDrive","l":"updateOdometry()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"updateOdometry(SwerveDriveKinematics, SwerveModuleState[], Pose2d[], Field2d)","u":"updateOdometry(edu.wpi.first.math.kinematics.SwerveDriveKinematics,edu.wpi.first.math.kinematics.SwerveModuleState[],edu.wpi.first.math.geometry.Pose2d[],edu.wpi.first.wpilibj.smartdashboard.Field2d)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"updateStateAndPosition(SwerveModuleState)","u":"updateStateAndPosition(edu.wpi.first.math.kinematics.SwerveModuleState)"},{"p":"swervelib","c":"SwerveModule","l":"updateTelemetry()"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.telemetry","c":"Alert.AlertType","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":"SparkFlexSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"values()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"values()"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"Velocity"},{"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","c":"SwerveDrive","l":"visionMeasurementStdDevs"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"WARNING"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"WARNING_TRACE"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"wheelLocations"},{"p":"swervelib","c":"SwerveController","l":"withinHypotDeadband(double, double)","u":"withinHypotDeadband(double,double)"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"x"},{"p":"swervelib","c":"SwerveController","l":"xLimiter"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"y"},{"p":"swervelib","c":"SwerveController","l":"yLimiter"},{"p":"swervelib","c":"SwerveDrive","l":"zeroGyro()"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"absoluteEncoder"},{"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.motors","c":"SparkFlexSwerve","l":"absoluteEncoderOffsetWarning"},{"p":"swervelib.telemetry","c":"Alert","l":"active"},{"p":"swervelib.telemetry","c":"Alert","l":"activeStartTime"},{"p":"swervelib","c":"SwerveController","l":"addSlewRateLimiters(SlewRateLimiter, SlewRateLimiter, SlewRateLimiter)","u":"addSlewRateLimiters(edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter,edu.wpi.first.math.filter.SlewRateLimiter)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double)"},{"p":"swervelib","c":"SwerveDrive","l":"addVisionMeasurement(Pose2d, double, Matrix)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double,edu.wpi.first.math.Matrix)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"ADIS16448Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"ADIS16470Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"ADXRS450Swerve()","u":"%3Cinit%3E()"},{"p":"swervelib.telemetry","c":"Alert","l":"Alert(String, Alert.AlertType)","u":"%3Cinit%3E(java.lang.String,swervelib.telemetry.Alert.AlertType)"},{"p":"swervelib.telemetry","c":"Alert","l":"Alert(String, String, Alert.AlertType)","u":"%3Cinit%3E(java.lang.String,java.lang.String,swervelib.telemetry.Alert.AlertType)"},{"p":"swervelib.telemetry","c":"Alert.SendableAlerts","l":"alerts"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"AlertType()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(AnalogInput)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.AnalogInput)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"AnalogAbsoluteEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"AnalogGyroSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"angle"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"angle"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"angle"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"angle"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"angle"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"angle"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"angleJoystickRadiusDeadband"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"angleJoyStickRadiusDeadband"},{"p":"swervelib","c":"SwerveController","l":"angleLimiter"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotor"},{"p":"swervelib","c":"SwerveModule","l":"angleMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleMotorInverted"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"angleMotorRampRate"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"angleOffset"},{"p":"swervelib","c":"SwerveModule","l":"angleOffset"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"anglePIDF"},{"p":"swervelib.math","c":"SwerveMath","l":"antiJitter(SwerveModuleState, SwerveModuleState, double)","u":"antiJitter(edu.wpi.first.math.kinematics.SwerveModuleState,edu.wpi.first.math.kinematics.SwerveModuleState,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"applyDeadband(double, boolean, double)","u":"applyDeadband(double,boolean,double)"},{"p":"swervelib","c":"SwerveDrive","l":"attainableMaxRotationalVelocityRadiansPerSecond"},{"p":"swervelib","c":"SwerveDrive","l":"attainableMaxTranslationalSpeedMetersPerSecond"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"BoolMotorJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"burnFlash()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"burnFlash()"},{"p":"swervelib.math","c":"SwerveMath","l":"calcMaxAccel(Rotation2d, List, double, SwerveDriveConfiguration)","u":"calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateDegreesPerSteeringRotation(double)"},{"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)","u":"calculateMetersPerRotation(double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"calculateMetersPerRotation(double, double, double)","u":"calculateMetersPerRotation(double,double,double)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"CanAndCoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"canbus"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"CANCoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"CANCoderSwerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"canIdWarning"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"cannotSetOffset"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"cannotSetOffset"},{"p":"swervelib","c":"SwerveDrive","l":"chassisVelocityCorrection"},{"p":"swervelib.parser","c":"SwerveParser","l":"checkDirectory(File)","u":"checkDirectory(java.io.File)"},{"p":"swervelib","c":"SwerveDrive","l":"checkIfTunerXCompatible()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"clearStickyFaults()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"clearStickyFaults()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"clearStickyFaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"clearStickyFaults()"},{"p":"swervelib","c":"SwerveController","l":"config"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configChanged"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configuration"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configuration"},{"p":"swervelib","c":"SwerveModule","l":"configuration"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configure(boolean)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"configure(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureCANStatusFrames(int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureCANStatusFrames(int, int, int, int, int, int, int, int, int, int, int)","u":"configureCANStatusFrames(int,int,int,int,int,int,int,int,int,int,int)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configureIntegratedEncoder(double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDF(PIDFConfig)","u":"configurePIDF(swervelib.parser.PIDFConfig)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"configurePIDWrapping(double, double)","u":"configurePIDWrapping(double,double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"configureSparkFlex(Supplier)","u":"configureSparkFlex(java.util.function.Supplier)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"configureSparkMax(Supplier)","u":"configureSparkMax(java.util.function.Supplier)"},{"p":"swervelib.parser","c":"SwerveParser","l":"controllerPropertiesJson"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"ControllerPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"conversionFactor"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"conversionFactor"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"conversionFactor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"conversionFactor"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"conversionFactors"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"convertToNativeSensorUnits(double, double)","u":"convertToNativeSensorUnits(double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"correctionEnabled"},{"p":"swervelib.parser.json","c":"ControllerPropertiesJson","l":"createControllerConfiguration(SwerveDriveConfiguration, double)","u":"createControllerConfiguration(swervelib.parser.SwerveDriveConfiguration,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"createDriveFeedforward(double, double, double)","u":"createDriveFeedforward(double,double,double)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createEncoder(SwerveMotor)","u":"createEncoder(swervelib.motors.SwerveMotor)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createIMU()"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"createModuleConfiguration(PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String)","u":"createModuleConfiguration(swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"createModules(SwerveModuleConfiguration[], SimpleMotorFeedforward)","u":"createModules(swervelib.parser.SwerveModuleConfiguration[],edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"createMotor(boolean)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"createPhysicalProperties()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"createPIDController()"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(double, double, double)","u":"createSwerveDrive(double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(SimpleMotorFeedforward, double)","u":"createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"createSwerveDrive(SimpleMotorFeedforward, double, double, double)","u":"createSwerveDrive(edu.wpi.first.math.controller.SimpleMotorFeedforward,double,double,double)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"currentLimit"},{"p":"swervelib.parser","c":"PIDFConfig","l":"d"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"desiredStates"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"DeviceJson()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"doesNotSupportIntegratedOffsets"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"drive"},{"p":"swervelib.parser.json.modules","c":"BoolMotorJson","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"drive"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"drive"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"drive"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds, boolean, Translation2d)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds,boolean,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(ChassisSpeeds, Translation2d)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"drive(Translation2d, double, boolean, boolean, Translation2d)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean,boolean,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib","c":"SwerveDrive","l":"driveFieldOriented(ChassisSpeeds)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib","c":"SwerveDrive","l":"driveFieldOriented(ChassisSpeeds, Translation2d)","u":"driveFieldOriented(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"driveMotor"},{"p":"swervelib","c":"SwerveModule","l":"driveMotor"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveMotorCurrentLimit"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"driveMotorInverted"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"driveMotorRampRate"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"dt"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"encoder"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"encoder"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"encoder"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"encoder"},{"p":"swervelib","c":"SwerveModule","l":"encoderOffsetWarning"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"ERROR"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"ERROR_TRACE"},{"p":"swervelib.parser","c":"PIDFConfig","l":"f"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"factoryDefault()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"factoryDefault()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"factoryDefault()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"factoryDefaultOccurred"},{"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":"SparkFlexSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"factoryDefaults()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"factoryDefaults()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"failureConfiguring"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"failureConfiguring"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"failureConfiguring"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"failureConfiguringAlert"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakePos"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"fakeSpeed"},{"p":"swervelib","c":"SwerveModule","l":"feedforward"},{"p":"swervelib","c":"SwerveDrive","l":"field"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"forwardDirection"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"front"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsoluteEncoder()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsoluteEncoder()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsoluteEncoder()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsoluteEncoderReadIssue()"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getAbsolutePosition()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getAbsolutePosition()"},{"p":"swervelib","c":"SwerveModule","l":"getAbsolutePosition()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getAccel()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getAccel()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getAccel()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getAccel()"},{"p":"swervelib","c":"SwerveDrive","l":"getAccel()"},{"p":"swervelib","c":"SwerveModule","l":"getAngleMotor()"},{"p":"swervelib","c":"SwerveModule","l":"getConfiguration()"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"getDriveBaseRadiusMeters()"},{"p":"swervelib","c":"SwerveModule","l":"getDriveMotor()"},{"p":"swervelib","c":"SwerveDrive","l":"getFieldVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getGyroRotation3d()"},{"p":"swervelib","c":"SwerveDrive","l":"getGyroRotation3d()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getIMU()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getIMU()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getIMU()"},{"p":"swervelib","c":"SwerveController","l":"getJoystickAngle(double, double)","u":"getJoystickAngle(double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"getMaximumAngularVelocity()"},{"p":"swervelib","c":"SwerveDrive","l":"getMaximumVelocity()"},{"p":"swervelib.parser","c":"SwerveParser","l":"getModuleConfigurationByName(String, SwerveDriveConfiguration)","u":"getModuleConfigurationByName(java.lang.String,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib","c":"SwerveDrive","l":"getModulePositions()"},{"p":"swervelib","c":"SwerveDrive","l":"getModules()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getMotor()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getMotor()"},{"p":"swervelib","c":"SwerveDrive","l":"getOdometryHeading()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPitch()"},{"p":"swervelib","c":"SwerveDrive","l":"getPose()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getPosition()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getPosition()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getPosition()"},{"p":"swervelib","c":"SwerveModule","l":"getPosition()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getRawRotation3d()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getRawRotation3d()"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double)","u":"getRawTargetSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getRawTargetSpeeds(double, double, double, double)","u":"getRawTargetSpeeds(double,double,double,double)"},{"p":"swervelib","c":"SwerveModule","l":"getRelativePosition()"},{"p":"swervelib","c":"SwerveDrive","l":"getRobotVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getRoll()"},{"p":"swervelib","c":"SwerveDrive","l":"getRoll()"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"NavXSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"getRotation3d()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"getRotation3d()"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"getState()"},{"p":"swervelib","c":"SwerveModule","l":"getState()"},{"p":"swervelib","c":"SwerveDrive","l":"getStates()"},{"p":"swervelib.telemetry","c":"Alert.SendableAlerts","l":"getStrings(Alert.AlertType)","u":"getStrings(swervelib.telemetry.Alert.AlertType)"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveController()"},{"p":"swervelib.math","c":"SwerveMath","l":"getSwerveModule(SwerveModule[], boolean, boolean)","u":"getSwerveModule(swervelib.SwerveModule[],boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"getSwerveModulePoses(Pose2d)","u":"getSwerveModulePoses(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double, double)","u":"getTargetSpeeds(double,double,double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getTargetSpeeds(double, double, double, double, double, double)","u":"getTargetSpeeds(double,double,double,double,double,double)"},{"p":"swervelib","c":"SwerveController","l":"getTranslation2d(ChassisSpeeds)","u":"getTranslation2d(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"getVelocity()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"getVelocity()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"getVelocity()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"getYaw()"},{"p":"swervelib","c":"SwerveDrive","l":"getYaw()"},{"p":"swervelib.telemetry","c":"Alert","l":"groups"},{"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":"SwerveDrive","l":"HEADING_CORRECTION_DEADBAND"},{"p":"swervelib","c":"SwerveController","l":"headingCalculate(double, double)","u":"headingCalculate(double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"headingCorrection"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"headingPIDF"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"HIGH"},{"p":"swervelib.parser","c":"PIDFConfig","l":"i"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"i2cLockupWarning"},{"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":"inaccurateVelocities"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"inaccurateVelocities"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"INFO"},{"p":"swervelib.telemetry","c":"Alert.SendableAlerts","l":"initSendable(SendableBuilder)","u":"initSendable(edu.wpi.first.util.sendable.SendableBuilder)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"inverted"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"inverted"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"invertedIMU"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"invertedIMU"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"invertedIMU"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"invertedIMU"},{"p":"swervelib.imu","c":"NavXSwerve","l":"invertedIMU"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"invertedIMU"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"invertedIMU"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"invertedIMU"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"isAttachedAbsoluteEncoder()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"isDriveMotor"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"isInverted"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"isSimulation"},{"p":"swervelib.parser","c":"PIDFConfig","l":"iz"},{"p":"swervelib","c":"SwerveDrive","l":"kinematics"},{"p":"swervelib","c":"SwerveController","l":"lastAngleScalar"},{"p":"swervelib","c":"SwerveDrive","l":"lastHeadingRadians"},{"p":"swervelib","c":"SwerveModule","l":"lastState"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"lastTime"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"lastTime"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"left"},{"p":"swervelib.math","c":"SwerveMath","l":"limitVelocity(Translation2d, ChassisSpeeds, Pose2d, double, double, List, SwerveDriveConfiguration)","u":"limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,java.util.List,swervelib.parser.SwerveDriveConfiguration)"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"location"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"LocationJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"lockPose()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"LOW"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"m_angleVoltageSetter"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"m_velocityVoltageSetter"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"MACHINE"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"magnetFieldLessThanIdeal"},{"p":"swervelib.math","c":"Matter","l":"mass"},{"p":"swervelib.math","c":"Matter","l":"massMoment()"},{"p":"swervelib.math","c":"Matter","l":"Matter(Translation3d, double)","u":"%3Cinit%3E(edu.wpi.first.math.geometry.Translation3d,double)"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"max"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"maxAngularVelocity"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxAngularVelocity"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"maximumRetries"},{"p":"swervelib.motors","c":"SwerveMotor","l":"maximumRetries"},{"p":"swervelib","c":"SwerveModule","l":"maxSpeed"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"maxSpeed"},{"p":"swervelib","c":"SwerveDrive","l":"maxSpeedMPS"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredChassisSpeeds"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"measuredStates"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"min"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleConfigs"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleCount"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"moduleCount"},{"p":"swervelib.parser.json","c":"ModuleJson","l":"ModuleJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"moduleJsons"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"moduleLocation"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"moduleLocationsMeters"},{"p":"swervelib","c":"SwerveModule","l":"moduleNumber"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"modules"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"modules"},{"p":"swervelib","c":"SwerveDrive","l":"moduleSynchronizationCounter"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"motor"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"motor"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"motor"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigDouble","l":"MotorConfigDouble(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.json","c":"MotorConfigInt","l":"MotorConfigInt(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"name"},{"p":"swervelib.imu","c":"NavXSwerve","l":"navXError"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(I2C.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.I2C.Port)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SerialPort.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SerialPort.Port)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"NavXSwerve(SPI.Port)","u":"%3Cinit%3E(edu.wpi.first.wpilibj.SPI.Port)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"noEncoderAlert"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"noEncoderDefinedAlert"},{"p":"swervelib","c":"SwerveModule","l":"noEncoderWarning"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"nominalVoltage"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"NONE"},{"p":"swervelib.math","c":"SwerveMath","l":"normalizeAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"odometryLock"},{"p":"swervelib","c":"SwerveDrive","l":"odometryThread"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"offset"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"offset"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"offset"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"offset"},{"p":"swervelib.imu","c":"NavXSwerve","l":"offset"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"offset"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"offset"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"offsetFailure"},{"p":"swervelib.parser","c":"SwerveParser","l":"openJson(File)","u":"openJson(java.io.File)"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"optimalVoltage"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"optimalVoltage"},{"p":"swervelib.parser","c":"PIDFConfig","l":"output"},{"p":"swervelib.parser","c":"PIDFConfig","l":"p"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"physicalCharacteristics"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"physicalCharacteristics"},{"p":"swervelib.parser","c":"SwerveParser","l":"physicalPropertiesJson"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"PhysicalPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"pid"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"pid"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double)","u":"%3Cinit%3E(double,double,double,double)"},{"p":"swervelib.parser","c":"PIDFConfig","l":"PIDFConfig(double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double)"},{"p":"swervelib.parser","c":"SwerveParser","l":"pidfPropertiesJson"},{"p":"swervelib.parser.json","c":"PIDFPropertiesJson","l":"PIDFPropertiesJson()","u":"%3Cinit%3E()"},{"p":"swervelib.parser.deserializer","c":"PIDFRange","l":"PIDFRange()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"Pigeon2Swerve(int, String)","u":"%3Cinit%3E(int,java.lang.String)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"PigeonSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib.math","c":"SwerveMath","l":"placeInAppropriate0To360Scope(double, double)","u":"placeInAppropriate0To360Scope(double,double)"},{"p":"swervelib.math","c":"SwerveMath","l":"PoseLog(Pose2d)","u":"PoseLog(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib.math","c":"Matter","l":"position"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"Position"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"Position"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"positionConversionFactor"},{"p":"swervelib","c":"SwerveDrive","l":"postTrajectory(Trajectory)","u":"postTrajectory(edu.wpi.first.math.trajectory.Trajectory)"},{"p":"swervelib","c":"SwerveDrive","l":"pushOffsetsToControllers()"},{"p":"swervelib","c":"SwerveModule","l":"pushOffsetsToControllers()"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"PWMDutyCycleEncoderSwerve(int)","u":"%3Cinit%3E(int)"},{"p":"swervelib","c":"SwerveModule","l":"queueSynchronizeEncoders()"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"rampRate"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"readingError"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"readingFaulty"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"readingIgnored"},{"p":"swervelib","c":"SwerveDrive","l":"replaceSwerveModuleFeedforward(SimpleMotorFeedforward)","u":"replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib","c":"SwerveDrive","l":"resetDriveEncoders()"},{"p":"swervelib","c":"SwerveDrive","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"swervelib","c":"SwerveDrive","l":"restoreInternalOffset()"},{"p":"swervelib","c":"SwerveModule","l":"restoreInternalOffset()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"robotRotation"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"rotationUnit"},{"p":"swervelib.telemetry","c":"Alert.SendableAlerts","l":"SendableAlerts()","u":"%3Cinit%3E()"},{"p":"swervelib.telemetry","c":"Alert","l":"set(boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"set(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"set(double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setAbsoluteEncoder(SwerveAbsoluteEncoder)","u":"setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)"},{"p":"swervelib.encoders","c":"AnalogAbsoluteEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"CanAndCoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"CANCoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"PWMDutyCycleEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"setAbsoluteEncoderOffset(double)"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngle(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setAngleMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngleMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setAngleMotorVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setChassisSpeeds(ChassisSpeeds)","u":"setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setCurrentLimit(int)"},{"p":"swervelib","c":"SwerveModule","l":"setDesiredState(SwerveModuleState, boolean, boolean)","u":"setDesiredState(edu.wpi.first.math.kinematics.SwerveModuleState,boolean,boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setDriveMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setDriveMotorConversionFactor(double)"},{"p":"swervelib","c":"SwerveModule","l":"setDriveMotorVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setGyro(Rotation3d)","u":"setGyro(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib","c":"SwerveDrive","l":"setGyroOffset(Rotation3d)","u":"setGyroOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib","c":"SwerveDrive","l":"setHeadingCorrection(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setHeadingCorrection(boolean, double)","u":"setHeadingCorrection(boolean,double)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"setInverted(boolean)"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"setInverted(boolean)"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"setInverted(boolean)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"setInverted(boolean)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"setInverted(boolean)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"setInverted(boolean)"},{"p":"swervelib.imu","c":"SwerveIMU","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setInverted(boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setLoopRampRate(double)"},{"p":"swervelib","c":"SwerveController","l":"setMaximumAngularVelocity(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeed(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeed(double, boolean, double)","u":"setMaximumSpeed(double,boolean,double)"},{"p":"swervelib","c":"SwerveDrive","l":"setMaximumSpeeds(double, double, double)","u":"setMaximumSpeeds(double,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"setModuleStates(SwerveModuleState[], boolean)","u":"setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[],boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveModule","l":"setMotorBrake(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setMotorIdleMode(boolean)"},{"p":"swervelib","c":"SwerveDrive","l":"setOdometryPeriod(double)"},{"p":"swervelib.imu","c":"ADIS16448Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"ADIS16470Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"ADXRS450Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"AnalogGyroSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"NavXSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"Pigeon2Swerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"PigeonSwerve","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.imu","c":"SwerveIMU","l":"setOffset(Rotation3d)","u":"setOffset(edu.wpi.first.math.geometry.Rotation3d)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setPosition(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setPosition(double)"},{"p":"swervelib","c":"SwerveDrive","l":"setRawModuleStates(SwerveModuleState[], boolean)","u":"setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[],boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double)","u":"setReference(double,double)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setReference(double, double, double)","u":"setReference(double,double,double)"},{"p":"swervelib.telemetry","c":"Alert","l":"setText(String)","u":"setText(java.lang.String)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"SwerveMotor","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"setVoltageCompensation(double)"},{"p":"swervelib","c":"SwerveDrive","l":"simIMU"},{"p":"swervelib","c":"SwerveModule","l":"simModule"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"Simulation"},{"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":"SparkFlexSwerve","l":"SparkFlexSwerve(CANSparkFlex, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkFlex,boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve","l":"SparkFlexSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"SparkMAX_slotIdx()","u":"%3Cinit%3E()"},{"p":"swervelib.encoders","c":"SparkMaxAnalogEncoderSwerve","l":"SparkMaxAnalogEncoderSwerve(SwerveMotor)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(CANSparkMax, boolean, SparkRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean,com.revrobotics.SparkRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.motors","c":"SparkMaxBrushedMotorSwerve","l":"SparkMaxBrushedMotorSwerve(int, boolean, SparkRelativeEncoder.Type, int, boolean)","u":"%3Cinit%3E(int,boolean,com.revrobotics.SparkRelativeEncoder.Type,int,boolean)"},{"p":"swervelib.encoders","c":"SparkMaxEncoderSwerve","l":"SparkMaxEncoderSwerve(SwerveMotor, int)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,int)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"SparkMaxSwerve(CANSparkMax, boolean)","u":"%3Cinit%3E(com.revrobotics.CANSparkMax,boolean)"},{"p":"swervelib.motors","c":"SparkMaxSwerve","l":"SparkMaxSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"state"},{"p":"swervelib","c":"SwerveDrive","l":"stopOdometryThread()"},{"p":"swervelib.encoders","c":"SwerveAbsoluteEncoder","l":"SwerveAbsoluteEncoder()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"swerveController"},{"p":"swervelib","c":"SwerveController","l":"SwerveController(SwerveControllerConfiguration)","u":"%3Cinit%3E(swervelib.parser.SwerveControllerConfiguration)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double)"},{"p":"swervelib.parser","c":"SwerveControllerConfiguration","l":"SwerveControllerConfiguration(SwerveDriveConfiguration, PIDFConfig, double, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.PIDFConfig,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"SwerveDrive(SwerveDriveConfiguration, SwerveControllerConfiguration, double)","u":"%3Cinit%3E(swervelib.parser.SwerveDriveConfiguration,swervelib.parser.SwerveControllerConfiguration,double)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDriveConfiguration"},{"p":"swervelib.parser","c":"SwerveDriveConfiguration","l":"SwerveDriveConfiguration(SwerveModuleConfiguration[], SwerveIMU, boolean, SimpleMotorFeedforward, SwerveModulePhysicalCharacteristics)","u":"%3Cinit%3E(swervelib.parser.SwerveModuleConfiguration[],swervelib.imu.SwerveIMU,boolean,edu.wpi.first.math.controller.SimpleMotorFeedforward,swervelib.parser.SwerveModulePhysicalCharacteristics)"},{"p":"swervelib.parser","c":"SwerveParser","l":"swerveDriveJson"},{"p":"swervelib.parser.json","c":"SwerveDriveJson","l":"SwerveDriveJson()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveDrive","l":"swerveDrivePoseEstimator"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"SwerveDriveTelemetry()","u":"%3Cinit%3E()"},{"p":"swervelib.imu","c":"SwerveIMU","l":"SwerveIMU()","u":"%3Cinit%3E()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"SwerveIMUSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.math","c":"SwerveMath","l":"SwerveMath()","u":"%3Cinit%3E()"},{"p":"swervelib","c":"SwerveModule","l":"SwerveModule(int, SwerveModuleConfiguration, SimpleMotorFeedforward)","u":"%3Cinit%3E(int,swervelib.parser.SwerveModuleConfiguration,edu.wpi.first.math.controller.SimpleMotorFeedforward)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, boolean, boolean, boolean, String)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.parser.json.MotorConfigDouble,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,boolean,boolean,boolean,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveModuleConfiguration","l":"SwerveModuleConfiguration(SwerveMotor, SwerveMotor, MotorConfigDouble, SwerveAbsoluteEncoder, double, double, double, PIDFConfig, PIDFConfig, SwerveModulePhysicalCharacteristics, String)","u":"%3Cinit%3E(swervelib.motors.SwerveMotor,swervelib.motors.SwerveMotor,swervelib.parser.json.MotorConfigDouble,swervelib.encoders.SwerveAbsoluteEncoder,double,double,double,swervelib.parser.PIDFConfig,swervelib.parser.PIDFConfig,swervelib.parser.SwerveModulePhysicalCharacteristics,java.lang.String)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double)","u":"%3Cinit%3E(swervelib.parser.json.MotorConfigDouble,double,double)"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"SwerveModulePhysicalCharacteristics(MotorConfigDouble, double, double, int, int, double, double)","u":"%3Cinit%3E(swervelib.parser.json.MotorConfigDouble,double,double,int,int,double,double)"},{"p":"swervelib","c":"SwerveDrive","l":"swerveModules"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"SwerveModuleSimulation()","u":"%3Cinit%3E()"},{"p":"swervelib.motors","c":"SwerveMotor","l":"SwerveMotor()","u":"%3Cinit%3E()"},{"p":"swervelib.parser","c":"SwerveParser","l":"SwerveParser(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"swervelib","c":"SwerveModule","l":"synchronizeEncoderQueued"},{"p":"swervelib","c":"SwerveDrive","l":"synchronizeModuleEncoders()"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(int, String, boolean)","u":"%3Cinit%3E(int,java.lang.String,boolean)"},{"p":"swervelib.motors","c":"TalonFXSwerve","l":"TalonFXSwerve(TalonFX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix6.hardware.TalonFX,boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"TalonSRXSwerve(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"swervelib.motors","c":"TalonSRXSwerve","l":"TalonSRXSwerve(WPI_TalonSRX, boolean)","u":"%3Cinit%3E(com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX,boolean)"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"TelemetryVerbosity()","u":"%3Cinit%3E()"},{"p":"swervelib.telemetry","c":"Alert","l":"text"},{"p":"swervelib","c":"SwerveController","l":"thetaController"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"timer"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"timer"},{"p":"swervelib","c":"SwerveDrive","l":"tunerXRecommendation"},{"p":"swervelib.parser.json","c":"DeviceJson","l":"type"},{"p":"swervelib.telemetry","c":"Alert","l":"type"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"updateData()"},{"p":"swervelib","c":"SwerveDrive","l":"updateOdometry()"},{"p":"swervelib.simulation","c":"SwerveIMUSimulation","l":"updateOdometry(SwerveDriveKinematics, SwerveModuleState[], Pose2d[], Field2d)","u":"updateOdometry(edu.wpi.first.math.kinematics.SwerveDriveKinematics,edu.wpi.first.math.kinematics.SwerveModuleState[],edu.wpi.first.math.geometry.Pose2d[],edu.wpi.first.wpilibj.smartdashboard.Field2d)"},{"p":"swervelib.simulation","c":"SwerveModuleSimulation","l":"updateStateAndPosition(SwerveModuleState)","u":"updateStateAndPosition(edu.wpi.first.math.kinematics.SwerveModuleState)"},{"p":"swervelib","c":"SwerveModule","l":"updateTelemetry()"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"swervelib.telemetry","c":"Alert.AlertType","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":"SparkFlexSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.motors","c":"SparkMaxSwerve.SparkMAX_slotIdx","l":"values()"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"values()"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry.TelemetryVerbosity","l":"values()"},{"p":"swervelib.motors","c":"SparkFlexSwerve.SparkMAX_slotIdx","l":"Velocity"},{"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.telemetry","c":"Alert.AlertType","l":"WARNING"},{"p":"swervelib.telemetry","c":"Alert.AlertType","l":"WARNING_TRACE"},{"p":"swervelib.parser.json","c":"PhysicalPropertiesJson","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.parser","c":"SwerveModulePhysicalCharacteristics","l":"wheelGripCoefficientOfFriction"},{"p":"swervelib.telemetry","c":"SwerveDriveTelemetry","l":"wheelLocations"},{"p":"swervelib","c":"SwerveController","l":"withinHypotDeadband(double, double)","u":"withinHypotDeadband(double,double)"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"x"},{"p":"swervelib","c":"SwerveController","l":"xLimiter"},{"p":"swervelib.parser.json.modules","c":"LocationJson","l":"y"},{"p":"swervelib","c":"SwerveController","l":"yLimiter"},{"p":"swervelib","c":"SwerveDrive","l":"zeroGyro()"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/overview-summary.html b/docs/overview-summary.html index 1178451..42165a9 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 666772e..5e9e9d2 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 36e3228..3b18f52 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 aeb2fe3..23234f3 100644 --- a/docs/swervelib/SwerveDrive.html +++ b/docs/swervelib/SwerveDrive.html @@ -1,11 +1,11 @@ - + SwerveDrive - + @@ -132,50 +132,40 @@ loadScripts(document, 'script');
Swerve IMU device for sensing the heading of the robot.
-
boolean
- +
final edu.wpi.first.math.kinematics.SwerveDriveKinematics
+
-
Invert odometry readings of drive motor positions, used as a patch for debugging currently.
-
-
final edu.wpi.first.math.kinematics.SwerveDriveKinematics
- -
Swerve Kinematics object.
-
private double
- -
+
private double
+ +
The last heading set in radians.
-
private double
- -
+
private double
+ +
Maximum speed of the robot in meters per second.
-
private int
- -
+
private int
+ +
Counter to synchronize the modules relative encoder with absolute encoder when not moving.
-
private final Lock
- -
+
private final Lock
+ +
Odometry lock to ensure thread safety.
-
private final edu.wpi.first.wpilibj.Notifier
- -
+
private final edu.wpi.first.wpilibj.Notifier
+ +
WPILib Notifier to keep odometry up to date.
- - -
-
Simulation of the swerve drive.
-
-
edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
- + +
-
Standard deviation of encoders and gyroscopes, usually should not change.
+
Simulation of the swerve drive.
@@ -202,13 +192,6 @@ loadScripts(document, 'script');
Alert to recommend Tuner X if the configuration is compatible.
-
edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1>
- -
-
The standard deviation of the vision measurement, for best accuracy calculate the standard deviation at 2 or more - points and fit a line to it and modify this using addVisionMeasurement(Pose2d, double, Matrix) - with the calculated optimal standard deviation.
-
@@ -344,182 +327,187 @@ loadScripts(document, 'script');
Get the SwerveModules associated with the SwerveDrive.
edu.wpi.first.math.geometry.Rotation2d
- +
-
Gets the current pitch angle of the robot, as reported by the imu.
-
-
edu.wpi.first.math.geometry.Pose2d
- -
-
Gets the current pose (position and rotation) of the robot, as reported by odometry.
-
-
edu.wpi.first.math.kinematics.ChassisSpeeds
- -
-
Gets the current robot-relative velocity (x, y and omega) of the robot
+
Fetch the latest odometry heading, should be trusted over getYaw().
edu.wpi.first.math.geometry.Rotation2d
- +
+
Gets the current pitch angle of the robot, as reported by the imu.
+
+
edu.wpi.first.math.geometry.Pose2d
+ +
+
Gets the current pose (position and rotation) of the robot, as reported by odometry.
+
+
edu.wpi.first.math.kinematics.ChassisSpeeds
+ +
+
Gets the current robot-relative velocity (x, y and omega) of the robot
+
+
edu.wpi.first.math.geometry.Rotation2d
+ +
Gets the current roll angle of the robot, as reported by the imu.
-
edu.wpi.first.math.kinematics.SwerveModuleState[]
- -
+
edu.wpi.first.math.kinematics.SwerveModuleState[]
+ +
Gets the current module states (azimuth and velocity)
- - -
+ + +
Helper function to get the swerveController for the SwerveDrive which can be used to generate ChassisSpeeds for the robot to orient it correctly given axis or angles, and apply SlewRateLimiter to given inputs.
-
edu.wpi.first.math.geometry.Pose2d[]
-
getSwerveModulePoses(edu.wpi.first.math.geometry.Pose2d robotPose)
-
+
edu.wpi.first.math.geometry.Pose2d[]
+
getSwerveModulePoses(edu.wpi.first.math.geometry.Pose2d robotPose)
+
Get the swerve module poses and on the field relative to the robot.
-
edu.wpi.first.math.geometry.Rotation2d
- -
+
edu.wpi.first.math.geometry.Rotation2d
+ +
Gets the current yaw angle of the robot, as reported by the imu.
-
void
- -
+
void
+ +
Point all modules toward the robot center, thus making the robot very difficult to move.
-
void
-
postTrajectory(edu.wpi.first.math.trajectory.Trajectory trajectory)
-
+
void
+
postTrajectory(edu.wpi.first.math.trajectory.Trajectory trajectory)
+
Post the trajectory to the field
-
void
- -
+
void
+ +
Pushes the Absolute Encoder offsets to the Encoder or Motor Controller, depending on type.
-
void
-
replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward feedforward)
-
+
void
+
replaceSwerveModuleFeedforward(edu.wpi.first.math.controller.SimpleMotorFeedforward feedforward)
+
Setup the swerve module feedforward.
-
void
- -
+
void
+ +
Reset the drive encoders on the robot, useful when manually resetting the robot without a reboot, like in autonomous.
-
void
-
resetOdometry(edu.wpi.first.math.geometry.Pose2d pose)
-
+
void
+
resetOdometry(edu.wpi.first.math.geometry.Pose2d pose)
+
Resets odometry to the given pose.
-
void
- -
+
void
+ +
Restores Internal YAGSL Encoder offsets and sets the Encoder stored offset back to 0
-
void
-
setAngleMotorConversionFactor(double conversionFactor)
-
+
void
+
setAngleMotorConversionFactor(double conversionFactor)
+
Set the conversion factor for the angle/azimuth motor controller.
-
void
-
setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds chassisSpeeds)
-
+
void
+
setChassisSpeeds(edu.wpi.first.math.kinematics.ChassisSpeeds chassisSpeeds)
+
Set chassis speeds with closed-loop velocity control.
-
void
-
setDriveMotorConversionFactor(double conversionFactor)
-
+
void
+
setDriveMotorConversionFactor(double conversionFactor)
+
Set the conversion factor for the drive motor controller.
-
void
-
setGyro(edu.wpi.first.math.geometry.Rotation3d gyro)
-
+
void
+
setGyro(edu.wpi.first.math.geometry.Rotation3d gyro)
+
Set the expected gyroscope angle using a Rotation3d object.
-
void
-
setGyroOffset(edu.wpi.first.math.geometry.Rotation3d offset)
-
+
void
+
setGyroOffset(edu.wpi.first.math.geometry.Rotation3d offset)
+
Set the gyro scope offset to a desired known rotation.
-
void
-
setHeadingCorrection(boolean state)
-
-
Set the heading correction capabilities of YAGSL.
-
void
-
setHeadingCorrection(boolean state, - double deadband)
+
setHeadingCorrection(boolean state)
Set the heading correction capabilities of YAGSL.
void
-
setMaximumSpeed(double maximumSpeed)
+
setHeadingCorrection(boolean state, + double deadband)
+
Set the heading correction capabilities of YAGSL.
+
+
void
+
setMaximumSpeed(double maximumSpeed)
+
Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the setRawModuleStates(SwerveModuleState[], boolean) function and SwerveController.getTargetSpeeds(double, double, double, double, double) functions.
-
void
-
setMaximumSpeed(double maximumSpeed, +
void
+
setMaximumSpeed(double maximumSpeed, boolean updateModuleFeedforward, double optimalVoltage)
-
+
Set the maximum speed of the drive motors, modified maxSpeedMPS which is used for the setRawModuleStates(SwerveModuleState[], boolean) function and SwerveController.getTargetSpeeds(double, double, double, double, double) functions.
-
void
-
setMaximumSpeeds(double attainableMaxModuleSpeedMetersPerSecond, +
void
+
setMaximumSpeeds(double attainableMaxModuleSpeedMetersPerSecond, double attainableMaxTranslationalSpeedMetersPerSecond, double attainableMaxRotationalVelocityRadiansPerSecond)
-
+
Set the maximum speeds for desaturation.
-
void
-
setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, +
void
+
setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, boolean isOpenLoop)
-
+
Set the module states (azimuth and velocity) directly.
-
void
-
setMotorIdleMode(boolean brake)
-
+
void
+
setMotorIdleMode(boolean brake)
+
Sets the drive motors to brake/coast mode.
-
void
-
setOdometryPeriod(double period)
-
+
void
+
setOdometryPeriod(double period)
+
Set the odometry update period in seconds.
-
private void
-
setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, +
private void
+
setRawModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[] desiredStates, boolean isOpenLoop)
-
+
Set the module states (azimuth and velocity) directly.
-
void
- -
+
void
+ +
Stop the odometry thread in favor of manually updating odometry.
-
void
- -
+
void
+ +
Synchronize angle motor integrated encoders with data from absolute encoders.
-
void
- -
+
void
+ +
Update odometry should be run every loop.
-
void
- -
+
void
+ +
Resets the gyro angle to zero and resets odometry to the same position, but facing toward 0.
@@ -582,10 +570,10 @@ loadScripts(document, 'script');
  • -
    -

    HEADING_CORRECTION_DEADBAND

    -
    private double HEADING_CORRECTION_DEADBAND
    -
    Deadband for speeds in heading correction.
    +
    +

    tunerXRecommendation

    +
    private final Alert tunerXRecommendation
    +
    Alert to recommend Tuner X if the configuration is compatible.
  • @@ -603,31 +591,6 @@ loadScripts(document, 'script');
  • -
    -

    stateStdDevs

    -
    public edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> stateStdDevs
    -
    Standard deviation of encoders and gyroscopes, usually should not change. (meters of position and degrees of - rotation)
    -
    -
  • -
  • -
    -

    visionMeasurementStdDevs

    -
    public edu.wpi.first.math.Matrix<edu.wpi.first.math.numbers.N3,edu.wpi.first.math.numbers.N1> visionMeasurementStdDevs
    -
    The standard deviation of the vision measurement, for best accuracy calculate the standard deviation at 2 or more - points and fit a line to it and modify this using addVisionMeasurement(Pose2d, double, Matrix) - with the calculated optimal standard deviation. (Units should be meters per pixel). By optimizing this you can get - vision accurate to inches instead of feet.
    -
    -
  • -
  • -
    -

    invertOdometry

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

    public boolean chassisVelocityCorrection
    @@ -643,6 +606,13 @@ loadScripts(document, 'script');
  • +
    +

    HEADING_CORRECTION_DEADBAND

    +
    private double HEADING_CORRECTION_DEADBAND
    +
    Deadband for speeds in heading correction.
    +
    +
  • +
  • correctionEnabled

    private boolean correctionEnabled
    @@ -698,13 +668,6 @@ loadScripts(document, 'script');
    Maximum speed of the robot in meters per second.
  • -
  • -
    -

    tunerXRecommendation

    -
    private final Alert tunerXRecommendation
    -
    Alert to recommend Tuner X if the configuration is compatible.
    -
    -
  • @@ -792,6 +755,17 @@ loadScripts(document, 'script');
  • +
    +

    getOdometryHeading

    +
    public edu.wpi.first.math.geometry.Rotation2d getOdometryHeading()
    +
    Fetch the latest odometry heading, should be trusted over getYaw().
    +
    +
    Returns:
    +
    Rotation2d of the robot heading.
    +
    +
    +
  • +
  • setHeadingCorrection

    public void setHeadingCorrection(boolean state)
    @@ -1083,8 +1057,7 @@ loadScripts(document, 'script');

    getModulePositions

    public edu.wpi.first.math.kinematics.SwerveModulePosition[] getModulePositions()
    -
    Gets the current module positions (azimuth and wheel position (meters)). Inverts the distance from each module if - invertOdometry is true.
    +
    Gets the current module positions (azimuth and wheel position (meters)).
    Returns:
    A list of SwerveModulePositions containg the current module positions
    @@ -1260,23 +1233,6 @@ loadScripts(document, 'script');
  • -
    -

    addVisionMeasurement

    -
    public void addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d robotPose, - double timestamp)
    -
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with - the given timestamp of the vision measurement.
    IT IS HIGHLY RECOMMENDED TO UPDATE YOUR GYROSCOPE OFFSET - AFTER USING THIS FUNCTION!
    To update your gyroscope readings directly use - setGyroOffset(Rotation3d).
    -
    -
    Parameters:
    -
    robotPose - Robot Pose2d as measured by vision.
    -
    timestamp - Timestamp the measurement was taken as time since startup, should be taken from - Timer.getFPGATimestamp() or similar sources.
    -
    -
    -
  • -
  • addVisionMeasurement

    public void addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d robotPose, @@ -1299,6 +1255,23 @@ loadScripts(document, 'script');
  • +
    +

    addVisionMeasurement

    +
    public void addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d robotPose, + double timestamp)
    +
    Add a vision measurement to the SwerveDrivePoseEstimator and update the SwerveIMU gyro reading with + the given timestamp of the vision measurement.
    IT IS HIGHLY RECOMMENDED TO UPDATE YOUR GYROSCOPE OFFSET + AFTER USING THIS FUNCTION!
    To update your gyroscope readings directly use + setGyroOffset(Rotation3d).
    +
    +
    Parameters:
    +
    robotPose - Robot Pose2d as measured by vision.
    +
    timestamp - Timestamp the measurement was taken as time since startup, should be taken from + Timer.getFPGATimestamp() or similar sources.
    +
    +
    +
  • +
  • setGyro

    public void setGyro(edu.wpi.first.math.geometry.Rotation3d gyro)
    diff --git a/docs/swervelib/SwerveModule.html b/docs/swervelib/SwerveModule.html index de3cdc5..b96aa37 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 4e02aa5..bc69ebc 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 6507b46..c5aaa82 100644 --- a/docs/swervelib/encoders/CANCoderSwerve.html +++ b/docs/swervelib/encoders/CANCoderSwerve.html @@ -1,11 +1,11 @@ - + CANCoderSwerve - + diff --git a/docs/swervelib/encoders/CanAndCoderSwerve.html b/docs/swervelib/encoders/CanAndCoderSwerve.html index 64fa51d..8cda091 100644 --- a/docs/swervelib/encoders/CanAndCoderSwerve.html +++ b/docs/swervelib/encoders/CanAndCoderSwerve.html @@ -1,11 +1,11 @@ - + CanAndCoderSwerve - + diff --git a/docs/swervelib/encoders/PWMDutyCycleEncoderSwerve.html b/docs/swervelib/encoders/PWMDutyCycleEncoderSwerve.html index 802c817..92924c6 100644 --- a/docs/swervelib/encoders/PWMDutyCycleEncoderSwerve.html +++ b/docs/swervelib/encoders/PWMDutyCycleEncoderSwerve.html @@ -1,11 +1,11 @@ - + PWMDutyCycleEncoderSwerve - + diff --git a/docs/swervelib/encoders/SparkMaxAnalogEncoderSwerve.html b/docs/swervelib/encoders/SparkMaxAnalogEncoderSwerve.html index fa15445..93bf7fe 100644 --- a/docs/swervelib/encoders/SparkMaxAnalogEncoderSwerve.html +++ b/docs/swervelib/encoders/SparkMaxAnalogEncoderSwerve.html @@ -1,11 +1,11 @@ - + SparkMaxAnalogEncoderSwerve - + diff --git a/docs/swervelib/encoders/SparkMaxEncoderSwerve.html b/docs/swervelib/encoders/SparkMaxEncoderSwerve.html index 9b6d053..cef16cb 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 354b49c..2332dff 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 e4d1e1d..074df6f 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 cc9c2d3..52b89ef 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 8c371e4..bcc1338 100644 --- a/docs/swervelib/imu/ADIS16448Swerve.html +++ b/docs/swervelib/imu/ADIS16448Swerve.html @@ -1,11 +1,11 @@ - + ADIS16448Swerve - + @@ -98,9 +98,14 @@ loadScripts(document, 'script');
    ADIS16448_IMU device to read the current headings from.
    -
    private edu.wpi.first.math.geometry.Rotation3d
    - +
    private boolean
    +
    +
    Inversion for the gyro
    +
    +
    private edu.wpi.first.math.geometry.Rotation3d
    + +
    Offset for the ADIS16448.
  • @@ -163,8 +168,13 @@ loadScripts(document, 'script');
    Fetch the Rotation3d from the IMU.
    void
    -
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    void
    +
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    Set the gyro offset.
    @@ -198,6 +208,13 @@ loadScripts(document, 'script');
    Offset for the ADIS16448.
    +
  • +
    +

    invertedIMU

    +
    private boolean invertedIMU
    +
    Inversion for the gyro
    +
    +
  • @@ -257,6 +274,19 @@ loadScripts(document, 'script');
  • +
    +

    setInverted

    +
    public void setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    Specified by:
    +
    setInverted in class SwerveIMU
    +
    Parameters:
    +
    invertIMU - invert gyro direction
    +
    +
    +
  • +
  • getRawRotation3d

    public edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
    diff --git a/docs/swervelib/imu/ADIS16470Swerve.html b/docs/swervelib/imu/ADIS16470Swerve.html index ecb877d..bfc358e 100644 --- a/docs/swervelib/imu/ADIS16470Swerve.html +++ b/docs/swervelib/imu/ADIS16470Swerve.html @@ -1,11 +1,11 @@ - + ADIS16470Swerve - + @@ -98,9 +98,14 @@ loadScripts(document, 'script');
    ADIS16470_IMU device to read the current headings from.
    -
    private edu.wpi.first.math.geometry.Rotation3d
    - +
    private boolean
    +
    +
    Inversion for the gyro
    +
    +
    private edu.wpi.first.math.geometry.Rotation3d
    + +
    Offset for the ADIS16470.
  • @@ -163,8 +168,13 @@ loadScripts(document, 'script');
    Fetch the Rotation3d from the IMU.
    void
    -
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    void
    +
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    Set the gyro offset.
    @@ -198,6 +208,13 @@ loadScripts(document, 'script');
    Offset for the ADIS16470.
    +
  • +
    +

    invertedIMU

    +
    private boolean invertedIMU
    +
    Inversion for the gyro
    +
    +
  • @@ -257,6 +274,19 @@ loadScripts(document, 'script');
  • +
    +

    setInverted

    +
    public void setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    Specified by:
    +
    setInverted in class SwerveIMU
    +
    Parameters:
    +
    invertIMU - invert gyro direction
    +
    +
    +
  • +
  • getRawRotation3d

    public edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
    diff --git a/docs/swervelib/imu/ADXRS450Swerve.html b/docs/swervelib/imu/ADXRS450Swerve.html index 9d694ea..3e689aa 100644 --- a/docs/swervelib/imu/ADXRS450Swerve.html +++ b/docs/swervelib/imu/ADXRS450Swerve.html @@ -1,11 +1,11 @@ - + ADXRS450Swerve - + @@ -98,9 +98,14 @@ loadScripts(document, 'script');
    ADXRS450_Gyro device to read the current headings from.
    -
    private edu.wpi.first.math.geometry.Rotation3d
    - +
    private boolean
    +
    +
    Inversion for the gyro
    +
    +
    private edu.wpi.first.math.geometry.Rotation3d
    + +
    Offset for the ADXRS450.
  • @@ -163,8 +168,13 @@ loadScripts(document, 'script');
    Fetch the Rotation3d from the IMU.
    void
    -
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    void
    +
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    Set the gyro offset.
    @@ -198,6 +208,13 @@ loadScripts(document, 'script');
    Offset for the ADXRS450.
    +
  • +
    +

    invertedIMU

    +
    private boolean invertedIMU
    +
    Inversion for the gyro
    +
    +
  • @@ -257,6 +274,19 @@ loadScripts(document, 'script');
  • +
    +

    setInverted

    +
    public void setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    Specified by:
    +
    setInverted in class SwerveIMU
    +
    Parameters:
    +
    invertIMU - invert gyro direction
    +
    +
    +
  • +
  • getRawRotation3d

    public edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
    diff --git a/docs/swervelib/imu/AnalogGyroSwerve.html b/docs/swervelib/imu/AnalogGyroSwerve.html index 89974a7..47f4dfb 100644 --- a/docs/swervelib/imu/AnalogGyroSwerve.html +++ b/docs/swervelib/imu/AnalogGyroSwerve.html @@ -1,11 +1,11 @@ - + AnalogGyroSwerve - + @@ -98,9 +98,14 @@ loadScripts(document, 'script');
    Gyroscope object.
    -
    private edu.wpi.first.math.geometry.Rotation3d
    - +
    private boolean
    +
    +
    Inversion for the gyro
    +
    +
    private edu.wpi.first.math.geometry.Rotation3d
    + +
    Offset for the analog gyro.
  • @@ -163,8 +168,13 @@ loadScripts(document, 'script');
    Fetch the Rotation3d from the IMU.
    void
    -
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    void
    +
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    Set the gyro offset.
    @@ -198,6 +208,13 @@ loadScripts(document, 'script');
    Offset for the analog gyro.
    +
  • +
    +

    invertedIMU

    +
    private boolean invertedIMU
    +
    Inversion for the gyro
    +
    +
  • @@ -261,6 +278,19 @@ loadScripts(document, 'script');
  • +
    +

    setInverted

    +
    public void setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    Specified by:
    +
    setInverted in class SwerveIMU
    +
    Parameters:
    +
    invertIMU - invert gyro direction
    +
    +
    +
  • +
  • getRawRotation3d

    public edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
    diff --git a/docs/swervelib/imu/NavXSwerve.html b/docs/swervelib/imu/NavXSwerve.html index addadf3..63f4dff 100644 --- a/docs/swervelib/imu/NavXSwerve.html +++ b/docs/swervelib/imu/NavXSwerve.html @@ -1,11 +1,11 @@ - + NavXSwerve - + @@ -98,14 +98,19 @@ loadScripts(document, 'script');
    NavX IMU.
    -
    private Alert
    - +
    private boolean
    +
    +
    Inversion for the gyro
    +
    +
    private Alert
    + +
    An Alert for if there is an error instantiating the NavX.
    -
    private edu.wpi.first.math.geometry.Rotation3d
    - -
    +
    private edu.wpi.first.math.geometry.Rotation3d
    + +
    Offset for the NavX.
    @@ -176,8 +181,13 @@ loadScripts(document, 'script');
    Fetch the Rotation3d from the IMU.
  • void
    -
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    void
    +
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    Set the gyro offset.
    @@ -212,6 +222,13 @@ loadScripts(document, 'script');
  • +
    +

    invertedIMU

    +
    private boolean invertedIMU
    +
    Inversion for the gyro
    +
    +
  • +
  • +
    +

    setInverted

    +
    public void setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    Specified by:
    +
    setInverted in class SwerveIMU
    +
    Parameters:
    +
    invertIMU - invert gyro direction
    +
    +
    +
  • +
  • getRawRotation3d

    public edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
    diff --git a/docs/swervelib/imu/Pigeon2Swerve.html b/docs/swervelib/imu/Pigeon2Swerve.html index 0a09769..6a147da 100644 --- a/docs/swervelib/imu/Pigeon2Swerve.html +++ b/docs/swervelib/imu/Pigeon2Swerve.html @@ -1,11 +1,11 @@ - + Pigeon2Swerve - + @@ -98,9 +98,14 @@ loadScripts(document, 'script');
    Pigeon2 IMU device.
    -
    private edu.wpi.first.math.geometry.Rotation3d
    - +
    private boolean
    +
    +
    Inversion for the gyro
    +
    +
    private edu.wpi.first.math.geometry.Rotation3d
    + +
    Offset for the Pigeon 2.
  • @@ -168,8 +173,13 @@ loadScripts(document, 'script');
    Fetch the Rotation3d from the IMU.
    void
    -
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    void
    +
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    Set the gyro offset.
    @@ -203,6 +213,13 @@ loadScripts(document, 'script');
    Offset for the Pigeon 2.
    +
  • +
    +

    invertedIMU

    +
    private boolean invertedIMU
    +
    Inversion for the gyro
    +
    +
  • @@ -279,6 +296,19 @@ loadScripts(document, 'script');
  • +
    +

    setInverted

    +
    public void setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    Specified by:
    +
    setInverted in class SwerveIMU
    +
    Parameters:
    +
    invertIMU - invert gyro direction
    +
    +
    +
  • +
  • getRawRotation3d

    public edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
    diff --git a/docs/swervelib/imu/PigeonSwerve.html b/docs/swervelib/imu/PigeonSwerve.html index 0dcb7dd..f01a245 100644 --- a/docs/swervelib/imu/PigeonSwerve.html +++ b/docs/swervelib/imu/PigeonSwerve.html @@ -1,11 +1,11 @@ - + PigeonSwerve - + @@ -98,9 +98,14 @@ loadScripts(document, 'script');
    Pigeon v1 IMU device.
    -
    private edu.wpi.first.math.geometry.Rotation3d
    - +
    private boolean
    +
    +
    Inversion for the gyro
    +
    +
    private edu.wpi.first.math.geometry.Rotation3d
    + +
    Offset for the Pigeon.
  • @@ -163,8 +168,13 @@ loadScripts(document, 'script');
    Fetch the Rotation3d from the IMU.
    void
    -
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    void
    +
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    Set the gyro offset.
    @@ -198,6 +208,13 @@ loadScripts(document, 'script');
    Offset for the Pigeon.
    +
  • +
    +

    invertedIMU

    +
    private boolean invertedIMU
    +
    Inversion for the gyro
    +
    +
  • @@ -261,6 +278,19 @@ loadScripts(document, 'script');
  • +
    +

    setInverted

    +
    public void setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction
    +
    +
    Specified by:
    +
    setInverted in class SwerveIMU
    +
    Parameters:
    +
    invertIMU - invert gyro direction
    +
    +
    +
  • +
  • getRawRotation3d

    public edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
    diff --git a/docs/swervelib/imu/SwerveIMU.html b/docs/swervelib/imu/SwerveIMU.html index 4cc8291..1320268 100644 --- a/docs/swervelib/imu/SwerveIMU.html +++ b/docs/swervelib/imu/SwerveIMU.html @@ -1,11 +1,11 @@ - + SwerveIMU - + @@ -141,8 +141,13 @@ loadScripts(document, 'script');
    Fetch the Rotation3d from the IMU.
  • abstract void
    -
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction.
    +
    +
    abstract void
    +
    setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
    +
    Set the gyro offset.
    @@ -202,6 +207,17 @@ loadScripts(document, 'script');
  • +
    +

    setInverted

    +
    public abstract void setInverted(boolean invertIMU)
    +
    Set the gyro to invert its default direction.
    +
    +
    Parameters:
    +
    invertIMU - gyro direction
    +
    +
    +
  • +
  • getRawRotation3d

    public abstract edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
    diff --git a/docs/swervelib/imu/package-summary.html b/docs/swervelib/imu/package-summary.html index 398b6c6..47da48f 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 6748f69..9437dcc 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 fa78262..f9768e8 100644 --- a/docs/swervelib/math/Matter.html +++ b/docs/swervelib/math/Matter.html @@ -1,11 +1,11 @@ - + Matter - + diff --git a/docs/swervelib/math/SwerveMath.html b/docs/swervelib/math/SwerveMath.html index 07d1564..d86ea17 100644 --- a/docs/swervelib/math/SwerveMath.html +++ b/docs/swervelib/math/SwerveMath.html @@ -1,11 +1,11 @@ - + SwerveMath - + diff --git a/docs/swervelib/math/package-summary.html b/docs/swervelib/math/package-summary.html index 1792363..51b0958 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 d671a29..722c93b 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/SparkFlexSwerve.SparkMAX_slotIdx.html b/docs/swervelib/motors/SparkFlexSwerve.SparkMAX_slotIdx.html index a7e9d48..f809eb6 100644 --- a/docs/swervelib/motors/SparkFlexSwerve.SparkMAX_slotIdx.html +++ b/docs/swervelib/motors/SparkFlexSwerve.SparkMAX_slotIdx.html @@ -1,11 +1,11 @@ - + SparkFlexSwerve.SparkMAX_slotIdx - + diff --git a/docs/swervelib/motors/SparkFlexSwerve.html b/docs/swervelib/motors/SparkFlexSwerve.html index 556937e..4e20f49 100644 --- a/docs/swervelib/motors/SparkFlexSwerve.html +++ b/docs/swervelib/motors/SparkFlexSwerve.html @@ -1,11 +1,11 @@ - + SparkFlexSwerve - + diff --git a/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html b/docs/swervelib/motors/SparkMaxBrushedMotorSwerve.html index d131f6b..05712ba 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 921958f..f65e07d 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 824ba8b..94d5f58 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 e6a1fad..77b0a5f 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 7f1582c..ff84aaf 100644 --- a/docs/swervelib/motors/TalonFXSwerve.html +++ b/docs/swervelib/motors/TalonFXSwerve.html @@ -1,11 +1,11 @@ - + TalonFXSwerve - + @@ -359,13 +359,6 @@ loadScripts(document, 'script');
  • -
    -

    conversionFactor

    -
    private double conversionFactor
    -
    Conversion factor for the motor.
    -
    -
  • -
  • motor

    com.ctre.phoenix6.hardware.TalonFX motor
    @@ -373,6 +366,13 @@ loadScripts(document, 'script');
  • +
    +

    conversionFactor

    +
    private double conversionFactor
    +
    Conversion factor for the motor.
    +
    +
  • +
  • configuration

    private com.ctre.phoenix6.configs.TalonFXConfiguration configuration
    diff --git a/docs/swervelib/motors/TalonSRXSwerve.html b/docs/swervelib/motors/TalonSRXSwerve.html index 7d0ebc6..bb0b839 100644 --- a/docs/swervelib/motors/TalonSRXSwerve.html +++ b/docs/swervelib/motors/TalonSRXSwerve.html @@ -1,11 +1,11 @@ - + TalonSRXSwerve - + diff --git a/docs/swervelib/motors/package-summary.html b/docs/swervelib/motors/package-summary.html index d2330c7..20ff16d 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 4206f60..f2f691f 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 e3da96d..7e633ef 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 483cf65..56eff0e 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 af38b8e..8be7e19 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 3119510..d72f808 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 317aef5..e6503cb 100644 --- a/docs/swervelib/parser/SwerveDriveConfiguration.html +++ b/docs/swervelib/parser/SwerveDriveConfiguration.html @@ -1,11 +1,11 @@ - + SwerveDriveConfiguration - + @@ -96,29 +96,24 @@ loadScripts(document, 'script');
    Swerve IMU
    -
    boolean
    - +
    int
    +
    -
    Invert the imu measurements.
    -
    -
    int
    - -
    Number of modules on the robot.
    -
    edu.wpi.first.math.geometry.Translation2d[]
    - -
    +
    edu.wpi.first.math.geometry.Translation2d[]
    + +
    Swerve Module locations.
    - - -
    + + +
    Swerve Modules.
    - - -
    + + +
    Physical characteristics of the swerve drive from physicalproperties.json.
    @@ -197,13 +192,6 @@ loadScripts(document, 'script');
  • -
    -

    invertedIMU

    -
    public boolean invertedIMU
    -
    Invert the imu measurements.
    -
    -
  • -
  • moduleCount

    public int moduleCount
    diff --git a/docs/swervelib/parser/SwerveModuleConfiguration.html b/docs/swervelib/parser/SwerveModuleConfiguration.html index 799a5ee..96bfda3 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 f9eb4a6..290ceea 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 744795e..575f233 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 81fefd1..8abed05 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 69df7d2..5bc31b7 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 052334e..3652089 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 5929ab2..dadd8a1 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 34ef88b..3b2c005 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 3b82299..778f372 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 28a0d43..6db66ec 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 cfe25cf..c1de910 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 2c93f2a..d1c613c 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 b19a270..6e49834 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 ccf0e30..523b150 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 49c2057..de12bcb 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 d855ee4..cbfc8f7 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 905fd84..96640f1 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 e7da081..3f50049 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 6806a9d..1438ef9 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 9ac0bde..fbd5c21 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 d442b77..6727b5a 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 592a051..48acb1a 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 7392438..9dd5092 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 b364c97..1146b63 100644 --- a/docs/swervelib/simulation/SwerveModuleSimulation.html +++ b/docs/swervelib/simulation/SwerveModuleSimulation.html @@ -1,11 +1,11 @@ - + SwerveModuleSimulation - + diff --git a/docs/swervelib/simulation/package-summary.html b/docs/swervelib/simulation/package-summary.html index 5c26d7d..cf0912c 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 88d6162..1f11d1a 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/Alert.AlertType.html b/docs/swervelib/telemetry/Alert.AlertType.html index 7ccdbab..8868173 100644 --- a/docs/swervelib/telemetry/Alert.AlertType.html +++ b/docs/swervelib/telemetry/Alert.AlertType.html @@ -1,11 +1,11 @@ - + Alert.AlertType - + diff --git a/docs/swervelib/telemetry/Alert.SendableAlerts.html b/docs/swervelib/telemetry/Alert.SendableAlerts.html index 9fdf144..7222983 100644 --- a/docs/swervelib/telemetry/Alert.SendableAlerts.html +++ b/docs/swervelib/telemetry/Alert.SendableAlerts.html @@ -1,11 +1,11 @@ - + Alert.SendableAlerts - + diff --git a/docs/swervelib/telemetry/Alert.html b/docs/swervelib/telemetry/Alert.html index 2114971..97dd514 100644 --- a/docs/swervelib/telemetry/Alert.html +++ b/docs/swervelib/telemetry/Alert.html @@ -1,11 +1,11 @@ - + Alert - + diff --git a/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html b/docs/swervelib/telemetry/SwerveDriveTelemetry.TelemetryVerbosity.html index d8cda4b..e425238 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 323fc1c..a693275 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 6619ce7..56a37f9 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 5f987a8..b257599 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 9f6d17d..9ee2352 100644 --- a/swervelib/SwerveDrive.java +++ b/swervelib/SwerveDrive.java @@ -1,7 +1,6 @@ package swervelib; import edu.wpi.first.math.Matrix; -import edu.wpi.first.math.VecBuilder; import edu.wpi.first.math.controller.SimpleMotorFeedforward; import edu.wpi.first.math.estimator.SwerveDrivePoseEstimator; import edu.wpi.first.math.filter.SlewRateLimiter; @@ -72,9 +71,12 @@ public class SwerveDrive */ private final Lock odometryLock = new ReentrantLock(); /** - * Deadband for speeds in heading correction. + * Alert to recommend Tuner X if the configuration is compatible. */ - private double HEADING_CORRECTION_DEADBAND = 0.01; + private final Alert tunerXRecommendation = new Alert("Swerve Drive", + "Your Swerve Drive is compatible with Tuner X swerve generator, please consider using that instead of YAGSL. More information here!\n" + + "https://pro.docs.ctr-electronics.com/en/latest/docs/tuner/tuner-swerve/index.html", + AlertType.WARNING); /** * Field object. */ @@ -83,26 +85,6 @@ public class SwerveDrive * Swerve controller for controlling heading of the robot. */ public SwerveController swerveController; - /** - * Standard deviation of encoders and gyroscopes, usually should not change. (meters of position and degrees of - * rotation) - */ - public Matrix stateStdDevs = VecBuilder.fill(0.1, - 0.1, - 0.1); - /** - * The standard deviation of the vision measurement, for best accuracy calculate the standard deviation at 2 or more - * points and fit a line to it and modify this using {@link SwerveDrive#addVisionMeasurement(Pose2d, double, Matrix)} - * with the calculated optimal standard deviation. (Units should be meters per pixel). By optimizing this you can get - * vision accurate to inches instead of feet. - */ - 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; /** * Correct chassis velocity in {@link SwerveDrive#drive(Translation2d, double, boolean, boolean)} using 254's * correction. @@ -112,6 +94,10 @@ public class SwerveDrive * Whether to correct heading when driving translationally. Set to true to enable. */ public boolean headingCorrection = false; + /** + * Deadband for speeds in heading correction. + */ + private double HEADING_CORRECTION_DEADBAND = 0.01; /** * Whether heading correction PID is currently active. */ @@ -144,13 +130,6 @@ public class SwerveDrive * Maximum speed of the robot in meters per second. */ private double maxSpeedMPS; - /** - * Alert to recommend Tuner X if the configuration is compatible. - */ - private final Alert tunerXRecommendation = new Alert("Swerve Drive", - "Your Swerve Drive is compatible with Tuner X swerve generator, please consider using that instead of YAGSL. More information here!\n" + - "https://pro.docs.ctr-electronics.com/en/latest/docs/tuner/tuner-swerve/index.html", - AlertType.WARNING); /** * Creates a new swerve drivebase subsystem. Robot is controlled via the {@link SwerveDrive#drive} method, or via the @@ -194,9 +173,8 @@ public class SwerveDrive kinematics, getYaw(), getModulePositions(), - new Pose2d(new Translation2d(0, 0), Rotation2d.fromDegrees(0)), - stateStdDevs, - visionMeasurementStdDevs); // x,y,heading in radians; Vision measurement std dev, higher=less weight + new Pose2d(new Translation2d(0, 0), + Rotation2d.fromDegrees(0))); // x,y,heading in radians; Vision measurement std dev, higher=less weight zeroGyro(); @@ -308,6 +286,16 @@ public class SwerveDrive } } + /** + * Fetch the latest odometry heading, should be trusted over {@link SwerveDrive#getYaw()}. + * + * @return {@link Rotation2d} of the robot heading. + */ + public Rotation2d getOdometryHeading() + { + return swerveDrivePoseEstimator.getEstimatedPosition().getRotation(); + } + /** * Set the heading correction capabilities of YAGSL. * @@ -337,7 +325,7 @@ public class SwerveDrive */ public void driveFieldOriented(ChassisSpeeds velocity) { - ChassisSpeeds fieldOrientedVelocity = ChassisSpeeds.fromFieldRelativeSpeeds(velocity, getYaw()); + ChassisSpeeds fieldOrientedVelocity = ChassisSpeeds.fromFieldRelativeSpeeds(velocity, getOdometryHeading()); drive(fieldOrientedVelocity); } @@ -349,7 +337,7 @@ public class SwerveDrive */ public void driveFieldOriented(ChassisSpeeds velocity, Translation2d centerOfRotationMeters) { - ChassisSpeeds fieldOrientedVelocity = ChassisSpeeds.fromFieldRelativeSpeeds(velocity, getYaw()); + ChassisSpeeds fieldOrientedVelocity = ChassisSpeeds.fromFieldRelativeSpeeds(velocity, getOdometryHeading()); drive(fieldOrientedVelocity, centerOfRotationMeters); } @@ -401,7 +389,7 @@ public class SwerveDrive ChassisSpeeds velocity = fieldRelative ? ChassisSpeeds.fromFieldRelativeSpeeds( - translation.getX(), translation.getY(), rotation, getYaw()) + translation.getX(), translation.getY(), rotation, getOdometryHeading()) : new ChassisSpeeds(translation.getX(), translation.getY(), rotation); drive(velocity, isOpenLoop, centerOfRotationMeters); @@ -430,7 +418,7 @@ public class SwerveDrive ChassisSpeeds velocity = fieldRelative ? ChassisSpeeds.fromFieldRelativeSpeeds( - translation.getX(), translation.getY(), rotation, getYaw()) + translation.getX(), translation.getY(), rotation, getOdometryHeading()) : new ChassisSpeeds(translation.getX(), translation.getY(), rotation); drive(velocity, isOpenLoop, new Translation2d()); @@ -466,11 +454,11 @@ public class SwerveDrive { if (!correctionEnabled) { - lastHeadingRadians = getYaw().getRadians(); + lastHeadingRadians = getOdometryHeading().getRadians(); correctionEnabled = true; } velocity.omegaRadiansPerSecond = - swerveController.headingCalculate(lastHeadingRadians, getYaw().getRadians()); + swerveController.headingCalculate(lastHeadingRadians, getOdometryHeading().getRadians()); } else { correctionEnabled = false; @@ -623,7 +611,7 @@ public class SwerveDrive // angle // given as the robot angle reverses the direction of rotation, and the conversion is reversed. return ChassisSpeeds.fromFieldRelativeSpeeds( - kinematics.toChassisSpeeds(getStates()), getYaw().unaryMinus()); + kinematics.toChassisSpeeds(getStates()), getOdometryHeading().unaryMinus()); } /** @@ -646,7 +634,7 @@ public class SwerveDrive public void resetOdometry(Pose2d pose) { odometryLock.lock(); - swerveDrivePoseEstimator.resetPosition(pose.getRotation(), getModulePositions(), pose); + swerveDrivePoseEstimator.resetPosition(getYaw(), getModulePositions(), pose); odometryLock.unlock(); kinematics.toSwerveModuleStates(ChassisSpeeds.fromFieldRelativeSpeeds(0, 0, 0, pose.getRotation())); } @@ -680,8 +668,7 @@ public class SwerveDrive } /** - * Gets the current module positions (azimuth and wheel position (meters)). Inverts the distance from each module if - * {@link #invertOdometry} is true. + * Gets the current module positions (azimuth and wheel position (meters)). * * @return A list of SwerveModulePositions containg the current module positions */ @@ -692,10 +679,6 @@ public class SwerveDrive for (SwerveModule module : swerveModules) { positions[module.moduleNumber] = module.getPosition(); - if (invertOdometry) - { - positions[module.moduleNumber].distanceMeters *= -1; - } } return positions; } @@ -729,9 +712,7 @@ public class SwerveDrive // Read the imu if the robot is real or the accumulator if the robot is simulated. if (!SwerveDriveTelemetry.isSimulation) { - return swerveDriveConfiguration.invertedIMU - ? Rotation2d.fromRadians(imu.getRotation3d().unaryMinus().getZ()) - : Rotation2d.fromRadians(imu.getRotation3d().getZ()); + return Rotation2d.fromRadians(imu.getRotation3d().getZ()); } else { return simIMU.getYaw(); @@ -748,9 +729,7 @@ public class SwerveDrive // Read the imu if the robot is real or the accumulator if the robot is simulated. if (!SwerveDriveTelemetry.isSimulation) { - return swerveDriveConfiguration.invertedIMU - ? Rotation2d.fromRadians(imu.getRotation3d().unaryMinus().getY()) - : Rotation2d.fromRadians(imu.getRotation3d().getY()); + return Rotation2d.fromRadians(imu.getRotation3d().getY()); } else { return simIMU.getPitch(); @@ -767,9 +746,7 @@ public class SwerveDrive // Read the imu if the robot is real or the accumulator if the robot is simulated. if (!SwerveDriveTelemetry.isSimulation) { - return swerveDriveConfiguration.invertedIMU - ? Rotation2d.fromRadians(imu.getRotation3d().unaryMinus().getX()) - : Rotation2d.fromRadians(imu.getRotation3d().getX()); + return Rotation2d.fromRadians(imu.getRotation3d().getX()); } else { return simIMU.getRoll(); @@ -786,9 +763,7 @@ public class SwerveDrive // Read the imu if the robot is real or the accumulator if the robot is simulated. if (!SwerveDriveTelemetry.isSimulation) { - return swerveDriveConfiguration.invertedIMU - ? imu.getRotation3d().unaryMinus() - : imu.getRotation3d(); + return imu.getRotation3d(); } else { return simIMU.getGyroRotation3d(); @@ -953,7 +928,7 @@ public class SwerveDrive SwerveDriveTelemetry.measuredChassisSpeeds[1] = measuredChassisSpeeds.vyMetersPerSecond; SwerveDriveTelemetry.measuredChassisSpeeds[0] = measuredChassisSpeeds.vxMetersPerSecond; SwerveDriveTelemetry.measuredChassisSpeeds[2] = Math.toDegrees(measuredChassisSpeeds.omegaRadiansPerSecond); - SwerveDriveTelemetry.robotRotation = getYaw().getDegrees(); + SwerveDriveTelemetry.robotRotation = getOdometryHeading().getDegrees(); } if (SwerveDriveTelemetry.verbosity.ordinal() >= TelemetryVerbosity.LOW.ordinal()) @@ -969,7 +944,8 @@ public class SwerveDrive if (SwerveDriveTelemetry.verbosity == TelemetryVerbosity.HIGH) { module.updateTelemetry(); - SmartDashboard.putNumber("Adjusted IMU Yaw", getYaw().getDegrees()); + SmartDashboard.putNumber("Raw IMU Yaw", getYaw().getDegrees()); + SmartDashboard.putNumber("Adjusted IMU Yaw", getOdometryHeading().getDegrees()); } if (SwerveDriveTelemetry.verbosity.ordinal() >= TelemetryVerbosity.HIGH.ordinal()) { @@ -1027,28 +1003,6 @@ 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.
    IT IS HIGHLY RECOMMENDED TO UPDATE YOUR GYROSCOPE OFFSET - * AFTER USING THIS FUNCTION!
    To update your gyroscope readings directly use - * {@link SwerveDrive#setGyroOffset(Rotation3d)}. - * - * @param robotPose Robot {@link Pose2d} as measured by vision. - * @param timestamp Timestamp the measurement was taken as time since startup, should be taken from - * {@link Timer#getFPGATimestamp()} or similar sources. - */ - public void addVisionMeasurement(Pose2d robotPose, double timestamp) - { - odometryLock.lock(); - swerveDrivePoseEstimator.addVisionMeasurement(robotPose, timestamp); - Pose2d newOdometry = new Pose2d(swerveDrivePoseEstimator.getEstimatedPosition().getTranslation(), - robotPose.getRotation()); - odometryLock.unlock(); - - setGyroOffset(new Rotation3d(0, 0, robotPose.getRotation().getRadians())); - resetOdometry(newOdometry); - } - /** * Add a vision measurement to the {@link SwerveDrivePoseEstimator} and update the {@link SwerveIMU} gyro reading with * the given timestamp of the vision measurement. @@ -1066,8 +1020,31 @@ public class SwerveDrive public void addVisionMeasurement(Pose2d robotPose, double timestamp, Matrix visionMeasurementStdDevs) { - this.visionMeasurementStdDevs = visionMeasurementStdDevs; - addVisionMeasurement(robotPose, timestamp); + odometryLock.lock(); + swerveDrivePoseEstimator.addVisionMeasurement(robotPose, timestamp, visionMeasurementStdDevs); + odometryLock.unlock(); + } + + /** + * Add a vision measurement to the {@link SwerveDrivePoseEstimator} and update the {@link SwerveIMU} gyro reading with + * the given timestamp of the vision measurement.
    IT IS HIGHLY RECOMMENDED TO UPDATE YOUR GYROSCOPE OFFSET + * AFTER USING THIS FUNCTION!
    To update your gyroscope readings directly use + * {@link SwerveDrive#setGyroOffset(Rotation3d)}. + * + * @param robotPose Robot {@link Pose2d} as measured by vision. + * @param timestamp Timestamp the measurement was taken as time since startup, should be taken from + * {@link Timer#getFPGATimestamp()} or similar sources. + */ + public void addVisionMeasurement(Pose2d robotPose, double timestamp) + { + odometryLock.lock(); + swerveDrivePoseEstimator.addVisionMeasurement(robotPose, timestamp); +// Pose2d newOdometry = new Pose2d(swerveDrivePoseEstimator.getEstimatedPosition().getTranslation(), +// robotPose.getRotation()); + odometryLock.unlock(); + +// setGyroOffset(new Rotation3d(0, 0, robotPose.getRotation().getRadians())); +// resetOdometry(newOdometry); } diff --git a/swervelib/imu/ADIS16448Swerve.java b/swervelib/imu/ADIS16448Swerve.java index d60f8c6..4295d48 100644 --- a/swervelib/imu/ADIS16448Swerve.java +++ b/swervelib/imu/ADIS16448Swerve.java @@ -19,7 +19,11 @@ public class ADIS16448Swerve extends SwerveIMU /** * Offset for the ADIS16448. */ - private Rotation3d offset = new Rotation3d(); + private Rotation3d offset = new Rotation3d(); + /** + * Inversion for the gyro + */ + private boolean invertedIMU = false; /** * Construct the ADIS16448 imu and reset default configurations. Publish the gyro to the SmartDashboard. @@ -60,6 +64,16 @@ public class ADIS16448Swerve extends SwerveIMU this.offset = offset; } + /** + * Set the gyro to invert its default direction + * + * @param invertIMU invert gyro direction + */ + public void setInverted(boolean invertIMU) + { + invertedIMU = invertIMU; + } + /** * Fetch the {@link Rotation3d} from the IMU without any zeroing. Robot relative. * @@ -67,9 +81,10 @@ public class ADIS16448Swerve extends SwerveIMU */ public Rotation3d getRawRotation3d() { - return new Rotation3d(Math.toRadians(-imu.getGyroAngleX()), - Math.toRadians(-imu.getGyroAngleY()), - Math.toRadians(-imu.getGyroAngleZ())); + Rotation3d reading = new Rotation3d(Math.toRadians(-imu.getGyroAngleX()), + Math.toRadians(-imu.getGyroAngleY()), + Math.toRadians(-imu.getGyroAngleZ())); + return invertedIMU ? reading.unaryMinus() : reading; } /** diff --git a/swervelib/imu/ADIS16470Swerve.java b/swervelib/imu/ADIS16470Swerve.java index 562bbd1..94a31b7 100644 --- a/swervelib/imu/ADIS16470Swerve.java +++ b/swervelib/imu/ADIS16470Swerve.java @@ -20,7 +20,11 @@ public class ADIS16470Swerve extends SwerveIMU /** * Offset for the ADIS16470. */ - private Rotation3d offset = new Rotation3d(); + private Rotation3d offset = new Rotation3d(); + /** + * Inversion for the gyro + */ + private boolean invertedIMU = false; /** * Construct the ADIS16470 imu and reset default configurations. Publish the gyro to the SmartDashboard. @@ -62,6 +66,16 @@ public class ADIS16470Swerve extends SwerveIMU this.offset = offset; } + /** + * Set the gyro to invert its default direction + * + * @param invertIMU invert gyro direction + */ + public void setInverted(boolean invertIMU) + { + invertedIMU = invertIMU; + } + /** * Fetch the {@link Rotation3d} from the IMU without any zeroing. Robot relative. * @@ -69,7 +83,8 @@ public class ADIS16470Swerve extends SwerveIMU */ public Rotation3d getRawRotation3d() { - return new Rotation3d(0, 0, Math.toRadians(-imu.getAngle(IMUAxis.kYaw))); + Rotation3d reading = new Rotation3d(0, 0, Math.toRadians(-imu.getAngle(IMUAxis.kYaw))); + return invertedIMU ? reading.unaryMinus() : reading; } /** diff --git a/swervelib/imu/ADXRS450Swerve.java b/swervelib/imu/ADXRS450Swerve.java index f313fb0..718a896 100644 --- a/swervelib/imu/ADXRS450Swerve.java +++ b/swervelib/imu/ADXRS450Swerve.java @@ -19,7 +19,11 @@ public class ADXRS450Swerve extends SwerveIMU /** * Offset for the ADXRS450. */ - private Rotation3d offset = new Rotation3d(); + private Rotation3d offset = new Rotation3d(); + /** + * Inversion for the gyro + */ + private boolean invertedIMU = false; /** * Construct the ADXRS450 imu and reset default configurations. Publish the gyro to the SmartDashboard. @@ -60,6 +64,16 @@ public class ADXRS450Swerve extends SwerveIMU this.offset = offset; } + /** + * Set the gyro to invert its default direction + * + * @param invertIMU invert gyro direction + */ + public void setInverted(boolean invertIMU) + { + invertedIMU = invertIMU; + } + /** * Fetch the {@link Rotation3d} from the IMU without any zeroing. Robot relative. * @@ -67,7 +81,8 @@ public class ADXRS450Swerve extends SwerveIMU */ public Rotation3d getRawRotation3d() { - return new Rotation3d(0, 0, Math.toRadians(-imu.getAngle())); + Rotation3d reading = new Rotation3d(0, 0, Math.toRadians(-imu.getAngle())); + return invertedIMU ? reading.unaryMinus() : reading; } /** diff --git a/swervelib/imu/AnalogGyroSwerve.java b/swervelib/imu/AnalogGyroSwerve.java index 590666f..d104a0f 100644 --- a/swervelib/imu/AnalogGyroSwerve.java +++ b/swervelib/imu/AnalogGyroSwerve.java @@ -19,7 +19,11 @@ public class AnalogGyroSwerve extends SwerveIMU /** * Offset for the analog gyro. */ - private Rotation3d offset = new Rotation3d(); + private Rotation3d offset = new Rotation3d(); + /** + * Inversion for the gyro + */ + private boolean invertedIMU = false; /** * Analog port in which the gyroscope is connected. Can only be attached to analog ports 0 or 1. @@ -67,6 +71,16 @@ public class AnalogGyroSwerve extends SwerveIMU this.offset = offset; } + /** + * Set the gyro to invert its default direction + * + * @param invertIMU invert gyro direction + */ + public void setInverted(boolean invertIMU) + { + invertedIMU = invertIMU; + } + /** * Fetch the {@link Rotation3d} from the IMU without any zeroing. Robot relative. * @@ -74,7 +88,8 @@ public class AnalogGyroSwerve extends SwerveIMU */ public Rotation3d getRawRotation3d() { - return new Rotation3d(0, 0, Math.toRadians(-gyro.getAngle())); + Rotation3d reading = new Rotation3d(0, 0, Math.toRadians(-gyro.getAngle())); + return invertedIMU ? reading.unaryMinus() : reading; } /** diff --git a/swervelib/imu/NavXSwerve.java b/swervelib/imu/NavXSwerve.java index 339c0e9..790d6b2 100644 --- a/swervelib/imu/NavXSwerve.java +++ b/swervelib/imu/NavXSwerve.java @@ -23,7 +23,11 @@ public class NavXSwerve extends SwerveIMU /** * Offset for the NavX. */ - private Rotation3d offset = new Rotation3d(); + private Rotation3d offset = new Rotation3d(); + /** + * Inversion for the gyro + */ + private boolean invertedIMU = false; /** * An {@link Alert} for if there is an error instantiating the NavX. */ @@ -124,6 +128,16 @@ public class NavXSwerve extends SwerveIMU this.offset = offset; } + /** + * Set the gyro to invert its default direction + * + * @param invertIMU invert gyro direction + */ + public void setInverted(boolean invertIMU) + { + invertedIMU = invertIMU; + } + /** * Fetch the {@link Rotation3d} from the IMU without any zeroing. Robot relative. * @@ -132,7 +146,7 @@ public class NavXSwerve extends SwerveIMU @Override public Rotation3d getRawRotation3d() { - return gyro.getRotation3d(); + return invertedIMU ? gyro.getRotation3d().unaryMinus() : gyro.getRotation3d(); } /** diff --git a/swervelib/imu/Pigeon2Swerve.java b/swervelib/imu/Pigeon2Swerve.java index 25a41ea..d68e4f7 100644 --- a/swervelib/imu/Pigeon2Swerve.java +++ b/swervelib/imu/Pigeon2Swerve.java @@ -23,7 +23,11 @@ public class Pigeon2Swerve extends SwerveIMU /** * Offset for the Pigeon 2. */ - private Rotation3d offset = new Rotation3d(); + private Rotation3d offset = new Rotation3d(); + /** + * Inversion for the gyro + */ + private boolean invertedIMU = false; /** * Generate the SwerveIMU for pigeon. @@ -79,6 +83,16 @@ public class Pigeon2Swerve extends SwerveIMU this.offset = offset; } + /** + * Set the gyro to invert its default direction + * + * @param invertIMU invert gyro direction + */ + public void setInverted(boolean invertIMU) + { + invertedIMU = invertIMU; + } + /** * Fetch the {@link Rotation3d} from the IMU without any zeroing. Robot relative. * @@ -88,14 +102,15 @@ public class Pigeon2Swerve extends SwerveIMU public Rotation3d getRawRotation3d() { // TODO: Switch to suppliers. - StatusSignal w = imu.getQuatW(); - StatusSignal x = imu.getQuatX(); - StatusSignal y = imu.getQuatY(); - StatusSignal z = imu.getQuatZ(); - return new Rotation3d(new Quaternion(w.refresh().getValue(), - x.refresh().getValue(), - y.refresh().getValue(), - z.refresh().getValue())); + StatusSignal w = imu.getQuatW(); + StatusSignal x = imu.getQuatX(); + StatusSignal y = imu.getQuatY(); + StatusSignal z = imu.getQuatZ(); + Rotation3d reading = new Rotation3d(new Quaternion(w.refresh().getValue(), + x.refresh().getValue(), + y.refresh().getValue(), + z.refresh().getValue())); + return invertedIMU ? reading.unaryMinus() : reading; } /** diff --git a/swervelib/imu/PigeonSwerve.java b/swervelib/imu/PigeonSwerve.java index 44fafcc..b9bbcc5 100644 --- a/swervelib/imu/PigeonSwerve.java +++ b/swervelib/imu/PigeonSwerve.java @@ -20,7 +20,11 @@ public class PigeonSwerve extends SwerveIMU /** * Offset for the Pigeon. */ - private Rotation3d offset = new Rotation3d(); + private Rotation3d offset = new Rotation3d(); + /** + * Inversion for the gyro + */ + private boolean invertedIMU = false; /** * Generate the SwerveIMU for pigeon. @@ -62,6 +66,16 @@ public class PigeonSwerve extends SwerveIMU this.offset = offset; } + /** + * Set the gyro to invert its default direction + * + * @param invertIMU invert gyro direction + */ + public void setInverted(boolean invertIMU) + { + invertedIMU = invertIMU; + } + /** * Fetch the {@link Rotation3d} from the IMU without any zeroing. Robot relative. * @@ -72,7 +86,8 @@ public class PigeonSwerve extends SwerveIMU { double[] wxyz = new double[4]; imu.get6dQuaternion(wxyz); - return new Rotation3d(new Quaternion(wxyz[0], wxyz[1], wxyz[2], wxyz[3])); + Rotation3d reading = new Rotation3d(new Quaternion(wxyz[0], wxyz[1], wxyz[2], wxyz[3])); + return invertedIMU ? reading.unaryMinus() : reading; } /** diff --git a/swervelib/imu/SwerveIMU.java b/swervelib/imu/SwerveIMU.java index 11b39da..dd9a727 100644 --- a/swervelib/imu/SwerveIMU.java +++ b/swervelib/imu/SwerveIMU.java @@ -27,6 +27,13 @@ public abstract class SwerveIMU */ public abstract void setOffset(Rotation3d offset); + /** + * Set the gyro to invert its default direction. + * + * @param invertIMU gyro direction + */ + public abstract void setInverted(boolean invertIMU); + /** * Fetch the {@link Rotation3d} from the IMU without any zeroing. Robot relative. * diff --git a/swervelib/motors/TalonFXSwerve.java b/swervelib/motors/TalonFXSwerve.java index 29cdf97..cf7effb 100644 --- a/swervelib/motors/TalonFXSwerve.java +++ b/swervelib/motors/TalonFXSwerve.java @@ -33,14 +33,14 @@ public class TalonFXSwerve extends SwerveMotor * Velocity voltage setter for controlling drive motor. */ private final VelocityVoltage m_velocityVoltageSetter = new VelocityVoltage(0); - /** - * Conversion factor for the motor. - */ - private double conversionFactor; /** * TalonFX motor controller. */ TalonFX motor; + /** + * Conversion factor for the motor. + */ + private double conversionFactor; /** * Current TalonFX configuration. */ diff --git a/swervelib/parser/SwerveDriveConfiguration.java b/swervelib/parser/SwerveDriveConfiguration.java index 4cebfb8..e5434de 100644 --- a/swervelib/parser/SwerveDriveConfiguration.java +++ b/swervelib/parser/SwerveDriveConfiguration.java @@ -19,10 +19,6 @@ public class SwerveDriveConfiguration * Swerve IMU */ public SwerveIMU imu; - /** - * Invert the imu measurements. - */ - public boolean invertedIMU = false; /** * Number of modules on the robot. */ @@ -54,7 +50,7 @@ public class SwerveDriveConfiguration { this.moduleCount = moduleConfigs.length; this.imu = swerveIMU; - this.invertedIMU = invertedIMU; + swerveIMU.setInverted(invertedIMU); this.modules = createModules(moduleConfigs, driveFeedforward); this.moduleLocationsMeters = new Translation2d[moduleConfigs.length]; for (SwerveModule module : modules) @@ -92,10 +88,11 @@ public class SwerveDriveConfiguration Translation2d centerOfModules = moduleLocationsMeters[0]; //Calculate the Center by adding all module offsets together. - for(int i=1; i groups = new HashMap(); + private static Map groups = new HashMap(); /** * Type of the Alert to raise. */ - private final AlertType type; + private final AlertType type; /** * Activation state of alert. */ - private boolean active = false; + private boolean active = false; /** * When the alert was raised. */ - private double activeStartTime = 0.0; + private double activeStartTime = 0.0; /** * Text of the alert. */ - private String text; + private String text; /** * Creates a new Alert in the default group - "Alerts". If this is the first to be instantiated, the appropriate @@ -213,6 +213,7 @@ public class Alert /** * Get alerts based off of type. + * * @param type Type of alert to fetch. * @return Active alert strings. */