Looking for information on swerve drive

Hi everyone, I’m trying to collect information on swerve drive over the next couple days and what resources and how long it takes to do it. Specifically, I’m looking for stuff on COTS modules, though all information is useful. Our mentors seem to think that we can do a COTS swerve over the build season and have it down pat by our first competition (week 2) when we’ve never done anything other that the KOP chassis with different wheels. We have no CAD, and have never (to my recollection) seriously looked into swerve before now. I have a very strong feeling that its not a great idea based on what I’ve heard from others, but I want good sources that can provide real information rather than me just telling them what I’ve heard other people say. Frankly, none of us really understand everything that swerve takes. Can anyone point me to some good sources?

Our mentors seem to think that we can do a COTS swerve over the build season and have it down pat by our first competition (week 2)

Frankly, none of us really understand everything that swerve takes.

No. Don’t do this. I don’t know you or your team, but please for the love of FIRST don’t do this to yourselves. It is superbly likely that your drivetrain will be garbage at competition. If you want to do swerve, start using those COTS modules a little bit after World’s or the end of your comp season.

Swerve is complex on both the mechanical and software controls side. Teams who swerve well have been iterating on it for years. You are dodging the mechanical complexity by a huge margin by buying COTS modules, and I think that is a good idea for many teams, but claiming that you’ll get it down pat by your first competition is…dubious, at best.

Quick edit: I can further expand on this if you want, I’m trying to be concise.

12 Likes

Even the best teams in the world wouldn’t entertain swerve until they’ve built and tested one in the offseason.

5 Likes

I am already very strongly of the opinion that we shouldn’t try this. My goal is to find sources so that I and everyone else can be informed. I’ve already tried to tell them that I have a very bad feeling about it, but nobody else has listened to me thus far so I would like to have sources with numbers and solid data that we can look at rather than me just presenting an opinion.

1 Like

This is not a good idea unless you have a veteran swerve team nearby that is willing and able to dedicate significant time to help you de-bug mechanical and code issues. With COTS modules, the mechanical challenges are reduced, but there is still a lot of integration that is needed with your robot. The code side is the bigger challenge. Even with a lot of good swerve code posted publicly, there is a lot to learn and a lot of tuning involved. We were able to help one team do swerve last year in season that had not done anything off-season. They made a clone of our design (using our public models) so we were able to give them all the instructions and tips for the mechanical build. We were able to work with them to get their code up and running fairly quickly as well, but without our help they probably would have struggled. They are a good team, but this was a big hill to climb.

Obviously a lot depends on the strength and depth of your team. But there is a high risk that you will struggle and an even higher risk that you will spend a lot of your energy on this part of your build and neglect the other aspects of your build.

I understand. I’m not sure if it’s you or your team who is requesting numbers, but it isn’t really logical to try and quantify design priority as a macroscopic concept, unless you create a table in which you quantify factors important to your team.

Here are some chief delphi threads that help illustrate the point I made.

1 2 3 4 5

In addition, here are two resources from Team 1114, Simbotics, Hall of Fame team and a routine powerhouse. To say they’re qualified on discussing drive train design is an understatement.

Mobility

Omnidirectional Drive Systems

Feel free to share the following statement to your team and mentors, even though it’s quite rude: If your team goes for swerve with this little time left, one of two things are almost guaranteed: You’ll have a great swerve and trash mechanisms, or you’ll have a mediocre swerve and solid mechanisms. In both cases, you’re a free win for the other side.

Another specific point as to why swerve is such a particularly bad system to dry run in-season:

Swerve, even on the level of ‘real world’ engineering, is a very finnicky system to implement and use. By the nature of a holonomic drive, any issue with any of #1 the modules you’re using, #2 the assembly of your drive, #3 your robot’s wiring, #4 the sensors & attached observer, or #5 the regulatory controls code will most likely cripple your drivetrain. You can get almost everything right and still have your whole setup collapse; if this were an intake or an arm or something like that, you could still have a season, but when your drivetrain doesn’t work, nothing does.

It’s not impossible to do it right on your first try, but given the constraints of most FRC teams, it’s certainly unlikely. Differing with the above responder, I wouldn’t even suggest doing so with the help of a veteran swerve team nearby; as they said, integration will be the hardest part, and that’s going to come down to you guys in the end. And all of this effort and risk really doesn’t get you all that much; swerve can certainly be a powerful utility to have, but it’s not going to win you a regional unless you have correspondingly strong mechanisms to go along with it.

This is all more or less irrespective of the age, skill, and resources of your team: having worked with two swerve drivetrains on two different teams – luckily both in the offseason – even the smartest folks and oldest teams can still stumble on challenges like this. As to your question re: sources or data, feel free to put me down as 0/2, once as a student and once as a mentor :slight_smile:.

2 Likes

I think others have already covered some resources for you to take to your mentors for why this may be a bad idea. However, one day before kickoff may be too late to convince your mentors that this approach won’t work, so assuming you have to stick with the swerve this season:

I assume at this point you’ve already opted out of the KOP chassis. If this is the case, and you already have your COTS swerve modules, and you haven’t looked too deeply into doing a WCD chassis, your best bet is to get started on your swerve drivetrain ASAP to minimize failures by the time you get to competition.

This means assembling your modules within a couple of days of kickoff and having a chassis mechanically and electrically ready to go by the end of week 1/mid week 2 of build season. Simultaneously, if you’re running the SDS modules (or anything with detailed and working example code provided), integrate the example code into your team’s code and make sure it at least compiles. If you are able to use week 2 (at least part of it) to test the example code, you won’t be in a terrible place. If you have any issues, asking for support from the manufacturer of the modules early will be very helpful.

As soon as this happens, pass off the drivebase to your drive team and get them to practice driving a swerve drive effectively – take a look at how teams like 1323, 2767, and 2910 drive for great examples of this. If your drive team can get a few weeks of practice on the swerve chassis, then assuming you figure out all of the kinks (big assumption) you will be able to drive effectively at competition, and worst case be able to play very effective defense.

Note that the above takes a lot of early season time away from your mechanisms – this is the major downside to doing swerve in the build season. Even if you figure it out well enough so that your drivetrain isn’t causing you major issues, you’re spending far less time on your mechanisms than you would otherwise. Regardless, if you have to go with swerve this season, it’s far more important that you get a drivetrain working reliably than that you get a ton of mechanism testing time, because if your drivetrain is broken your mechanisms can’t do anything. I also haven’t mentioned anything about autonomous – I have no idea how easy it is to get a reliable and working autonomous on a swerve chassis, but you should look into this now if at all possible.

If any part of the above seems like it’s too aggressive for your team, and you won’t be able to pull it off on the schedule I mentioned, then no matter how late it is to do this, find some other solution – use an old KOP chassis if its unmodified, spend a few hundred dollars on a new KOP chassis, etc.

Good luck, and I hope whatever you guys end up going with, it works well for you. Please share if you do end up going with swerve and have a reliable robot by the end of the season – it would be great to hear how you were able to pull it off.

1 Like

1640’s Swerve Central documents the team’s 10 year continuous development process behind their swerve design.
https://team1640.com/wiki/index.php/Swerve_Central

1 Like

And some details on the newest iteration of our swerve.

It takes a ton of time, this module was 2 offseasons in the making and we are still only 95% sure of it going into the new season.

2767 has some published documentation on the swerve drive they’ve been developing since 2011. While its not COTS, I’d still take that as an indicator that its not something to get into and expect to have competitively functional in the next 8 weeks.

EDIT: As others have mentioned as well, getting this development done fast enough with no prior experience and having remaining time to give a driver the weeks of practice necessary to properly utilize the drive will be nigh impossible.

The biggest deviator of FRC success is going to be how much time practice drivers have with the robot. Starting swerve at this point puts you way behind the ball, as most anyone has driven a tank/arcade robot, and most of your competitors have driven and practiced most of the offseason.

The second deviator is how much time was spent tuning mechanism and autonomous actions. And trying to catch up with the lack of practice, and experience in build, will take away from these.

I think teams that chose 2-3 months ago could confidently use COTS swerve this year, even with little prior experience, given how far the hardware/software has come. But you’ve already ate that lead time, and will be rushed to fit the learning and training in the next couple months.

1 Like

I posted 503’s most recent swerve iterations last night but to get there has been 3 off seasons of designing, building, and testing. We can talk in detail about the struggles we faced in an any of the offseasons if your interested in a PM. I can’t imagine trying to develop it during the build season, with or without bag.

All of these ‘we’ve developed these modules over the course of years’ posts don’t really help in this context. They’re talking COTS, and I can say from experience COTS is far easier.

@squaredoritos We’ve done it, and despite not getting picked that year I believe we were better off for it. The key, however, is to already have someone who completely understands how it works - especially on the software side. You don’t have time to learn how to program swerve at this stage, but I’d say you do have time to write and debug it; your programmers aren’t going to have mechanisms for a couple weeks anyway. If you divvy stuff up right it won’t take nearly as much time away from the other parts of the robot as you think it will.

If you have a veteran programmer who’s already taken physics and felt they understood things comfortably (particularly vector summing and rotational motion), you’re probably a lot closer than you think. If you don’t, it’s impossible.

The other key is to have a backup plan. Our first swerve year, we mounted the modules to the kit frame so we could just switch the robot to tank easily if it came down to that.

There’s a lot more advice I could give, but I’d rather not take the time unless your team goes through with it. Reply back to me tomorrow/whenever if that happens.

I envy you. A team that has the guts to try swerve like this is my kinda team!

I don’t know how your team dynamics work but mentors are there to help the students out. Not make final decisions on what should happen and where. They are there to guide students and tell them what they may be doing is wrong and that they should likely look at something else.

If your mentors want to buy the top team analogy then

Others in this thread have posted good links from other teams documenting their swerve that should hopefully be able to steer your mentors away from swerve. There have been more teams that have been successful and won world championships with a tank drive than there have been with a swerve. Most of the teams that have won it year after year (254) have done a relatively simple WCD.

What if 2020 is the year that tank treads rule? Is this really the proper time to be deciding what drive train to use?

wpilib 2020 supports swerve: https://github.com/wpilibsuite/allwpilib/tree/master/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervebot

3 Likes

I keep forgetting this.

Swerve is getting very close to plug and play. It’ll be interesting to see whether that results in more immobile robots or more functional swerve drivetrains. Perhaps both.

1 Like

Not sure how much experience your team has so I’ll point out some of the basics that swerve teams (us included) kinda take for granted.

Swerve really benefits from having a working IMU on board. If you don’t have experience using one, that’s something to get started on right away. You’ll want it to get field-centric driving working, and probably for odometry as well.

Also, the other obvious things to worry about - how much experience do you have tuning closed-loop (feedback and hopefully feed forward) control loops? You’ll need to practice up on some sort of position closed-loop control for the steering motors and velocity closed-loop control for the drive wheels.