I did try that with the SwerveMotor and SwerveEncoder class. I do not have enough experience to know what will be difficult to manage it since the only interaction with SwerveMotors is through the SwerveModules and there aren’t any vendor specific things in SwerveModule
Thank you for testing! I have found that it wasn’t as reliable as 95’s code when testing so I am in the process of rewriting it to follow 95 on that exact setup. Hopefully after the rewrite the angle motors will not snap anymore. The rewrite is going to make extensive use of configuration classes (something i tried really hard to avoid in the initial release). There of course will be more optimizations they don’t take into account and it will be generalized so it works with different encoders/motors/gyroscopes. The end result will likely look very different for configurations but I will try to keep the same UI i have made for this version. I am sorry for the inconvenience!
I still need to add back support for other encoders, integrated absolute encoders, other motors, make some fields optional (might not do that), update documentation, write a simple autonomous using trajectories, make a momentum calculator (maybe), and add back shuffleboard widgets. Right now it is MUCH smoother than before and has a completely different JSON layout and attributes.
Beautiful performance! Really smooth. I was able to mess with it a bit to make it feel like our original swerve code felt to drive. Thanks again! Most likely will do auton stuff either tomorrow or Saturday.
We tested it too! I am sorry the heading PIDF values weren’t working well. We just uploaded a version that uses 95’s teleop drive. I also admitably forgot to include a gyro inversion . So we added that as well. Thank you again for testing!