top of page
Jan. 20th, 2022

Belts-for-beginners: speccing belt drives for robots.

From the Very Wooden Workbench (pronounced VWW).


Belts! Yay! But also oh no — so belt drives are becoming pretty common in robots these days. Mostly because belts are so nice. Well, at least our lab uses them a lot. Now the definitely have some issues I will try to touch on in this post (control bandwidth limitations and such), but overall they're clean and they make you feel all warm and fuzzy inside. At least until you need to design a belt drive and you're like grrrrr, what do I do. This was me like five days ago.

So this post is about how to spec belts for robots, not so much for continuous rotation operations as many belt design guides out there exist already such as the Gates Poly Chain GT Carbon belt drive selection guide — and they're quite comprehensive. The problem is they're not super useful for robotics because they focus on this continuous rotation operation aspect, like they're made for people who design pumps and stuff like that where the belt has one loading condition with the exception of startup and shutdown. So this is more for high torque, stop-and-go robot kinda operation.

I'm also not saying you should totally ignore the other guides out there, but here I've tried to parse the relevant info. The example I'll use is the belt speccing for the new Mini Cheetah 'Pro.'

Screen Shot 2022-01-14 at 5.05.31 PM.png

So this here chart is from Gates (a belt manufacturer) and it shows the horsepower ratings for one of their belts (the 5mm pitch 15mm wide). And you can see in this table you choose an RPM that your system will run at, a gear teeth number for the pulley that's running at that RPM, and then the table gives you a "horsepower" rating for the belt. Presumably the horsepower of the shaft driving it. Then the Gates design guide goes through based on this how to tension your belt, there's a bunch of math, and etc. We kinda decided this wasn't useful for robots and we want to model the system a little more realistically. 

Pitch Diameter, Thickness, Material — are all important qualities of a belt. I'm not going to go super into detail here but here's a short explanation on pitch, and here's some basics on pitch diameter and the dimensions of a timing belt system. I usually use the Gates Poly Chain GT Carbon as their teeth profile go well with the Misumi timing pullies which makes them convenient. The 5mm pitch scale seemed reasonable for a robot the size of the Mini Cheetah, for larger robots I might go 8mm, maybe even 14mm. Most belts will come with ratings so as long as you meet the ratings you should be ok. Larger pitch likely means larger teeth and the belt can handle higher shear stresses but also means the pullies will be larger by default. Here's another short instructable as an intro to timing belts.

Screen Shot 2022-01-14 at 5.41.19 PM.png

Parts of a belt drive + concept of tension — enough background, into the real stuff now. A typical belt drive looks like the one above. We have two pullies, one is driven by a motor and the other is driving whatever we happen to be driving (in our case the lower leg of the Mini Cheetah). The third part of this system is a belt tensioner which is a small roller that rides on the back of the belt and pushes into the belt to increase the tension in the belt system. Here's some more on tensioners. To explain why tension is important we need a few diagrams.

Note Jan 14, 2022.png

Let's look at the two cases above — say we have a belt where when we install it on the pulley there's no tension in the belt at all. The pullies are exactly the right distance apart where no tension exists on the belt until we apply a torque, it feels no force. When we then apply a torque using the motor, one side of the belt goes into tension and the other side of the belt goes slack. This is undesirable in most cases because it could cause the belt to skip teeth or be loaded improperly.

But, if we pre-tension the belt system, the side of the belt that is "pulled" will carry the force applied plus the force of tension, and the side that is pushed will carry the force applied minus the force of tension. If the tension force is greater than the force applied the belt will never go slack. The danger here of course is that the side of the belt being "pulled" must carry the tension force plus the applied or "load" force and we need to ensure this doesn't exceed the max rating of the belt itself. 

Something to notice is on our second drawing — the one where the belt is in tension. Notice the torque'd pulley adds HALF tau/radius of tension to the "pulled" side of the belt not the full tau/radius that some may expect. What this says is if the belt is tensioned properly (Ft > tau/radius/2) the belt will split the force load between the two sides of the belt.

This makes sense for two reasons. First, if we do a free-body-diagram around the pulley that is DRIVEN (the pulley not shown above), the difference between tensions in the belts must not exceed the total Tau/radius force the motor is able to apply. And second, if we take the limiting case for minimum proper tensioning and we set the tension to tau/radius/2. At this tension, if we apply full torque, the forces in the case 2 match case 1 as one side of the belt would carry all the force and the other side goes slack with 0N of tension.

If this is confusing, we recommend doing a free-body-diagram around both pullies in the belt system. We know the torque output at the second pulley should be equal to the torque input times the gear ratio, try to calculate what tensions have be in each side of the belt for this to be true.

This is essentially the design problem — we want to determine the correct center-to-center distance, location of the tensioners, how much the tensioners need to move for proper tensioning, belt length, and belt width for our system.


Center-to-center distance, belt length, tensioner placement — honestly there's a lot of resources out there on this, but the method Andrew in my lab taught me was to use a CAD sketch. Let's say you have two pullies you want to use, one with a 28.65mm pitch diameter, and the other with a 44.56mm pitch diameter (note you want P.D. not O.D. because P.D. is where the belt's center actually is and O.D. is where the teeth are. Belt length will go along with the pitch line or pitch diameter). Let's also for example say you're using a 6mm diameter tensioner pulley.

What I kinda did was make a CAD sketch with a horizontal constraint between the two "pitch diameter circles" randomly added the location of the center of the tensioner pulley. Then we drew a path that consisted of an arc around the first pulley, a straight line to the tensioner pulley, and arc around the tensioner, a straight line to the second pulley, and an arc around that pulley. If we add a path length constraint to this sketch, it will automatically adjust the locations of the circles to the correct center-to-center distance for ZERO tension in the belt. You can play around with the location of the tensioner, the diameters of the pullies, and the length of the belt to get the geometry you want. For example, I wanted around a 240mm center-to-center distance, the 18t pulley (28.65mm P.D.), 28t pulley (44.56mm P.D.), and 6mm tensioner were all legacy from the previous Mini Cheetah (thanks Ben), and I played with the path length above (half of a belt length we can actually purchase). So playing with the different belt lengths available to purchase and the location of the tensioner brought us close to the 240mm mark.

Speccing the pulley sizes — really comes down to a few things. First, the radius of the pulley connected to the motor determines the tension you are applying to the belt. Second, the ratio between the gears on the pulley attached to the motor and the pulley attached to what's being driven determine the gear reduction in the belt drive. I'd recommend starting with picking a pulley for the motor that's small enough to fit in the design but large enough where the belt tension that would be produced isn't ridiculous, then knowing what gear ratio you want between the two pullies you can pick the pulley on the driven shaft.

It's not useful to have a comprehensive guide on how to do this part because it really depends on application. For example if you want a 4:1 reduction in your belt drive you may only have one option if you're going with a Gates 5mm and the Misumi pullies, the 72t and the 18t. Note that whatever the force = max torque applied / the radius of the pulley on the motor, the belt must be rated for at least the force applied plus whatever tension is already in the belt, we will call this pre-load, based on the above math.

I know this is confusing, but next I'm going to show you my step-by-step calculations for the Mini Cheetah belt and that will hopefully make it less confusing.


So here's the math for the Mini Cheetah itself — first we want to calculate the forces in the belt.

  • The motor can produce 35Nm of torque.

  • The radius of the 18t pulley on the motor is 0.14325m.


Based on this, we calculate 122.165N of force "added" to the "pulled" side of the belt and "subtracted" from the "pushed" side for a total net force of 244.329N @ the 0.14325m radius.

Now we want to calculate our minimum pre-load (or how much we should tension the belt). The minimum pre-load is equal to the mount of force "added" or "subtracted" like we discussed before, that's around 122.165N. But to effectively pre-load the belt we're going to introduce a safety factor of around 2.5 into our calculations. This is a high safety factor for us but we can afford it because our belt is rated to around 5000N according to Gates. It's important to ensure the preload + the force added is less than the rating for the belt by a decent margin.

Note Jan 14, 2023_edited.jpg

Now we want to design the belt tensioner — these work by "stretching" the material in the belt and allowing the natural springiness of the belt to provide the preload force. There's two parts of the belt. The part that's supported by the pulley, where the teeth mesh, and the part that "free-spanning." The part contacting the pulley, is actually unable to stretch because the gear teeth prevent the belt from stretching. This actually also means it carries no tension. The part that is free spanning acts like a spring (like most materials). So if we use belt tensioners to "push" on the belt and elongate the belt by a small delta, we are effectively allowing the belt to carry a pre-load tension which is exactly what we want. 

Note that in belts with gear teeth, since the part of the belt in contact with the gear cannot be "stretched" due to the teeth being in contact with the gear, the two sides of the belt act as two independent springs which also means they must be tensioned separately which is why our design has two tensioners, one on each side of the belt.

Screen Shot 2022-01-20 at 2.48.09 PM.png

Now we can use this info to calculate how much the tensioner — must elongate the belt by to achieve the appropriate tension, this is different from how far the tensioner has to move to achieve this elongation. If we know the stiffness of the belt, which is given to us by the manufacturer and is a function of width and the unsupported length, we can treat it just like a spring to figure out how much elongation we need to apply to get a certain preload force. 

The stiffness from the manufacturer was given to us in some very annoying units. It was given as a modulus in pounds per inch width of the belt. If we multiply by belt width and convert lbs·f to N, and we divide by the untensioned length of one side of the belt, we get the stiffness of the belt.

Screen Shot 2022-01-20 at 2.51.21 PM.png

In terms of how far the tensioner must move — we now know that based on the above, the belt only needs to elongate by around 0.16mm which is very small because this is a carbon fiber belt. So we could do some geometry based on where the tensioner is to figure out how far it must move, but we can say it's probably in the realm of a few millimeters so if our tensioner is capable of moving more than that, we're probably ok!

Note Jan 14, 2022.png

I want to leave you with this summary in the form of a graph — if we plot the pre-load tension we apply to both sides of the belt vs. the total tension force the belt carries when a torque "tau" is applied. We see the above graph. The distance between the lines is always equal to the net rotational force applied to the belt tau/r! 

There are other things we need to think about when designing belt drives for robots, such as the resonant frequency of the belt for control purposes. But this is already a lot so we'll come back to that in a later post.

Special thanks to Ben Katz + Andrew SaLoutos for help on this one!

#belts #tension #engineering #part-selection #drive-design

bottom of page