Keywords

1 Introduction

The Motion planning and inverse kinematics (IK) problem is important problem in the field of robotics. IK problem is understood as finding the joints variables so that the robot has the desired position and direction of the end-effector [1]. The geometric method and the iterative method (Jacobian) are the classic method commonly used to solve IK problems [2,3,4]. However, these methods have the limitation that they are only applicable to simple robots. For the exoskeleton rehabilitation robot, finding the joint values solution is extremely necessary because the bad joint variable can cause injury to the patient. The joints values trajectories of the robot need to be stable and continuous. In [5, 6], we have proposed the optimal approaches as improved PSO and DE algorithms to solve the IK problem, we have tested and used these proposed algorithms against the endpoint trajectory of Activities of Daily Living (ADL) as measured by an Exoskeleton type Human Motion Capture (E-HMCS) device [7].

However, in order for the user to be able to move in the most natural way, the trajectories need to be similar to nature human activities, Dynamic Movement Primitives (DMPs) is a commonly used solution to solve this problem. Saveriano et al. [8] provided a systematic and comprehensive review of the existing literature and classified the status of research on the DMPs. In [9] the article’s authors reviewed the motion planning methods to control exoskeleton, especially for the upper extremity, and identified challenges in path planning for the upper extremities. Lauretti et al. [10] the article’s authors presented a demonstration learning approach for planning the upper limb exoskeleton built based on the computation of DMPs and machine learning techniques to generate trajectories for the task and patient based on learned trajectories.

In this study, we experimented with applying DMPs to generate motion trajectories of robots from measured daily activities. At the same time, we also create joint variables by using DMPs instead of using traditional methods to solve IK problem. The results show that the joint values, the position and orientation trajectory of the robot in the 2 cases are similar. The following sections of the rest of the paper: the exoskeleton robot arm model describes in Sect. 2. Section 3 will provide the theory of the DMP algorithm and the application of DMPs in the IK problem. Section 4 shows the expected results after comparing the use of DMP to create angular trajectory matching and the use of DMPs combined with IK to solve motion planning and inverse kinematics. Finally, we will draw conclusions in Sect. 5.

2 Human Arm with E-HMCS Model Description

2.1 E-HMCS Model

The human arm is composed of three anatomical joints (shoulder, elbow, and wrist joints) while ignoring the clavicle and clavicle muscles [11]. We also propose a 3D model to simulate the human arm to ensure the basic anthropometric parameters of Asians in general and especially of Vietnamese people in particular [12]. The length of the joints of the model is selected which basing on the length of the person’s arm who has worn the E-HMCS. To evaluate the efficiency of the proposed algorithm and also determine the endpoint trajectories in the ADL operation, we have also developed the Exoskeleton-type Human Motion Measurement System (E-HMCS) [13]. It is an exoskeleton measuring device made by 3D printing technology and has a low-cost, simple calculation process. The arm model of the person wearing the device is depicted as shown in Fig. 1 with kinematic parameters, and Denavit–Hartenberg parameters (DH) as shown in Table 1.

Fig. 1
A 3-D illustration of the human arm model indicates the directions of the X and Z axes. The lines are marked from X 0 to X 7 and Z 1 to Z 7.

Human arm model wearing the E-HMCS

Table 1 Denavit–Hartenberg parameters of E-HMCS

3 Dynamic Movement Primitives to Motion Planning and Inverse Kinematics Problems

3.1 Dynamic Movement Primitives Algorithm

The theory behind DMP is well established in [14] where the heart of the model is a point-attractor system modulated with a nonlinear function to enable the generation of complex movements. One point-attractor system is the spring-damper system:

$$ \ddot{y} = \alpha_{y} \left( {\beta_{y} \left( {g - y} \right) - \dot{y}} \right) + f $$
(1)

where αy and βy are positive constants, y and g are the initial and final points of the trajectory (system state and goal). The crux of the DMP framework is an additional nonlinear system used to define the forcing function f over time, giving the problem a well-defined structure that can be solved straightforwardly and easily generalized. The introduced system is called the canonical dynamical system

$$ \dot{x} = \alpha_{x} x $$
(2)

The forcing function f is defined as a function of the canonical system:

$$ f\left( {x,g} \right) = \frac{{\sum\nolimits_{i = 1}^{N} {\psi_{i} w_{i} } }}{{\sum\nolimits_{i = 1}^{N} {\psi_{i} } }}x\left( {g - y_{0} } \right) $$
(3)

where y0 is the initial position of the system:

$$ \psi_{i} = \exp \left( { - h_{i} \left( {x - c_{i} } \right)^{2} } \right) $$
(4)

And wi is a weighting for a given basis function \(\psi_{i}\). The \(\psi_{i}\) equation above defines a Gaussian centered at ci, where hi is the variance. wi has solution:

$$ w_{i} = \frac{{S^{T} \psi_{i} {\mathbf{f}}_{d} }}{{S^{T} \psi_{i} {\mathbf{S}}}} $$
(5)

where:

$$ {\text{s}} = \left( {\begin{array}{*{20}l} {x_{{t_{0} }} \left( {g - y_{0} } \right)} \hfill \\ \vdots \hfill \\ {x_{{t_{N} }} \left( {g - y_{0} } \right)} \hfill \\ \end{array} } \right),\;\;\psi_{i} = \left( {\begin{array}{*{20}l} {\psi_{i} \left( {t_{0} } \right)} \hfill & \cdots \hfill & 0 \hfill \\ 0 \hfill & \ddots \hfill & 0 \hfill \\ 0 \hfill & \cdots \hfill & {\psi_{i} \left( {t_{n} } \right)} \hfill \\ \end{array} } \right) $$
(6)

3.2 Dynamic Movement Primitives for Inverse Kinematic

In most of the previous studies, the DMP algorithm often used to create a motion trajectory for the robot and be able to control the robot to move along that trajectory, we have to solve the inverse kinematics problem. For non-skeletal robotic arms, joint values solutions need to be naturally obtained to provide comfortable to the user. So why don’t we apply DMP to create a most natural trajectories?

One of the challenges when applying DMP to the inverse kinematics problem is that we don’t know the value of the joint values at the end of the moving trajectories (the starting point of the trajectory is the current state of the robot). To solve this problem, the research applied the commonly used algorithms DMPs [15] and some IK methods to find the joint variables at the end point of the motion trajectory. After obtaining this value, we applied the DMP algorithm to achieve the desired match trajectory. We tested and compared the results in the following 2 cases:

  • To use the DMPs algorithm to create the position trajectory and orientation trajectory of the robot (x, y, z) combined with the inverse kinematics problem-solving methods to find the joints values

  • Use the algorithm for IK problem to find the joint values at the end point of the new position trajectory, then use DMPs to generate the joint values trajectory (q).

4 Experiments and Results

4.1 Experiments Setup

In this study, to evaluate the efficiency of the algorithms, we used the measuring results of the water cup movement task measured by E-HMCS (Fig. 2). With the matching joint values (q) measured by kinematic calculations, we obtain the positional and orientation trajectories of the respective end-effector (E). After having these parameters, we performed the following steps:

Fig. 2
A photograph of a person wearing an E H M C model on the arm and holding a glass. The model includes multiple components connected through wires.

Experiment for the water cup movement tasks

  • Step 1: Run the algorithm to find DMP parameters corresponding to: joint values (DMP with q), both position and orientation (DMP with P, O)

  • Step 2: Generate new position and orientation trajectories of the end-effector (E_dmp) with the goal being the point around the measured endpoint of the end-effector (e_goal)

  • Step 3: Solve inverse kinematic to find goal joint values (q_goal) from e_goal.

  • Step 4: Generate new joint values trajectory (q_dmp) with q_goal and DMPs’s parameters

  • Step 5: Calculate inverse kinematic and forward kinematics with newly created trajectories: use forward kinematics to calculate the end-effector from q_dmp (q_dmp > FK > E_q_DMP) Calculate inverse kinematics to find to joint values from E_dmp (E_dmp > IK > q_ik_dmp,)

  • Compare joint values and end-effectors with each other. (E_dmp and E_q_DMP, q_dmp and q_ik_dmp)

4.2 Results

We will compare and evaluate the obtained results based on the position trajectories of the end-effector and the resulting joints values trajectories. From Fig. 3, we can see that the trajectories (E_measure, E_dmp and E_q_dmp) all have similar form, although E_dmp and E_q_dmp share the same endpoint, but these two trajectories do not coincide. It can be explained causing by the error when generating data by DMP algorithm and the calculation process forward and reverse kinematics. When looking at the cosine similarity table of the end-effector orbital, we can see a specific result when E_q_dmp has a higher average score than E_dmp, two cosine similarity of trajectories are very high.

Fig. 3
A 3-dimensional plane exhibits the end-effector trajectories. The lines are denoted as E measure, E d m p, and E q d m p. The x-axis ranges from negative 400 to negative 200, the y-axis is from negative 50 to 200, and the z-axis is from 400 to 650.

Position trajectories of the end-effector

Figure 4 shows us the graph of the joint values trajectory in the cases. The q_dmp trajectories are smooth and stable, but the q_ik_dmp orbital has any unusually abrupt changes. The reason can be the inverse kinematics calculation. When we look at the scores cosine similarity again, we see that q_dmp is significantly higher than q_ik_dmp, especially at joints q1 and q3 exists a significant difference due to their instability in the q_ik_dmp orbital (Tables 2 and 3).

Fig. 4
Three line graphs of joint value versus points represent the fluctuation of lines from q 1 to q 5. The graphs are marked as q measure, q d m p, and q i k d m p. q 2 and q 4 have an increasing trend, and q 3 and q 5 have a decreasing trend in all graphs. The trends of q 1 vary.

Joints values of measure trajectories, DMP trajectories and IK DMP trajectories

Table 2 Cosine simility position trajectories end-effector
Table 3 Cosine simility of joint’s values trajectories

5 Conclusion

In this study, the application of the DMPs algorithm generates the position and orientation trajectory of the end-effector like the joint variables trajectory. Therefore, the research team can conclude that the complete DMP can be applied to solve the invert kinematic problem and generate motion planning of the robot. The results showed that using DMP with joints helps to produce end-effector trajectories and joints, which are more similar to the measured values. It makes it possible for humans to manipulate the robot more naturally and comfortably. In the future, we can use DMP to generate a lot of end-effector position and orientation trajectories as well as joint variable trajectories for control as well as data to train neural networks to help solve complex robot problems.