I am trying to calculate the max lifting capability of the OWI 535 arm. The robot has 3 DOF and 3 three 3 DC motor with the robot power source delivers an Operating Voltage current of 3 Volts. The motors have a Stall Torque 60g-cm. I would like to know how to do the math to calculate the lifting capacity.

The Robot has a wrist motion of 120 degrees, an extensive elbow range of 300 degrees, base rotation of 270 degrees, base motion of 180 degrees, vertical reach of 15 inches, horizontal reach of 12.6 inches, and lifting capacity of 100g

Again, I am attempting to use the robot information on the Society of Robots http://www.societyofrobots.com/robot_arm_calculator.shtml

I have middle and high school student that want to be able to calculate this information.

  • $\begingroup$ A word. My guess is that you'll get the most lifting power when the arm is moving like a Scissor Jack $\endgroup$
    – tuskiomi
    Commented Jun 30, 2017 at 19:42

1 Answer 1


To solve this analytically you need the following information (I have bolded that which you have not provided):

  • Stall torque for each joint
  • Mass and COM of each joint
  • Orientation of each joint relative to its parent joint (not given but I know the robot, they are all parallel to the ground)
  • Mass and COM of each link
  • Length of each link

I use the word joint and not motor here for simplicity. If you want to include things like gearing and other things which may make the joint stall torque different from the motor stall torque, then you will need to know these factors. If your motors are directly connected, you can assume the motor torque is the joint torque for simplicity.

I am also going to ignore the Omi 535's base joint (it is actually 4DOF) since it is orthogonal to the ground. Not having a go, I assume you ignore it too because you knew it experiences no torque due gravity, but it's probably worth mentioning for completeness.

Since all your motors are the same and aligned parallel to the floor, your job is easier. You just need to find the highest possible torque on any joint for any given payload, and then calculate the value of that payload that equals the joint stall torque.

For a robotic arm like yours where all joint axes are parallel to the ground in all configurations, the maximum torque for any joint occurs at the first joint when the arm is stretched out horizontally. This is because torque due to gravity is:

$\tau = m \cdot g \cdot r_{xy}$

That is, mass times gravity times the horizontal distance from the mass to the joint. You can see how the further any mass gets away from the joint horizontally, the higher the torque at the joint. The first joint has to deal with the mass of all the links and other joints plus the payload, and all these masses are furthest away from the first joint horizontally when the arm is fully outstretched.

The total torque at the first joint can be calculated by adding up the torque contributed by each mass along the arm (i.e the links, other joints and finally the payload): \begin{align} \tau_{max} &= \sum_im_i\cdot g \cdot r_i\\ &= g\sum_im_i \cdot r_i \\ &= g \cdot (m_{l_1} \cdot r_{l_1} + m_{j_2} \cdot r_{j_2} + m_{l_2} \cdot r_{l_2} + m_{j_3} \cdot r_{j_3} + m_{l_3} \cdot r_{l_3} + m_{payload} \cdot r_{payload}) \end{align}

Each $r$ value is the horizontal distance from that component's center of mass to the joint. If the COM of each joint lies on the joint axis, you can simply add up the lengths of the links preceding, since the arm is stretched horizontally. The $r_{payload}$ value should be simply the addition of all the lengths of the links.

The only variable on the RHS of the above equation that is unknown at this stage is $m_{payload}$. We want to know what this value is, when we set $\tau_{max}$ to our stall torque. By solving this equation we get the maximum payload of the arm: \begin{align} \tau_{stall} &= g \cdot (m_{l_1} \cdot r_{l_1} + m_{j_2} \cdot r_{j_2} + m_{l_2} \cdot r_{l_2} + m_{j_3} \cdot r_{j_3} + m_{l_3} \cdot r_{l_3} + m_{payload} \cdot r_{payload})\\ \frac{\tau_{stall}}{g} &= m_{l_1} \cdot r_{l_1} + m_{j_2} \cdot r_{j_2} + m_{l_2} \cdot r_{l_2} + m_{j_3} \cdot r_{j_3} + m_{l_3} \cdot r_{l_3} + m_{payload} \cdot r_{payload}\\ m_{payload} \cdot r_{payload} &= \frac{\tau_{stall}}{g} - m_{l_1} \cdot r_{l_1} - m_{j_2} \cdot r_{j_2} - m_{l_2} \cdot r_{l_2} + m_{j_3} \cdot r_{j_3} - m_{l_3} \cdot r_{l_3}\\ m_{payload} &= \frac{\frac{\tau_{stall}}{g} - m_{l_1} \cdot r_{l_1} - m_{j_2} \cdot r_{j_2} - m_{l_2} \cdot r_{l_2} + m_{j_3} \cdot r_{j_3} - m_{l_3} \cdot r_{l_3}}{r_{payload}}\\ \end{align}

This value is the mass at which the arm will not be able to move when holding it in this stretched out configuration. It does not mean it cannot hold this weight at all, since for any other configuration the maximum torque on any joint will be less.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.