Force Sensing with SEA's (Series Elastic Actuators)
Around 20 years ago, the idea of a series elastic actuator was first created and implemented into a robot. It allowed for a new method of using elastics and Hooke's law to determine the load on a robotic joint, while adding a sense of compliance.
The diagram above shows how a basic series elastic actuator is constructed. A motor is connected to a joint, but instead of using a standard belt and pulley system, an elastic element, such as metal springs, are added in the middle. Furthermore, two encoders (sensors that measure angular displacement and rotation) are used, one at each joint.
If you were to have a motor connected to a joint using an elastic element (literally like a rubber band or spring, anything stretchy that applies a force), one would be able to rotate the joint without rotating the motor. This may be tough for some to visualize and very easy for others, but if you had a motor connected to a joint using a chain-and-sprocket or belt-and-pulley system, moving either the motor or the joint would surely move the other end as they are connected by a tooth mesh. But if the belt or chain was stretchy or elastic, then moving the joint or motor might not necessarily move the other end, based on whether there is resistance at the other end. These may all sound like bad things, because you might think that you would not be able to move your joint, but this concept is what allows force sensing.
Before I get into the example below, I'd just like to remind everyone of Hooke's law, which is a law that is used to determine how much force an elastic element such as a metal spring exerts when it is displaced a specific amount. Hooke's law is F= k(x), where k is a spring constant which is different for almost every elastic element that exists, and x is the change in length. So if i had a spring that had a spring constant of 10 units, and i pulled that spring 5 inches from its natural position, the spring would supply a force of 50 (units).
Below i'm going to provide an extremely simplified broken down process that would essentially be done in milliseconds:
Now that the mechanism is setup, let's talk about how the force is actually calculated, which is fairly simple. Assume that an object is placed at the end joint, such as a ball or bottle of water. This object will create a torque on this joint because of gravity. Now, because the robot (just the 1-axis robot motor-joint system in this case) was not told how much weight this bottle of water may be, it is uncertain what torque to apply. And although the system could traditionally just continue to apply torque so that the joint holds its position using a feedback loop, this would not work for collaborative robots (which one of the end goals of force sensing). So the motor is not told to move because this joint is not expecting to receive a load. If a human were to put a bottle of water on the joint, the elastic belt would stretch as a torque is applied on the joint by the water bottle. Say the elastic is made of metal springs. The encoder at the joint would read that the joint has moved, let's say, 45 degrees (pi/4 radians). Well since the encoder at the motor has moved 0 degrees, and the encoder has moved 45 degrees, we have solved for one variable in Hooke's law. we know that arc-length is simply r(theta), we can multiply the angular displacement by the radius to get our x value in Hooke's law. Now, if one knows the spring constant of their elastic element (as they should), then calculating the force is simple. One just multiplies those two variables and finds the force. It's that simple.
If you are wondering how this works as a robotic joint because the joint is just sagging down, what happens is that the motor moves to cover for the angular displacement, and one spring remains in tension while the other slacks a little more. Then, the robot joint functions normally - for the most part.
SEA's have been used in many cases, and are often far more complex than the situation I described. In a later article I'll explain how I am experimenting with variable stiffness actuators using SEA's, how more complex SEA's are used, and how torsional springs have condensed the SEA mechanism. Feel free to email me at firstname.lastname@example.org if you would like a demo of an SEA (I learn better visually myself) and we can set up a call.