1 Introduction

Human–robot interaction is constantly evolving and the promising advances in this research field have been recorded in recent years. As a typical physical human–robot interaction, exoskeleton robots have been devised to improve the physical performance of healthy users [1] or to rehabilitate paralyzed users [2,3,4]. They must operate in a manner compatible with the human biomechanics without restricting user’s movements [5, 6]. The most of the exoskeleton robots employ electric motors directly to provide desired torque and motion for robot joints. However, considering the interaction with the user or the external environment, the use of rigid actuators in exoskeleton robots is not appropriate at all.

The compliance for exoskeleton systems is of great importance when considering issues such as adaptability, stability, safety, and energy efficiency. Currently, exoskeleton robots demand compliance to comply with human biomechanics and adapt to environmental changes in periodic movements such as walking [7]. For this reason, compliant mechanisms using passive elastic elements are being developed and applied to these robots. Series elastic actuators [8] are the first example of a compliant actuator using passive component such as spring. These actuators are used in different designs of exoskeleton robots. MINDWALKER [9] and IHMC [10] employed series elastic actuators as a unit of actuation in the hip and knee joints. Zhang et al. [11] also used series elastic actuators to provide torque assistance to the leg with impaired walking function. Beyl et al. [12] used pneumatic actuators which drive knee joint of the exoskeleton robot as a torque supply. There are also a few exoskeleton robot designs in the literature that use variable stiffness actuators on their joints. Torrealba et al. [13] introduced a new exoskeleton robot that is driven by the compliant actuator for the walking and rehabilitation of the knee joint. The robot combines floating spring joint (FSJ) and bidirectional antagonistic variable stiffness (BAVS) models. Cestari et al. [14, 15] implemented a variable stiffness actuator called ARES based on controllable transmission ratio principle in the knee joint of ATLAS exoskeleton robot. Another compliant actuator based on the same principle was also presented by Zhu et al. [16], which was used to actively to assist and simulate knee movements for a load-carrying knee robot during movement. The exoskeleton robots referred up to here used compliant actuators only in knee and/or hip joints. In the exoskeleton robot revealed by Hyon et al. [17], the compliant actuators were used for ankle and knee.

This paper presents a novel biomimetic compliant lower limb exoskeleton robot (BioComEx) and its experimental evaluation. The performance of its ankle joint was investigated previously in [18]. In this study, the design and experimental evaluation of BioComEx was presented regarding all of its hip, knee, and ankle joints. The resulting robot employs variable stiffness actuators based on the controllable transmission ratio principle for ankle joints, while series elastic actuators are used for knee and hip joints. The developed control architectures for the whole exoskeleton system are desired to be used for both rehabilitation and load-carrying. The rehabilitation implementations refer to robot-in-charge mode applications in the terminology of human–robot interaction, while the load-carrying refers to the human-in-charge mode. Hence, BioComEx was tested in both modes. In the robot-in-charge mode, the robot joints need to track the predefined gait references to make the patient walk. PID position control algorithm is chosen to test of the robot in this mode. On the other hand, the robot needs to mimic the movement of healthy user joints in the human-in-charge mode and should ensure the harmony between the user and robot with a minimal interaction force as it is possible. Hence, a modular closed-loop impedance control algorithm utilizing separate force sensors located on each segment is developed for human-in-charge mode. Obviously, the biomimetic compact design of BioComEx and the developed modular control algorithm for human-in-charge mode are the contribution of this paper.

This paper is organized as follows: It firstly introduces the details of the kinematic design and power requirement analysis of the exoskeleton robot joints. This is followed by the mechanical design of BioComEx exoskeleton. Finally, experimental results of robot-in-charge and human-in-charge mode of the robot are presented in a detailed manner.

2 Design of BioComEx

We previously presented a short conference paper [19] about preliminary design of BioComEx to get initial comments from the professions. Besides, the preliminary test of ankle design of BioComEx was presented previously in a journal paper [18] under the name of VS-AnkleExo. In this section, the kinematic design and power requirement analysis of all joints of BioComEx and complete mechanical design are reviewed shortly before experimental evaluation of the robot.

2.1 Kinematic design and power requirement of BioComEx joints

Exoskeletons are expected to mimic the biomechanics behaviors of human body limbs. Therefore, understanding biological behavior of a gait cycle is very important while designing exoskeletons. To understand the biomechanical functioning of human ankle joint during a walking cycle, the moment–angle relative curve (Fig. 1) presented by Shamaei et al. [20] was examined.

Fig. 1
figure 1

Moment–angle relative curve for ankle joint [20]

Shamaei et al. [20] stated that, during the progress period of stance phase, the ankle joint is undergoing three subphases: dorsi-flexion (df), dual flexion (dl), and plantar flexion (pf). Since the forward pushing of the body occurred most during the period of progress, Shamaei et al. have taken the progress period as a center of stiffness estimation. Figure 1 shows the phases of the progress period and the moment–angle graph for the ankle joint. As seen in Fig. 1, the curves suitable for the moment–angle graph were drawn and quasi-stiffness was expressed for dorsi-flexion, dual flexion, and plantar flexion subphases [20]. This shows that the stiffness of the ankle joint is adjusted to different levels for different subphases of progress period of a gait cycle by the human ankle neuromuscular system. That is, the stiffness of the ankle continuously changes during the stance phase of the gait cycle. In order to satisfy compliance with the human ankle joint, the stiffness of the ankle joint of the robot should also be changed in an effective way. For this purpose, the variable stiffness actuator designs should be used in the ankle joint of exoskeletons.

There are various compliant actuator designs in the literature. In this section, the design concept of variable stiffness actuators is classified into three groups (controllable transmission ratio, antagonistic-controlled and mechanically controlled variable stiffness actuators), while series elastic actuators are a single group. The main criteria of appropriate variable stiffness actuator design for lower limb exoskeleton robot is the power requirement. The minimized power requirement provides the use of small motors and energy efficiency in exoskeletons. The power requirement of variable stiffness actuator designs has been investigated in [21], and this study concluded that the controllable transmission ratio type actuator provides the minimum power requirement and maximum energy efficiency. Therefore, it was selected for the design of the ankle joint of the robot. Figure 2a represents the sketch of the designed variable stiffness mechanism for the ankle joint. It is seen that the position of the ankle joint is determined by the first motor (M1), while the stiffness of the ankle joint is adjusted by the second motor (M2). As could be seen, the stiffness of the ankle joint is easily adjusted by changing the transmission ratio between the linear spring and the output link.

Fig. 2
figure 2

Schematic kinematic views of a the variable stiffness actuator mechanism in the ankle joint and b series elastic actuator mechanism in the knee and hip joints of BioComEx

Equation (1) is used to compute the necessary position (\(x_{1}\) shown in Fig. 2a) of the first motor as an input to a desired ankle joint moment (\(T_{\text{ank}}\)), which calculates the equilibrium position of the ankle joint.

$$x_{1} = \left( {a + L - x_{2} } \right)\tan \left( {\theta_{\text{ank}} } \right) + \frac{{T_{\text{ank}} x_{2}^{2} }}{{2L^{2} \left( {a + L - x_{2} } \right)K}}$$
(1)

Furthermore, Eq. (2) is used to calculate the position (\(x_{2}\) shown in Fig. 2a) of the force arm to be controlled by second motor (M2) for the desired ankle stiffness:

$$x_{2} = \frac{{\left( {a + L} \right)L}}{{L + \cos \left( {\theta_{\text{ank}} } \right)\sqrt {\frac{{K_{{\theta {\text{ank}}}} }}{2K}} }}$$
(2)

where \(\theta_{\text{ank}} ,\;K_{{\theta {\text{ank}}}}\) and \(K\) represent the position of the ankle, the desired ankle rotational stiffness and the spring constant used in the variable stiffness actuator mechanism, respectively, while a and L represent the design constraints shown in Fig. 2a.

Then, to calculate the forces to be applied by the first and the second motors, Eq. (3) and Eq. (4) can be used, respectively;

$$F_{m1} = - 2K\frac{{L^{2} }}{{x_{2}^{2} }}\left[ {\left( {a + L - x_{2} } \right)\tan \left( {\theta_{\text{ank}} } \right)} \right]$$
(3)
$$F_{m2} = F_{\text{ank}} \left[ {\cos \alpha *\sin \alpha + \cos \left( {\theta_{\text{ank}} } \right)\sin \left( {\theta_{\text{ank}} } \right)} \right]$$
(4)

where \(\alpha = \arctan \left[ {\frac{{x_{1} - \left( {a + L - x_{2} } \right)\tan \left( {\theta_{\text{ank}} } \right)}}{{x_{2} }})} \right]\)

Lastly, Eq. (5) is used to calculate the total power requirement (P) of the mechanism during gait cycle:

$$P = P_{m1} + P_{m2} = F_{m1} \dot{x}_{1} + F_{m2} \dot{x}_{2}$$
(5)

To understand the biomechanical functioning of human knee and hip joints during a walking cycle, the moment–angle relative curves (Fig. 3) presented by Shamaei et al. [22, 23] were examined. For the knee joint, the stance phase is divided into two subphases as weight acceptance and stance terminal phase. Shamaei et al. [22] discussed the weight acceptance phase for stiffness estimation. Because in this phase, the knee supports the body weight by applying a large moment [22]. The weight acceptance phase of the knee consists of flexion and extension subphases. As seen in Fig. 3a, the extension phase stiffness (\(K_{e}\)) and flexion phase stiffness (\(K_{f}\)) are very close and they can be represented by a single average stiffness (K). For the hip joint, Shamaei et al. [23] stated that the stance phase of the gait cycle in the sagittal plane is subdivided into three subphases: initial, mid-, and terminal stance phase. Because the main loading occurs in the terminal stance phase, Shamaei et al. [23] focused on this phase for the hip joint stiffness estimation. In the terminal stance phase, the hip passes a flexible loading phase consisting of an extension state in which the energy is stored and a flexion state in which the stored energy is released. As seen in Fig. 3b, the extension state stiffness (\(K_{e}\)) and flexion state stiffness (\(K_{f}\)) are very close, and they can be represented by a single average stiffness (K). As a result, Shamaei et al. [22, 23] concluded that knee and hip joints of the exoskeletons and biped robots can be designed with linear springs for the simplicity. Similar conclusions of spring-like behavior of knee and hip joints were made in references [24, 25] Therefore, the use of series elastic actuators having a constant stiffness value is sufficient to mimic human knee and hip joints. For this purpose, the series elastic actuator mechanism was utilized in the knee and hip joints of BioComEx as shown in Fig. 2. It is seen that the motor (M) moves the output of the knee and hip joints over two serially connected springs by using a ball screw mechanism.

Fig. 3
figure 3

Moment–angle relative curves for a knee and b hip joints [22, 23]

Similarly, Eqs. (6) and (7) give the force and displacement of the actuator mechanism used in the knee and hip joints:

$$F_{m} = \frac{{T_{\text{joint}} }}{{\left( {a + b} \right)}}$$
(6)
$$x = \frac{{T_{\text{joint}} }}{{2\left( {a + b} \right)K}} - \left( {a + b} \right) \tan \left( {\theta_{\text{joint}} } \right)$$
(7)

It is important to note that \(T_{\text{joint}}\) represents the joint moment and \(\theta_{\text{joint}}\) symbolizes the joint position. Besides, K is the spring stiffness and furthermore, a and b are the geometric constraints of the knee and hip joints.

In order to calculate the power requirement of the joints during walking cycle, the biomechanics data provided by Bovi [26] have been used in this section. The lower limbs joint angle and moment of an average adult with 80 kg weight are shown in Fig. 4. The stiffness variation of the variable stiffness ankle joint \(\left( {K_{{\theta {\text{ank}}}} } \right)\) during gait cycle is also required to calculate the power requirement. The stiffness variation of ankle joint was calculated by regarding the Ref. [27] and it is presented in Fig. 5. Note that the calculation of this stiffness variation of the ankle joint \(\left( {K_{{\theta {\text{ank}}}} } \right)\) is detailed in [21]. Finally, the power requirements of the exoskeleton joints (ankle, knee and hip) are given in Fig. 6 during one gait cycle.

Fig. 4
figure 4

Position and moment values during one gait cycle for a ankle, b knee, and c hip joints

Fig. 5
figure 5

Stiffness variation of ankle one gait cycle

Fig. 6
figure 6

Power requirements of the motors for a ankle, b knee and c hip joint of BioComEx

The value of the spring stiffness (K) used in all mechanisms is selected as 3 kN/m. It is found that 250 Watts of power is enough for the first motor (M1) of the ankle joint, while 10 Watts of power is required to change the stiffness value of the same joint. However, it is about 100 Watts and 80 Watts for knee and hip joints, respectively. The DC motors in the joints of the exoskeleton were selected to according to these power requirements. Brushless Direct Current (BLDC), EC-4pole 30, Maxon Motor AG is used to control equilibrium positions in all joint actuators. On the other hand, BLDC, EC45 flat, Maxon Motor AG is used to control the stiffness value of the ankle joint mechanism.

2.2 Mechanical design

This section is dedicated to detail of mechanical design of BioComEx. The design has an anthropomorphic structure similar to human lower limb kinematics. It is important to note that all joints of BioComEx are active while performing flexion and extension movements in sagittal plane. Figure 7 shows the manufactured view of BioComEx and its solid model applied on a dummy human model. The main goal in the design of the robot is to achieve compact design. It mainly comprises three segments: (1) the shank that constituted longitudinally with variable stiffness actuator design of ankle joint, (2) the thigh including two longitudinal series elastic actuators designed for knee and hip joints and (3) user back connection link. As could be seen ankle actuator mechanism is embedded into the shank as a whole; however, knee and hip actuator mechanisms are embedded together into the thigh. Besides, seven beam-type load cells are employed at the feet, shank, thigh, and the back orthosis part between the user and exoskeleton segments as shown in Fig. 7. Thus, they enable to develop modular force feedback control algorithms in every joint independently. Moreover, there is a force sensor in the foot which is used to measure the ground reaction forces. The other force sensor in the lower leg is used to measure interaction force between the human shank and the ankle exoskeleton. Furthermore, the force sensor on thigh of the exoskeleton measures the interaction force between the human thigh and knee exoskeleton. Finally, there is a one more force sensor in the back which is used to measure the interaction force between the back link and user torso. General specifications of BioComEx are depicted in Table 1. The lengths of the shank and thigh leg segment of the robot can be adjusted independently via adjustment mechanism for different users’ height. To make BioComEx design lighter, four types of materials such as kestamid, aluminum, steel, and composite are used in the different mechanisms of the design.

Fig. 7
figure 7

a Manufactured and b solid model views of BioComEx

Table 1 General specifications of BioComEx

The detailed solid models of joint actuators are shown in Fig. 8. The thigh leg segment of the robot is shown with two views as lower and upper thigh parts in Fig. 8. As could be seen, the ankle exoskeleton is composed of three parts: variable stiffness actuator mechanism, a height adjustment mechanism and an ankle foot orthosis. Motor-1 drives a box-shaped mechanism over two springs located antagonistically via a ball screw mechanism. Therefore, the ankle joint position is easily changed with the force arm on the lever arm. A linear motion mechanism is designed to obtain the variable stiffness. In this stiffness adjustment mechanism, Motor-2, which is directly connected to ball screw, is used to control the position of the force arm on the lever. The range of motion for the ankle joint is 300 of dorsal flexion and 500 of plantar flexion in the sagittal plane. Similarly, in the knee and hip joints, a box-shaped mechanism including two springs located antagonistically is moved vertically by a motor with a ball screw. Then, the force arm on the lever changes the position of the joints. Hip joint (upper thigh segment) is connected on the top of the knee joint (lower thigh segment) upside down with a height adjustment mechanism to constitute the complete thigh segment of the robot. The range of motion for the knee joint is 90° of flexion, while it is 40° of flexion and 20° of extension for hip joint.

Fig. 8
figure 8

Segments of BioComEx; a ankle, b knee and c hip joint

3 Experiments, results, and discussion

Exoskeleton robots are used for rehabilitation in paralyzed users and power augmentation in healthy users. Parallel to these purposes, BioComEx has been experimented with robot-in-charge mode for paralyzed users and human-in-charge mode for healthy users in this section. In robot-in-charge mode, the mimic of the walking trajectory obtained from the gait analysis post data was experimented on BioComEx to make the paralyzed user walk, while in human-in-charge mode, the simultaneous mimic of active healthy user was experimented on BioComEx. Those are explained with details in the next subsections.

3.1 Robot-in-charge experiment

In the robot-in-charge mode, the robot is active while the user is passive. That is, when the robot is worn by the user, the robot actively moves the user. Because of this, this mode is actually a kind of position-based trajectory tracking control. The position-based trajectory tracking control is crucial in rehabilitation where the user is fully passive. This control helps to provide continuous and repetitive exercise to the disabled limbs. For this purpose, a robot-in-charge experiment was conducted in this section to test the ability of BioComEx for making the user walk, that is, its ability to rehabilitate in a sense. To carry out the experiment, BioComEx was worn by the user and the user was desired to act as a person who cannot perform the walking function. Since the ability of the robot to make the user walk rather than balance is investigated in this experiment, the user was allowed to get support from the parallel bars on the right and left sides to ensure balancing via his arms.

In the robot-in-charge experiment, the position tracking control algorithm shown in Fig. 9 was implemented to evaluate the position control performance of BioComEx. The upper block diagram was used on variable stiffness actuators in the ankle joints, while the lower was used on series elastic actuators in the knee and hip joints. Although both block diagrams seems to be similar, the only difference is that the value of the stiffness comes from the stiffness adjustment mechanism in the variable stiffness actuator while it is constant in series elastic actuator. However, the stiffness of the variable stiffness actuator was set to a constant high value (900 Nm/rad) to simplify the tests in the robot-in-charge mode. In the block diagrams, \(q_{{{\text{VSA}} - {\text{ref}}}}\) and \(q_{{{\text{SEA}} - {\text{ref}}}}\) are joint trajectory references coming from the gait analysis post data, \(q_{{{\text{VSA}} - {\text{measured}}}}\) and \(q_{{{\text{SEA}} - {\text{measured}}}}\) are joint encoder measurements, and \(K\) is the stiffness value of the actuator. In the presented control algorithm, the motors are derived on velocity control mode. \(G_{\text{vel}}\) in the block diagram refers to the velocity controller of the motor driver. The outer position controller in the block diagram is denoted by \(G_{\text{pos}}\), which is a PID position controller. P, I and D parameters of the controller were tuned by Ziegler–Nichols method before conducting the robot-in-charge experiments.

Fig. 9
figure 9

Position control block diagram for variable stiffness actuator (VSA) of ankle joint (top) and series elastic actuator (SEA) of knee and hip joints (bottom)

In the robot-in-charge experiments, the data obtained from biomechanical gait analysis studies by Bovi et al. [26] were used as reference joint trajectory. Bovi et al. categorized the gait trajectory data according to the walking speed and subjects’ age [26]. In this study, the data of slow speed walking and adult subjects were used. The cycle time of the slow speed walking is nearly 2 s. However, this time period is still short for the rehabilitation of a fully passive paralyzed patient. Thus, this gait trajectory data was revised in such a way that the gait cycle time is 5 s. In this way, the disturbance effects coming from the user and ground reactions were minimized. Another point of preparing reference trajectory of the joints is to move the user legs from home position (user’s upright posture) to gait position at the beginning and to return the home position at the end of the walking. Thus, a time of 5 s was reserved to these start and finish posture arrangements. Between these times BioComEx made the user walk five steps. According to this, the reference gait trajectory of all joints of the lower limbs and the achieved robot joint positions are shown in Fig. 10. As seen from the figures, BioComEx follows the gait trajectory well without deviation from the reference. RMS errors are given on the figures. The results show that BioComEx is satisfactory for slow walking speeds in robot-in-charge mode. Note that a robust position control techniques need to be developed for fast walking speeds while changing ankle stiffness to eliminate disturbances coming from user and ground reactions. This is the subject of a future research for the authors.

Fig. 10
figure 10

Robot-in-charge experimental results of BioComEx

3.2 Human-in-charge experiment

In this section, BioComEx was investigated in human-in-charge mode. In this mode, a healthy user’s movements were detected by force sensors placed on all limbs of the robot separately, and depending on these sensor feedbacks, user tracking performance of BioComEx was tested. The robot is steered by a healthy user who wears it. Thus, the user is active, while the robot is passive in a sense. In the experiment, when the user starts to act, to measure the interaction forces between the robot and the user are used the force sensors, and the robot follows the user to reduce the measured force values to zero. In ideal case, the interaction forces would be zero.

In the human-in-charge experiments, a force feedback impedance control algorithm was applied to all robot joints separately to minimize the force measurements during movement. Figure 11 shows the block diagram of this control algorithm. As mentioned in the previous sections, BioComEx employs variable stiffness actuator on ankle joints while series elastic actuators on knee and hip joints. The control algorithm for both actuators is similar; the only difference is that the value of the stiffness comes from the stiffness adjustment mechanism in the variable stiffness actuator while it is constant in series elastic actuator. However, the stiffness of the variable stiffness actuator was set again to a constant high value (900 Nm/rad) to simplify the tests in the human-in-charge mode. As shown in Fig. 11, the control algorithm is multilayered. The innermost loop is the motor velocity control loop and Gvel in this loop is the controller of motor driver. The middle loop is the torque feedback control loop and \(G_{\text{torque}}\) in this loop is a PID torque controller. P, I and D parameters of this controller was tuned by a step input response in such a way that 0.1 s rise time, % 10 maximum overshoot, and % 2 steady-state error were adjusted. The outermost loop is the impedance control loop and \(G_{\text{impedance}}\) in this loop is the impedance model that is to be reflected to the user. In human-in-charge mode, the impedance model (\(G_{\text{impedance}}\)) is set to zero so that the robot can follow the user with minimum reaction and the experiments are performed accordingly. \(\theta_{\text{ref}}\) in the block diagram denotes the user joint movement, and it is measured by the robot joint. A dashed feedback line was attached to the outer of the diagram for this purpose.

Fig. 11
figure 11

Closed-loop impedance control algorithm block diagram for variable stiffness actuator-VSA of ankle joint (top) and series elastic actuator-SEA of knee and hip joints (bottom)

In this experiment, it is first necessary to determine which force sensor feedback should be utilized at which joint for the impedance control algorithm to work on the joints correctly. For this, the flowchart shown in Fig. 12 was constructed. This flowchart is described as follows. Two force sensors were used to measure the ground reaction force on the left and right legs of BioComEx. Firstly, these force sensors measure the ground reaction forces between the robot and ground. By comparing these measurements, it is decided which leg is in the stance phase and which leg is in the swing phase. If the value of the measured force is larger in the left foot \(\left( {F_{L} > F_{R} } \right)\), it is understood that the right foot is swinging and the left is in the stance phase. On contrary, if it is larger in the right foot \(\left( {F_{R} > F_{L} } \right)\), it is understood that the left foot is swinging and the right is in the stance phase. Then, starting from the swinging foot, the closed-loop impedance control algorithm was applied on each joint separately. In this algorithm applied separately in each joint, the force measurement taken from the previous limb of the joint is used as the feedback signal of the control algorithm. In order to explain this further, an exemplary illustration is given in Fig. 13.

Fig. 12
figure 12

Flowchart of the algorithm for human-in-charge experiment

Fig. 13
figure 13

Presentation of the impedance control application while left leg is in swing

In the illustration given in Fig. 13, the reaction forces between the foot and ground are measured and compared from the force sensors 1 and 7, which are located on the left and right foot. As a result of the comparison, if the left foot is in the stance phase, the closed-loop impedance control algorithm is applied to the right ankle joint with the measurement of force sensor numbered with 7, right knee with the number 6 force sensor, right hip with the number 5 force sensor, left hip with the number 4 force sensor, left knee with the number 3 force sensor, and left ankle with the number 2 force sensor. On contrary, when the right foot is stance phase, the impedance control algorithm is applied to the left ankle with the number 1 force sensor, left knee with the number 2 force sensor, left hip with the number 3 force sensor, right hip with the number 4 force sensor, right knee with the number 5 force sensor and right ankle with the number 6 force sensor.

In human-in-charge mode, the user is active while the robot is passive, so the user steers the robot. Therefore, in human-in-charge experiments, the user was asked to move all of his joints under 10-kg extra load during 35 s while his right leg was in the swinging position. It was repeated two times when the closed-loop impedance control algorithm is on and off. Figures 14, 15, 16 show the position changes of the joints and the corresponding interaction torques between the robot and user at the modes of controller are on and off (torque measurements are calculated by multiplying force measurement and distance of the force sensor to the joint T = F*L). The results show that the measured interaction torques, while the closed-loop control algorithm is enabled is eighty percent less than the measured ones whenever the control system is disabled. In other words, with the closed-loop impedance control algorithm applied separately on each joint, the interaction torque between the user and the robot has been enormously reduced and the user–robot compatibility has been improved. This indicated that the modular closed-loop impedance control algorithm helps the healthy user to carry the loads which is hanging on the back of the robot. This experiment is only preliminary experiments in human-in-charge mode to test whether the modular closed-loop control algorithms is efficient. Figure 17 shows the different postures of the robot and human while the human-in-charge experiment was carried out.

Fig. 14
figure 14

Interaction torque and position changes for right and left ankle with closed-loop impedance control (red-dash) and without control (blue-solid) in human-in-charge mode (color figure online)

Fig. 15
figure 15

Interaction torque and position changes for right and left knee with closed-loop impedance control (red-dash) and without control (blue-solid) in human-in-charge mode (color figure online)

Fig. 16
figure 16

Interaction torque and position changes for right and left hip with closed-loop impedance control (red-dash) and without control (blue-solid) in human-in-charge mode (color figure online)

Fig. 17
figure 17

A group of posture views of the robot and human in the human-in-charge experiments

4 Conclusions

In this paper, we present a novel biomimetic lower limb exoskeleton (BioComEx) concept consisting of variable stiffness actuator for ankle joint and series elastic actuators for knee and hip joints. It is inspired by human body lower limb biomechanics in the design of BioComEx. Although each joint contains compliant actuator designs, BioComEx is very compact thank to that the actuators were embedded longitudinally inside of the thigh and shank leg segments of the robot. To achieve lightweight wearable exoskeleton design, composite sheets, kestamid, and aluminum materials were used except for critical parts like joint shafts, joint bearings, and lever arms. Separate force sensors were employed on each segment in the design to achieve modular closed-loop control algorithms for each joint. The developed robot was tested in robot-in-charge and human-in-charge modes, respectively. PID position control algorithm was conducted to test the robot in robot-in-charge mode for paralyzed users. A modular closed-loop impedance control algorithm was developed and tested for human-in-charge mode for healthy users. In conclusion, BioComEx provided sufficiently satisfactory results for walking applications of paralyzed users and reducing the load of healthy users.