I have designed a 2 Degree of Freedom robot using dc motor and gearbox. However, I wanted the robot to be compliant as it'll be used in an unstructured environment with humans. I wanted to know if going SEA is a better option then using an impedance or admittance controller. For the moment I have been able to model the environment as spring and damper. But this model is not very robust. Is it a good idea to do a combination of passive and active compliance? I read in G.A. Pratt's report, and he states that SEA has drawbacks when small motions are required, but isn't this the problem with all compliance control. What are the advantages of SEA over conventional active compliance control methods?
What happens with an elastic actuator is that you have an elastic part between your motor output shaft and the link. This means that you can store energy in this elastic part during the motion, and release it at later stage in the motion. This is cool for intrinsic mechanical compliance, explosive tasks like hammering or throwing, where a classical joint would be destroyed or not able to provide as much end link velocity. This comes with the drawback that the control is way more complicated, you have to model the spring effects, when close to human you have to ensure safety as the spring can unload stored energy and hit human way faster than regular joint and last you don't have a very precise control of you end-effector because of all the elastic effects at play. One way to overcome some of those troubles is to use Variable stiffness Actuators (VSA) that allow to control the stiffness and shift from almost rigid joint to very compliant joint, at the cost of mechanical complexity and additional motor to actuate the stiffness mechanism.
On the other hand you have control techniques to implement software compliance in robot manipulator. What you get is compliance by mean of software, so usually external force measurement is required (F/T sensors, "torque" sensor in the joint). You don't get any of the energy storage/ velocity amplification. Those techniques are really mature (look for admittance/impedance filters, energy tank based control) and relatively easy to implement and more importantly easy to tune for your usage. On last benefit of those methods is that you can usually chose different compliance behavior for all axes of you end-effector, eg allowing stiff rotations and stiff vertical motion while allowing very compliant horizontal motion. This is usually great for human interaction as it helps for learning by demonstration and also for assisstive robots as you can chose "forbidden" motion to the user.