Keywords

1 Introduction

An exoskeleton is a wearable device that enhances the capabilities of the human who uses it. There are applications for exoskeletons in industrial production, warfare, medicine and life style improvement. This includes rehabilitation exoskeletons/Such exoskeletons enable the user to do the tasks they could not do before and also a provide positive influence on the user’s health condition [1, 2]. For people who lost the ability to walk these goals can be achieved by the use of a lower limb exoskeleton [35].

One of the main challenges in the development of lower limb exoskeletons is the need to design a control system capable of performing a wide range of human-like motions while guaranteeing the safety of the user. There are several ways of generating desired exoskeleton motions, which include methods based on inverse kinematics [6], the use of motion pattern generation [7] and the use of the information about user’s state to predict their intended movements [8, 9]. The first two methods are closely related to the approaches adopted in humanoid robotics where significant progress in motion control has been achieved. The main safety issue for lower limb exoskeleton users is the possibility of losing vertical balance and falling. To prevent this from happening specific control methods such as zero-moment point (ZMP) control are adopted [10, 11]. ZMP control provides the criteria that can be used to check if the mechanism is vertically balanced.

Although significant progress in lower limb exoskeleton design has been achieved there is still room for improvement, because of the possibility of adopting a more anthropomorphic exoskeleton structure. An example of such improvement is the introduction of a toe joint. Most of the modern exoskeletons have rigid feet, which limits their motion capabilities and makes their movements less natural. In papers [12, 13] it was shown that introducing a toe joint into a humanoid robot design allows the robot to perform a wider range of motions and can lead to better overall performance. The introduction of a toe joint into a rehabilitation exoskeleton can allow the use of more complex therapy procedures.

In this paper we consider a lower limb exoskeleton with a toe joint performing verticalization motion. The objective of the paper is to present an algorithm that allows automatic engagement of the toe joint, while maintaining balance of the mechanism.

2 Mathematical Model of the Exoskeleton

In this paper we study an exoskeleton consisting of two legs and connected to a torso via active rotational joints. Each leg includes four links (thigh, shin, foot and toe) connected in series via a rotational joint equipped with a motor. We consider the case when the toe links remain motionless on the ground at all times during the verticalization process. We assume that the links are connected to the parts of the human body is such a way that the human and exoskeleton joint axes coincide. The motion takes place in a sagittal plane. In papers [6, 14] it was suggested that this type of exoskeleton motion can be accurately modeled by a planar mechanism model. A diagram of the model is shown in Fig. 1.

Fig. 1.
figure 1

Diagram of a lower limb exoskeleton with a toe joint; 1 – toe link, 2 – foot link, 3 – shin link, 4 – thing link, 5 – torso link

In Fig. 1 Oxy is the ground reference frame, points \( O_{2} - O_{5} \) are active joints, points \( C_{i} (i = \overline{1,5} ) \) are the centers of mass of the links, \( M_{i + 1,i} \) are the torques produced by the motors and \( \varphi_{i} \) are the angles that determine the orientation of the links relative to the horizontal axis Ox. Point \( O_{6} \) is the end of the 5-th link of the mechanism. The masses of the links are given as the sum of the masses of the links of the exoskeleton and the human body parts they are attached to. The mass distribution of the human body can be found in [15].

For further derivations we introduce a vector of generalized coordinates q:

$$ {\mathbf{q}} = \left[ {\begin{array}{*{20}c} {\varphi_{2} } & {\varphi_{3} } & {\varphi_{4} } & {\varphi_{5} } \\ \end{array} } \right]^{\rm T} . $$
(1)

It is possible to describe the system with only four generalized coordinates because of the assumption that the toe link remains motionless at all times during the verticalization process. The equations of motion of the system are given in vector form in the following way:

$$ {\mathbf{A}}({\mathbf{q}})\mathop {\mathbf{q}}\limits^{..} + {\mathbf{C}}({\mathbf{q}},{\dot{\mathbf{q}}}) + {\mathbf{G}}({\mathbf{q}}) + {\varvec{\Phi}}({\dot{\mathbf{q}}}) = {\mathbf{BM}}, $$
(2)

where A(q) is a joint space inertia matrix, \( {\mathbf{C}}({\mathbf{q}},{\dot{\mathbf{q}}}) \) is a vector of generalized Coriolis and normal inertial forces, G(q) is a vector of generalized potential forces, \( {\varvec{\Phi}}({\dot{\mathbf{q}}}) \) is a vector of generalized dissipative forces, M is a vector of motor torques, and B is a linear operator that transforms the vector of motor torques into the vector of the generalized forces. Algorithms for calculating the mentioned vectors and matrices, as well as detailed discussion of their properties can be found in [16].

The given Eq. (5) can be used t model the motion of the system. Some of the expressions (6) and (7) will be used in the controller design in the next chapter.

3 Control System Design

In this section we consider the design of the control system that realizes verticalization motion of the robot. The control system uses a pre-generated desired trajectory of the center of mass of the system, and then uses an inverse kinematics algorithm to derive the desired time functions of generalized coordinates, which are used as an input for a feedback controller. A diagram of the control system is shown in Fig. 2.

Fig. 2.
figure 2

Diagram of the control system

In Fig. 2 \( x_{C}^{*} \) and \( y_{C}^{*} \) are the desired coordinates of the center of mass, \( \varphi_{i}^{*} \) are the desired values of the generalized coordinates and \( e_{i}^{*} \) are components of the control error vector:

$$ {\mathbf{e}} = \left[ {\begin{array}{*{20}c} {e_{1} } & {e_{2} } & {e_{3} } & {e_{4} } \\ \end{array} } \right]^{\rm T} = {\mathbf{q}} - {\mathbf{q}}^{*} , $$
(3)

where \( {\mathbf{q}}^{*} \) is the vector of the desired values of the generalized coordinates, defined in the same way as q. The values of \( x_{C}^{*} \) and \( y_{C}^{*} \) can be found using ZMP control methodology (as it was done in [17]) or directly given by polynomial functions, as it was done in [6, 18]. Here we will consider the later case.

The control actions of the regulator are given by the following equation:

$$ {\mathbf{M}} = {\mathbf{B}}^{ - 1} {\mathbf{A}}( \ddot{\mathbf{q}}^{*} + {\mathbf{K}}_{p} {\mathbf{e}} + {\mathbf{K}}_{d} {\dot{\mathbf{e}}}), $$
(4)

where \( {\mathbf{K}}_{p} \) and \( {\mathbf{K}}_{d} \) are diagonal gain matrices with positive elements. The derivation of this controller and the discussion of its properties can be found in [19]. The general theory of such feedback controllers is presented in [20]. The method of tuning the gain matrices \( {\mathbf{K}}_{p} \) and \( {\mathbf{K}}_{d} \) is given in paper [21].

A numerical optimization-based algorithm is used to solve the inverse kinematics problem. Such approaches have been adapted in humanoid robotics, where robots such as the Atlas use numerical optimization algorithms to solve the inverse kinematics problem with an onboard computer while the robot is operating [22, 23]. The proposed here algorithm works in two stages. During the first stage it checks whether or not the required position of the body should be obtained without engaging the toe joint. If the toe joint should not be engaged then on the second stage the algorithm finds such orientations of the shin, thigh and torso that the center of mass is placed in the desired position. This is done via optimization over the vector of decision variables q, with the value of \( \phi_{2} \) restricted to be equal to π. If the toe joint needs to be engaged than this restriction is being taken off.

The decision on whether or not the toe joint should be engaged is made based upon how close the mechanism is to a singular position. To measure how close the mechanism is to a singular position we introduce the following matrix J:

$$ {\mathbf{J}} = \frac{{\partial {\mathbf{r}}_{C5} }}{{\partial {\mathbf{q}}}}\left( {\frac{{\partial {\mathbf{r}}_{C5} }}{{\partial {\mathbf{q}}}}} \right)^{\rm T} , $$
(5)

where \( {\mathbf{r}}_{C5} \) is the radius vector that describe the position of the center of mass of the torso link of the robot. The matrix J is a square four by four, and it becomes singular when the mechanism enters a singular position. Its condition number \( \kappa \left( {\mathbf{J}} \right) \) gets larger as the mechanism approaches a singular position, which allows us to use it as an indicator. The work of the algorithm during the first stage can be described as follows:

$$ \left\{ {\begin{array}{*{20}l} {\varphi_{2} = \pi } \hfill & {if\,\kappa \left( {\mathbf{J}} \right) < \kappa_{\hbox{max} } } \hfill \\ {\alpha_{1} \le \varphi_{2} \le \pi } \hfill & {if\,\kappa \left( {\mathbf{J}} \right) \ge \kappa_{\hbox{max} } } \hfill \\ \end{array} } \right., $$
(6)

where \( \alpha_{1} \) is a constant that defines the restriction in the range of motion of the toe joint and \( \kappa_{\hbox{max} } \) is a threshold value for the condition number of J. There are also additional constraints placed on the decision variables. These constraints are there because the human body has restricted ranges of motion in the joints:

$$ \alpha_{2} \le \varphi_{3} - \varphi_{2} \le \alpha_{3} ,\;\alpha_{4} \le \varphi_{4} - \varphi_{3} \le \alpha_{5} ,\;\alpha_{6} \le \varphi_{5} - \varphi_{4} \le \alpha_{7} , $$
(7)

where \( \alpha_{i} \) are the constants that determine the range of possible motions in the joints of the exoskeleton user. They can be either individually measured using standard procedures or obtained from the literature [24]. Relations (8) and (9) form the set of constraints for the optimization problem.

On the second stage the proposed algorithm minimizes the following objective function:

$$ J_{1} \left( {{\mathbf{q}},t} \right) = \left\| {{\mathbf{r}}_{C} \left( {\mathbf{q}} \right) - {\mathbf{r}}_{C}^{*} \left( t \right)} \right\|. $$
(8)

It should be noted that the objective function (10) depends on time, which reflects the iterative nature of the algorithm – it needs to be run for every point of time where a solution of the inverse kinematics problem is needed.

The formula for the desired joint space trajectories \( {\mathbf{q}}^{*} \left( t \right) \) obtained by the algorithm has the following form:

$$ {\mathbf{q}}^{*} \left( t \right) = \mathop {\arg \hbox{min} }\limits_{{\mathbf{q}}} J_{1} \left( {{\mathbf{q}},t} \right). $$
(9)

The resulting desired joint space trajectories \( {\mathbf{q}}^{*} \left( t \right) \) are smoothed by an averaging filter before being used as inputs for the control system.

4 Numerical Simulation

In this section we study the controlled motion of the system. In Fig. 3 the time functions of the generalized coordinates are shown.

Fig. 3.
figure 3

The time functions of the generalized coordinates; 1 – φ2(t), 2 – φ3(t), 3 – φ4(t), 4 – φ5(t)

We can observe the graph \( \varphi_{2} (t) \) shown in Fig. 3 Behave similar to a piece-wise polynomial function. For \( t < 2.89\;{\text{s}}\;\varphi_{2} (t) = 180^{ \circ } \), and after that it over the next two seconds it monotonically decreases till it reaches the value of 102.6°. We can show that the time t c at which the graph \( \varphi_{2} (t) \) starts to decrease depends on the chosen value of \( \kappa_{\hbox{max} } \). This is illustrated on the Fig. 4.

Fig. 4.
figure 4

The dependence of t c on the value of κmax

The time t c denotes the moment when the toe joint is being engaged. Analyzing the graph shown in Fig. 4 we can note that for values of \( \kappa_{\hbox{max} } \) less than 4 the engagement of the toe joint happens almost immediately, which means the mechanism performs verticalization while tiptoeing. This may lead to problems with maintaining the vertical balance of the mechanism. When the value of \( \kappa_{\hbox{max} } \) is larger than 5 it shows a more linear relation with t c . Graph \( t_{c} (\kappa_{\hbox{max} } ) \) can be used as an instrument for choosing the parameter \( \kappa_{\hbox{max} } \), such that it would provide the desired toe joint engagement time. It is also possible to demonstrate that the final value of \( \varphi_{2} \) is a function of desired value of \( y_{C}^{*} \) at the end of the motion.

The fact that the presented algorithm only engages the toe joint when the mechanism is close to a singular position mimic the behavior of humans. In many of the human movement the toes start to act only when the leg becomes completely extended or folded (the examples are tiptoe motion, crouching, double support phase of walking). It can be demonstrated that the algorithm can be used to move the exoskeleton to a crouching position where the toe joints will be automatically engaged, because that position is also close to singular. It also should be possible to use the same general principal for toe joint engagement during walking.

5 Conclusions

In this paper a lower limb exoskeleton with a toe joint was considered. A mathematical model of the exoskeleton was presented, and the equations of motion were given. A control system based on a feedback controller was proposed. The inputs for the control system were generated by defining a desired trajectory of the center of mass of the mechanism and solving the inverse kinematics problem. A numerical optimization-based iterative algorithm for solving inverse kinematics was proposed. The algorithm allows to engage and disengage the toe joint, based on how close the mechanism is to a singular position. That gives us an automatic human-like toe joint engagement, that can be controlled though certain parameters that were discussed in the fourth chapter of the paper.