Robot Leg Torque Tutorial

Hi! I agree that in the calculations in e.g. Tknee you are calculating the torque in the knee, but only if the knee was stiff. A motor would work against a torque from each side. The N1 part would be negative, but wouldn’t the 2*N2 part also be negative, since it is working against the torque of the motor?(assuming the motor is trying to contract the knee).

@Hozt Given that the weight of the robot is in the -z direction, only the normal force of the surface acting against the feet prevents it from falling (force balance)

Yes. I agree. The normal forces are all pointing upwards. But when calculating \Sigma T_{Knee}, the motor is trying to contract the joint (to keep it from falling down to the ground). Wouldnt all the normal forces be working against T_{knee }, hence have a negative sign, and all the parts with w1, w2, w3 etc. be working the same way as the motor, hence have a positive sign?
like this:
SUM(T_knee) = T1 - N1*(L1cos(ø1))
+W2
(L2cos(ø2)) + w3(L2cos(ø2))
+W4
(L2*(cos(ø2)) + L3) + 2W3*(L2cos(ø2) + 2L3)
+2W2
(L2cos(ø2) + 2L3)
+2W1
(2L2cos(ø2) + 2L3)
-2N2
(2L2cos(ø2) + 2L3 + L1cos(ø1)

The calculations in the tutorial is calculating the torque from the knee to a fixed point in space, which does not exist (unless you are holding on to the knee with your hand).
Am i mistaken?

@Hozt Appreciate the insight, and we are happy to take a look. If we take T1 as the positive, the weight (W1 to W4) must be downwards, while the normal force comes from the table / surface. The torque at the knee would be the sum. For simplicity, we must have the torque balance be zero (therefore zero motion, simply having the robot standing). The normal force is not acting “against the torque” but rather against the weight of the robot (W’s). If you’d like to include images, we might start a new topic on the RobotShop Forum.

I would like that. If you could send me an email (I assume you can find it from where I send these comments), so that I find the topic. The thing I have a problem in understanding is that the robot is applying a torque that would work the opposite ways on either side of the motor. Either contracting or extracting (?). If we imagine that the motor is just a joint with no motor, and the “robot” is simplified with equal links, just one link on either side, the sum(T) would be zero, but the joint would still collapse. If you could start a thread or send me an email, I could send you an illustration to help my explanation. (sorry for the bad english)

@Hozt You can create a new topic here (you’ll need to join anyway): https://www.robotshop.com/forum/hexapod-robots-f86 Call it something like “Hexapod Static Force Calculations”

sir how to calculate length of the actuator at the time of compression and expansion and how select the actuator length for two leg robot

@venugopal Unfortunately this tool does not cover the situation where a linear actuator is used (or for a two legged robot). You will need to do a force / torque diagram in order to know the lengths / stroke and force needed for each joint.

Thanks for this very easy to understand tutorial.

Hi, Just a clarification. In the equation, it is assumed both the right legs have the same weight hence you have used 2 x W3 while calculating the weight and L3 is taken as 2xL3. My question is since you have already multiplied by 2 to weight, then why again multiply 2xL3, shouldn’t it be as follows 2xW3(L3+L2 Cos theta2+L1 Cos theta1)??? Kindly clarify plz…

@ShanuNP Appreciate the feedback. It’s been a while since this was published, but the multiplication factor of 2 comes from the fact there are two W3 on the right side (with two legs lifted on the left, and one lifted on the right) which are keeping the robot standing. Very open to input, so if you suspect there is still an issue, can you create a new topic on the RobotShop Forum and link to it here? This comments section on the blog is a bit small / limited.

Sir, while calculating W4 you considered weight of 3 legs which are in air or not in contact with ground. But in the equation N1+2N2 you have considered W4 which has weight of 3 legs in it and also 6 times 3 motors, which according to you is weight of six legs due to neglecting weight of links. By that in the equation N1+2N2 it has weight of 9 legs. Can you please clarify on this sir.

@T G Vamsi Krishna Appreciate the input. The N1+2N2 equation is a force balance in the Y direction. Since only three feet are touching, the normal forces need to be equal to the total weight of the robot, including all legs. W4 includes the frame, battery, electronics and three raised legs, and W1, W2 and W3 are the weight of the actuators associated with the legs in contact with the ground (two per leg times three legs) - one in the shoulder and one in the knee. Does that make more sense?

Hello!
I’ve been going through the calculations and I was wondering to why is N1 + 2N2 = W4 + 6(W1 + W2 + W3), as that would come equal to Wframe + Welec + Wbattery + W3legs + 6*(W1 + W2 + W3), therefore 9 legs considered?
Thank you for the tutorial!

It’s been a while, but you seem to be correct in that W4 already includes the weight of the three raised legs (tripod gait), therefore the additional weight acting on the three legs which are in contact with the ground should be 3*(W1 + W2 + W3). Good catch!

N1 + 2*N2 = W4 + 3 * (W1 + W2 + W3),

Thank you very much!

Hello!

Thank you again for the tutorial.
I’ve added the equations in Matlab and I got a few weird results. I will paste the graphs below:

(Note that everything is in metric. For the weights on the right everything is in kilograms and then is multiplied as of F = m*g)

N1 and N2 have values as expected for a range of [-90;90] degrees for tetha1 and tetha2.
The weird results come at the values for T1 and T2. No matter the value of W4, the results stay the same and negative, which is very weird. I double and triple checked the equations to see if something cancels out by mistake but I didn’t see any flaw.

Do you have any recommendations to what it could be?

Thank you for your time

** Note that in the image Robot Mass, Carrying Mass are dummies and are not used as I am modifying W4 manually for dubugging

@JFPetri Unfortunately that’s a bit more involved than I can be at this time.