This post was originally published by Sajiv Shah at Towards Data Science
An overview of a recent paper on a novel simplistic variable-stiffness actuator design for legged robots.
This article is an overview of the motivation and work presented in the recent work “SiMPLeR: A Series-Elastic Manipulator with Passive Variable Stiffness for Legged Robots” which details the design of a variable stiffness actuator and its application to a legged robot platform. This paper will be presented at the IEEE CACRE 2021 conference. The focus of this article will be the reason why such an actuator is necessary for robots, and why it has been a large goal for researchers over the past decade to design methods for robotic joints to exhibit behaviors similar to animal muscle pairs.
While a task such as grabbing an object sounds extremely simple for humans, robots such as robotic arms with grippers have an incredibly difficult time consistently picking and placing objects accurately. In the case of grasping, many researchers assume that the biggest challenge robots face is knowing the best approach to picking up the physical object. However, the largest overlooked problem is the fact that the robot itself does not have sensing capabilities to know its current state.
Imagine we train a grasper, as shown above, to pick up a tic-tac box. This mechanism is similar to many found in large industrial robots in the sense that it has no compliance and no force sensing. The gripper is equipped with a servo motor, meaning controlling the position of the gripper is easy. The user can essentially input a position for the motor to go to, and the motor will go to that position unless opposed by a force that it cannot overcome.
To pick up a box, a user may tell the gripper to position itself so the two “fingers” are on either side of the box, and then close its fingers a certain distance so the box is held. While this may work a few times with a rigid box with frictional surfaces, introducing a box that is just millimeters smaller can cause the entire system to fail: the grippers will not be in contact with the box, and it will simply slip through the fingers. In a large-scale manufacturing process, a simple failure to move an object could halt production and be a major issue.
Humans don’t face this issue as we are able to use our senses to determine whether our fingers are placing enough pressure on an object to hold it in our hands. So how can we mimic this in robots? Well, early researches placed pressure sensors on the ends of grippers, which actually worked fairly well — for this specific problem. For multi-jointed robots such as robotic arms, which usually have 6 or 7 degrees of freedom, or rotational axis, using these sensors is not a viable solution. In addition, it does not solve the elasticity necessary for robots in many situations.
Elasticity, or compliance, in joints, is key to absorbing energy and operating safely. Imagine that every time you jumped off a structure on the playground, your legs were not able to absorb the energy of you slamming into the ground at a high speed, and your bones had to bear the load. Painful. For legged robots that have rigid joints, where the motor is directly connected to the output, most landing situations end in a broken robot unless fast, precise control loops are used. For this reason and many more, elastic joints were invented. Elastic joints are simple in their structure, composed of an elastic material such as a spring or bungee cord between the motor and output. Instead of directly moving the output, the motor pulls on or relaxes the elastic, which then applies a force on the output and moves it.
With the development of elastic joints such as the common Series-Elastic Actuator , researchers began to examine the advantages of variable stiffness in animal joints and design actuators that could mimic this behavior in robots.
Antagonistic Muscle-Pairs & Variable-Stiffness
Human muscle pairs (image above) consist of an agonist and antagonist muscle, which work together to control the stiffness and position of the joint. When in a low stiffness setting, such as when landing from hopping, the muscles are relaxed and able to absorb energy and allow the joint to rotate freely of control to a certain extent. In a high stiffness setting, such as when preparing to jump a high distance, both muscles contract to control the joint position precisely and to exert a high force over a short deflection.
In traditional elastic joints, there was no way to control stiffness. The elastic material had a fixed stress/strain relationship, where it would need to be pulled a specific amount to exert a specific force. To make robotic joints behave more like animal joints, we would need to design a method for the stress/strain relationship of the elastic material to be varied by an additional actuator. This type of actuator is known as a Variable Stiffness Actuator (VSA).
Passive/Active Compliance, and Existing VSAs
Compliance is implemented in robots through two major methods, passive and active compliance. Active compliance uses a stiff actuator with integrated software control to create a virtual spring, while passive compliance uses a physical elastic component between the motor and output. While active compliance is more mechanically simple and allows for simple stiffness variation, passive compliance reacts much faster and can store energy. Passive Variable Stiffness Actuators (VSAs) address these problems by allowing robots to vary the compliance in their joints. While compliant mechanisms apply a restoring force that is proportional to their elastic deflection, VSAs decouple this nature and use an additional actuator to vary stiffness.
While many commercial robots use active VSAs as they are mechanically simpler and now feasible due to improvements in electronics and software, passive VSAs are much faster and are more suitable for environments in which robots experience sudden impacts or collisions. Due to these benefits, we mainly cover the work of passive VSAs.
Many passive VSAs are modifications of concepts brought about by fixed compliant actuators. Methods of achieving passive variable stiffness fall into three main categories: Equilibrium controlled stiffness, Antagonistic controlled stiffness, and structure controlled stiffness. Equilibrium-controlled actuators simulate variable stiffness with impedance control. Antagonistic controlled stiffness uses non-linear springs and a pair of motors for stiffness and position control. Structure-controlled stiffness explores the variation of the structure of materials to control stiffness. More about the existing actuators that fall under these categories can be found in the paper.
Our design addresses the complexity and cost of existing VSAs by using low-cost torsion springs. We configure these torsion springs, which have a linear torque-angle relationship, to apply a non-linear inward force in a single dimension. By using two of these springs in a timing belt transmission, we create an antagonistic setup similar to that of animal muscle pairs. We adjust the pretension of our springs with an additional actuator which simply adjusts the distance of the drive motor relative to the joint, pulling or relaxing the springs.
Torsion springs (force diagram above) apply torque along their legs based on the angle between their legs. Similar to linear extension or compression springs, the torque applied can be approximated by a fixed torsional stiffness constantκmultiplied by the angle of displacement (φ) However, when pulled apart outwards by their ends linearly, torsion springs supply an inward force that has a non-linear relationship with the linear extension (x), which is half the joint-motor separation distance.
Since the stress-strain relationship is non-linear, there is no longer a spring “constant”. We refer to the instantaneous change in stress per change in the strain as the stiffness function σ:
where (r_s) is the length of a leg of the torsion spring, in meters. The linear extension reaches a maximum at, as the legs of the spring are 180 degrees apart. At this point, this spring acts analogous to a rigid body in the dimension parallel to its legs, as the spring force acts perpendicular to this dimension.
We replace the linear springs in a traditional antagonistic belt-driven SEA with our torsion springs and determine that stiffness can be varied by changing the initial length of the torsion springs, which determines their pretension. To automate the process of setting the desired pretension, an additional actuator is required. To maintain the extension of the springs, a high energy cost is endured if the extension actuator is backdrivable. Additionally, in the case of power failure, while the actuator is carrying a load, the springs would release their energy and collapse, creating a low joint stiffness. This could result in catastrophic hardware failure, as a robot such as a quadruped will collapse to the ground. When using a mechanism such as an inefficient acme screw or a worm gear, which both have a low tendency to backdrive, the energy cost decreases, and the system holds its position in case of a power failure.
The image above demonstrates how an acme screw is used in our actuator to move the motor location relative to the joint, which in turn changes the pretension of the springs. It also shows the dynamics of the torsion springs as the joint is displaced independently of the motor. In our antagonistic setup, the torque on the joint when the spring forces are imbalanced is a function of the pretension (x_i) and the angle of displacement (θ), and is modeled by the equation:
where (r_p) is the radius of the pulley and σ(x)is the stiffness function defined earlier. Due to space requirements, r_p must at a minimum be r_s in order to operate in the full stiffness range, or the springs will rub against the belt in low stiffness settings.
The image above shows a plot of the general relationship between pretension, deflection, and torque. The actuator experiences the biggest variance in joint torque in the upper range of pretension, and a low variance in joint torque in the lower range of pretension. We show that with this design, we can vary torque by solely varying the pretension and therefore can vary stiffness.
Our leg (image at top of article) consists of an upper and lower segment, which rotate about a thigh and knee joint, respectively. The thigh joint is mounted to a horizontal piece of extrusion. On the extrusion, two sliding mechanisms are mounted, one which is not motorized and allows the leg to slide up and down on a vertical beam (label A), and one that allows the thigh motor to change its distance relative to the joint (label B).
To accurately test the use of our actuator, we mechanically linked the knee joint to the thigh joint using a Cardan gear system. This system rotates the knee joint at twice the angle of the thigh joint rotation, keeping the foot, or contact point of the leg at the ground, completely vertical with the point at which the thigh joint mounts on the horizontal beam.
Before we begin to experiment with the application of our actuator specific to legged robots, we must first confirm that the actuator behaves predictably according to the theoretical models we earlier defined.
We demonstrate this through two experiments, and ultimately determine the actuator behaves with very little deviation from the predicted models.
Our setup does not allow for the measurement of the forward velocity of the leg, so we instead experiment with hopping. Hopping and running share many dynamic similarities as they are both cyclic motions that apply a force to the ground to accelerate the center of mass of the robot.
To repeatedly reverse the direction of the joint rotation, as is done in a hopping motion, a torque must be applied to decelerate the leg and then accelerate it in the opposite direction. In a low stiffness setting, the springs must deflect a large amount from the motor position to achieve the required torque to rotate the leg. Once in motion, the springs will absorb the landing energy, and transfer it back into the leg motion as the cycle repeats. In a high stiffness setting, we predict that the rigid nature of the actuator will cause the leg to follow the motor position closely, with high stresses being placed on the structure of the leg as the leg reverses direction.
We set the motor to position itself according to a periodic graph and measured the position of the leg height and angle using an ultrasonic sensor and encoder (images above). In a low stiffness setting, the joint position overshoots the motor position, and there is a higher period of oscillation. This demonstrates the low-speed hopping associated with low stiffness.
In a high stiffness setting, the system behaves similar to that of non-elastic belt transmission, with the joint position aligning almost exactly with the actuator position. We observed a slight offset, which is the result of the angular displacement required to create a torque that the spring system must apply to balance the gravitational force. While compliance is desired in robotic legs for many applications, our experiments show that a high stiffness is required for high-speed hopping and running, making variable stiffness in legs necessary.
By far the coolest experiment we ran was the oscillation-less experiment. It demonstrated the versatile application of our simple design.
We define the drop height h_1 as the height from the initial drop position to the first contact of the leg with the ground (image above). Forelegs with compliance, the springs must contract and expand to absorb the energy of the drop, as well as to apply a torque to balance the weight of the leg. This causes an additional joint deflection θ_d and an additional change in height h_2 given by:
An oscillation-less drop requires the drop energy to be completely absorbed by the springs. This must therefore satisfy:
We designed an experiment to find the optimal stiffness based on a set of parameters (h_g,h_1+h_2,θi) for which the leg does not oscillate upon landing but rather absorbs the energy in its springs. We set the final height of the system (h_g) to 29.5cm, the drop distance (h_1+h_2) to 13.5cm, and the initial leg angle θ_i to 35 degrees.
We determine the theoretical pretension for this drop scenario to be x_i = 0.07746m by algebraically iterating through the pretension values to find which value allows the leg to completely capture the gravitational potential energy in the springs, and have a net torque on the joint which balances the gravitational force at the desired final height (h_g).
We then tested multiple values to find the experimental optimal pretension.
The image above displays that at a pretension of x_i = 0.076m, the desirable output is achieved. This compares well with our theoretical model, with an error of just 1.885%. At this low error, the impact on the leg is minimal. We suspect that the measured pretension is lower as energy is lost to friction, and because lower torque from the springs is required as friction in the joints helps the leg remain upright.
The VSA design we propose in this paper has been shown to be mechanically simple and cheap. We demonstrate the large range of stiffness achieved at a low energy cost, with the ability to act analogous to a stiff actuator. Our experiments display the accuracy of our models and the effectiveness of our design.
Our next steps are to take the simplicity of our design into a more modular setup, which can revolve continuously and be applied to robots without belt transmissions. We also aim to design a passive VSA with a controllable torque vs deflection profile.
 G. Pratt and M. Williamson, “Series elastic actuators,” inProceedings1995 IEEE/RSJ International Conference on Intelligent Robots and systems. Human-Robot Interaction and Cooperative Robots, vol. 1,1995, pp. 399–406 vol.1
 L. Villani and J. De Schutter, “Force control,” inSpringer handbook of robotics. Springer, 2016, pp. 195–220.
 Y. Hu, M. Felis, and K. Mombaur, “Compliance analysis of human leg joints in level-ground walking with an optimal control approach,” in 2014 IEEE-RAS International Conference on Humanoid Robots, 2014, pp. 881–886.
This post was originally published by Sajiv Shah at Towards Data Science