# Yet Another Generic Swerve Library
* In early 2023 `swerve-lib` created by SwerveDriveSpecialties officially became unmaintained after not being updated in 2022.
* This library aims to simplify Swerve Drive implementations while not sacrificing speed or processing power.

# Features
* When a compatible absolute encoder is given it will be used as a remote encoder for the steering motor reducing CAN messages.
* Autogenerated shuffleboard dashboard for each module which can be updated periodically with the verbosity setting.
* The swerve drive is configurable via JSON files, and you can initialize the entire swerve drive with a similar line as the following.
* Simulation support.
```java
SwerveDrive swerveDrive = SwerveParser.fromJSONDirectory(new File(Filesystem.getDeployDirectory(), "swerve"));
```

# Library Information
* The library is located in [swervelib/](./swervelib) with documentation in [docs/](./docs) and example JSON in [deploy](./deploy).

# Check out the [Wiki](https://github.com/BroncBotz3481/YAGSL/wiki)
# Java docs is [here](https://broncbotz3481.github.io/YAGSL/).

# Images
![Field Shuffleboard](./imgaes/field.png)
![Simulation](./imgaes/simulation.png)
![Dashbaord as dials](./imgaes/dashboard_dials.png)
![Dashboard as graphs](./imgaes/dashboard_graph.png)
