Keywords

1 Introduction

Traditional robot manipulators, such as the ones designed for use in controlled industrial settings, typically use very stiff joints, heavy and rigid structures and powerful actuators. This is a practical way to isolate the influence of reaction forces caused by the load being manipulated. Nowadays, however, there has been an increasing interest in the design of humanoid robots with compliant joints, capable of sharing their workspace with people. These joints allow for much safer and smoother human/robot interaction. Compliance also allows these joints to absorb the energy of possible impacts, preventing gear damage. This energy can also be released back into the environment in a controlled way, allowing for efficient dynamic walking or even jumping or running.

Most solutions for adding compliance into the design of robot joints can be divided in two groups: (1) active (or simulated) compliance and (2) passive (or real) compliance. Simulated compliance is achieved through software, by continuously controlling the impedance of back-drivable electric motors (see for instance [5]). Real or passive compliance is achieved through the employment of real elastic elements, typically mechanical springs, in the design of the joints (see for instance [3]). For a while there has been some debate on the advantages and disadvantages of choosing active versus choosing passive compliance [10]. However, with regard to human/robot interactions, there is consensus that passive compliance ensures higher levels of safety. In a recent review [2] pointed to the importance of real compliance when building robotic arms for assistive technology.

This paper describes the design of an open-hardware/open-software Series Elastic Actuator (SEA). All project files are made available at our group’s website [9]. A SEA is a type of actuator of passive compliance, where a spring is placed in series with the rigid output thus granting elasticity to the system. Our designed device consists of software, firmware, electronics and a mechanical accessory that can be easily attached to the popular Dynamixel MX-28 series servo actuator, manufactured by Robotis, transforming it into a SEA. This servo actuator was chosen as the base due to its wide popularity within the RoboCup community, however the general idea could be easily adapted to fit most servo actuators of similar “RC-servo-style” design. The distinctive features of our design are its modularity and its versatility. Adding to these features the low manufacturing cost, we believe this device has great potential for application within the RoboCup context and elsewhere.

The remainder of this work is organized as follows: Sect. 2 explains the main details regarding the design as well as the modelling of the SEA. Section 3 shows some data regarding the actual construction of the device and a robot upgrade case. Section 4 presents the closing remarks and outlines potential future work.

2 Methodology

This section is divided in three subsections: Subsect. 2.1 presents the mechanical design of the SEA. Subsection 2.2 shows the electronics and firmware design. Subsection 2.3 gives a general idea of how the system is modelled as a whole.

2.1 Mechanics

The presented SEA follows a compact, modular, low cost mechanical design similar to that presented by Meyer et al. [8]. The device was designed such that it could be easily adapted to existing robot projects, requiring as little change as possible in the mechanics and electronics. It consists mainly of two parts that can rotate relative to each other, a set of two springs and a lid. See exploded view of Fig. 1. The bottom part consists of a disc with a wedge fixed to it. The middle part is a solid cylinder with a C-shaped cut. Both bottom and middle parts are designed to fit on top of each other with the bottom wedge inside the C-shaped cut, forming two arc-shaped chambers, where helical springs are installed. Finally a lid is designed to fit on top of the cylinder, in order to keep the springs enclosed inside their respective chambers. Figure 2 shows the assembled device (without electronics).

Fig. 1.
figure 1

CAD exploded view

Fig. 2.
figure 2

Assembled SEA

When a torque is applied, the bottom wedge slides through the C-shaped cut, expanding the spring of one chamber while compressing the spring in the other chamber. In order to simplify their fixture design, both springs are designed to work always under compression. Notice that the angular range of motion in this elastic element does not need to be large because the servo actuator can dynamically extend this range, in a closed feedback loop. Focusing on their specific application Meyer et al. [8] used elastomer based, non-linear springs in an asymmetric design (compliant in one direction, stiff in the other). We focused instead in a lower cost, more general design, so we used linear helical springs in a symmetrical setup allowing compliance in both directions.

2.2 Electronics

In order to read the displacement of the springs we designed a magnetometer-based contact-less encoder circuit. A disc shaped, radial rare-earth magnet (typically made of neodymium) is placed in the center of the assembly, right below the lid, but attached to the bottom part through a hole in the middle. The sensor board is placed on the lid above it, allowing the magnetometer to measure the direction of the generated magnetic field.

The chosen chip was the AS5043 manufactured by AMS, the same used inside the Dynamixel MX-28R. This SIC offers a 10 bit DAC interface resulting in a resolution of \(360\,\text {deg} / 2^{10}\text {steps} = 0.3515625\,\text {deg}/\text {step}\). There also is an analog output which could be combined with a custom external DAC to allow for even higher resolution, but for this version we used the 10 bit digital interface. The circuit was separated in two boards: (1) a small one just for the magnetometer, placed on top of the lid, and (2) an interface board to read the raw data from the sensor and communicate through RS485 protocol. Figures 3 and 4 show the schematics of the magnetometer and interface boards, respectively. To simplify the development of the firmware, the interface board was made compatible with the widely used Arduino standard [7].

Fig. 3.
figure 3

Magnetometer circuit

Fig. 4.
figure 4

Magnetometer’s interface circuit

The interface’s firmware was programmed to communicate using Dynamixel’s RS485 protocol. Each device can be programmed to receive a distinct id thus allowing them to communicate through the same bus as the original servo actuators, using the same protocol. This means no change is required in the electronics of existing robot projects, except for the extra wires to include the additional devices to the existing communication bus. Torque measuring and control is achieved via software, as explained in the section below.

2.3 Modelling

The spring converts angular deformation into torque and vice-versa thus allowing us to transform a position control problem into a torque control problem. In the case of a linear spring this relation is given by Hooke’s law, which here takes the form

$$\begin{aligned} \tau = - k \cdot \alpha \end{aligned}$$
(1)

where \(\tau \) is the torque, \(k\) is the linear spring stiffness constant and \(\alpha \) is the angular displacement of the device.

See the block diagram of Fig. 5 for a more complete overview of the model. The dotted box at the top represents the computer responsible for the mid-level control of the jointsFootnote 1. In the case of an upgrade we suppose the same original device used for communicating instructions and data with the servo actuators can be used. The dotted box below represents the original Dynamixel servo actuator, without any firmware changes.

Fig. 5.
figure 5

Block diagram of the SEA system

As usual, the rigid servo actuators are programmed for position control. These try to minimize an error \(e = \beta ^{*} - \beta \), where \(\beta ^{*}\) and \(\beta \) denote respectively the desired and the current angular position. When there is no external load (\(\tau = 0\)) the SEA assembly rotates as a whole and \(\alpha = 0\). However when there is some load (\(\tau \ne 0\)) then a corresponding angular displacement of the spring \(\alpha \) will be read by the controller. The total angle of the joint as a whole can be easily obtained by summing \(\beta + \alpha \) and the result can be used normally (e.g. to calculate direct kinematics).

With Eq. (1), the angular displacement of the spring \(\alpha \) is used by the controller to calculate the torque \(\tau \) being applied by the load into the actuator. At this point, depending on the final application, either or both \(\tau \) and \(\beta +\alpha \) can be used combined with other tools such as robot’s inverse kinematics, Jacobian and dynamic models in order to decide a desired torque \(\tau ^{*}\) to be applied to the joint. Given this desired torque \(\tau ^{*}\), Eq. (1) can be used again, this time to calculate a desired spring displacement \(\alpha ^{*}\), and consequently the desired angular position to be sent to the servo actuator is calculated as \(\beta ^{*} = \alpha ^{*} - \alpha - \beta \).

3 Results

The parts were machined in aluminium using CNC code generated from the CAD drawings. To measure the stiffness of the assembled SEA we attached a lever to one of its sides while the other side was fixed to a bench using a vise. Then the lever was placed in the horizontal position and known weights were hung to it, while the resulting angular displacement was measured. To calculate the applied moment we used the projected length of the lever on the horizontal plane and the applied weight combined with the weight of the lever itself. Figure 6 shows the laboratory test results. Notice that larger displacements move the spring outside its range of linear behaviour. Considering only the linear range, the spring stiffness constant was estimated to be approximately \(k=0.02\,\text {deg}/\text {Nm}\). Given that the original actuators are rated at 2.35 Nm, the resulting torque range of up to 0.7 Nm found in this prototype is restrictive for many applications, however this can be easily adjusted by choosing a different set of springs.

Fig. 6.
figure 6

Stiffness test

In order to confirm our SEA’s potential for upgrading existing designs we adapted the device to the knees of an existing humanoid robot designed for the RoboCup Humanoid KidSize Soccer Tournament [1]. This robot is based on the DARwIn-OP platform [4]. All we needed to do was to partially change the design of a single part to accommodate the larger joint width so that the spring could be attached to the existing servo actuator. Figures 7 and 8 show respectively the exploded CAD view and the picture of the upgrade.

Fig. 7.
figure 7

Exploded view of the knee upgrade showing internal parts of the SEA

Fig. 8.
figure 8

Humanoid robot based on the DARwIn-OP platform, adapted to use the SEA in its knees

Fig. 9.
figure 9

Prototype of a two-link planar robot for assisting on hand movements

4 Discussion and Future Work

This paper presented the implementation of a modular and low cost SEA to be used for adding compliance and torque control to existing rigid robot designs. This is the first version of an open software and open hardware system which we hope can be copied and improved upon by other roboticists. We are currently focusing on improving the quality of the design and working on the dynamical model. We have also started testing the design using an alternative rubber-like material instead of helicoidal springs.

Upon completion of field tests with current setup with small servos and robots, the authors plan to apply the findings to larger robots with stronger servo drives. We consider compliance of the joints an increasingly crucial property for the robustness of larger robots, especially with larger weights and falling heights.

On another case study, we have recently started working on a two-link planar robot inspired on the robot-aided neuro-rehabilitation technology developed by Krebs and Volpe [6]. In this device we installed two of our SEAs, one in each joint transforming it into a compliant position and force controlling system. We used an ordinary pen as the end-effector. Pen movements are monitored allowing the application of corrective forces to user movements. This general framework allows not only for game-based neuro-rehabilitation applications but also for computer based dexterity enhancement, where the inference of user intent can be used to improve upon his or her actions (Fig. 9).

The same technology allows for a large variety of human-robot interactions, including exoskeletons, teaching by demonstration, telepresence with force-feedback, and much more.