# YAGSL

## YAGSL

- [Welcome to YAGSL](https://yagsl.yassrobotics.com/readme.md): Brought to you by Yet Another Generic Swerve Library (YAGSL)
- [Your First Swerve Robot](https://yagsl.yassrobotics.com/tutorial/tutorial.md)
- [Gather your robot information](https://yagsl.yassrobotics.com/tutorial/01-gather-your-robot-information.md)
- [Install YAGSL](https://yagsl.yassrobotics.com/tutorial/02-install-yagsl.md)
- [Generate your configuration](https://yagsl.yassrobotics.com/tutorial/03-generate-your-configuration.md)
- [Verify and calibrate your hardware](https://yagsl.yassrobotics.com/tutorial/04-verify-and-calibrate-hardware.md)
- [Deploy and drive](https://yagsl.yassrobotics.com/tutorial/05-deploy-and-drive.md)
- [What to expect?](https://yagsl.yassrobotics.com/how-to-guides/how-to.md)
- [Tune PIDF gains](https://yagsl.yassrobotics.com/how-to-guides/tune-pidf-gains.md): Starting points and a tuning procedure for your drive and angle motor gains.
- [Determine inversion](https://yagsl.yassrobotics.com/how-to-guides/determine-inversion.md): Work out which motors, encoders, and the gyro need to be inverted.
- [Verify your module locations](https://yagsl.yassrobotics.com/how-to-guides/verify-module-locations.md): Your front may not be what you think it is on a robot.
- [Use a custom gyro](https://yagsl.yassrobotics.com/how-to-guides/use-a-custom-gyro.md): Configure a gyro YAGSL's parser doesn't build for you, using a Studica AHRS as the example.
- [Drive to a pose](https://yagsl.yassrobotics.com/how-to-guides/drive-to-a-pose.md): Command the robot to a field-relative Pose2d without PathPlanner.
- [Set up PathPlanner](https://yagsl.yassrobotics.com/how-to-guides/setup-pathplanner.md): Register a YAGSL-built SwerveDrive with PathPlanner's AutoBuilder.
- [Access raw hardware devices](https://yagsl.yassrobotics.com/how-to-guides/access-raw-hardware-devices.md): Get the actual vendor motor controller/encoder/gyro objects SwerveParser built, for configuration that isn't exposed through SmartMotorController.
- [The 8 steps](https://yagsl.yassrobotics.com/how-to-guides/the-8-steps.md)
- [Fix common SparkMAX/SparkFlex problems](https://yagsl.yassrobotics.com/how-to-guides/fix-sparkmax-common-problems.md): These usually show up on MAXSwerve robots.
- [Set up AdvantageScope](https://yagsl.yassrobotics.com/how-to-guides/set-up-advantagescope.md): AdvantageScope is a data visualization tool, courtesy of team 6328 Mechanical Advantage, which can visualize the swerve drive to give you feedback for debugging.
- [View your DataLog in AdvantageScope](https://yagsl.yassrobotics.com/how-to-guides/view-your-datalog-in-advantagescope.md): Pull the .wpilog off your robot and look at what actually happened during a match or test run.
- [Troubleshooting flowchart](https://yagsl.yassrobotics.com/how-to-guides/troubleshooting-flowchart.md)
- [Information](https://yagsl.yassrobotics.com/reference/reference.md)
- [JSON Configuration Schema](https://yagsl.yassrobotics.com/reference/json-schema.md)
- [swervedrive.json](https://yagsl.yassrobotics.com/reference/json-schema/swervedrive-json.md)
- [Module JSON](https://yagsl.yassrobotics.com/reference/json-schema/module-json.md)
- [physicalproperties.json](https://yagsl.yassrobotics.com/reference/json-schema/physicalproperties-json.md)
- [pidfproperties.json](https://yagsl.yassrobotics.com/reference/json-schema/pidfproperties-json.md)
- [Device Type Strings](https://yagsl.yassrobotics.com/reference/json-schema/device-types.md)
- [Supported Hardware](https://yagsl.yassrobotics.com/reference/hardware.md)
- [Gyroscopes](https://yagsl.yassrobotics.com/reference/hardware/gyroscopes.md): Supported gyroscope/IMU types for swervedrive.json's gyro field
- [Motor Controllers](https://yagsl.yassrobotics.com/reference/hardware/motor-controllers.md): Supported motor controller/motor combinations for module drive and angle motors
- [Absolute Encoders](https://yagsl.yassrobotics.com/reference/hardware/absolute-encoders.md): Supported absolute encoder types for a module's absoluteEncoder field
- [Standard Conversion Factors](https://yagsl.yassrobotics.com/reference/standard-conversion-factors.md): Known-good gearing values for common commercial-off-the-shelf swerve modules
- [Vendordep Installation](https://yagsl.yassrobotics.com/reference/vendordep-installation.md): Vendor dependencies YAGSL requires and how to install them
- [API Reference](https://yagsl.yassrobotics.com/reference/api-reference.md)
- [Schema Changes (Migrating from pre-2026.8.05)](https://yagsl.yassrobotics.com/reference/schema-changes.md)
- [Swerve Drive Drift: Causes and Tuning Order](https://yagsl.yassrobotics.com/reference/swerve-drift-causes.md): Drift can be caused by anything and everything in a swerve drive...
- [Why?](https://yagsl.yassrobotics.com/explanation/explanation.md)
- [What is YAGSL?](https://yagsl.yassrobotics.com/explanation/what-is-yagsl.md): We make your swerve drive run!
- [Swerve Drive Kinematics](https://yagsl.yassrobotics.com/explanation/swerve-drive-kinematics.md): How does Swerve Drive work?
- [Swerve Modules](https://yagsl.yassrobotics.com/explanation/swerve-modules.md): What is a Swerve Module?
- [Module Behaviors](https://yagsl.yassrobotics.com/explanation/module-behaviors.md): Module-level control behaviors and why they exist
- [Chassis Control](https://yagsl.yassrobotics.com/explanation/chassis-control.md): Chassis-level speed limiting, discretization, and lock pose
- [Telemetry, Simulation & Vision](https://yagsl.yassrobotics.com/explanation/telemetry-and-vision.md): Telemetry verbosity, simulation, and fusing vision pose estimates
- [Changelog](https://yagsl.yassrobotics.com/explanation/changelog.md)
- [YASS (Yet Another Software Suite)](https://yagsl.yassrobotics.com/external-links/yass-yet-another-software-suite.md)
- [Resources](https://yagsl.yassrobotics.com/resources/resources.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://yagsl.yassrobotics.com/readme.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
