Pic: Differential Swerve Module (971)

So I’m a little late to the Differential Swerve party (11 years late, Ian from 1114 was first as far as I know).

Here is my (and some quite helpful others) take on the rotating module portion of a differential swerve. This particular module has been an offseason project for myself, and a now alumni Ginger.

The final module will include 2x 775pros, one driving each 84t gear.
Final overall ratio will likely be 14.6:1 on a 3x1.5" Colson, with the final stage of gearing being a 46:12 upduction (I know it’s not a word, but I like it).
There is a lot of VersAluminum in the center of an 84T VEXpro gear, so it got used to make a bevel gear.

Final speed for this module will be ~16.7fps free, with an effective tank drive wheelbase of 11.5" (if this were a tank drive, the wheels would be 11.5" apart, this is the best metric I’ve come up with for relating the steering sensitivity to something I have more gut experience with).

The 2x 84t gears are supported relative to the module center frame by 4x SG15U bearings each, running on a round contoured raceway. The central 4140 steel disc will have some qty of RM1 V-bearings supporting it relative to the robot frame.

Haven’t weighed it, don’t really care for that as a metric, it doesn’t weigh much.

The diff swerve concept and a graceful implementation have been on my mind for awhile, and I’ve been lucky enough to find enough other people to be part of the conversation that it has made some strides, credit to Ian Mackenzie, Alex Zettler, Dillon Carey, Ginger Schmidt, and Spencer Witte.

Link to more pictures

Feel free to ask any questions and Ginger or I will answer them.


(photo credit: Steve Silverman)


14.6:1 on 2 775pros seems to net a final free speed of around 17fps, correct?
Are you planning on making that higher/lower, and if you were to what changes would you need to make? Seems like it would be tricky without changing the module rotation ratio too.

I saw this module at Chezy Champs a week ago and was blown away. SO MANY COOL FEATURES!!! The V-groove bearings, the way the small bevel is mated to the wheel, etc. are all just amazing.

This is ridiculously cool. Thanks for sharing!

Wow. I’m blown away. At first I was amazed by how good your renders were, then I realized that they were pictures and you actually built this thing.

Any chance you’d be willing to post the CAD so we can get a closer look at the inner workings? Also, from a machining standpoint, how did you cut the bevel teeth into the 84t gear?

1 Like

First of all, this is an absolutely incredible, compact, and interesting design. If this is implemented on a bot this coming year, I will find you, and I will ask many more questions!

I am also curious about this part of the manufacturing process. My first guess is the teeth were cut further towards the outside than needed allowing clearance for the tool to cut. On second look it does not look like that clearance is there.

So how was this made?

To mass produce this part, you could either either powder metal sinter, or die forge the mating bevel on the inside and then the outer gear teeth could be machined afterwards.

This is actually my first time hearing about differential swerve, so lets make sure I understand it correctly:

Two identical motors drive this module, one on the top gear and one on the bottom. To make the wheel spin without rotating the module you rotate the two gears in opposite directions. To turn the module you rotate the gears in the same direction. To do both at the same time you change the speed of one motor relative to the motor. Is this all correct?

Absolutely ingenious design, and I look forward to seeing it in action!

This is beautiful. Simply beautiful.

That is a masterpiece of engineering.

How much does it (with or without motors and mounting) weigh? It looks like it will be extremely light.

Would you mind sharing how you calculated this?

Yup! :slight_smile:
When explaining the differential to people and how to turn the entire module, I also like to tell them to imagine holding one big gear still and spinning the other. Rotating the gears in the same direction seems to accomplish the same thing though, and I actually haven’t thought of it that way before!

In my mind this would need 2 encoders per module right? With having 8 encoders in total, can the roboRIO just use all of them 1024 or do you have to use lower resolutions?

Edit: Nevermind, I just didn’t think…Talon does it right?

Well, not quite the same thing…

The difference in holding one gear stationary and rotating the other is that the drive shaft is also rotating, meaning you aren’t rotating in place, or in other words the wheel is turning at the same time. To rotate in place you must turn the two gears at the same time (and at the same rate).

Mind sharing how this thing was made? That is my (and probably many others) biggest question.

On the swerve modules we’ve used before, we had 2 per module and they were just connected to the Talons.

Differential could be made easier by using 3 encoders, and I’m not sure how that can be done - with Talons or the Rio.

Definitely an elegant solution! As it appears to me, the motors could be right next to each other, on opposite sides, or anywhere in between.

Is the central sliver-colored annular piece part of/mounted to the chassis? In either case, how do you anticipate mounting this?

Not easier, but it could certainly be more robust with azimuth and/or wheel rotation encoders adjusting the motor encoders through a higher level control loop. A third or fourth encoder would probably have to be managed by the RIO. A wheel-rotation encoder could be done by placing index marks on the center line of the wheel and using a reflective sensor above it. An azimuth encoder would likely have an indexed cylinder attached to the rotor carrier (the four bolts) and read from the side if you wanted both azimuth and wheel rotation.

You’re right- they’re not exactly the same thing. I was thinking in terms of how one could possibly explain the concept of a differential swerve to another person: turning the wheel, turning the module, and then both.

Aren machined all of it, and I’m sure he will follow up with an answer soon enough with a much better, more detailed answer than the one I can give you.

There would be V-bearings mounted on the chassis that surround that piece. That is what allows the module to rotate relative to the chassis. Aren mentioned the v-bearings above in his post.

Are the 84 tooth gears 32dp to be directly driven by the 775pros or are is there another stage to convert from 20dp to 32dp, or am I missing something?

These are COTS VexPro gears which are 20DP. Since Aren mentioned a final ratio of ~14.5:1, and the differential is over-geared by a lot, this would require at the very least a second stage of gearing, presumably 32DP (or more likely belts).

Thanks - misread that the first time as internal bearings.

A very elegant solution.

With a COTS 20DP spur gear, and the appropriate Bevel gear set you could machine all these on a lathe to achieve this configuration for one side. It would be an incredibly time consuming task during build season to produce multiple sets of these on a lathe.

A 5 axis milling machine with the appropriate cutter could produce these gears very easily if you have a sponsor with this capability (and time on the machine).

Yep. If the final drive ratio goal is 14.5:1, and the differential has an overdrive of 1:4.6 (I think Aren has a decimal missing in his OP), the ratio between the 775 pros and the ring bevel gears needs to be ~67:1. Assuming he uses a 14 tooth pinion to drive the 84 tooth rings, he’ll need an additional ~11:1 reduction stage (or stages) before the pinion.

Beautiful work, Aren, Ginger and anyone else who worked on this project.

Aren’s right, 1114, led by Ian Mackenzie, started playing around the idea of a differential swerve back in 2004 and finally built a module in 2006. Back then it was a pie in the sky idea, so it’s amazing to see that 971 has implemented the concept in such a compact and elegant fashion. There’s no way I would have ever dreamed of a module so small; I really hope that someone can get this design on an actual robot one of these years (when it’s strategically appropriate, of course :slight_smile: ).

For comparison, here’s what we whipped up in the summer of 2006. It just goes to show how much further ahead the 971 version is.

1 Like