159 is considering switching to a swerve drive next year. As a programmer, I wanted to know how long it normally takes to finish building the swerve drive train (need time to test the code!). So how long does it take any teams on CD who use swerve to finish their drive train?
3 weeks to program…in build season.
Yes, somebody decided after build season they would go with Swerve. They bought theseassembled a frame and mounted everything, and after 3 weeks turned it over to the programmers. After 3 weeks of programming they made it do everything they needed, and even got field oriented drive to work.
I don’t recommend this, but it’ll give you an extreme case.
We are thinking of designing and programming swerve drive as a learning experience for the team. Are you using LabVIEW?
Is there not any other teams that have their code already posted/sharred? Im not 100% sure but if you share the code from previous seasons for anyone I believe you can re use it which would save a lot of time when doing your swerve.
Side Note: Just my two cents, I would experiment with all other drives first to make sure it is exactly what you are going for. I personally would try Texcoast.
I know that Bomb Squad has their code on GitHub, you could check that out. additionally, Ether has some papers with the pseudo code for a swerve drive here: http://www.chiefdelphi.com/media/papers/2426
For us, we decided to go swerve on day 2 of build season this year. We ordered modules from AndyMark, received them a day or so later, and then the mechanical team focused on building up our practice drive chassis so we could completely hand that over to our programming team. If I remember correctly, we had the chassis completed and transferred to the programmers the first weekend of build season.
While our programming team worked tirelessly to get everything functional with the swerve, the rest of the mechanical and design teams worked away on the rest of the robot design making sure to carefully keep all of the space claim and wiring for the swerve in mind. By the end of week 3, our programmers had the basic fuctionality of the swerve built, tested, and working. We continued to make tweaks, improvements, and additional control features and options (field centric, various spin moves, forward/reverse orientation toggles, etc.) as we continued through the rest of build and competition season. One benefit was that once the mechanical was worked out and locked down, everything else related to the drive (for the most part) was purely software which could be endlessly improved, tweaked, tested, troubleshooted, etc. throughout the season.
Don’t get me wrong, I probably wouldn’t recommend teams taking the same approach as we did of trying to do this for the first time during a build season. Tackling swerve was a pretty huge challenge (especially from the programming side) and I am extremely proud of our team for accomplishing our goals as well as we did this year. Even so, we are knowingly infants in our swerve drive knowledge and we’ve actively looked to learn as much as we can from experienced teams (shoutouts and special thanks to 16 and 1717) throughout this season.
Also, driver practice is key. In order for all that hard work to really pay off, your drivers have to be able to make that thing hum on the field. We had our drivers working with that practice chassis quite a bit from that week 3 point onwards throughout the season to be able to perform as desired come competition time. We set up driver drills with cones, balls, goals, defensive proxies, etc. to make sure we had all of the on-field tools we ever thought we’d need in our toolbox to dive into while on the field.
With all that said, I definitely recommend any team give swerve a shot. We couldn’t be happier with how our machine was able to perform this year given our initial lack of experience. Just know, it isn’t a simple drive train by any means and there are far more modes of potential failure than a traditional tank or mechanum drive. It’s very programming and control intensive, but it is a worthwhile challenge to undertake. This isn’t just for the performance benefits you would potentially receive on the field, but your team would benefit greatly from the learning experience of taking on the challenge (and that’s what the REAL benefit should be, right?).
If anyone has any questions, comments, suggestions, etc. please feel free to contact myself or any other member of my team and we’ll be happy to help steer you along as best we can using our previous year’s experience and lessons learned. Best of luck and congradulations to any team eager to take on the challenge!
BombSquad code is here. I just opened up our 2014 code.
If you are only interested in Swerve Drive code, check out the Macy’s robot code. It’s really just a swerve drive with a confetti shooter.
Good for you. Pushing your boundaries in drive train technology is a first step in making a big leap forward in competition performance.
That said, the time to do drive train development is in the summer off-season, not during build season. The field is littered with teams who tried to develop swerve during build season, then crashed and burned.
Note that there are a number of COTS swerve modules available these days. If you do not modify them, they can be reused during the build season. Buy yourself a set of swerve modules and build a development bot over the summer. Have your mechanical team become familiar with the swerve modules, and get in at least one iteration on building the frame and other drive train components. Work with other teams with successful swerves to develop your control system when you aren’t under the gun. Then, when build season hits, you’ll have a successful iteration under your belt and can hit the ground running.
We had our lessons learned and summer brainstorming meeting last night, and are considering developing swerve this summer, inspired in large part by our fantastic alliance partner 2481. But, we would never consider waiting until build season to do it.
In the past two years we’ve limited the choices of possible drive train designs on our competition bot to ones we have successfully used recently or prototyped over the summer, and also have the COTS parts sitting on the shelf ready to go. In other words, summer is for technology development (and demos), fall is for skills development (and demos), build season is for execution.
I just want to echo these statements. I talked to a lot of teams regarding their own mid-season swerve drive attempts this past weekend in St. Louis…there are a LOT of horror stories out there. The easiest way to discourage your team is if you set the table with a high probability of failure…that’s what a first attempt, mid-season swerve usually does from talking to most teams. People mention ‘unicorn swerve’…I think that term might actually just refer to a successful mid-season attempt because of how rare and magical that success story seems to be.
Also, we’re flattered that we’ve inspired our selfless partners on Triple Helix to give swerve a shot this summer. Please, feel free to contact us with any questions and we’ll do our best to help you along. Good luck, guys!
Thanks for the responses. I have another question: how has the so-called “Lobster drive” performed historically? I’ve never seen it in action but I’d like to know how it ended up working out because it looks super neat.