Swerve module physically unable to drive and rotate at the same time

Our team competes in a college-level competition, and we’re using swerve drive for our robot. We decided to design our own swerve modules because we wanted to use the pneumatic wheels that we’ve used on our previous robots, and also because it would give our team more experience with machining components.

We’ve run into problems with our design, being that the module seems to be incapable of rotating and driving at the same time, and are having trouble understanding why other modules don’t seem to have the same problem.

Above is a photo of a 3D-printed prototype of our module. There is a hex shaft that goes through the top plate and drives the bevel gears which then drive the wheel. The red 3D-printed gear towards the top is used for reorienting the direction of the wheel.

For the sake of brevity, let’s call the bevel gear on the vertical hex shaft bevel gear A, and the bevel gear on the horizontal hex shaft bevel gear B.

When the module rotates, bevel gear B will then rotate about the axis of rotation of the module. One of two things will then happen

  • If you assume bevel gear A does not rotate, then this will cause bevel gear B to rotate relative to bevel gear A, which will then rotate the horizontal shaft, which will drive the wheel. (This case generally happens when the wheel is not in contact with the ground)
  • If you assume that bevel gear A is free to rotate, then bevel gear B will not rotate relative to A, but it will now cause bevel gear A to rotate, which will rotate the vertical hex shaft, eventually feeding back into the motor. (This case generally happens when the wheel is in contact with the ground)

Now, backfeeding into the motor isn’t a huge issue, because you can just let the motor coast, which isn’t a problem if you do not rotate and drive at the same time. The problem is, if you do want to rotate and drive at the same time (which with swerve, you generally do), this current system seems to be unable to do that.


SwerveVideo2

At first, I assumed this was just a fundamental design flaw with our system, and we would either need to redesign or just buy some COTS modules. But after doing more research I’ve found that there are modules that seem to have the same basic design, which can be found above.

And while the design is different, I would think the SDS MK4 modules would have the same problems I listed above with either the wheel rotating or needing to backfeed into the motor whenever the module is reoriented. (Photo is courtesy of theJudah at this post Coaxial Swerve Explanation).

Has anyone dealt with this problem before? And would someone be able to explain why our design is unable to work and the others are? Or would our design work, and I’m just missing something about how swerve drive works?

All the coaxial swerves have an interaction between rotating and steering. IE, steering causes the wheel to rotate a bit.

Just bake it into your programming :wink:

2 Likes

Is this the Azimuth ratio of the module?

I remember seeing this constant in CTRE swerve’s tuner constants. How would I figure out what the Azimuth ratio is for a L3 Mk4i? Is there an empirical test I can do?

I think that’s right. I’m not up on the programming aspect of it.

It should be listed on the SDS site.

You can calculate it if you have the various gear ratios in hand. I would do that rather than doing the physical measurement. That said, a sanity check is to hold the drive motor from turning, mark the wheel (tape and sharpie lining up with the fork edge), and turn the steering motion until the tape makes a full trip around, counting turns. It will be quite a few turns.