YAGSL
  • Welcome to Yet Another Swerve Document
    • Resources
  • Overview
    • What we do
    • Our Features
      • Telemetry
      • Simulation
      • Lock Pose
      • Max Speed
      • Chassis Speed Discretization
      • Vision Odometry
      • Heading Correction
      • Auto-centering Modules
      • Offset Offloading
      • Cosine Compensation
      • Module Auto-synchronization
      • Angular Velocity Compensation
    • Changelog
    • Java API
    • Example Code
    • Config Generator
    • 💸Donations
    • 👕Merch
    • Discord
  • Fundamentals
    • Swerve Drive
    • Swerve Modules
  • Bringing up swerve
    • Preface
    • Swerve Information
    • Check your gyroscope
    • Check your motors
    • Creating your first configuration
  • Configuring YAGSL
    • Getting to know your robot
      • Gear Ratio
    • Dependency Installation
    • Configuration
      • Swerve Drive Configuration
      • Physical Properties Configuration
      • PIDF Properties Configuration
        • PIDF
      • Swerve Module Configuration
      • Controller Properties Configuration
      • Device Configuration
    • Code Setup
    • Standard Conversion Factors
    • How to tune PIDF
    • When to invert?
    • Flowcharts
    • The eight steps
    • Swerve Drive Drift
    • SparkMAX Common Problems
    • Verifying your Module Locations
    • Tuning out Drift
  • Devices
    • Gyroscope
      • NavX
      • Pigeon
      • Pigeon 2.0
      • ADXRS450
      • ADIS16448
      • ADIS16470
    • Motor Controllers
      • SparkMAX
      • SparkFlex
      • TalonFX
    • Absolute Encoders
  • Analytics and Debugging
    • FRC Web Components
    • Advantage Scope
  • Product Guides
    • Java API
    • PathPlanner
    • ❌Tuning PID with REV Hardware Client
    • ❌Drive Code
  • Legacy Documentation
Powered by GitBook
On this page
  • Pull Requests are always reviewed!
  • Contributing
  • 2025.8.0
  • 2025.7.2
  • 2025.7.1
  • 2025.7.0
  • 2025.3.0
  • 2025.2.2
  • 2025.2.1
  • 2025.2.0
  • 2025.1.3
  • 2025.1.2
  • 2025.1.1
  • 2025.1.0.1
  • 2025.1.0
  • 2025.0.0
  • 2024.7.0 - Last version for 2024 WPILib
  • 2024.6.1.0
  • 2024.6.0.0
  • 2024.5.0.4
  • 2024.5.0.3
  • 2024.5.0.1
  • 2024.5.0.0
  • 2024.4.8.7
  • 2024.4.8.6
  • 2024.4.8.5
  • 2024.4.8.4
  • 2024.4.8.3
  • 2024.4.8.2
  • 2024.4.8.1
  • 2024.4.8
  • 2024.4.7
  • 2024.4.6.3
  • 2024.4.6.1
  • 2024.4.6
  • 2024.4.5
  • 2024.4.2

Was this helpful?

Edit on GitHub
  1. Overview

Changelog

PreviousAngular Velocity CompensationNextSwerve Drive

Last updated 1 month ago

Was this helpful?

Pull Requests are always reviewed!

I highly encourage anyone who wants to help make YAGSL better to create pull requests with any modifications you have made that increases your quality of life.

Contributing

YAGSL development is done on the dev branch of the YAGSL-Example repository here at src/main/java/swervelib.

All PR's should be based off of and merged into here. YAGSL is propagated often to the other repositories.

2025.8.0

  • Fix attached absolute encoders with brushed SparkMAX's

2025.7.2

  • Patched crash when starting while enabled.

2025.7.1

  • Fixed SwerveInputStream.allianceRelativeControl

  • Prevent crashing midmatch if robot code restarts.

  • Added SwerveInputStream.translationHeadingOffset

  • Removed gyro zeroing from YAGSL startup. You must now call gyro zero on autonomousInit or use the RobotModeTriggers

  • Added RobotModeTriggers.autonomous().onTrue(Commands.runOnce(this::zeroGyroWithAlliance));to the example code.

2025.7.0

2025.3.0

2025.2.2

2025.2.1

2025.2.0

2025.1.3

2025.1.2

2025.1.1

2025.1.0.1

2025.1.0

2025.0.0

2024.7.0 - Last version for 2024 WPILib

2024.6.1.0

2024.6.0.0

2024.5.0.4

2024.5.0.3

2024.5.0.1

2024.5.0.0

2024.4.8.7

2024.4.8.6

2024.4.8.5

2024.4.8.4

2024.4.8.3

2024.4.8.2

2024.4.8.1

2024.4.8

2024.4.7

2024.4.6.3

2024.4.6.1

2024.4.6

2024.4.5

2024.4.2

fix setAbsoluteEncoderOffset() by in

Enable Continuous Input for omegaPIDController by in

Updated references from Shuffleboard to any dashboard by

Add optional optimization of module states in drive function that uses feedforward by in

Make all closable items implement AutoClosable by in

remove useless imports and variables by in

Set IZone of PIDControllers created from PIDFConfigs by in

Fix typo by in

Rev Through bore via DIO by in

stop setMotorBrake from constantly executing by in

Prevent rotation if controller heading inputs are not past axisDeadband by in

Null pointer crash when there have been no vision results by in

Adding PigeonViaTalonSRX and attached SparkFlex by in

Throw an error when module configs are incorrectly set to 0 by in

Fixed rawAbsoluteEncoder position. by in

Fix getMaxVelocity used in feedforward by in

Maximum speed settings do not allow limiting robot to less than full speed by in

Sim modules SysId routines & New maple-sim version by in

Touched up comments by in

Fix loop time and use field oriented control for driveWithSetpointGenerator (PR by @)

Updated to Maple-Sim 0.2.4; added SwerveDrive.getMapleSimDrive() by in

AHRS imu variable is lost after constructor scope ends by in

Add Maple-Sim by in

Implement support for kA by in

Update to WPILIb 2025 Beta-2 by in

Add support to Talon SRX for an integrated absolute encoder by in

Implemented Path Planner DriveFeedForward using DCMotor modeling by in

Add Warmup for Pathfinding (PR by )

A tiny bug fix in the aim-at-speaker command of the example swerve subsystem code by (PR by )

Merge Swerve configuration test changes (PR by )

Angular velocity correction (huge update that massively improves YAGSL!) (PR by )

Sparkmax optimizations, changes to avg filter etc (PR by )

Suggestion for desaturateWheelSpeeds() to use desiredChassisSpeeds (PR by )

Added getAprilTagPose method to Vision (PR by )

Update the vision simulation on Vision.updatePoseEstimation (PR by )

Add Standard Deviations for YAGSL SwerveDrive Pose Estimator (PR by )

Updating Vendordeps and renaming CanandCoders to CanandMags (PR by and YAGSL devs)

Fixed documentation issue with SwerveDriveTelemetry (Issue by )

Fixed CanandCoder to CanandMag due to product rename. (Credit to )

Add ability to get the rotation rate from the IMU (PR by )

Simplify placeInAppropriate0To360Scope (PR by )

Increased logging verbosity to introduce logging modes for the field and data. (PR by )

Added SwerveDrive.setChassisDiscretization to allow for changing of the discrete value between cycle times which can be tuned to reduce drift. (PR by )

Renamed SwerveDrive.pushOffsetsToControllers to SwerveDrive.pushOffsetsToEncoders. (PR by )

Massively reduced memory footprint required. (with help from )

Added SysId support. (PR and by )

Updated heading correction to use getOdometryHeading() instead of getYaw() (PR by ) This does impact heading correction PID values in controllerproperties.json and may NEED these value's increased by 50x.

Added ability to disable the cosine compensator via config files. (PR by )

Set the angle motor relative encoder position AFTER changing the conversion factor. (Issue )

Fixed module open loop control by sending maxSpeed to the module. (by @nstrike and )

Fixed Pigeon2Swerve only using X acceleration (PR by )

Prevent drive motors from moving when absoluteEncoderOffset is not tuned. (Found by )

Fixed SwerveDrive.resetOdometry and utilize the pose estimation instead. (PR by and @nstrike )

Functionalize IMU inversion (PR by and @nstrike)

Fix for TalonFX Angle motor control (by , and @Wackyvert 2225 Mentor) .

Changed ma3 encoders to be read via analog input. (Discovered by )

Support 3 wheel swerve module setups with PathPlanner helper function. (PR #139 by )

Added Network Alerts (made by PR )

Fixed TalonFX conversion factor (made by PR )

CanAndCoder tweaks (made by PR )

Added missing SparkMAX status frame's (made by PR )

Heading Correction update to make it less sensitive (made by PR )

Fixed cosine compensator error (made by PR )

Updated PathPlanner path based off of alliance (made by PR )

Fixed Rotation being off, update getDriveBaseMeters (made by )

@MEisSCAMMER
#338
@Sate04
#337
@DanPeled
@clrozeboom
#314
@kytpbs
#317
@kytpbs
#318
@CoffeeCoder1
#319
@fletch3555
#323
@wackyvert
#325
@rakosi2
#327
@MrFast-js
#328
@jwt388
#307
@konnorreynolds
#292
@wackyvert
#308
@konnorreynolds
#309
@jwt388
#286
@clrozeboom
#277
@catr1xLiu
#288
@yapplejack
#278
#271
jwt388
@catr1xLiu
#262
@clrozeboom
#254
@catr1xLiu
#251
@Etaash-mathamsetty
#258
@thenetworkgrinch
#257
@WispySparks
#208
@catr1xLiu
#260
#241
TechnologyMan00
#239
catr1xLiu
#228
clrozeboom
#231
yapplejack
#233
yapplejack
#232
yapplejack
#226
kreidljj
#224
brandonzx3
#222
maxikyuu
#219
Turbojax07
#233
DanPeled
TurboJax07
#216
@clrozeboom
#213
GoldenStack
#185
5010
#194
TechnologyMan00
#194
TechnologyMan00
@TheGamer1002
#160
#165
Team 5010
#150
@Blargleflakes
#148
@fovea1959
#155
@MarshallTappen
#146
@dezash123
@fovea1959
#142
@MarshallTappen
commit
#140
@TechnologyMan00
@bhall-ctre
@CoZm0
@TechnologyMan00
@TheGamer1002
#136
@jkbo6
#128
@guineahawk
#134
@RoboPenguin7
#130
@balien-12
#132
@jkbo6
#129
@MarshalTappen
#122
@TechnologyMan00
Pull requests · BroncBotz3481/YAGSL-ExampleGitHub
GitHub - BroncBotz3481/YAGSL-Example at devGitHub
YAGSL-Example dev branch
Logo
Logo