Replies: 1 comment 2 replies
-
I have considered this question and all of your points well before you posted this and debated on doing it before the season started. In short- you are right, I am conflicted on whether or not to remove it in the future so it will remain until thats resolved. At the earliest it could get removed next season. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I have been thinking about your goals of keeping YAGSL accessible to teams, and I have a few thoughts that I wanted to bounce off you.
Our team was new to swerve bases this year. We looked at a couple of libraries before choosing to go forward with two routes - YAGSL and home-grown. Our off-season drive platform has a switch where we can toggle between the two libraries. YAGSL has been working really well for us once we got over configuration difficulties. The book has become amazing in that regard.
However I am very interested in pursuing the idea of splitting the
SwerveController
completely out of theSwerveDrive
library. I like the idea of having only one single driving function in the base called:and even yank heading correction out of it. You may want to rename the
velocity
param torobotOrientedVelocity
to emphasize the fact that a this level, it is only robot-oriented.That would leave
SwerveDrive
as a pure abstraction over the nasty math, hardware configuration, telemetry, and simulation, but take all of the higher-level control logic out.You could then have
SwerveController
as a completely optional (and independently-configured) component, that takes on those duties.Adopters would need
SwerveDrive
, but notSwerveController
to implement their own subsystem. You could even consider movingSwerveController
into the example code as well.I'm biased because this is how we're using it, but from our perspective, everything from
SwerveDrive
on up is not new to us and we're comfortable rolling our own solution, whereas fromSwerveDrive
on down, we absolutely see the value of YAGSL.To get to this more focused version you could leave compatibility code in place, with deprecated accessors in it. You could even, arguably, spawn a trimmed-down
YAGSL
class that is the core ofSwerveDrive
without all of the convenience methods, and then just deprecateSwerveDrive
.Your team has done excellent work with this platform. I would love to see its focus hone in on the core aspects, and leave the wiring and context to the example library.
I wonder if you think this aligns with your goals. Looking forward to your thoughts.
Beta Was this translation helpful? Give feedback.
All reactions