Three Stage Shifting Swerve Module (FRC 5987 Galactic Swerve MK2)

I’ve bought them from China before for university research projects. I know we get a lot of our fasteners from בורג המפרץ in Haifa. I can’t say for sure that they have shoulder bolts though. There are a number of industry supply shops in the Haifa Bay Area, I would imagine at least one of them has them. One of the students may know better than me.


I’d take this one step further. If you’re stalling and still getting pushed you’d need to add the force you’re getting pushed to your own stall torque. From a practical standpoint I’d probably take my own stall torque x2 and call it good.

We buy from אום ובורג in Jerusalem, I don’t know about shoulder bolts specifically but they do a giant supply you could check with them.

1 Like

I’ll check with them, thanks! The only place I saw that sells them was McMaster, that’s why I was surprised to hear that they found them somewhere in Israel.

Btw - I believe you guys are closer to TLV than to Jerusalem, if you’d like I could send you our suppliers’ names so you’d save the time going to & from Jerusalem (they’re great for buying standard hardware).

We’ve bought a shoulder bolt from אספקה טכנית א.ה for our CNC machine before during the season, small store in the Haifa industrial area. We have a sponsor from Mivrag who are a fastener manufacturing company, we could check to see if they have them


Hmmm… I see what you are saying, but I am wondering if that is what would happen.

Assuming your drive wheel is not slipping, then I agree that if you applied an external force to the robot, that force would impart a torque through the drive gearing back to the motor. However, I think that if you apply a torque to the shaft that is greater than the stall torque of the motor, you will back drive the motor. I don’t think that the motor can provide a greater resistance to back driving than it’s own stall torque.

I think if you do the free body diagram of the robot, the force of the robot pushing against you is the equal and opposite reaction force to your own robot’s pushing force; those two forces cancelling out (static equilibrium; sum of F = 0) so that the net acceleration (F=ma) is zero. But if you removed the opposing robot and replaced it with a solid barrier, the free body diagram for your robot would not change. The reaction force applied by the barrier would be the same magnitude as the reaction force of a robot pushing against you.

This idea of backdriving your motors somewhat supported empirically where I have seen the weaker robot in a pushing match getting pushed backward and their wheels are rotating. At that point, the weaker robot’s drive motors are being back driven by the stonger robots drive motors and are effectively mechanically connects through the carpet and bumpers.

I will admit that adding a small fraction of the stall torque to account for friction (and sticktion) in the drive gearing is probably a good design practice. But I don’t think the 2x case that you are proposing can physically happen.

The 2x figure is more for the shock forces involved of either getting slammed by another robot in the start of a pushing match, or simply slamming into the wall and stalling momentarily, which probably happens more frequently.

I agree that the drive motor will apply significant torque, good catch. I think your math is a bit off though- I’ll try to demonstrate once I get to my laptop. I don’t think the gear ratio affects the torque the drive motor exerts on the rotation of the module.

Our module design is fairly deterministic. The motor torque passes through a VP gearbox before the bevel gear. The bevel gear is on the axis of rotation of the module. So it is easy to draw a free body diagram around the stationary part of the module and see exactly how much torque would be applied to the bevel gear.

The bevel gear drives a mating bevel gear on a cross shaft.

As a thought experiment, I imagined what the reaction forces would look like if the cross shaft were welded to the housing instead of supported by bearings. in this case the contact forces at the mesh point of the bevel gear teeth impart the torque into the module. Since it has nowhere else to go, then from a free body diagram, all this torque must be reacted by the steering motor.

For module designs like this one, it is a little harder to see where the reaction forces go. But in the end, I convinced myself that the math works out the same. The parallel axis theorem comes in to play, so the math is a bit trickier and you have to make sure you account for the side loading through the bearing of the transfer gear. Make sure you carefully separate the rotating part of the module from the rest of the assembly when you do your free body diagram and I think you will get to the same answer I did. If not, I would love to see your math as I have not spent as much time on this style of module gearing design and may have made some errors in my free body diagrams.

They actually send regularly to one of our mentors’ workplace so we don’t really do the trip but thanks!


Sorry for the late response, had a lot to do.

If you think of the module at stall, with no wheel slippage, the input Falcon will apply 1.82 N-m (16 in-lbs) to the module. For this style of module, the other torques will all cancel out inside the module itself, regardless of bevel gear and spur gear reductions. This means that in addition to the 52*0.25 = 13 in-lbs required to turn the module from my last post, you’ll need another 16 in-lbs to overcome the drive torque when stalling (or starting an acceleration). Adding another 64 lbs to the “arm load” cell in JVN will simulate this, as 64*0.25 = 16 in-lbs. Here’s the finished result:

I’d even argue that the module will be facing torque from the drive motor more frequently than the turning calculation, so it’s important not to miss it. Thank you for bringing this up!

Thanks for the remarks, I know some of the parts are unnecessarily hard to manufacture and I agree that if we decide to build a swerve drive, we definitely shouldn’t build this one or any other shifting swerve module. This swerve module was made purely for fun.
As for the other things, I haven’t noticed them when modeling, I’ll fix them


finally got around to fixing the module, here’s the new lever system:
I changed the bolts for steel pins that are press fitted through the middle but are loose fit in the lever piece, and added slots on both sides.


Torque multiplication does not “cancel out internally” in any gearbox. It is a little known fact about gearboxes that, as part of the torque multiplying process going on inside the gearbox, there is a reaction torque being applied to the housing. In statics, all forces and torques must sum to zero in order for a system to be in static equilibrium.

Let’s look specifically at the math for a planetary gearset. If you go down to the “torque ratios” section on the Epicyclic Gearing wiki page (about 1/3 of the way down the page), you will see that there is a term Tau_r for torque of the ring gear in addition to the Tau_s (torque of the sun gear) and Tau_c (torque of the planet carrier). We normally don’t think about this term because we bolt the gearbox case securely to some part of our structure and that reaction torque is just transferred to the structure. We also don’t typically think about the reaction torque imparted to the motor case (stator) when the motor spins up the rotor (until we try to hold the NEO 550 in our hands the first time we test the motor). :grin:

If you do any gear ratio multiplication in the module itself using gears that are parallel to the axis or module rotation, you can think of this gear reduction as a type of epicyclic gearset. The input gear is like the sun gear. The gear that is driven by this input gear which is on a parallel shaft is like a planet gear (don’t let the fact that we have only one planet gear in this case instead of 3 or 4 throw you off - the math does not care about how many planet gears you have). In this analogy, the module is analogous to the carrier. This makes sense because the the shaft that the parallel gear rides on is much like the planet gear axle in terms of its placement offset from the axis of rotation of the module and the fact that it allows the carrier to spin.

Now, here is where things get a little tricky. There is a type of epicyclic gearset called a stepped planet gearset. In a stepped planet type gearset, two planet gears are connected together through a shaft. The bevel gear on the other end of the shaft in our swerve module example is analogous this second planet gear in our case. Normally, that second planet would ride on the ring gear which is a fixed to the housing of the gearbox. If we “lock” the wheel, then the bevel ring gear attached to the wheel is effectively locked and provides a reaction point for the bevel pinion gear. Because that bevel ring gear is on a perpendicular axis, it’s reaction torque is not transferred to the carrier’s axis of rotation so it effectively acts as the ring gear in our epicyclic analogy and since it is locked in this thought experiment, it acts like a fixed housing for our gearset.

Now, let’s bring the swerve steering system into the picture. The swerve steering system is effectively trying to react the torque of the carrier in our epicyclic gearset analogy. If the gear ratio from the sun gear to the planet gear has reduced the speed and increased the torque, then the reaction torque that is needed to hold the carrier stationary is higher than the sun gear torque by the gear ratio of the gearset involved.

I came to the same conclusion when I performed a detailed free body diagram analysis of all the elements involved.

Bottom line (aka TL:DR): It does not matter whether the gear reduction occurs in gears that are supported by the fixed housing (like in our design) or in gears supported by the rotating structure of the module or any combination, any gear reduction between the motor and the bevel gear will contribute to the torque imparted to the module by the drive motor and must be reacted by the steering motor.

In the past, this has not been a critical design consideration as the gear ratio for the steering system has typically been limited by the speed that the control system can handle. But with the brushless revolution offering new ways to improve the closed loop control of the module, we are able to speed up the rotation speed and reduce the reaction torque and we need to make sure that we still have enough torque available to control the modules position without burning out our motors.

I hope this makes sense. There is a lot more math to it than this. Since much of that math is design dependent (gear pitch diameters and measurements of particular moment arms) and frankly tedious, I have not included it here.


Are the adapters on the piston and shifter in the lever mechanism hardware parts or 3D printed? If they are hardware parts, where did you find them?

the adapters are 3d printed parts.

Edit… Nevermind… I just saw the little slots… cool!

I am having some issues with the lever… I don’t think it going to work as well as you think… Lest someone has made one before. The problem is the lever sweeps out a circle as it pivots. This is a problem as your shifting shaft is a fixed distance from the pivot/fulcrum… as you sweep up the shaft will be forced along the arc bending it until it hits the half way point then unbends at the top… Maybe someone can correct me if I am wrong…