Reading Applied Torque from a Servo

I’m a Mechanical Engineering student working on a school group project testing the effectiveness of ankle braces, and our goal is to display the data of how much torque is applied to our ankle model at a particular angle. We’re using a digital servo to rotate a plate to a specified angle, and are looking to find how to display the torque applied to the plate to the Serial Monitor. Images of the physical setup are attached. We’re using an Arduino Mega to control the servo, the version of Arduino we’re running is 1.8.13, and the servo we’re using is the Youleke 25KG High Torque RC Digital Servo with 25T Servo Horn (270) (from Amazon, link and specs below). We’ve been able to use the example code “Sweep” located under File-Examples-Servo to make it rotate (using the 5V power on the Arduino board), but are having trouble finding how to get it to output the torque data, or something so that we could calculate the torque that is being applied to the ankle model through the plate.

Servo specs, from the Amazon page:
Power cord is longer up to 15.75inches(40cm), and also send with a 25T adjustable metal servo arm
Operating voltage range: 4.8 - 6.8V
Operating speed ( 5.0V ): 0.15 sec/60 degree
Operating speed ( 6.8V ): 0.13 sec/60 degree
Stall torque ( 5.0V ): 21kg/cm
Stall torque ( 6.8V ): 25kg/cm
Control System: PWM(Pulse width modification)
Pulse width range: 500~2500 μsec
Neutral position: 1500μsec
Running degree: 270° (when 500~2500 μsec)
Dead band width: 3 μsec
Operating frequency: 50-330Hz
Rotating direction: Counterclockwise (when 500~2500 μsec)
Gear ratio: 275
Bearing: Double bearing
Connector wire: 17.7inches(450mm)
Motor: 3-pole(s)
Waterproof performance: IP66
Servo Amazon link: https://www.amazon.com/Youleke-Torque-Digital-Servo-Horn%EF%BC%88270%C2%B0%EF%BC%89/dp/B088BKJXVY/ref=pd_ybh_a_1?_encoding=UTF8&psc=1&refRID=J8SYQA5CY20C4R1DRSMW)

Setup Front View.png

Setup Side View.png

Setup Front View.png

Setup Side View.png

Since this is a school project, please tell us what information you need in order to compute "torque".

Paul

Well, torque is usually calculated by multiplying force applied times the perpendicular distance, but I don't know the applied force, plus it's going to be a distributed load with varying distances and forces along the ankle model. I was wondering if there was a way to get the torque applied from the servo, perhaps by measuring the variation in voltage/amperage and comparing it with the angle of rotation?

lupusoculi:
Well, torque is usually calculated by multiplying force applied times the perpendicular distance, but I don't know the applied force, plus it's going to be a distributed load with varying distances and forces along the ankle model. I was wondering if there was a way to get the torque applied from the servo, perhaps by measuring the variation in voltage/amperage and comparing it with the angle of rotation?

Have you tried measuring the voltage/amperage to see if that will help?
Paul

Does the ankle have anything to simulate tendons and or pressure on the ankle itself ?
If so strain gauges may be an answer.

Simply rotating an ankle bone with no attachments (ligaments, tendons, muscles) will give very little by way of readings as there will be a very low torque output.

Also DO NOT power servos directly from the Arduino unless you have a good supply of boards.
Servos should in almost all instances have thier own power supply and a common ground to the Arduino.

The load current drawn by the servo will tell you a lot about the torque, since this current is mainly due
to the load torque on the motor in the servo. However you won't get direction of the torque...

Does the ankle have anything to simulate tendons and or pressure on the ankle itself ?
If so strain gauges may be an answer.

Simply rotating an ankle bone with no attachments (ligaments, tendons, muscles) will give very little by way of readings as there will be a very low torque output.

Also DO NOT power servos directly from the Arduino unless you have a good supply of boards.
Servos should in almost all instances have thier own power supply and a common ground to the Arduino.

Yes, the ankle model does have tendons to simulate actual ankles. I'd try the strain gauge idea if I had the time to get one in. For the power, would you recommend using a battery instead? If so, how would it have the common ground with the Arduino? I didn't know that tip; all the projects I've done for class with Arduino have used the power from the board.

The load current drawn by the servo will tell you a lot about the torque, since this current is mainly due
to the load torque on the motor in the servo. However you won't get direction of the torque...

We're just needing the amount of torque for this; we should be able to figure out the direction based on the direction that the footplate turns. Any ideas on how to convert those current values to torque values? Or how to read the amperage instead of voltage? In class, we've just used the voltages or libraries to gather data, so reading the amperage instead is new to me, and I don't know which library/libraries might help.

From the questions it sounds like you may be in over your head with this project.
Your tutor should have all the details for driving servos from thier own supply, common ground, current measurement etc.

To measure current you certainly need a decent clamp meter or a similar sensor for the current range to be measured.

Arduino's can measure current with the correct sensor.

From the questions it sounds like you may be in over your head with this project.
Your tutor should have all the details for driving servos from thier own supply, common ground, current measurement etc.

To measure current you certainly need a decent clamp meter or a similar sensor for the current range to be measured.

Arduino's can measure current with the correct sensor.

That's why I'm asking for help. I kept seeing on Google that you could get the torque from amperage, but no dialogue on how to do that. This is for a class that doesn't normally require the use of an Arduino. I have reached out to a professor on campus that knows a good bit about Arduino, but haven't heard back from them yet.

Here are a few clues

In addition you need to modify your fixture too.

Setup Side View.png

Setup Side View.png

lupusoculi:
Yes, the ankle model does have tendons to simulate actual ankles. I'd try the strain gauge idea if I had the time to get one in. For the power, would you recommend using a battery instead? If so, how would it have the common ground with the Arduino? I didn't know that tip; all the projects I've done for class with Arduino have used the power from the board.We're just needing the amount of torque for this; we should be able to figure out the direction based on the direction that the footplate turns. Any ideas on how to convert those current values to torque values? Or how to read the amperage instead of voltage? In class, we've just used the voltages or libraries to gather data, so reading the amperage instead is new to me, and I don't know which library/libraries might help.

Current sensor measures current (most convert to a proportional voltage), the relationship with torque is linear.

Thanks guys! Those suggestions really helped!

You could of course also use two mechanical scales. One on each side of the foot pad.
It would be analog output and different scales may need to be tried to get the correct ones for the range.

It would give you a brand new meaning to "foot/pound" :smiling_imp:

lupusoculi:
For the power, would you recommend using a battery instead? If so, how would it have the common ground with the Arduino?

A good chunky battery would do the trick - try the 6V "lantern" type - the one with the springy contacts on top. For grounding, think of the battery '-' (negative) as 0V (the battery is a "floating" supply) and connect it to the Arduino GND.