This year, 708 decided to build a swerve drive for their very first time. Due to time management and a number of other factors - they effectively implemented it “in season” - though the practice chassis was largely built in December, without any programming.
Based on what we saw, the biggest hurdles to overcome are actually controls related - there are a lot of small details that can make or break the system as a whole, but nothing paralyzes a swerve more than bad software. To compound things, in the current FRC ecosystem there are a number of COTS swerve options, and a number of COTS Motor and Controller Options. For those of us who live in the future and have transitioned to Brushless - this means NEO Motors and Spark Max Controllers (since Falcons didn’t / don’t exist for everyone yet) mixed with 775’s and Talons for Steering.
This mix of Controllers meant that 708 couldn’t use a direct port of anyone’s code to start, after reviewing 1323’s, 2910’s and some others, their code ended up being a heavily modified version of 1323’s.
That being said, by the time everything actually worked - it worked reasonably well. Once the system started getting some run time, we started to notice that all of the little things really mattered. By little things I mean:
- Current Limiting
- Gear Ratios
- Voltage Ramping
- Properly Zeroing the Modules
- Proper PID Tuning
And the list goes on and on. If you’ve got the bandwidth, and commitment to doing it well, swerve is literally, actually amazing. If you can’t commit, and don’t have the bandwidth, you may as well not have a drivetrain.
Notice how I haven’t mentioned the Mechanical Part of the System Yet? This was intentional.
Now that we live in the future and there are Multiple world Class Swerve Options - why would a team trying out Swerve for the first time not start with them? It’s hard enough to just get the wheels spinning, so both building your own from scratch, and coding it from scratch - or even a reference is largely a HUGE task, arguably harder than building the robot that goes on top of your Swerve.
For what it’s worth, outside of all that’s listed above, the biggest single annoyance of Swerve isn’t weight, or complexity (FWIW, if you implement a BLDC swerve in the Modern Era and it weighs more than 30lbs, you’re doing it wrong) - it’s the Motor Count. For this years game, assuming you’re running a Limelight, between the LL and Swerve, you’ve used 9 of 16 PDB Slots, leaving 7 for Motors. Building a good Robot with 7 Motors leaves little room for excess (can’t just throw power at things) and makes you really focus on design optimization. In the case of 708 - (1) extra motor would have been a game changer in the ball path, or made the climber much easier.
Also, to whoever noted the WCP Modules being out of Stock - the Falcon Model does appear to be out of stock* - however the V1 Module (which is still better than just about anything else out there) is in stock.
*(Also, like, you’d need Falcons for a Falcon Swerve. Too soon?)