Skip to content

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

2 watching

Forks

Repository files navigation

description Brought to you by Yet Another Generic Swerve Library (YAGSL)

Welcome to YAGSL

{% hint style="warning" %} If your swerve drive uses only Falcon500/Kraken/TalonFXS, Pigeon2.0, and CANCoder from CTRE please also consider the Tuner X Swerve Drive Generator. {% endhint %}

Overview

YAGSL is a Swerve Library developed by current and former BroncBotz mentors for all FRC teams. YAGSL is a JSON configuration parser that builds a YAMS SwerveDrive for your robot: describe your hardware once, generate the config at config.yagsl.com, and drive. See What is YAGSL? for how the pieces fit together.

{% hint style="success" %} YAGSL 2027 is built on WPILib 2027 (2027_alpha7, Java 25) and runs on the SystemCore. It supports both WPILib Commands v2 and Commands v3, each with its own vendordep. See the Changelog for what changed in the 2027 port. {% endhint %}

{% embed url="https://datawrapper.dwcdn.net/ZVxvE/13/" %}

This documentation is organized into four sections

  • Tutorial: never used YAGSL before? Start here. A single linear walkthrough from a bare WPILib project to a driving swerve robot.
  • How-to Guides: already have a robot running? Task-focused recipes for tuning PIDF, determining inversion, diagnosing drift, and other work you'll come back to.
  • Reference: precise JSON schema field tables, supported hardware type strings, and where to find the YAMS API docs.
  • Explanation: swerve drive theory and the reasoning behind how YAGSL and YAMS behave.

{% hint style="info" %} Upgrading an existing robot from before 2026.8.05? Your swerve/ config directory uses the old schema. See Schema Changes before you do anything else. {% endhint %}

Get started

The quickest way to spin up YAGSL is the config generator and its Quick Start Guide. Fill in the generator's form, press Download Config, and the Quick Start Guide walks you through the rest, one checklist at a time: copy the YAGSL example project, drop your config into it, tune it in simulation, then calibrate and tune the real robot.

The generator works on a phone too, and its Print button prints the whole form, so you can fill it in on paper at the robot and type it in later.

The YAGSL config generator three ways. On a desktop: the Gyro tab of the form, with Need Help, Quick Start Guide, Upload Config, Print and Download Config buttons. On a phone: the same form in one column with every button stacked. Printed: every tab on paper, with the dropdown options listed and blank lines to write each value on.

The config generator on a desktop, on a phone, and printed.

The tutorial covers the same ground in more detail, including adding YAGSL to a project you already have.

{% embed url="https://www.youtube.com/watch?v=4Tcyn_oj_G0&list=PLdhNPDifsCMLLe5pZoyHGXrMMVxNpJOxP" %}

{% content-ref url="tutorial/" %} tutorial {% endcontent-ref %}

{% content-ref url="how-to/tune-pidf-gains.md" %} tune-pidf-gains.md {% endcontent-ref %}

{% content-ref url="how-to/the-8-steps.md" %} the-8-steps.md {% endcontent-ref %}

{% content-ref url="reference/schema-changes.md" %} schema-changes.md {% endcontent-ref %}

YAGSL Online Installation

Install exactly one of these vendordeps, matching the WPILib command framework your robot uses (they conflict with each other):

Command framework Vendordep URL
Commands v2 https://cdn.yassrobotics.com/yagsl_commands2.json
Commands v3 https://cdn.yassrobotics.com/yagsl_commands3.json

Each one requires only the matching YAMS vendordep (https://cdn.yassrobotics.com/yams_commands2.json or https://cdn.yassrobotics.com/yams_commands3.json). Vendor libraries such as REVLib, Phoenix 6, ReduxLib and ThriftyLib are only needed for the hardware your robot actually has. See Install YAGSL for the full steps, including the offline install.

{% hint style="warning" %} The old https://yet-another-software-suite.github.io/YAGSL/... vendordep and maven URLs are stale. Remove the old yagsl.json from your vendordeps folder and install one of the URLs above. {% endhint %}

Our Philosophy

Your program does not revolve around your swerve drive. Your constants file doesn't have to take 10 minutes to find the right option. Different robots should be able to work with the same code: swap the swerve/ config directory and the same subsystem code drives a different robot.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors