Robot Arm Torque Tutorial

This tutorial is intended to complement the Robot Arm Torque Calculator found in the Dynamic Tools section of GoRobotics. The equations used in the calculator to determine the torque required at any given lifting joint (raising the arm vertically) in a robotic arm are presented here. Note that the term “actuator” is used rather than motor because not all robotic arms necessarily use servo motors (some may use pneumatics, hydraulics, etc.).

Torque (T) is defined as a turning or twisting “force” and is calculated using the following relation:

The force (F) acts at a length (L) from a pivot point. In a vertical plane, the force acting on an object (causing it to fall) is the acceleration due to gravity (g = 9.81m/s2) multiplied by its mass:

The force above is also considered the object’s weight (W).

The torque required to hold a mass at a given distance from a pivot is therefore:

This can be found similarly by doing a torque balance about a point. Note that the length L is the PERPENDICULAR length from the pivot to the force.

Therefore, replacing F with m*g, we find the same equation above. This method is the more accurate way to find torque (using a torque balance).

In order to estimate the torque required at each joint, we must choose the worst case scenario.

In the above image, a link of length L is rotated clockwise. Only the perpendicular component of length between the pivot and the force is taken into account. We observe that this distance decreases from L3 to L1 (L1 being zero). Since the equation for torque is length (or distance) multiplied by the force, the greatest value will be obtained using L3, since F does not change. You can similarly rotate the link counterclockwise and observe the same effect.

It can be safe to assume that the actuators in the arm will be subjected to the highest torque when the arm is stretched horizontally. Although your robot may never be designed to encounter this scenario, it should not fail under its own weight if stretched horizontally without a load.

The weight of the object (the “load”) being held (A1 in the diagram), multiplied by the distance between its center of mass and the pivot gives the torque required at the pivot. The tool takes into consideration that the links may have a significant weight (W1, W2…) and assumes its center of mass is located at roughly the center of its length. The torques caused by these different masses must be added:

Note: do not confuse ‘A’ (the weight of the actuator or load) with ‘a’ (acceleration).

You may note that the actuator weight A2 as shown in the diagram below is not included when calculating the torque at that point. This is because the length between its center of mass and the pivot point is zero. Similarly, when calculating the torque required by the actuator A3, its own mass is not considered. The torque required at the second joint must be re-calculated with new lengths, as shown below (applied torque shown in pink):

Knowing that the link weight (W1, W2) are located in the center (middle) of the lengths, and the distance between actuators (L1 and L3 as in the diagram above) we re-write the equation as:


The tool only requires that the user enter the lengths of each link, which would be L1 and L3 above so the equation is shown accordingly. The torques at each subsequent joint can be found similarly, by re-calculating the lengths between each weight and each new pivot point.

Note: if any of the joints have two or more motors, they share the torque required evenly. Because the base of the arm is subjected to the highest torque, often two actuators are used instead of one.

More Advanced:

The above equations only deal with the case where the robot arm is being held horizontally (not in motion). This is not necessarily the “worst case” scenario. For the arm to move from a rest position, an acceleration is required. To solve for this added torque, it is known that the sum of torques acting at a pivot point is equal to the moment of inertia (I) multiplied by the angular acceleration (alpha):

To calculate the extra torque required to move (i.e. create an angular acceleration) you would calculate the moment of inertia of the part from the end to the pivot using the equation (or an equation similar to):

Note this equation calculates the moment of inertia about the center of mass. In the case of a robotic arm, the moment of inertia must take into consideration that the part is being rotated about a pivot point located a distance away from the center of mass and a second term ( +MR2 ) needs to be added. For each joint, the moment of inertia is calculated by adding the products of each individual mass (mi) by the square of its respective length from the pivot (ri). Note that the equation for calculating the moment of inertia to consider for actuator N omits the mass of the actuator at the pivot point (N-1):

Note: The equation used to calculate the moment of inertia above (in this case multiplied by a constant value of 1/2) is not universal but rather varies from part to part (hollow vs. solid bar, cylindrical vs. rectangular cross-section etc.). The moment of inertia also differs depending on which axis is considered (Ixx, Iyy, Izz can all be different). More information about moment of inertia can be found by doing a search on the internet.

In all cases considered here, ‘r’ represents the distance from the center of mass to the pivot. Since the moment of inertia varies tremendously from part to part, angular acceleration is not taken into consideration with the Robot Arm Torque Calculator. Instead, to correct for possible angular acceleration, a “safety factor” is used and set to 2 by default. As with all dynamic tools, inefficiencies in the actuators and joints themselves must also be taken into consideration. This way, the motor at each joint will be able to provide more than the required torque to keep the arm stationary. The required torque to accelerate the weight being support by an actuator from a static position can be calculated using the following relation:


This is a companion discussion topic for the original entry at https://community.robotshop.com/tutorials/show/robot-arm-torque-tutorial

Hello, this tutorial was very insightful. I was really impressed with the simplicity all the different aspects of the torque calculation was done. Even a complete novice would understand what’s going on. Well done. However, i’m trying to design and simulate a 2 Link robot arm, with 3 degree of freedom using Lagrangian dynamics. I intend to do my simulation using Matlab/Simulink. I’ve derived my dynamic equations for torques 1 and 2 in the x and y directions but having problems with the rotation on the z axis. I need some suggestion on this if that’s okay. Thank you.

@Bruno Akinjide Orisanaiye If the arm is well balanced, the torque needs to counteract inertia and not much else.

Hi Coleman…I am doing a similar work of calculating the torques and forces when the end effector does a few sequences.I have linear movements available with me but i need to know how to back calculate.If you could please share your id by sending to my email id,that would be great.I could well explain in detail.Any help on this would be appreciated.

@Neelam Gupta The calculations need to be based around torque. If you have a specific setup, you need to know each length and each weight, and the center of weight of each object. You can then calculate the torque at each joint based on a variable angle. Unfortunately we do not provide design or consultation services so we cannot take a lot of time to develop the equations for you.

Hello Coleman, I got a doubt. Consider a robot arm at static position. Now the motor holding the arm at that position is applying certain force(torque) to hold it. Does Gear ratio plays its role here? Further how to convert this force to power?

@Anto Do you mean adding an additional gear ratio after the motor output shaft? If so, then yes, it will affect the torque required by the motor. You would obtain the power based on the motor itself; we strongly suggest searching for an appropriate motor based on the torque required, and then choosing a voltage. You will get the power from the motor’s specs.

Hello Coleman, i’m trying to design an articulated robotic arm, but only I can use some motors that i already have. So i’m looking for an equation that allows me to calculate the ideal length of the segments, from the max torque of the actuators, weight, and the desired total length of the arm.

I know is an strange way to calculate an structure, but there is no way to get other actuators, and i want to give the best use to these i have.

The max torque of each motor was 20 kg/cm (shoulder), 8 kg/cm (elbow), 3 kg/cm (wrist, one for rotation), I hope these torques are enough for an 40-50cm arm.

Sorry if i’ve wrote something wrong, or with a poor redaction.

Thanks in advance.

@Santiago How many degrees of freedom do you want your arm to have? Note that if you want anything greater than one degree of freedom, you’ll have quite a few unknowns and you’ll need to experiment with lengths and payloads. You can plug in the known values into the calculator to experiment: https://www.robotshop.com/blog/en/robot-arm-torque-calculator-9712 The calculated torque required will need to be less than what you have available.

Yes, I’m trying to make a 6 or 7 DOF arm, that puts the maths quite difficult for do the backward calculation. Thanks for the calculator and the quick answer :slight_smile: i will do trial and error for not surpass my servo’s torque.torque.

@Santiago You will need to understand the principle of torque. The servos closer to the base will need to be the most powerful as they have to support the most load. As you move along the arm, the servos should be lighter / smaller.

Yes, i understand the principle. I’m thinking put the more powerful servo (about 25kg/cm and 120g weight) on the base. On the next articulation, i’ll put the 8 kg/cm servo with a weight of 55g. And on the next articulation a servo with 3kg/cm and 45g of weight. From this point to the end I have two servos with 1.5kg/cm and 30g each one, for rotate y open /close the gripper. Thanks for the reply, I hope will post the finished arm and his wheeled platform before the end of the year…

(Sorry if I misspelled something or with a poor redaction, I’m using google translate for do corrections, but my english it’s not the best ) Thanks a lot :slight_smile:

hello mr.coleman
im trying to calculate torque of 6 degrees robot cuz i want to build it like CMA GR 6100
and i just want to know this formulas is that true for a big arm of robot ???

@khashayar The basic equations are valid for any sized arm. Note that if you are considering creating something that size, you might want to use more involved equations which take into consideration the efficiencies, inertia etc.

hello again mr.coleman thanks for answer
in that formula i mean w1 and w2 is that means half weight of link?
so what about the speed of robot for movement ???

@khashayar W1, W2 etc are the weight of each link section (not half). We assume the weight of the link to be halfway between the actuators (for simpler calculations). The speed is not factored into the equations - we are only considering static forces to get approximations.

thanks alot mr.coleman
i calculated t1 and t2 for my robot that is 447n.m t2 2157n.m
so if i take it double for each joint 894 & 4314 for the best work is it good?

@khashayar Doubling the value might be a bit overkill, but you would need a certain margin of error.

thanks alot mr.coleman
Dont you get upset if I ask one more question to you?

@khashayar We are happy to help, so do not hesitate to ask. We just try to avoid a lot of back and forth here in the comments section so if the questions are about a project you’re working on, we suggest creating a new topic on the RobotShop Forum.