1 Introduction

People suffering from a neurological injury can be physically affected, limiting their movements, and decreasing their quality of life and participation in society. One of the treatments that can reduce or, in some cases, recover physical capacity due to a neurological injury is rehabilitation. Within the existing upper limb rehabilitation treatments, therapists can integrate passive and active rehabilitation exercises, whose purpose is to recover physical functions in users such as joint range of motion, soft tissue flexibility, muscle strength [1]. Passive therapy exercises consist of an external force moving the body of the rehabilitating subject [1]. In active therapy exercises, the user must make some physical effort that results in muscular activity [1, 2]. Active therapy, like passive therapy, promotes neuroplasticity and allows muscle strengthening [1]. However, for passive and active therapy to have the greatest benefits, they must be for long periods of time [1].

Some of the current challenges of physical therapies are centered on the number of therapists that, according to the article published in Landry, in 2016 [3], it is estimated that until 2030 there will be shortages of physical therapists across all U.S. states. Another major challenge in the therapy process is the physical contact between therapists and patients due to the current situation of COVID-19 [4]. A device that allows patients suffering from neurological injuries to perform passive and active exercises of long duration, without the need for physical contact and only with the supervision of a therapist are the exoskeletons, which are biomechatronic devices coupled to the person’s body and are considered a type of Wearable Robots (WRs) [5,6,7].

A distinctive aspect of WRs is their cognitive human–robot interaction (cHRI) and physical human–robot interaction (pHRI). cHRI and pHRI are considered human–robot interfaces (HRi) [8]. The acquisition of information for cHRI is through bioelectric signals, while pHRI is about kinematic and kinetic information. WRs are devices that, through the use of HRIs can improve the rehabilitation process in patients affected by neurological injuries, and therefore, can improve the quality of life [9]. However, as mentioned by Almenara et al. [10], the design of WRs for rehabilitation purposes is much more complex than other robotic devices due to the consideration of mechanism, WR-User Coupling, and control algorithms [10]. According to Almenara et al. [10], not considering design difficulties in WRs results in abandonment or lack of utilization of these technologies by the users. For example, in 2015, Almenara et al. [10] proposed a usability test based on ISO 9241–210:2010 for eliciting requirements for redesigning a WR for hand rehabilitation.

In 2018, Scotto et al. [11] presented a Kuka Light robot that uses electromyography signals within the control equations so that the user in rehabilitation has active participation in rehab. According to tests conducted by Scotto et al., the exoskeleton’s assistance to the rehab user reduces muscle fatigue and indicates that this may result in rehab users increasing their time in therapy. Like Scotto et al., Zhuang et al., Bahrami et al., and Yao et al., propose cHRI interfaces based on electromyography and use as control an admittance control that uses skeletal muscle modeling to operate [12,13,14].

In 2018, He et al. [15] proposed a non-portable exoskeleton whose assisted control called”Wrench- based control” consists of a user who is not yet capable enough to move his limbs correctly applying a force between his hand and a handle located on the robot limb and this interaction is used as the user’s intention to control the exoskeleton. Subsequently, once the user’s intention is identified, the exoskeleton proposes the realization of parametric trajectories to perform the desired movement. In 2018, Rose et al. [16] evaluated two handheld exoskeletons to determine if they meet the characteristics suitable for robotic devices intended as kinematic assessment tools. Rose et al. determines that a robotic system, whose purpose is to assess kinetic movement, must match the joints’ human capability and ensure anatomical alignment of the exoskeletons. In 2018 Tiboni et al. developed an elbow and wrist exoskeleton that allows passive and active rehabilitation exercises that use as input surface electromyography (sEMG) signals [17].

Several research groups have worked on different control algorithms based on admittance control in the last decades. For example, a pHRI approach for the robotic exoskeleton developed by admittance control incorporates the human’s motion intention and the unknown masses and moments of inertia in the robotic dynamics [18]. In [19] presents the framework of the adaptive admittance control for pHRI with human subject’s intention motion and dynamic uncertainties of the exoskeleton. In [20], Xiloyannis et al. presented a Soft WR that allows the assistance of an elbow. The presented exoskeleton uses a pHRI-based interface, where the user applies a force, and the exoskeleton follows the user’s trajectory. In tests conducted by Xiloyannis, the exoskeleton’s assistance reduces a person’s muscular effort by up to 50% or more, making the user increase in rehab time. In 2019 Laribi et al. [21] proposed a cable driven parallel robot for upper limb rehabilitation. The proposed robot consists of three tension systems, whose cable length is calculated based on genetic algorithms to produce the desired motion. In 2021 Curcio [6] proposed the design of an upper limb exoskeleton, whose topology is in the form of a parallel robot and whose purpose is to allow home therapies.

From the articles presented above, we can determine that most of these exoskeletons attempt to solve the design challenges for WR rehabilitation individually. Also, one of the most-used control algorithms used in the exoskeleton is admittance control, which usually uses force sensors as input and implements pHRI. Hence this paper presents a portable upper limb WR design that allows for elbow flexion/extension, wrist flexion/extension, and wrist medial/lateral deviation joint movements through pHRI and cHRI Interfaces.

Furthermore, the novelties of this article can be divided into two. The first novelty is the development of an exoskeleton based on ISO9241, which allows the selection of components for the design and implementation of exoskeletons, the evaluation of the performance of actuators, and the identification of possible exoskeleton performance problems in the early stages of development. The second novelty consisted of using sEMG signals to classify joint movements such as elbow flexion/extension, wrist flexion/extension, and lateral/medial deviation of the wrist, with different external weight loads. These joint movement classifications are important since they can provide more information to Human–Machine interfaces and allow a better tracking of patient’s rehabilitation therapy progress.

2 Methodology

The ISO9241-210:2010 [22] has been used as a User-Centered Design (UCD) guide. The ISO9241-210:2010 design process considers three stages of development that are repeated until a product is released. Stage one is the specification of user requirements, stage two is the production of solutions that meet the requirements, and stage three is evaluating the solutions against functionality efficiency and user requirements [10]. We have divided the methodology section into three main sections. The first stage corresponds to the collection of design requirements. The second stage describes the proposal of the technological solution. While the third stage evaluates the system in terms of functionality and efficiency and evaluates the design solution versus user requirements through a usability test.

2.1 Exoskeleton Design Requirements

We have set the main objective of the proposed exoskeleton to help in the rehabilitation process by stimulating neuroplasticity subjects who suffer from an upper limb impairment due to a neurological injury. The activities to be performed by the exoskeleton are defined by the therapist, who records the trajectories to be performed by the WR as passive or active exercises [23]. According to [24] the most important user requirements are exoskeleton volume, user-exoskeleton coupling, and range of motion. While the most relevant engineering features are those related to control and a power source.

We have considered that a suitable user-exoskeleton coupling ensures that the axis of rotation of the arm joints matches that of the rehabilitating user, allowing the exoskeleton joints to rotate according to the joint anatomical range. Therefore, we considered the user’s anatomical and anthropometric measurements to deal with the user-exoskeleton coupling design requirement. According to Zarzycka, Uzun et al., and Panero [25,26,27], the forearm’s length has a distance range from 20 to 30.5 ± 2.22 cm. The distance of the wrist-fingers is reported by [25,26,27] with a range of 17.59 to 19.5 ± 1.42 cm. According to Plagenhoef [28], the average weight of a hand is around 5.74 N (0.585 kg), while the average weight of the forearm is 16.86 N (or 1.72 kg). To deal with the design requirement of anatomical range, we have considered the following ranges of motion: for elbow flexion/extension, wrist flexion/extension, and medial/lateral deviation are 0–145°, 0–90°, 0–65°, respectively [29]. The proposed WR safety is based on ISO 13482:2014 [30]. From ISO 13482:2014, we have identified safety measures related to charging a battery, robot shape, electromagnetic interference, robot movement, and control system.

2.2 Proposal of the Technological Solution

With the purpose to increase rehabilitation therapy time in active and passive exercises to encourage neuroplasticity [1], the load weight is distributed between the user and the exoskeleton. Therefore, the user will make a less muscular effort. The proposed exoskeleton contemplates three Degrees of Freedom (DoF). Taking into account that the exoskeleton must maintain a small volume and considering that the joint that allows the flexion/extension movement of the elbow is the one that will bear the greatest weight, we have proposed to use the MX-106 servo motor actuator (Robotis Inc, A.C., USA), that can deliver up to 6 Nm. Therefore, considering the torque defined as the product of the magnitude of the force (\(F\)) and the perpendicular distance (\(D\)), expressed in Eq. 1, we can assume a distance mean of 0.26 m (length of the arm), and considering the weight of the forearm of 20 N at the end, results on a minimum torque force of 5.2 N. In the case of the wrist flexion/extension joint, a distance of 0.2 m and load weight of 6.86 N were considered, resulting in a torque of 1.34 Nm. In the joint that allows the medial/lateral deviation movement, the exoskeleton is not considered weight-bearing because this movement is generated in a transverse plane. However, we consider that this joint must move the weight of the hand. Therefore, we consider that the previous case also covers this one. We have proposed using the tower pro MG995 servomotors for the wrist joint movements since they can deliver a torque of 1.45 Nm.

$${\mathrm{Torque}} = DxF$$
(1)

In the case of a robotic rehabilitation system for passive therapy, since its purpose is to follow a predefined trajectory [23], we propose to use a PD controller with gravity compensation [31]. On the other hand, we consider that a suitable control strategy for active rehabilitation can be admittance control in active therapy. Therefore, we proposed three control strategies for the proposed WR The first proposed strategy is a gravity compensated controller to perform trajectory tracking. The second control strategy corresponds to an admittance control, where a user’s force is converted into a position [32] (pHRI). Finally, the third proposed control strategy corresponds to a variation of the proposed admittance control, where sEMG signals are converted into a position (cHRI).

In the case of a robotic rehabilitation system for passive therapy, since its purpose is to follow a predefined trajectory [23], we propose to use a PD controller with gravity compensation [31]. On the other hand, we consider that a suitable control strategy for active rehabilitation can be admittance control in active therapy. Therefore, we proposed three control strategies for the proposed WR. The first proposed strategy is a gravity compensated controller to perform trajectory tracking. The second control strategy corresponds to an admittance control, where a user’s force is converted into a position [32] (pHRI). Finally, the third proposed control strategy corresponds to a variation of the proposed admittance control, where sEMG signals are converted into a position (cHRI).

2.2.1 Dynamic Model of the Exoskeleton

The proposed exoskeleton allows flexion/extension of the elbow, flexion/extension of the wrist, and medial/lateral deviation of the wrist. The Euler–Lagrange method was used to obtain the dynamic model of the system. A schematical drawing of the kinematical structure of the proposed exoskeleton is depicted in Fig. 1. Once the equations governing the system’s dynamics were obtained, the compact model defined in Eq. 2 was obtained.

$${\varvec{M}}\left(\theta \right)\ddot{\theta }+{\varvec{C}}\left(\theta ,\dot{\theta }\right)\dot{\theta } +{\varvec{G}}\left(\theta \right)$$
(2)

where:

Fig. 1
figure 1

Schematic drawing of the kinematical structure of the proposed exoskeleton. The blue color is Z-axis. The green color is Y-axis. The red color is X-axis. \({a}_{1}\), \({a}_{2}\) and \({a}_{3}\), correspond to the lengths of the links. While the centers of mass concentrated on the axis of rotation for each joint are expressed as \({m}_{1}\), \({m}_{2}\), and \({m}_{3}\). \({\theta }_{1}\), and \({\theta }_{2}\) correspond to the angular position of the elbow flexion/extension and wrist flexion/extension, respectively, between the Y and X axes. However, the angular position of the third joint \({\theta }_{3}\) has a 90° rotation concerning the second joint and allows the wrist medial/lateral deviation movement

$$M(\mathrm{1,1})=\frac{1}{2}(2{{a}_{1}}^{2}{m}_{1}+2{{a}_{1}}^{2}{m}_{2}+2{{a}_{2}}^{2}{m}_{2}+2{{a}_{1}}^{2}{m}_{3}+2{{a}_{2}}^{2}{m}_{3}+{{a}_{3}}^{2}{m}_{3} +4{a}_{2}{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{3}]+4{a}_{1}{\text{Cos}}[{\theta }_{2}]({a}_{2}({m}_{2}+{m}_{3})+{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{3}])$$
(3)
$$M\left(\mathrm{1,2}\right)=\frac{1}{2}\left(2{{a}_{2}}^{2}{m}_{2}+2{{a}_{2}}^{2}{m}_{3}+{{a}_{3}}^{2}{m}_{3}+2{a}_{1}{a}_{2}\left({m}_{2}+{m}_{3}\right){\text{Cos}}\left[{\theta }_{2}\right] +{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}\left[{\theta }_{2}-{\theta }_{3}\right]+4{a}_{2}{a}_{3}{m}_{3}{\text{Cos}}\left[{\theta }_{3}\right]+{{a}_{3}}^{2}{m}_{3}{\text{Cos}}\left[2{\theta }_{3}\right] +{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}\left[{\theta }_{2}+{\theta }_{3}\right]\right)$$
(4)
$$\mathrm{M}\left(\mathrm{1,3}\right)=-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}\right]{\text{Sin}}\left[{\theta }_{3}\right]$$
(5)
$$M(\mathrm{2,1})=\frac{1}{2}(2{{a}_{2}}^{2}{m}_{2}+2{{a}_{2}}^{2}{m}_{3}+{{a}_{3}}^{2}{m}_{3}+2{a}_{1}{a}_{2}({m}_{2}+{m}_{3})\times{\text{Cos}}[{\theta }_{2}] +{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{2}-{\theta }_{3}] +4{a}_{2}{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{3}]+{{a}_{3}}^{2}{m}_{3}{\text{Cos}}[2{\theta }_{3}]+{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{2}+{\theta }_{3}])$$
(6)
$$M\left(\mathrm{2,2}\right)=\frac{1}{2}\left(2{{a}_{2}}^{2}{m}_{2}+2{{a}_{2}}^{2}{m}_{3}+{{a}_{3}}^{2}{m}_{3} + \, 4{a}_{2}{a}_{3}{m}_{3}{\text{Cos}}\left[{\theta }_{3}\right] + \, {{a}_{3}}^{2}{m}_{3}{\text{Cos}}\left[2{\theta }_{3}\right]\right)$$
(7)
$$M\left(\mathrm{2,3}\right)=0$$
(8)
$$M\left(\mathrm{3,1}\right)={a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}\right]{\text{Sin}}\left[{\theta }_{3}\right]$$
(9)
$$M\left(\mathrm{3,2}\right)=0$$
(10)
$$M(\mathrm{3,3})={{a}_{3}}^{2}{m}_{3}$$
(11)
$$C(\mathrm{1,1})={a}_{1}\dot{{\theta }_{2}}({a}_{2}({m}_{2}+{m}_{3})+{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{3}]){\text{Sin}}[{\theta }_{2}])+\frac{1}{4}\dot{{\theta }_{3}}(-4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{3}] -4{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{2}]{\text{Sin}}[{\theta }_{3}])$$
(12)
$$C(\mathrm{1,2})=-{a}_{1}\dot{{\theta }_{1}}({a}_{2}({m}_{2}+{m}_{3})+{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{3}]){\text{Sin}}[{\theta }_{2}]+\frac{1}{2}\dot{{\theta }_{2}}(-2{a}_{1}{a}_{2}({m}_{2} +{m}_{3}){\text{Sin}}[{\theta }_{2}]-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}-{\theta }_{3}]-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}+{\theta }_{3}]) +\frac{1}{2}\dot{{\theta }_{3}}(-{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{2}]{\text{Sin}}[{\theta }_{3}]+\frac{1}{2}({a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}-{\theta }_{3}] -4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{3}]-2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}[2{\theta }_{3}]-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}+{\theta }_{3}]))$$
(13)
$$C(\mathrm{1,3})=\frac{1}{4}\dot{{\theta }_{1}}(-4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{3}]-4{a}_{1}a3{m}_{3}{\text{Cos}}[{\theta }_{2}]{\text{Sin}}[{\theta }_{3}]) +\frac{1}{2}\dot{{\theta }_{2}}(-{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{2}]{\text{Sin}}[{\theta }_{3}]+\frac{1}{2}({a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}-{\theta }_{3}] -4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{3}]-2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}[2{\theta }_{3}] -{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}+{\theta }_{3}]))-{a}_{1}{a}_{3}{m}_{3}\dot{{\theta }_{3}}{\text{Cos}}[{\theta }_{3}]{\text{Sin}}[{\theta }_{2}]$$
(14)
$$C(\mathrm{2,1})={a}_{1}\dot{{\theta }_{1}}({a}_{2}({m}_{2}+{m}_{3})+{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{3}]){\text{Sin}}[{\theta }_{2}]+\frac{1}{2}\dot{{\theta }_{2}}\left(\frac{1}{2}(-2{a}_{1}{a}_{2}({m}_{2} +{m}_{3}\right){\text{Sin}}[{\theta }_{2}]-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}-{\theta }_{3}]-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}+{\theta }_{3}]) +\frac{1}{2}(2{a}_{1}{a}_{2}({m}_{2}+{m}_{3}){\text{Sin}}[{\theta }_{2}]+{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}-{\theta }_{3}]+{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2} +{\theta }_{3}]))+\frac{1}{2}\dot{{\theta }_{3}}(-{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}[{\theta }_{2}]{\text{Sin}}[{\theta }_{3}] +\frac{1}{2}({a}_{1}{a}_{3}{m}_{3}{\text{Si}}{\text{n}}[{\theta }_{2}-{\theta }_{3}] -4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{3}]-2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}[2{\theta }_{3}]-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}[{\theta }_{2}+{\theta }_{3}]))$$
(15)
$$C\left(\mathrm{2,2}\right)=\frac{1}{2}\dot{{\theta }_{1}}\left(\frac{1}{2}\left(-2{a}_{1}{a}_{2}\left({m}_{2}+{m}_{3}\right){\text{Sin}}\left[{\theta }_{2}\right] -{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}-{\theta }_{3}\right]-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}+{\theta }_{3}\right]\right) +\frac{1}{2}\left(2{a}_{1}{a}_{2}\left({m}_{2}+{m}_{3}\right){\text{Sin}}\left[{\theta }_{2}\right]+{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}-{\theta }_{3}\right] +{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}+{\theta }_{3}\right]\right)\right) +\frac{1}{4}\dot{{\theta }_{3}}\left(-4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{3}\right]-2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}\left[2{\theta }_{3}\right]\right)$$
(16)
$$C\left(\mathrm{2,3}\right)=\frac{1}{2}\dot{{\theta }_{1}}\left({a}_{1}{a}_{3}{m}_{3}{\text{Cos}}\left[{\theta }_{2}\right]{\text{Sin}}\left[{\theta }_{3}\right] +\frac{1}{2}\left({a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}-{\theta }_{3}\right]-4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{3}\right]-2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}\left[2{\theta }_{3}\right] -{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}+{\theta }_{3}\right]\right)\right) +\frac{1}{2}\dot{{\theta }_{2}}\left(-4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{3}\right]-2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}\left[2{\theta }_{3}\right]\right)$$
(17)
$$C\left(\mathrm{3,1}\right)=\frac{1}{4}\dot{{\theta }_{1}}\left(4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{3}\right]+4{a}_{1}{a}_{3}{m}_{3}{\text{Cos}}\left[{\theta }_{2}\right]{\text{Sin}}\left[{\theta }_{3}\right]\right) +\frac{1}{2}\dot{{\theta }_{2}}\left({a}_{1}{a}_{3}{m}_{3}{\text{Cos}}\left[{\theta }_{2}\right]{\text{Sin}}\left[{\theta }_{3}\right] +\frac{1}{2}\left(-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}-{\theta }_{3}\right]+4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{3}\right]+2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}\left[2{\theta }_{3}\right] +{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}+{\theta }_{3}\right]\right)\right)$$
(18)
$$C\left(\mathrm{3,2}\right)=\frac{1}{2}\dot{{\theta }_{1}}\left({a}_{1}{a}_{3}{m}_{3}{\text{Cos}}\left[{\theta }_{2}\right]{\text{Sin}}\left[{\theta }_{3}\right] +\frac{1}{2}\left(-{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}-{\theta }_{3}\right]+4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{3}\right]+2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}\left[2{\theta }_{3}\right] +{a}_{1}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{2}+{\theta }_{3}\right]\right)\right)+\frac{1}{4}\dot{{\theta }_{2}}\left(4{a}_{2}{a}_{3}{m}_{3}{\text{Sin}}\left[{\theta }_{3}\right]+2{{a}_{3}}^{2}{m}_{3}{\text{Sin}}\left[2{\theta }_{3}\right]\right)$$
(19)
$$C\left(\mathrm{3,3}\right)={a}_{1}{a}_{3}{m}_{3}\dot{{\theta }_{1}}{\text{Cos}}\left[{\theta }_{3}\right]{\text{Sin}}\left[{\theta }_{2}\right]$$
(20)
$$G\left(1\right)={a}_{1}\left({m}_{1}+{m}_{2}\right){\text{Sin}}\left[{\theta }_{1}\right]+{a}_{2}{m}_{2}{\text{Sin}}\left[{\theta }_{1}+{\theta }_{2}\right]$$
(21)
$$G\left(2\right)={a}_{2}{m}_{2}{\text{Cos}}\left[{\theta }_{2}\right]{\text{Sin}}\left[{\theta }_{1}\right]+{a}_{2}{m}_{2}{\text{Cos}}\left[{\theta }_{1}\right]{\text{Sin}}\left[{\theta }_{2}\right]$$
(22)
$$G\left(3\right)=0$$
(23)

From the dynamic model obtained in this section, we can identify that \({\ddot{\theta }}_{n}\), \({\dot{\theta }}_{n}\), and \({\theta }_{n}\), represent the accelerations, velocities, and positions respectively, for each of the joints of the proposed exoskeleton. \({a}_{1}\), \({a}_{2}\) and \({a}_{3}\), correspond to the lengths of the links. While the centers of mass concentrated on the axis of rotation for each joint are expressed as \({m}_{1}\), \({m}_{2}\), and \({m}_{3}\). From the compact model expressed in Eq. 2. \({\varvec{M}}\left(\theta \right)\) is a positive definite symmetric matrix, whose dimensions for a three joint robot is 3 × 3 dimensions, called the Inertia matrix. While \({\varvec{C}}\left(\theta ,\dot{\theta }\right)\), is the centrifugal and Coriolis matrix. In the case of \({\varvec{G}}\left(\theta \right)\), it is a vector of external forces of gravitational pairs. Finally the vector \({\varvec{\tau}}\), is integrated by \({\tau }_{1}\), \({\tau }_{2}\), and \({\tau }_{3}\), that are the forces applied in each articulation.

2.2.2 Passive Therapy Control

Passive rehabilitation therapy aims to strengthen muscles or perform neuromuscular relearning so that following a trajectory is sufficient. With the purpose to obtain a better control of each joint of the exoskeleton, each joint is managed independently. The selected control strategy for trajectory tracking in passive therapy is PD control. The PD control law is defined in Eq. 24.

$$\tau ={k}_{p}\left({\theta }_{d}-\theta \right)+{k}_{d}\left(\dot{{\theta }_{d}}-\dot{\theta }\right)$$
(24)

where τ is a value of square pulses that controls the motion of the servomotors, the constants (\({k}_{p}\)), and (\({k}_{d}\)), are positive gains. The position error is associated with the subtraction of the desired position (\({\theta }_{d}\)) with the actual position (\(\theta\)). We know that a PD controller performs its function properly whenever the gravitational elements are zero or gravity compensation is added [19]. In this case, since the elbow joint will lift the most weight, we have decided to add a gravity compensation term to its PD. For integrating the gravity compensation term, the dynamic model of a robot with two degrees of freedom was considered. In this case, link one corresponds to the link of the body segment from the shoulder to the elbow. It is actuated by the user, while the second link is the one actuated by the exoskeleton. The compensation control with gravity compensation is shown in Eq. 25.

$$\tau ={k}_{p}\left({\theta }_{d}-\theta \right)+{k}_{d}\left(\dot{{\theta }_{d}}-\dot{\theta }\right)+mgl{\text{Sin}}\left(\theta +{\theta }_{1}\right)$$
(25)

From Eq. 25, the mass \(m\) is the weight of the exoskeleton from the forearm segment. The term \(g\) is the gravity, \(l\) is the length of the exoskeleton, and (\({\theta }_{1}\)) is the arm position. As we can observe in the dynamic model section, we have a robot of n DoF, it is nonlinear, and the definition of stability in the sense of Lyapunov applies to an equilibrium state [33]. In this case, the analysis of stability in the sense of Lyapunov of a PD control with gravity compensation for manipulator robots of n DoF, is demonstrated in chapter 6 of the book of control of manipulator robots [33], where the Lyapunov candidate function is formed by the kinetic energy and potential energy of the robot, fulfilling that this is a positive definite function and its derivative is <  = 0.

2.2.3 Active Therapy Force Control

An admittance control is a dynamic force-to-motion mapping [32]. For the implementation of the assistance control law of the proposed exoskeleton, we decided to implement an admittance control where parameters such as stiffness and damping can be changed in the position subspace. This type of control is also known as hybrid admittance control [34]. In our case, we have decided to implement a controller to the one proposed by JongPyo et al. [35]. The implemented admittance control can be described as a two-level control system. At the first level, the desired position Eq. 26 is generated as the result of an admittance parameter \(a\left(s\right)\) multiplied by the interaction force between the exoskeleton and the user \({F}_{\text{int}}\). The interaction force between the exoskeleton and the user \({F}_{\text{int}}\) is determined by the value sensed by a load cell that measures the interaction between the exoskeleton and the user called \({F}_{\text{real}}\) and the desired force compensation of the assistance level \({F}_{\text{des}}\) as expressed on Eq. 27. It should be recalled that the admittance parameter \(a\left(s\right)\) describes a mechanical impedance of a force–velocity relationship of the end-effector [36], and therefore has defined inertia effects \({M}_{i}\), Viscosity\({B}_{i}\), and stiffness \({D}_{i}\), as expressed in Eq. 27. In our case, since a user operates the exoskeleton, it is considered that the velocities will be small. Therefore, inertia can be neglected. While our objective is to follow a free trajectory, and we want to avoid the spring effector, we have neglected the stiffness as in [34]. Taking into account this last consideration and substituting Eqs. 28 and 27, in Eq. 26, we obtain the equation expressed in Eq. 29. The second level of implementation of this controller consists of a PD control with gravity compensation expressed in Eq. 25 and fed by the desired position expressed by Eq. 29.

$${\theta }_{d}=a(s){F}_{\text{int}}$$
(26)
$${F}_{\text{int}}={F}_{\text{real}}-{F}_{\text{des}}$$
(27)
$$a\left(s\right)={M}_{i}+{B}_{i}+\frac{{D}_{i}}{s}$$
(28)
$${\theta }_{d}={B}_{i}\left({F}_{\text{real}}-{F}_{\text{des}}\right)$$
(29)

A block diagram of the implementation of the active therapy force controller is shown in Fig. 2.

Fig. 2
figure 2

Admittance controller. Force sensor is used as input

2.2.4 Active Therapy sEMG Control

Within this section, we have evaluated four machine learning classifier models based on Decision Tree (D.T.), Support Vector Machine (SVM), K-Nearest Neighbor (KNN), and ensemble algorithms, with the purpose to identify upper-limb motor gestures through sEMG signals. The sEMG signals were recorded using a commercial sEMG system Datalog (Biometrics, Newport, UK) at a sampling rate of 1000 Hz using bipolar Ag–AgCl circular electrodes. The sEMG signals were taken as follows: The Biceps Brachii Long Head (BBLH), and Triceps Brachii Long Head (TBLH) electrode placement, was done according to surface electromyography for the non-invasive assessment of muscles (SENIAM) [37]. Triceps Brachii Lateral Head (TBLAH), Flexor Carpi Radialis (FCR), Flexor Carpi Ulnaris (FCU), Extensor Carpi Radialis (ECR), Extensor Carpi Ulnaris (ECU), Brachioradialis (BRA), electrodes were placed according to [38], because there are no SENIAM recommendations for their placement. The sEMG classified signals were obtained when elbow flexion/extension, wrist flexion/extension, or medial/lateral deviation. Single-DoF upper limb movements under the external loads of 0.5 kg, 1.0 kg, and 5.0 kg conditions were performed. In all the measurement setups, a pulley machine (Lojer, Finland) is used to apply a constant external load to the joint understudy along with its full range of motion. Furthermore, when the sEMG signals were recorded, simultaneously the upper-limb kinematics were also recorded using a 12 flex13 cameras Optitrack System (Natural Point, Corvallis Oregon, USA) at a sampling rate of 100 Hz. The experimental setup and electrode placement are shown in Fig. 3.

Fig. 3
figure 3

sEMG experimental set-up. (A1) Pulley machine set-up. Electrode placement locations: (E1) BBLH, (E2) TBLH, (E3) TBLAH, (E4) BRA, (E5) FCR, (E6) FCU, (E7) ECR (E8) ECU

After the movements and sEMG signals were recorded. Eight sEMG features (Eqs. 3037) were calculated on the acquired sEMG signals and were correlated with the corresponding upper-limb movements.

$${\text{Integrated EMG}} = \mathop \sum \limits_{n = 1}^{N} X_{n}$$
(30)
$${\text{Mean Absolute Value}} = \frac{1}{N}\mathop \sum \limits_{n = 1}^{N} X_{n}$$
(31)
$${\text{Simple Square Integral}} = \mathop \sum \limits_{n = 1}^{N} X_{n}^{2}$$
(32)
$${\text{Variance}} = \frac{1}{N - 1}\mathop \sum \limits_{n = 1}^{N} X_{n}^{2}$$
(33)
$$\text{Root Mean Square}=\sqrt{\frac{1}{N}\sum_{n=1}^{N}{{X}_{n}}^{2}}$$
(34)
$$\text{Wave Length}=\sum_{n=1}^{N-1}\Vert {X}_{n+1}-{X}_{n}\Vert$$
(35)
$$\sum j=1\text{Median Frequency}{P}_{j}=\frac{1}{2}\sum j=1M{P}_{j}$$
(36)
$$\text{Mean Frequency}=\frac{\sum_{j=1}M{f}_{j}{P}_{j}}{\sum j=1M{P}_{j}}$$
(37)

Later on, with the purpose of identifying the sEMG features that allow the best class separability, five tests were proposed.

  1. 1.

    The first test evaluated time-domain features without considering the frequency domain features. In this test, the time domain features were calculated for the eight muscle signals. Thus, a total of forty-eight features were evaluated, and fourteen classes were taken into account.

  2. 2.

    The second test consisted of using as a feature only the frequency domain features. Sixteen features were evaluated, and fourteen classes were taken into account.

  3. 3.

    The third test considered the time-domain features, and the frequency domain features were added. Thus, a total of sixty-four features were evaluated, and fourteen classes were taken into account.

  4. 4.

    The fourth test was carried out after a feature reduction analysis with a Principal Component Analysis (PCA). This test consisted of obtaining the results of the classifier models with the feature of Integrated EMG. A total of eight features were evaluated, and fourteen classes were taken into account.

  5. 5.

    The fifth test uses the reduced set of six classification classes, where the external loads are not considered. In this test, only time-domain features are tested. This test compares results with previous studies that do not take an external load into account.

Furthermore, after motion identification through sEMG is done, a strategy similar to admittance control has been applied for user interaction with the exoskeleton. In this case, the desired position (\({\theta }_{d}\)) is determined by α gain multiplied by for the normalized sEMG signal in the range of − 1 to 1 as expressed in Eq. 38. Once the positions are obtained, they are input to the respective PD controllers of the motors that enable wrist flexion and extension motion and lateral, medial wrist deflection. A block diagram of the implementation of the active therapy sEMG controller is shown in Fig. 4.

Fig. 4
figure 4

Admittance controller. sEMG signal is used as input

$${\theta }_{d}=\alpha \left({\text{sEMG}}\right)$$
(38)

2.3 System Functionality and Efficiency Evaluation

As part of the functional evaluation and to determine that the mechanical structure can withstand the stresses exerted by the user on the WR, we have performed mechanical stress simulations. In addition, in order to also evaluate functionality and efficiency, we have performed actuator response tests and trajectory tracking tests of the PD controller with gravity compensation and admittance controller.

2.3.1 Mechanical Evaluation

The mechanical evaluation consisted of finite element computational simulations. Mechanical evaluation simulations were done using Solidworks 2019 (Dassault Systems SolidWorks Corporation, MA, USA). To simulate the load cell material, smooth carbon steel was used. To simulate the WR structure, ABS material is used. This is since the WR structure is printed in ABS material. In the finite element tests, a force of 49 newtons was applied to the exoskeleton’s distal forearm and wrist sections. The 49 newtons applied force was selected considering the worst-case loading of the exoskeleton. The worst-case loading of the exoskeleton is when the exoskeleton is carrying weights of about 5 kg (mean weight of the whole arm defined in [28]).

2.3.2 Motor Tuning

A PD controller has been implemented in each of the three joints. For the tuning and evaluation of the PD controllers, the methodology pro- posed below was followed:

  1. 1.

    The PD controller of each motor was manually tuned.

  2. 2.

    The controller position output signal is collected when following a Chirp down trajectory. The Chirp Down signal contains the following frequencies: 1.5, 1.2, 1.0, 0.8, 0.6, 0.4, 0.2, 0.1, 0.09, 0.08, 0.07. Hz, an offset of 1.2, was added to the chirp down signal.

  3. 3.

    Using MATLAB’s” state-space model estimator,” a state-space model was estimated from the collected input–output data.

  4. 4.

    Finally, the Matlab” Tune PID” Controller tool was used to obtain the PD controller’s optimal gains.

2.3.3 PD Plus Gravity Control Performance Evaluation

We re-sampled from 125 to 82 Hz (the speed at which our PD controller algorithm runs) an elbow flexion/extension goniometry signal obtained by a 12-camera Optitrack system processed with a biomechanical model in Opensim. Detailed information on how the acquisition of the signal was carried out can be found in [39]. The elbow goniometry signal was scaled to 80% of its original amplitude. When scaling the signal, the speed changed from 40 to 30°/s. The signal was used as input, and the exoskeleton elbow joint tracked the trajectory in three test cases. In the first test, the joint elbow followed the trajectory when the exoskeleton had no load. In the second test, a load of 0.7 kg was placed on the exoskeleton. In the third test, we changed the load to 1 kg. After the gravity compensated PD controller was tested without users, we proceeded to test the system with two test subjects. The test subjects are 32 and 28 years old, respectively, and have anthropometric dimensions corresponding to the medium size of the proposed exoskeleton. The controller performance was evaluated by comparing the goniometry signal with the output of the elbow joint using the Root- Mean-Square error (RMSE) defined in Eq. 39, where t indicates the sample being evaluated, T is the total number of samples, \(\hat{{y}_{t}}\) is the reference signal, and yt is the controller output signal.

$${\text{RMSE}} = \sqrt {\frac{{\mathop \sum \nolimits_{t}^{T} \left( {\widehat{{y_{t} }} - y_{t} } \right)^{{}} }}{T}}$$
(39)

2.4 Admittance Controller Performance Evaluation

The evaluation of the admittance control consisted of defining a \({F}_{\text{des}}\) of 3.5 kg. We then applied an external force on the forearm section so that the admittance control would generate the desired trajectory, and our PD control with gravity compensation defined on Eq. 25 would track it. The generated trajectory \(\theta_{d}\). was compared with the output position of the controller using the \({\text{RMSE}}\) defined in Eq. 39.

2.5 Usability Test of the Proposed Design Solution

After the users used the proposed exoskeleton for the evaluation of passive therapy and active control, a questionnaire based on [10] was provided to the test subjects. From this questionnaire, the questions related to the use of software and those related to specific hand movements were eliminated, reducing the original questionnaire to 16 questions.

3 Experimental Results

3.1 Exoskeleton Implementation

The implemented WR allows the upper limb movements of elbow flexion/extension, wrist flexion/extension, and wrist medial/lateral deviation. As mentioned in the methodology in the “WR Design requirements” section, one of the main requirements is coupling the WR with the user, where anatomical and anthropometric measurements must be considered. In order to fulfill the design requirement of the exoskeleton coupling with different users, we proposed that the WR be in two sizes based on the standard deviation of the forearm’s length: Small 20.75 cm and medium 25.75 cm. Also, two sizes of the WR hand holder are proposed to cover the different hand sizes: Small 17.5 cm and medium 19.5 cm. Therefore, the sizes of the exoskeleton were proposed according to the size range and standard deviation of the forearm and hand length, defined in the methodology section. The implemented wearable robot is depicted in Fig. 5.

Fig. 5
figure 5

Isometric view of the 3 DoF proposed exoskeleton

Electronically the proposed exoskeleton consists of three actuators and two load cells. It was decided to use only two load cells because they are easier to integrate with the user’s exoskeleton. The used load cells can sense up to 10 kg and their model is the TAL220 (H.T. sensors technology Co LTD, Xi’an, China). The 10 kg load cells were chosen because they cover the force to sense in the exoskeleton, which is expected to be the forearm, hand, and the WR weight, which is expected to be less than 5 kg. The actuator used for the elbow movement is a dynamixel MX-106 servo motor actuator (Robotis Inc, A.C., USA). While the model of the actuator used for the wrist movements is a Tower Pro MG995 servo motor (Tower Pro, T.W.). The Actuators were selected based on torque capacity to load the exoskeleton and joint to move. In the case of the dynamixel MX-106 servomotor is expected to deliver 4.8 N m when performing a movement, which is considered sufficient to load the expected 4.3 N m needed to assist the elbow flexion/extension user’s motion. In the flexion/extension and medial/lateral wrist joint movements, the selected motor is a Tower Pro MG995. The Tower Pro MG995 only specifies a stall torque of 1.46 Nm. Usually, the delivered torque when the servomotor is performing a movement is smaller. Therefore, we expect that the delivered torque of the MG995 motor is half of the total force, 0.68 Nm, which is sufficient to support the hand weight according to the technology projection. The current ranges motion allowed by the proposed WR compared to literature values are shown in Table 1.

Table 1 Comparison of literature and the proposed exoskeleton joint ranges

The MX-106 servo motor is held by a link where the electronics and battery system are stored. The MX-106 servo motor, in turn, holds the first dynamic scrambled link containing the first load sensor. The first dynamic scrambled link is the one that holds the forearm joint and is designed in two sizes. The first load sensor allows measuring the applied force between the user and the exoskeleton. The moving link on its distal limb is attached to another Tower Pro MG995 servo motor (Tower Pro, T.W.). Another dynamic scramble-type link is attached to the wrist’s MG995 Servo Motor for flexion/extension movement. This second link contains the second load sensor. The second load sensor allows measuring the force interaction between the user and the exoskeleton in the bending and extension movements of the wrist. The second link and in a 90-degree rotation is attached another MG995 servo motor connected to a piece that holds the hand and also allows lateral, medial deviation movements of the wrist. The hand holder piece is also manufactured in two sizes.

With the purpose to have adequate risk control and try to guarantee the user’s safety, the following considerations in the implementation of the developed WR were implemented. Currently, the system is powered by a 2-cell 7.4 V Lipo battery. The mechanical design includes a compartment where the battery is covered and can be coated with flame retardant paint to control risks associated with battery explosion. The system has an on/off switch system. A commercial LiPo LBC-10 (Robotis Inc, A.C., USA) battery charger is used to charge up the battery. In mechanical construction, mechanical stops have been added to the mechanical joints, according to the dynamic range of the joints. The mechanical stops are crescent-shaped covers that limit the range of motion. The mechanical stops cover the slippage between the links of the exoskeleton to avoid possible pinching of the user. Furthermore, all the exoskeleton parts have smooth, rounded corners to avoid scratches or cuts to the user by the mechanical elements of the exoskeleton. Finally, to control the associated electromagnetic risks, all the system’s cables are covered by the mechanical structure of the exoskeleton, and a specific electronic circuit was developed to control the exoskeleton that guarantees grounding. The elements that compose the proposed exoskeleton are depicted in Fig. 6.

Fig. 6
figure 6

Proposed exoskeleton elements. a Exoskeleton mainboard. b Lithium battery. c Circuit and battery case holder. d Mx-106 Servomotor. e Elbow joint and servo motor holder. f Elbow joint mechanical stop. g forearm load- cell. h forearm link. I MG995 flexion/extension joint. J Wrist loadcell and mechanical stop. K MG995 medial lateral deviation. L Hand holder

For the control of the exoskeleton, a two-level hierarchical control system is available to control the exoskeleton (See Fig. 7). On the first level, we find the user interface. The user interface is programmed in the programming language C#. The user interface communicates with the exoskeleton through a Bluetooth serial protocol. The user interface displays the exoskeleton’s position states and processes sEMG signals of a six-channel sEMG system. The user interface sends commands in text string format to the second control level. Another essential task is reading and processing the Bluetooth sEMG system. The second level of control is programmed to an ESP32 microcontroller in the C +  + programming language. The second level of control has three parallel tasks that allow: Sending and receiving messages, Command interpretation (The user interface sends commands), and execution and motor control loops execution. The PD and admittance control loops change according to the commands sent by the user interface. Therefore, passive, and active exercise therapies are controlled by user interface commands. The control loops also offer the software layer security by validating the actuators’ outputs inside the proposed WR’s joint ranges.

Fig. 7
figure 7

Concept programming diagram of the exoskeleton interfaces

The placement of the proposed exoskeleton on a user is simple. Velcro bands are unfastened from the orthosis attached to the mechanical system. Then the user inserts the arm over the system aligning the joints. Finally, the velcro bands are adjusted. An example of how the proposed exoskeleton is placed is shown in Fig. 8

Fig. 8
figure 8

The placement of the proposed exoskeleton on a user is simple. Velcro bands are unfastened from the orthosis attached to the mechanical system. Then the user inserts the arm over the system aligning the joints. Finally, the velcro bands are adjusted

4 Mechanical Evaluation, Controller Tuning, and Performance Evaluation

4.1 Mechanical Evaluation

With the purpose of evaluating the performance of the mechanical structure printed in 3D with ABS material, two stress analyses were performed. The first test evaluates the forearm WR under a 49 Nm load applied on the motor to the forearm interface cover when the motor coupling was fixed. From the stress test evaluation of the motor to forearm assembly, it can be concluded that the piece that is going to suffer a greater strain is the motor to forearm piece. In contrast, the piece that expects to get the most deformation is motor to forearm cover. In this case, the maximum displacement to expect is 0.041 mm, and the maximum stress at the neck of the motor to the lower arm is 0.0486 m, values that are considered acceptable. The second test was done applying an external load force of 49 N on the mid-lateral deflection clamp bar of the wrist structure when the wrist to the motor piece was fixed. The results are shown in Fig. 9a. The maximum stress to expect from the wrist stress test case is 0.049 mm at the wrist to motor piece. The greatest strain is expected at the wrist medial/lateral deviation holder with an expected displacement of 0.0025 mm (See Fig. 9b). In both tests, it can be concluded that the system structure printed in 3D with ABS material has enough strength to support the rehabilitation process of the user.

Fig. 9
figure 9

Elbow, and wrist joints stress analysis

4.1.1 Motor Tunning

Starting with the case of the MG995 servomotors, the system was manually tuned with a gain of \({k}_{p}\) = 5 and \({k}_{d}\) =2. The parameters selected for gravity compensation were a mass (m = 1) kg, a distance (d = 0.26 m). The trajectory tracking plot is shown in Fig. 10. First, first-order system identification was performed with the chirp down reference signal and the system response signal with a 58% estimation. Once the identification was made, the Matlab PID tuning tool, which allows tuning PD controllers, was used. In the Matlab PD control tool, the system identification was introduced, and the system identification suggestion of \({k}_{p}\) = 13.30 and \({k}_{d}\) = 0.079 was obtained. Once the actuator tuning was adjusted, the Chirp down signal was applied again. Finally, the tracking error was calculated to analyze the motor behavior, as shown in Fig. 11, which showed a nonlinear behavior. From Fig. 11 was determined that the motor error is under 10°/s in a frequency of 0.09 Hz, which is a velocity of around 30°/s.

Fig. 10
figure 10

Evaluation of the bandwidth of the MG995 actuator. In blue color are shown the trajectory with frequencies 1.5, 1.2, 1.0, 0.8, 0.6, 0.4, 0.2, 0.1, 0.09, 0.08, 0.07 Hz. While in red color is shown the actuator response with a PD controller with gains

Fig. 11
figure 11

MG995 Amplitude Vs. Frequency error behavior

In the dynamixel MX106 controller, a gain of \({k}_{p}\) =10 and a gain \({k}_{d}\) = 2 were manually selected. A system identification of 80% was obtained by performing the Matlab system identification. Through the Matlab PD controller tuning tool, a tuning gain of \({k}_{p}\) = 30 and \({k}_{d}\) = 0.025 were obtained. After applying the Matlab, suggested gains are shown in Fig. 12, and the error obtained by the different tested frequencies are shown in Fig. 13, which shows a linear behavior. From Fig. 13 was determined that the motor error is under 10°/s in a frequency of 0.6 Hz, which is a velocity of around 100°/s.

Fig. 12
figure 12

Evaluation of the bandwidth of the MG995 actuator. In blue color are shown the trajectory with frequencies 1.5, 1.2, 1.0, 0.8, 0.6, 0.4, 0.2, 0.1, 0.09, 0.08, 0.07 Hz. While the red color shows the actuator response with a PD controller with gains

Fig. 13
figure 13

MX106 Amplitude Vs. Frequency error behavior

4.1.2 PD Plus Gravity Control Performance Evaluation

The PD plus gravity compensation controller evaluation consisted mainly of trajectory tracking of the elbow’s flexion/extension movement at an average 30°/s speed. Three cases were evaluated for the trajectory tracking test: (a) trajectory tracking with gravity compensation and no-load (see. https://youtu.be/YlAKbIn447o) (b) trajectory tracking with gravity compensation with 0.7 kg load, and (c) trajectory tracking with a 1.0 kg load. The graphs obtained from the results can be shown in Figs. 14, 15, 16, respectively.

Fig. 14
figure 14

Elbow flexion/extension tracking trajectory. Blue shows the reference trajectory obtained with the Optitrack system. In red is shown the trajectory signal made by the exoskeleton. No weight load was used in this test

Fig. 15
figure 15

Elbow flexion/extension tracking trajectory. Blue shows the reference trajectory obtained with the Optitrack system. Red shows the trajectory signal made by the exoskeleton. A 0.7 kg weight load placed on the forearm section was used in this test

Fig. 16
figure 16

Elbow flexion/extension tracking trajectory. Blue shows the reference trajectory obtained with the Optitrack system. Red shows the trajectory signal produced by the exoskeleton. A 1.0 kg weight load placed on the forearm section was used in this test

In the obtained results, we can observe that there is an adequate trajectory tracking in the graphs of tests one and two. However, in test three, this is not the case since it can be observed that the controller trajectory cannot follow the reference trajectory, mainly on the 90° slopes. For test case three, the 1 kg mass simulates the weight that the exoskeleton would support in the weight load, which corresponds to approximately 50% of the total weight of an arm with a weight of 2 kg. The RMSE error calculated of the performed test is shown in Table 2.

Table 2 PD plus gravity control performance evaluation RMSE values

The results obtained from the test evaluation with subjects are shown in Figs. 17 and 18, where an RMSE of 4.16 and 6.18° were obtained, respectively. The results with test subjects show that the exoskeleton has an error lower than 10°, making this controller and exoskeleton useful on passive therapy. A sample of the user test is available at https://youtu.be/tnvd1PgZP5w.

Fig. 17
figure 17

Elbow flexion/extension tracking trajectory. In blue Reference signal obtained with an Optitrack system. In red shows the trajectory signal performed by the exoskeleton. The test subject 1 performed this test

Fig. 18
figure 18

Elbow flexion/extension tracking trajectory. In blue Reference signal obtained with an Optitrack system. In red shows the trajectory signal performed by the exoskeleton. The test subject 2 performed this test

4.2 Admittance Controller Performance Evaluation

In the admittance control tests, only two tests were performed. The first test consisted of adding a 1 kg load as a compensation force. In this test, an extra 1 kg load was added to the exoskeleton. When no additional load is applied to the WR forearm, the exoskeleton maintains its position. However, when an additional load compensation is applied, it can be seen how the exoskeleton moved. In the first admittance control test and as mentioned in the methodology, this consisted of interacting with the load cell and thus integrating a pHRI. In this first test, an extra weight of 1 kg was added. Figure 19 shows the position of the forearm of the exoskeleton, where it can be seen in the flat parts of the signal that the forearm maintained its position. While when a force greater than the compensation weight was applied to the forearm, the exoskeleton followed the generated trajectory. The RMSE obtained from this test was 5.2°.

Fig. 19
figure 19

Flexion/Extension of the elbow with admittance control behavior. Blue shows the reference trajectory calculated by the admittance controller interacting with the load cell positioned on the forearm. Red shows the trajectory signal realized by the exoskeleton. In this test a load of 1.0 kg placed on the forearm was used, and the exoskeleton generated a compensation force of 1.0 kg

Results on classifier models of sEMG signals, based on KNN and SVM show to have the best accuracy performance. Results show that time-domain features are reliable for gesture recognition based on sEMG signals. The results also show that gesture recognition through sEMG signals generated by different external loads is possible. The results of all the evaluated classifier models and tests are shown in Table 3.

Table 3 Classification test accuracy results

The second test case consisted of controlling the wrist flexion/extension movement through the Flexor carpi ulnaris sEMG signal. The results of the second test are shown in Fig. 20, where it can be seen how at times when there is muscle activity, the wrist joint goes to 90° from the extension position, and when there is relaxation, the exoskeleton slowly lowers. A sample of the sEMG admittance control is available at https://youtu.be/JFqDqqo2x14.

Fig. 20
figure 20

Wrist flexion. Blue color shows the position of the exoskeleton. Red color shows the raw sEMG signal of the flexor carpi ulnaris muscle, where an offset was added and amplified to compare with the exoskeleton position signal

4.3 Usability Test of the Proposed Design Solution

From the evaluation of the usability questionnaire with the users, it was identified that the orthosis is adequately coupled to the user, and it has adequately performed the movements within the ranges of movement indicated in the literature. However, the users identified that the WR could be complicated and heavy, making it uncomfortable when used for prolonged periods of time.

5 Discussion

We have used ISO9241 as a guide for the process design of the proposed exoskeleton. We have based the exoskeleton design on user requirements to ensure user-exoskeleton coupling, volume, range of motion, and security.

The proposed exoskeleton elbow joint axis is based on a hinge model that does not correspond to an exact elbow joint model. Therefore, axis misalignment errors are expected. However, we have reduced misalignment errors by considering average ranges of anthropometric and anatomical measurements of people published in [25,26,27]. From these measurements, two sizes of the exoskeleton were proposed to fit users correctly and align the best possible user anatomical joint center with the joint exoskeleton center.

The system is completely portable and works with a lithium battery. Therefore, the system has a reduced volume, and the proposed exoskeleton can allow home therapy, avoiding problems such as user–medical professional contact [4]. The proposed exoskeleton only contemplates the wrist and elbow joints to maintain the exoskeleton’s portability since including the shoulder joint requires a large amount of torque. Therefore, the motor needed to move this joint would increase its size. The designed exoskeleton allows the full range of motion of the wrist movements. However, in the case of the flexion/extension, it only reaches 120° extension, which is sufficient to rehabilitate daily life activities. The exoskeleton user security was based on ISO 13482:2014, where safety measures related to battery, robot shape, robot system, and robot control were considered.

The proposed WR was built in medium size for testing. The proposed WR allows us to follow predefined trajectories defined by a therapist in passive and active exercises, whose purpose is to strengthen muscles or assist and encourage user participation [1, 2]. For trajectory tracking of passive exercise, we have implemented a PD controller with gravity compensation. In this case, the mass term m of the gravity compensation is set via a load cell, and in this way, weights corresponding to different users can be compensated. In the case of the controller that handles the elbow joint, the term m is set by a load cell positioned on the forearm, while in the wrist joint, it is set by the load cell positioned on the wrist section. The gains set for the controllers were established, in suggestion to the MATLAB tool”PID controller,” where it was possible to obtain an error of fewer than 10° from velocities less than 100°/s or frequencies lower to 1 Hz (See Figs. 11, 13). In the case of the elbow actuator, it was found to have linear behavior, while in the writs actuators, it was found to have nonlinear behavior. It has been found that it is necessary to review for actuator behavior in the case of using the system as a kinematic measurement tool or as a rehabilitation system for the exoskeleton to set position precisely.

Based on the performance results of PD plus gravity compensation controller and admittance controller (See Figs. 15, 16, 19), it shows that the device can help the user to load a bit more of the 30% of his forearm and hand weight. In this way, we can guarantee that the system will function properly in the active mode where system participation is required. In the case of passive mode, to complete the full trajectory sequence, the user’s arm and forearm weight must weigh less than 1 kg. Therefore, the passive mode can be recommended for small exoskeleton and teenagers with smaller body dimensions. Furthermore, this exoskeleton allows user interaction through load cells (pHRI) and sEMG signals (cHRI), in comparison to other exoskeletons that only focus on one mode of interaction [12,13,14]. Therefore, this exoskeleton might compare if different user interaction modes detonate neuroplasticity differently. Also, this exoskeleton hybrid admittance controller does not need musculoskeletal modeling to work since the position-velocity can be obtained through a simple gain. This system is complemented by a user interface that sets the different modes of work, and it is intended to be controlled by a therapist.

From the sEMG classification test shows that the classifier models based on KNN and SVM show to have the best accuracy performance. From the different classification results show that time-domain features are reliable for gesture recognition based on sEMG signals. The results also show that gesture recognition is possible through sEMG signals generated by different external loads.

6 Conclusion

This article describes the design and implementation of a 3 DoF upper limb exoskeleton that has the purpose of helping medical professionals in the rehabilitation process of people who suffer from spinal cord injury (lesion in C6–C8) through active and passive therapy by using pHRI and cHRI interfaces. For the exoskeleton design, we have followed a UCD approach, using as a guide the ISO9241, where we have collected user requirements through usability tests and evaluated the exoskeleton performance through mechanical stress analysis and actuator characterization, and controller tuning. The exoskeleton has a PD with gravity compensation control for passive therapy, while for active therapy, we have integrated an admittance control based on the article of JongPyo et al. [35], that uses as input sEMG signals for identifying joint movements with different loads. In our knowledge the implemented admittance controller has not been reported in other articles. We have determined that the best sEMG features used to classify joint movements are time features and that the best model classifiers based on accuracy are SVM and KNN. As for future work, we have identified that for better user-exoskeleton coupling, it is proposed to work on an elbow mechanism that aligns the axis of rotation of the elbow joint with that of the exoskeleton. Another activity to work on in the future is the development of new joints, such as the shoulder, which is a challenge since the portability feature must be considered.