Series Elastic Actuator Design

My first year in the Berkeley Emergent Space Tensegrities (BEST) Lab, I worked on the design of a compact series elastic actuator (SEA) that we could use on our tensegrity robot for both compliance and tension sensing.

A tensegrity robot is made entirely of cables and rods. Our lab’s robot has small DC motors on each rod that are used to spool in the cables. By changing the cable lengths, we deform the robot’s structure, making it move.

If the cables were rigid, the structure would not deform easily. The robot’s current design (pictured below) uses an extension spring in series with each cable so that the robot is compliant.


Tensegrity robot with cable and spring highlighted (image source at bottom of article)

I wanted to see if we could replace the extension spring with a torsion spring coupled directly to the motor shaft (aka, an SEA). Since a torsion spring has a linear relationship between torque and angular deflection, the torque can be found by measuring the spring’s angular deflection using encoders. Assuming the cable is tangent to the spool, the cable tension can be found from the torque. Thus an SEA enables both compliance and tension sensing.

I started by defining the functional requirements: operate for cable tension of up to 15 N and have a maximum diameter of 5 cm. I sketched design concepts to fix one leg of the torsion spring to the motor shaft and the other to the spool.  I developed a design spreadsheet to check critical parameters for the torsion spring, such as expected angular displacement and clearances. Then I created a final design in SolidWorks, as shown below.

SEA CAD assembly

SolidWorks model of SEA design

Next, I created the prototype pictured below. I selected and ordered a torsion spring, ball bearings, screws, and encoders. I 3D-printed a spool (green component that secures one leg of the torsion spring) and hub (blue component that connects the encoder shaft to the spool). I machined an adapter (cylindrical post connected to the motor shaft), spring guard (cylindrical part connected to the adapter that secures the other leg of the spring, not visible), and support brackets (L-shaped brackets that hold the assembly).

SEA prototype

SEA prototype

Finally, I conducted a static test of the SEA. I breadboarded a circuit with the motor, encoders, and Arduino microcontroller. I recorded the spool encoder readings (motor encoder remained at zero) as I loaded and unloaded the spool with total mass of 100, 500, 1000, and 1500 g (roughly 1, 5, 10, and 15 N).

The results (shown below) weren’t what I expected. The good news: repeatable behavior, with approximate linearity in the loading case between 1 and 10 N. The bad news: significant hysteresis.

SEA calibration data.PNG

It’s possible the spring isn’t deflecting according to specification. Another possibility is that error stack-up in the parts is resulting in the spring moving out of place. Or there could be some pinching in the bearings. The next step for the project is investigating the cause of the hysteresis.

By designing this SEA, I developed the following skills:

  • Developing design concepts
  • Modeling parts in SolidWorks
  • Designing parts for 3D-printing
  • Machining using the lathe and mill
  • Assembly with an arbor press

Thanks to Lee-Huang Chen, another graduate student in the BEST Lab, for his feedback as I designed the SEA.


Image source: Chen L, Kim K, Tang E, et al. Soft Spherical Tensegrity Robot Design Using Rod-Centered Actuation and Control. ASME. J. Mechanisms Robotics. 2017;9(2):025001-025001-9. doi:10.1115/1.4036014.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s