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
  • Swerve Drives are complicated!
  • Configuring a swerve drive takes time!
  • As much as you hope, plead, pray, or offer sacrifices, a swerve drive will not always "Just work"

Was this helpful?

Edit on GitHub
  1. Bringing up swerve

Preface

PreviousSwerve ModulesNextSwerve Information

Last updated 1 year ago

Was this helpful?

Swerve Drives are complicated!

Swerve drives can have many things go wrong. Debugging can be a long and arduous process if you don't have all the right information.

Configuring a swerve drive takes time!

Depending on your experience level with swerve; your experience with configuring a swerve drive will be very different. Don't forget to factor in that physically assembling swerve modules takes time.

If you have already worked with swerve code before you might find the process of YAGSL configuration to be fairly easy, and maybe take about 30 minutes + PID tuning. If you have never had a working swerve drive before it can take weeks to configure correctly and many many help requests. Everything will work but patience is a must! I try to document everything so be sure to check here for any questions you may have!

As much as you hope, plead, pray, or offer sacrifices, a swerve drive will not always "Just work"

Some tools like the use desktop clients to configure the swerve drive constants file for you based off of actions and preset data from COTS modules. These go a long way and are completely different that what YAGSL offers (and is a lot more work than I can justify to create in my free time). You are going to need a decent understanding of WPILib and Java to consider programming a swerve drive correctly. Some examples of what you should know how to do are change controllers from to .

CTRE Tuner X Swerve Generator
XboxController
Joystick