pic: GBX-165, epicyclic differential swerve

So with both both driving gears being on the same side of the driven gears, you certainly get the differential action, but your motors are working against each other in both the driving and steering cases as far as I can tell.

That is, in order to drive straight, the top gear has to push one way and the bottom the other way. This is of no issue when the driving gears are on opposite sides of the driven gear, as the torques are added and forces subtracted, but it is when both are on the same side, as both the forces and torques are subtracted from each other.

In short, in both the driving and steering use case, one motor seems to be doing negative work (pushing against the direction it’s spinning). (Only in very specific cases do you have both motors spinning and pushing in the same direction)

This would be bad not only because you would be losing a lot of efficiency, but also because the unlucky motor will be generating even more heat than if it were stalling, and will be unable to retain its magic white smoke for long.

As an intuitive thought experiment, one could imagine the behavior of the module if you were to reduce the difference in gear ratios asymptotically towards zero. When the ratio is very small, both driving gears need to apply a huge force in opposite directions to drive the wheel without

I’m really hoping I’m wrong, because this would be really fun to build, but just doing the math for the torques and forces is quite discouraging.

edit: Did some math. Setting steering torque to zero, you get a positive output for drive torque, but only with one motor acting against the rotation of the drive shaft. The poor 775pro. Here’s to hoping for asid61 to pop in and tell me I’ve misunderstood the design.

1 Like

I think you’re probably correct. That being said:

If I imagine the larger coaxial gear being held still while the planets walk around it, the torques exerted by both motors are equal (as I’ve added a gear ratio upstream) in order to keep the center gear still. It also seems like the module rotation speed is one-half the rotation speed of the larger planet gear, so there’s definitely some kind of a virtual gear ratio acting here.
That doesn’t mean that I know the overall output torque of the module, however. Given that differentials are usually “torque in = torque out” devices, you’re probably correct now that I think about it.

And with that I mournfully cancel my plans to make at least part of this module this weekend.

That being said, this GIF might just be the gold standard for displaying a complex assembly. If anyone wasn’t clear on the gearbox after your sweet color coded cross section (which was also incredibly useful), I think they are now.

I’m waiting for the new teams who are rushing to do swerve next year to see this after swerve bot won worlds. The hype over swerve is rising, and there’s gonna be a lot of failed attempts at a differential swerve in the coming offseason.

1 Like

We were in that boat after watching 2767 dance across the field in 2017. I hope teams start working on them now though because it will take you until Fall to get it assembled and running.

1 Like

i watched a local team buy the andymark swerve modules and struggle with the pre-made solutions to the point where they ditched them before their second comp, swerve is not for the faint of heart, even the purchasable options.

1 Like

When you set the “module torque” to zero (which I’m pretty sure is actually for the translation motion), you created a strict proportion between F1 and F2 based on r1 and r2. Then you substituted F1 = f(F2) into the equation for the other torque. You’re not gonna end up with an F1 in your solution if you substituted them all out. However, that doesn’t mean F1 is zero. F1 is trivially not zero based on the proportion before. D is also equal to F1 x r3 x (1 - r1/r2).

What part of the image gave you the impression that the above derivation implies F1 = 0? I’m always happy to clarify (though I’m not sure I still have the original document that I drew this up in.)

The way I figured it was like this:
Imagine the ideal scenario. The two central axles spin with equal velocity in opposite directions and carry the same amount of torque, and thus the same amount of power. These two torques are going “into” the module, and cancel each other out.
However, on the offset axle that drives the bevel gear (and from there the wheel), both torques are in the same direction. This means that the module will want to rotate in this “ideal” scenario. We can conclude that in order to keep the module from rotating, the center two torques must not be the same. The speeds must be the same due to the gear ratio, so that means something with the module is messed.

I later found that by using different gear ratios to the outer axle, it’s possible to make it work properly with torques cancelling. However, this leads to additional gears upstream and makes the module much larger than I would have preferred.

I just found some time to look at this design today. Others are right, in order to keep the module from steering, one gear train is going to have to back drive the other - not ideal.

It’s not that hard a fix, you just need an idler on the lower gear train (between the lowest central gear, and the bevel shaft) so that one gear train spins in the opposite direction of the other. That will balance the torques and put both motors working together to drive the wheel forward without steering (basically this). But, you’ll find the same problem that other differential swerve modules have - the steering ratio is going to be way too quick. That’s why I think the steering needs another reduction stage, downstream of the differential.

I wanted to avoid that style of differential with this design, as it adds a second set of bevel gears and upstream gearing. If I wanted to use two sets of bevel gears and accept the additional mass/complexity, I would just make 5818’s differential swerve with the 4 15T Vex miter gears.

You don’t need a second set of bevel gears, you just have to reverse the direction of the second gear train. You can do that with an idler between the lowest central gear and the vertical bevel shaft

See this design from @mishmish66 for an example of what I mean: My Crazy Off The Shelf Parts Differential Sweve Drive

I tried one already like the one in the thread you linked, and you still get a torque non-cancellation problem. The middle shafts cancel, the intermediate shaft cancels itself, the last shaft does not.

Yes it does. The idler and the bevel shaft are all mounted to the wheel fork assembly, so torque between them doesn’t impact a steering moment. The bottom gears of the differential are turning in opposite directions, do their steering torque reactions oppose each other

With the Vex miter gears at $25 a pop now, maybe something else would be better

Here’s my train of thought:
Ultimately, there are 3 torque “inputs” to the module when you’re assuming that the module isn’t rotating. 2 from the middle coaxial shafts, and 1 from the wheel. If the two coaxial torques cancel, then the wheel torque has to be 0 for the module to stay still (for all torques on the module to sum to zero). If the wheel torque is non-zero, then the module will rotate.

I’ve heard good things about the 16t 16dp miter gears from McMaster. They also have 12t 16p ones that are even more compact. Those are $25 and $31 respectively. KHK has 1.25 module 20t miters for only $15 a pop, so that may be an even better option.
Given how good the price that Aaron got for his “custom” bevels was, going straight to China for them could also be an option if somebody resold. You’d need at least 16 miter gears for a robot, or 32 for 2 robots, so you can probably fulfill MOQ right there.

Maybe this helps?


Assume you want to drive the bevel gears F at a constant torque without causing the module to steer (that is, keep gears D, E and B, which are mounted to the planet carrier/wheel forks, stationary). The torque T1 from coaxial gear A imparts a steering force on gear B labelled Fs1. The torque T2 from coaxial gear B imparts a steering force on gear D labelled Fs2. If Fs1 and Fs2 are equal, the module doesn’t turn.

Note that the drive wheel torque doesn’t affect the steering by itself. A torque on the bevel gears F would drive gear B around the coaxial gears in one direction, and drive gear D around the coaxial gears in the other direction (via idler E), balancing out.

See also

After seeing the mishmish66 post last year I CADded up this variant - (missing some shafting, bearings and standoffs) - but all COTs except for some simple plate machining, and only 2 miter gears.
Didn’t progress further with it as it is tall (~11 inches) and fairly expensive. It has steering speed of 375 RPM (free) and about 16 fps drive. Prior prototype I had made had steering around 900 rpm and worked (sort of) but was too twitchy, led to adding the 10:1 reduction on a 775 in a VP instead of a MiniCIM input. NEO’s came after this was drawn up.

1 Like