YASS: Yet Another Software Suite

What is YASS?

YASS (Yet Another Software Suite) is a collection of libraries designed to simplify FRC robot programming. Its goal is to make advanced features like swerve drive, mechanism control, and vision integration accessible to all teams, regardless of experience level. YASS promotes a philosophy of "mastering robot programming in days, not years."

The suite includes:
YAGSL (Yet Another General Swerve Library)
YAMS (Yet Another Mechanism System)
YAMG (Yet Another Mechanism Generator)
YALL (Yet Another Limelight Library)

Learn more: YASS Official Website

YAGSL: Swerve Made Easy

YAGSL is a comprehensive swerve drive library that handles the complex math and hardware abstraction for you. It supports nearly every combination of motor controllers, encoders, and gyros via JSON configuration files.

Key Features:
- JSON-based configuration (change motors/offsets without recompiling).
- Built-in odometry and pose estimation.
- Simulation support out of the box.
- Support for various vendors (CTRE, REV, Thrifty, NavX).

Learn more: YAGSL Documentation | YAGSL Example Project

YAMG: Mechanism Generator

YAMG (Yet Another Mechanism Generator) is a web-based tool that generates production-ready Java code for common mechanisms like elevators, arms, and pivots. You configure your mechanism visually (motor types, gear ratios, limits) and YAMG produces the code for you.

Features:
- Visual configuration interface.
- Generates command-based subsystems.
- Includes simulation support.
- Supports YAMS library integration.

Try it: YAMG Website

YAMS: Mechanism System

YAMS provides a high-level abstraction for mechanisms, making it easy to create complex systems that work in both reality and simulation. It standardizes motor control and sensor feedback.

Key Benefit: Simulation parity. YAMS allows your code to run in simulation almost exactly as it does on the real robot, often with just a single line of code difference (".simIterate()").

Learn more: YAMS Documentation | YAMS API

YASS Best Practices

Getting the most out of the suite:

  • Use the JSON configuration for YAGSL to keep hardware details out of code.
  • Leverage YAMG to generate the boilerplate code for your arms and elevators.
  • Test in simulation! YASS libraries are built with simulation priority.
  • Join the YAGSL/YASS community for support and updates.

Resources

Open full interactive app