Skip to main content
  • Original Article
  • Published:

Trajectory Tracking of a Planer Parallel Manipulator by Using Computed Force Control Method

Abstract

Despite small workspace, parallel manipulators have some advantages over their serial counterparts in terms of higher speed, acceleration, rigidity, accuracy, manufacturing cost and payload. Accordingly, this type of manipulators can be used in many applications such as in high-speed machine tools, tuning machine for feeding, sensitive cutting, assembly and packaging. This paper presents a special type of planar parallel manipulator with three degrees of freedom. It is constructed as a variable geometry truss generally known planar Stewart platform. The reachable and orientation workspaces are obtained for this manipulator. The inverse kinematic analysis is solved for the trajectory tracking according to the redundancy and joint limit avoidance. Then, the dynamics model of the manipulator is established by using Virtual Work method. The simulations are performed to follow the given planar trajectories by using the dynamic equations of the variable geometry truss manipulator and computed force control method. In computed force control method, the feedback gain matrices for PD control are tuned with fixed matrices by trail end error and variable ones by means of optimization with genetic algorithm.

1 Introduction

Parallel manipulators consist of one or more closed loop mechanisms and their moving platform is connected to a fixed base via two or more serial kinematic chains. Compared to serial manipulators, they show better dynamic performance, higher accuracy, acceleration, compactness, payload capability and also have lower manufacturing cost. Accordingly, these manipulators have been used in many fields such as flight simulations, in high-speed machine tool applications, pick-and-place operation, sensitive cutting, assembly, packaging and medical operations. However, the drawbacks of small workspace and singularity restrict the utilization of these manipulators. Fortunately, redundancy concept can effectively cope with these troubles since, for a given position, a unique solution can be chosen among an infinite set of inverse kinematic solutions corresponding to all valid manipulator configurations.

There are a great number of studies on the workspace and singularity of parallel manipulators [16]. In Ref. [1] and Ref. [5], the dimension synthesis is performed by maximizing the workspace and dexterity of the manipulators. Merlet, et al [2], used the geometric algorithms for the workspace analysis of 3-RPR parallel manipulator while a closed form analytic solution for a reachable workspace is presented by Agheli, et al [3]. Some normalized parameters with respect to specified indices such as Good-Condition Workspace Index, Global Dexterity Index are used to determine the workspace of the manipulators [5, 6]. These kinematic performance indices with dynamic dexterity are extended to the optimum design of parallel planar manipulators with redundancy actuation [7].

Another drawback for parallel manipulators, especially in redundant ones, is their harder kinematic analysis because they have one or more closed-loop kinematic chains and passive joints. To implement collision-free motion, improve dexterity and precision, eliminate singularity and enhance useful workspace and rigidity, in recent years, many researchers have focused on redundant manipulators and the solution of their inverse kinematics. In literature, the redundancy resolution approaches are based on variational approach, optimization, pseudo-inverse and non-traditional methods. Generally, closed-loop inverse kinematic redundancy is solved at velocity level. Wang, et al [8], resolves the redundancy both at velocity and acceleration level via pseudo-inverse and joint limit avoidance while some redundancy resolution procedures are presented at position level in which the shortest distances to obstacles are minimized [9]. Kinematically redundant parallel manipulators are used to ameliorate the trajectory tracking performance by attenuating the singularity region. For this aim, an optimization method using binary coded genetic algorithm (GA) achieves a minimum torque calculation for a desired trajectory tracking [10]. Different constraint optimization methods based on neural network are formulated for the joint limits in implementing end-effector task [11, 12]. In another method of redundancy resolution, a closed-loop inverse kinematic algorithm exploiting pseudo-inverse and joint limit avoidance is applied on a 3-degree of freedom (DoF) planar and 4-DoF spatial manipulators for end-effector tracking [13]. Linear programming [14] and dual neural network method [15] are non-traditional redundancy resolution techniques with respect to some constraint optimizations.

Dynamic modeling of robot manipulators is very important for computer simulations, corresponding control strategies, sizing of linkages. Several methods, such as Virtual Work, Newton–Euler, Lagrange, Kane, etc. have been proposed to obtain the dynamic equations of manipulators. Inverse dynamic solution of robotic systems is essential to controller design [16, 17]. The dynamic dexterity of 2-DoF manipulator is evaluated via the dynamic equation of motion by utilizing Virtual Work method [6, 18]. Optimization of driving force is very significant matter based wholly on dynamic analysis. Utilizing the least-square method, the actuator forces are optimized for a 3-DoF parallel manipulator [19] and a 5-DoF hybrid machine tool [20] which has actuation redundancy. Most studies whichever is kinematics or dynamics on robots aim to achieve better trajectory tracking performance. Several works concerning to trajectory tracking control scheme are determined for singularity free-paths [21], joint limit avoidance [22], minimization of position error of end-effector [23]. Redundant manipulators have been preferred to fulfill these goals since they have an increased dexterity and force capability over non-redundant counterparts.

In order to control robot manipulators, two main strategies have been offered in literature. One is the kinematic control strategy such as PID, fuzzy-logic and neural network controller. The other is the dynamic based control strategies such as computed torque control, adaptive computer torque control which are a non-linear robust controller. A hybrid-driven planar five bar parallel mechanism is controlled by using the traditional PD and closed-loop PD type iterative learning control [24]. Generally, PID parameters depend on the classical gain-phase margin tuning. In Ref. [25], the PID controller is optimized using both the margin-phase tuning and the genetic algorithm based on real condition. In the paper, the parameters are found for single input–single output system. A multi input-multi output (MIMO) nonlinear system is controlled by a PID controller and GA optimization is used to tune the parameters as offline. In its online experimental implementation, the discrete PID parameters are taken from the PID continuous form step by step [26]. Fuzzy-logic controller is applied to eliminate the mathematical nonlinearity of computed torque control [21, 27]. In another control method based upon the task space formulation with forward kinematics, an impedance control is used to control end-effector [28]. Sensor based methods are generally presented on joint space and operational space control schemes [27, 29].

In this paper, we investigate a special type of 3-RPR planar parallel manipulator with three degrees of freedom. It is constructed as a variable geometry truss (VGT) generally known planar Stewart platform. Firstly, utilizing the loop-closure equations of this manipulator, the reachable workspace is defined analytically and the orientation workspace is obtained with the direct search method numerically. This paper considers also dynamics formulation of three DoF VGT manipulator established by using Virtual Work method. Given a trajectory tracking task, the manipulator becomes redundant if there is no constraint on the orientation of the platform. In this redundancy case, the inverse kinematic is solved according to the joint limitations. Finally, for some sample trajectories with the position, velocity and acceleration profiles, the manipulator could try to follow them by using the inverse kinematic solution for the redundancy resolution at position level and the computed force method. In the computed force control method, the gain matrices for PD control are tuned with fixed matrices by trail end error and variable ones by means of optimization with genetic algorithm. In literature, generally, PID parameters are given as a single value for each gain. However, these gain terms are represented by matrices in MIMO systems. In this study, we use the feedback gains as matrices so that we try to tune not only gain matrices’ elements on the diagonal but also all elements of the matrices.

2 Description of the Manipulator

The manipulator is a 3-DoF parallel variable geometry structure called planar Stewart Platforms in literature. In this manipulator, the moving top platform is connected to the lower fixed base via the prismatic joints. These joints are actuated by linear actuators such as hydraulic, pneumatic cylinders or linear screw actuators. The others are passive revolute joints. In fact, this manipulator is a special type of a 3-RPR planar parallel manipulator with different top plate (movable link) geometry and the location of revolute joints. All the joint variables and fixed manipulator parameters are as shown in Fig. 1. All members are considered as rigid elements. The VGT manipulator is constructed so that its view appears as trapezoid rather than parallelogram. This structural feature increases the lateral robustness of the manipulator so that it can resist the shearing loads more effectively.

Fig. 1
figure 1

Variable Geometry Truss (VGT) Parallel Manipulator

2.1 Kinematics of the Manipulator

The kinematic equations of the manipulator are written according to the loop-closure of A 0 B 0 B 11 and A 0 B 11 A 11 and decoupled as follows:

$$2b + s_{2} \,{\text{cos(}}\gamma ) = s_{3} {\kern 1pt} {\kern 1pt} {\text{cos(}}\beta )$$
(1)
$$s_{2} \,{\text{sin(}}\gamma ) = s_{3} \,{\text{sin(}}\beta )$$
(2)
$$s_{1} \,\,{\text{cos(}}\alpha ) + 2d\,\,{\text{cos(}}\theta ) = s_{3} \,\,{\text{cos(}}\beta )$$
(3)
$$s_{1} \,\,{\text{sin(}}\alpha ) + 2d\,\,{\text{sin(}}\theta ) = s_{3} \,\,{\text{sin(}}\beta )$$
(4)

Where \(s_{1}\), \(s_{2}\) and \(s_{3}\) are the independent joint variables which are the length of the actuators while \(\alpha\), \(\beta\), \(\gamma\) and \(\theta\) are the passive revolute joint angles and can be calculated in terms of \(s_{i} ,\quad i = 1,2,3\) from Eqs. (1) to (4). For the detail kinematic solution of the mechanism, look at the paper of Bayram, et al [30].

The point O 2 on the moving platform is the tool center. A scalar couple (\(X_{{O_{ 2} }}\),\(Y_{{O_{ 2} }}\)) which represents coordinates of the tool point, O 2 and the orientation of the upper platform, \(\theta\), corresponds to the independent joint variables driving the manipulator. From the geometry, this point is given as follows:

$$X_{{O_{2} }} = s_{1} \,{ \cos }(\alpha ) + d\,{\kern 1pt} { \cos }(\theta ) - b$$
(5)
$$Y_{{O_{2} }} = s_{1} \,{ \sin }(\alpha ) + d\,{ \sin }(\theta )$$
(6)

Workspace evaluation is great importance to design manipulator. In literature, there are different types of workspace studied such as reachable or Cartesian workspace, dexterous workspace, orientation workspace etc. In dexterous workspace, the end-effector of the manipulator can access a set of points in any orientation whereas reachable workspace can only be reached with at least one orientation. Unlike serial manipulators, parallel manipulators, especially linearly actuated, may not have dexterous workspace due to the restriction on the actuators. According to this definition, the dexterous workspace doesn’t occur for the VGT manipulator. Another concept is orientation workspace which is subset of reachable workspace and contains a set of all attainable orientations of the movable platform about a fixed point. In this paper, reachable workspace and orientation workspace are focused to define the useful working region of the manipulator and also the ranges of the orientation (\(\left[ {\theta_{\hbox{min} } ,\theta_{\hbox{max} } } \right]\)) of the top plate.

Each of the three actuator legs in the VGT has a maximum and minimum working length. The constraints on the leg lengths are formally expressed as \(0 < s_{i}^{\hbox{min} } \le s_{i} \le s_{i}^{\hbox{max} }\) so that the reachable workspace is surrounded by six different curves, \(R_{i}\) calculated from Eqs. (1) to (6).

$$\begin{aligned} {\text{R}}_{ 1} / {\text{R}}_{ 2} :\quad \left( {x_{{O_{2} }} + b} \right)^{2} + y_{{O_{2} }}^{2} = \hfill \\ \frac{{s^{2}_{1 - \hbox{max} /\hbox{min} } + s^{2}_{3 - \hbox{max} /\hbox{min} } }}{2} - d^{2} = R_{sp}^{2} \quad \left( {\text{circler}} \right) \hfill \\ \end{aligned}$$
(7)
$${\text{R}}_{ 3} / {\text{R}}_{ 4} :\quad \left( {x_{{O_{2} }} - X_{{B_{11} }} } \right)^{2} + \left( {y_{{O_{2} }} - Y_{{B_{11} }} } \right)^{2} = d^{2} \quad \left( {\text{circler}} \right)$$
(8)
$$\begin{aligned} {\text{R}}_{ 5} / {\text{R}}_{ 6} :\quad \left( {x_{{O_{2} }} + b} \right)^{2} + y_{{O_{2} }}^{2} = \frac{{s^{2}_{1 - \hbox{max} /\hbox{min} } + s_{3}^{2} }}{2} - d^{2} = \left( {R\left( p \right)} \right)^{2} ,\quad \hfill \\ s_{3}^{\hbox{min} } \le s_{3} \le s_{3}^{\hbox{max} } \quad \left( {\text{polar}} \right) \hfill \\ \end{aligned}$$
(9)

Where \(x_{{B_{11} }} = s_{2 - \hbox{max} /\hbox{min} } \;{ \cos }(\gamma_{\hbox{max} /\hbox{min} } ) + b\) and \(Y_{{B_{11} }} = s\,_{2 - \hbox{max} ,\hbox{min} } \,{ \sin }(\gamma_{\hbox{max} /\hbox{min} } )\) and also \(s_{i - \hbox{max} /\hbox{min} } \;\) represents the maximum (minimum) length of the related joint. \(\gamma\) depends only on the independent joint variable of \(s_{2}\) and \(s_{3}\).

Considering the constraint of \(0 < s_{i}^{\hbox{min} } \le s_{i} \le s_{i}^{\hbox{max} }\) and Eqs. (7)–(9), the boundary of the reachable workspace of the manipulator is defined as six piecewise functions (R1–R6). Fig. 2 is plotted according to the independent joint variables and the manipulator parameters specified as \(s_{1 - \hbox{min} /\hbox{max} } = \left( {210/342} \right)\;{\kern 1pt} {\text{mm}}\), \(s_{2 - \hbox{min} /\hbox{max} } = \left( {210/342} \right)\;{\kern 1pt} {\text{mm}}\), \(s_{3 - \hbox{min} /\hbox{max} } = \left( {341/435} \right)\;{\kern 1pt} {\text{mm}}\), \(b = 142\;{\kern 1pt} {\text{mm}}\) and \(d = 128\;{\kern 1pt} {\text{mm}}.\)

Fig. 2
figure 2

Orientation workspace of the VGT (left side) and the projection of the orientation workspace onto XY-plane and the border of reachable workspace of the VGT (right side)

The orientation workspace is created by using a direct search algorithm with checking the existence of an inverse kinematics solution for the manipulator shown as in Fig. 2. The z-axis in this figure represents the orientation of the top plate in degree versus the reachable workspace on the xy plane. This algorithm is a numerical method and depends on how many points are involved in the unit area relative to the whole area of the reachable workspace. The plot is obtained by a result of MATLAB density distribution algorithm.

For the manipulator parameters, the orientation workspace is more isotropic in the middle region of the workspace, however, the boundaries posses a poorer dexterity due to the nature of parallel manipulators. The colored regions show the controllability orientation of the VGT moving part. For the manipulator dimensions and actuator strokes, the orientation capability can change between the range of \(\left[ {\theta_{\hbox{min} } = - 30.3^\circ ,\;\theta_{\hbox{max} } = 32.9^\circ } \right]\). However, this range cannot be applied to all parts of the reachable workspace and varies from the region to region as shown in Fig. 2. For example, in the red colored region, the manipulator controlled with the orientation between approximately \(- 30^\circ\) and \(+ 30^\circ\), in the yellow one between \(- 20^\circ\) and \(+ 20^\circ\), in the green one between \(- 15^\circ\) and \(+ 15^\circ\) etc. Approaching to the border of the reachable workspace, the manipulator loses some dexterity and finally, the orientation capability will be zero at the border of the reachable workspace.

Let’s take the time derivative of Eqs. (5) and (6), giving the velocity of the point O 2.

$$V_{{O_{2x} }} = \dot{s}_{1} {\kern 1pt} {\kern 1pt} { \cos }\left( \alpha \right) - s_{1} \sin \left( \alpha \right)\dot{\alpha } - d\cos \left( \alpha \right)\dot{\alpha }$$
(10)
$$V_{{O_{2y} }} = \dot{s}_{1} \sin \left( \alpha \right) + s_{1} \cos \left( \alpha \right)\dot{\alpha } + d\cos \left( \alpha \right)\dot{\alpha }$$
(11)

Also, the angular velocity of the upper platform with respect to the base is given as follows.

$$\varvec{\omega}_{8/1} = \dot{\theta }{\kern 1pt} k$$
(12)

Here, the expressions for \(\dot{\alpha }\) and \(\dot{\theta }\) are given in Appendix “1”. in terms of the independent joint variables. The general velocity equation is constructed from Eqs. (10)–(12).

$$\dot{\varvec{X}}{ = }\varvec{J}\,\dot{\varvec{q}}$$
(13)

Where \(\varvec{J}\) is the Jacobian of the manipulator. The positions where the determinants are zero give the singular configurations of the manipulator. The determinant of the Jacobian is calculated as

$$\left| \varvec{J} \right| = \frac{1}{2d}\sin \left( {\gamma - \beta } \right)\sin \left( {\alpha - \theta } \right)$$
(14)

From Eq. (14), the conditions on the angles of \(\gamma = \beta\) and/or \(\alpha = \theta\) are the singular configurations. From Fig. 1, these configurations take place in which prismatic actuators are wholly extended or folded shapes. However, the manipulator can never reach these configurations because there is a restriction on the joint limits such as \(0 < s_{i}^{\hbox{min} } \le s_{i} \le s_{i}^{\hbox{max} }\).

2.2 Dynamic Analysis

Based on the Virtual Work Principle, the dynamic equation of the VGT manipulator is defined as

$$ \sum\limits_{i = 1}^{N} {\left[ {\left( {m_{i} \varvec{a}_{{\varvec{ci}}} - \varvec{F}_{i} } \right) \cdot \delta \varvec{r}_{\varvec{i}} + \left( {I_{i} {\kern 1pt} \dot{\varvec{\omega }}_{i} + \omega_{i} \times I_{i} \cdot\varvec{\omega}_{i} - {\text{T}}_{\text{i}} } \right) \cdot \varvec{\delta \phi }_{i} } \right] = 0}$$
(15)

Where \(\delta \varvec{r}_{i} = \varvec{J}_{V,i} \,\delta \varvec{q}_{i}\) and \(\delta \phi_{i} = {\varvec{\rm{J}}}_{{\varvec{\omega}, {\text{i}}}} \,\delta {\varvec{q}}_{\text{i}}\) are the mapping from the joint space into the task space. When these expressions are substituted in above equation, we obtain a general matrix form for the dynamic equations:

$$\sum\limits_{i = 1}^{N} {\left[ {\varvec{J}_{{{\text{V,}}{\kern 1pt} {\text{i}}}} \left( {m_{i} {\kern 1pt} {\varvec{a}}_{ci} - {\varvec{F}}_{\text{i}} } \right) + {\varvec{J}}_{{\varvec{\omega}, {\text{i}}}} \left( {I_{i} {\kern 1pt} \dot{\varvec{\omega }}_{i} + I_{i} {\kern 1pt}\varvec{\omega}_{i}^{2} - {\varvec{T}}_{\text{i}} } \right)} \right] = 0}$$
(16)

Where \(\bar{a}_{ci}\) and \(\dot{\omega }_{i}\) are the linear and angular acceleration of center of gravity of each link and can be obtained by taking the second time derivative of their center position of each link with respect to the base fixed reference frame. Since these acceleration terms also involve the passive joint variables, we need to transform them into that of the independent joint variables as

$$\left. {\begin{array}{*{20}c} {\varvec{a}_{ci} = \varvec{J}_{V,\,i} \,{\ddot{\varvec{q}}} + \varvec{u}_{i} } \\ {\dot{\omega }_{\iota } = \varvec{J}_{\omega ,\,i} \,{\ddot{\varvec{q}}} + \varvec{w}_{i} } \\ \end{array} } \right\}\quad i = 1,\;2, \cdots ,7$$
(17)

Where \(\varvec{J}_{v}\) and \(\varvec{J}_{\omega }\) are the translational and rotational Jacobian matrices, respectively. With Eq. (17), the dynamic equation of motion in terms of the independent joint variables is represented as

$${\varvec{M}}\left( \varvec{q} \right)\,{\kern 1pt} {\ddot{\varvec{q}}} + \varvec{C}\left( {\varvec{q},\;\dot{\varvec{q}}} \right) = \varvec{F}_{a} - \varvec{F}_{d}$$
(18)

\(\varvec{M}\left( \varvec{q} \right)\,{\kern 1pt}\) is the inertia matrix, \(\varvec{C}\left( {\varvec{q},\;\dot{\varvec{q}}} \right)\) involves the Coriolis and viscous damping forces,\(\varvec{F}_{a}\) is the actuator forces and \(\varvec{F}_{d}\) the disturbance forces. Due to the principle of virtual work, the constraint forces and interacting forces are eliminated to formulate the inverse dynamics of the VGT parallel manipulator. Besides, the gravity term is eliminated because the manipulator moves on the horizontal plane. This dynamic equation consists of many complicated non-linear terms because the manipulator has two independent loop-closure equations and four passive joints with the first and second time derivatives. Eq. (18) governing the system motion is used to develop control laws.

2.3 Trajectory Tracking of the VGT Planar Manipulator

In fact, the VGT is a regular planar parallel manipulator controlled by three linear actuators, i.e., has 3-DoF (two positions and one orientation). We need at least 2-DoF manipulator for the trajectory tracking in a plane. In this study, the manipulator with 3-DoF becomes redundant for this task so that we can utilize the advantage of the redundancy such as optimization, singularity free inverse kinematics solution, obstacle avoidance, etc. Moreover, in some applications such as cutting, welding and painting operations, the orientation of the tool may be in great importance and also redundant manipulators show better rigidity compared to 2-DoF manipulators.

2.3.1 Inverse Kinematics of the Manipulator

For the redundant manipulators, the inverse kinematics turns into the redundancy resolution based on minimizing a cost function. The VGT manipulator uses the prismatic joints as actuator whose lengths vary between the maximum and minimum lengths. Thus, the cost function for redundancy resolution is chosen for the joint limit avoidance as

$$\varPhi \left( \varvec{q} \right) = \frac{1}{n}\sum\limits_{i = 1}^{n} {\left( {\frac{{q_{i} - q_{i}^{*} }}{{q_{iM} - q_{im} }}} \right)}^{2}$$
(19)

Where \(q_{iM}\) and \(q_{im}\) are the maximum and minimum joint lengths, \(q_{i}\) is the real joint value and \(q_{i}^{*} = \left( {q_{iM} + q_{im} } \right)/2\) is the middle value of the joint variation.

We specified the performance criteria at the position level. Furthermore, velocity limit avoidance, torque limit avoidance, singularity avoidance, energy minimization, etc. can be chosen for other performance criteria. In this study, only the criterion of joint limit avoidance is used. This tries to ensure that the joint variables be within the range of joint limits. For the desired trajectory given in Eqs. (25) and (26), the redundancy resolution is solved by using Eqs. (1)–(6) and Eq. (19) at position level for the inverse kinematics. “fmincon” command in MATLAB is used to optimize Eq. (19) with the equality constraints between the joint limits of \(0 < s_{i}^{\hbox{min} } \le s_{i} \le s_{i}^{\hbox{max} }\).

Taking the first and second time derivatives gives us the feasible \(\dot{\varvec{q}}\left( t \right)\) and \({\ddot{\varvec{q}}}\left( t \right)\) rates in joint space. Thus, the desired trajectories can be described for the position, velocity and acceleration information.

2.3.2 Computed Force Control (CFC) Method

This method is called “computed torque control” in literature due to rotary actuators generally used in robot manipulators. We use the name of “computed force control” since actuators are prismatic. Computed torque method is known as a special application of the feedback linearization of the nonlinear system and is a model based method. Due to these, it is widely preferred in robotic applications. This method creates a link between the traditional control methods and modern ones as well. The kinematics and dynamic equations studied in the previous sections of the paper are used to evaluate the control of the manipulator via the computed force control method. The procedure is summarized graphically in Fig. 3.

Fig. 3
figure 3

Trajectory tracking with computed force control

Let’s write the computed force for the manipulator,

$${\varvec{F}} = {\varvec{M}}\left( \varvec{q} \right){\ddot{\varvec{q}}}_{{\varvec{ref}}} + {\varvec{C}}\left( {\dot{\varvec{q}},{\varvec{q}}} \right)$$
(20)

Where \({\ddot{\varvec{q}}}_{{\varvec{ref}}}\) is a control input defined as

$${\ddot{\varvec{q}}}_{{\varvec{ref}}} = {\ddot{\varvec{q}}}_{\varvec{d}} + \varvec{K}_{\varvec{p}} \varvec{e} + K_{\varvec{v}} \dot{e}$$
(21)

\({\varvec{e}} = {\varvec{q}}_{\varvec{d}} - {\varvec{q}}\) is position error, \({\varvec{q}}_{\varvec{d}}\), \({\dot{\varvec{q}}}_{\varvec{d}}\) and \({\ddot{\varvec{q}}}_{\varvec{d}}\) are the desired position, velocity and acceleration of the joint variables, respectively. The error equation is given as follows.

$${\ddot{\varvec{e}}} + {\varvec{M}}^{ - 1} {\varvec{K}}_{\varvec{v}} \dot{\varvec{e}} + {\varvec{M}}^{ - 1} {\varvec{K}}_{\varvec{p}} {\varvec{e}} = {\varvec{w}}$$
(22)

In this equation, \({\varvec{w}}\) is the disturbance input, \({\varvec{K}}_{\varvec{p}}\) and \({\varvec{K}}_{\varvec{v}}\) are the position and velocity feedback gain matrices selected correspondingly to make this error equation stable.

The computed forces are calculated as

$${\varvec{F}} = {\varvec{M}}^{ - 1} \left[ {\ddot{\varvec{q}}_{\varvec{d}} + {\varvec{K}}_{\varvec{p}} {\varvec{e}} + {\varvec{K}}_{\varvec{v}} \dot{\varvec{e}}} \right] + \varvec{C}\left( {\dot{\varvec{q}},{\varvec{q}}} \right)$$
(23)

From the inverse dynamics, the joint variables can be calculated under the external disturbance,\(\varvec{F}_{\varvec{d}}\) randomly assigned. The condition on the disturbance is assigned as \(\left\| {\varvec{F}_{\varvec{d}} } \right\| <\varvec{\eta}\). As a result, the second joint rates can be calculated as follows.

$${\ddot{\varvec{q}}} = {\varvec{M}}^{ - 1} \left[ {\varvec{F} - {\varvec{C}}\left( {\dot{\varvec{q}},{\varvec{q}}} \right) + {\varvec{F}}_{\varvec{d}} } \right]$$
(24)

The position and velocity of the joints are solved with the Euler numerical integration method by using Eq. (24). The following procedure is applied to trace the given trajectory as closely as possible.

  • For the given trajectory \(\varvec{r}\left( \varvec{t} \right)\), the redundancy resolution for the joint variables \(\varvec{q}\left( \varvec{t} \right)\) is solved at position level by using the kinematics equations in Eqs. (1) to (6), the cost function in Eq. (19) over the joint limits, \(0 < s_{i}^{\hbox{min} } \le s_{i} \le s_{i}^{\hbox{max} }\).

  • The first and second rates of the joint variables are calculated for the desired ones with the result of the previous step.

  • Select the feedback gains \(\varvec{K}_{\varvec{p}}\) and \(\varvec{K}_{\varvec{v}}\) for computed force controller with PD.

    • Take \(\varvec{K}_{\varvec{p}}\) and \(\varvec{K}_{\varvec{v}}\) as fixed diagonal matrices during whole trajectory.

    • Take \(\varvec{K}_{\varvec{p}}\) and \(\varvec{K}_{\varvec{v}}\) as variable matrices for each time step.

Finally, all simulations are implemented in MATLAB according to the desired trajectory and manipulator features.

2.3.3 Genetic Algorithm

Solutions for unusual of difficult optimization problems not easily solved by conventional optimization methods can be found by using genetic algorithm. Genetic algorithm is a nondeterministic stochastic search algorithm based on the mechanism of natural selection and natural genetics. For more detail information about genetic algorithms, see the book of Mitchell [31].

For the control of the manipulator, instead of fixed feedback gain matrices, they can be adjusted in each time step. For this aim, using genetic algorithm is an effective approach to select the feedback gains for a better control of the manipulator. In this paper, \(\varvec{K}_{\varvec{p}}\) and \(\varvec{K}_{\varvec{v}}\) consist of 3 by 3 matrices, i.e., each has 9 elements, each of which is represented by 8 bit. To calculate \(\varvec{K}_{\varvec{p}}\) and \(\varvec{K}_{\varvec{v}}\), the population of the genetic algorithm contains totally 144 bits for each generation. The elements of gain matrices vary between a maximum and minimum values by changing “0” and “1” bits as follows:\(\varvec{K}_{\varvec{p}}^{\hbox{min} } \le \left[ {\varvec{K}_{\varvec{p}} } \right]_{{i{\kern 1pt} j}} \le \varvec{K}_{\varvec{p}}^{\hbox{max} }\), \(\varvec{K}_{\varvec{v}}^{\hbox{min} } \le \left[ {\varvec{K}_{\varvec{v}} } \right]_{{i{\kern 1pt} j}} \le \varvec{K}_{\varvec{v}}^{\hbox{max} } ,\) \(i,j = 1,2,3\). Selection of the best population is made according to the fitness function which is the Euclidian norm of the trajectory error. The generated better populations with smaller fitness values are selected while the others are discarded. At the end of the generation loop, the population with the best fitness is chosen as an elite population, i.e., the optimized one constructing the PD gain matrices.

3 Simulations and Results

3.1 Case Study 1

The reference position vector for the first trajectory task is given in piecewise function as a three parametric forms.

$$\varvec{r}\left( t \right) = \left\{ {\begin{array}{*{20}c} {\varvec{T}_{1} :\;\;\left[ {\begin{array}{*{20}c} {x_{1} \left( t \right)} \\ {y_{1} \left( t \right)} \\ \end{array} } \right] = \varvec{a}_{1} \,t^{3} + \varvec{b}_{1} \,t^{2} + \varvec{c}_{1} \,t + d_{1} } \\ {\varvec{T}_{2} :\;\;\left[ {\begin{array}{*{20}c} {x_{2} \left( t \right)} \\ {y_{2} \left( t \right)} \\ \end{array} } \right] = \varvec{a}_{2} \,t^{3} + \varvec{b}_{2} \,t^{2} + \varvec{c}_{2} \,t + \varvec{d}_{2} } \\ {\varvec{T}_{3} :\;\left\{ \begin{aligned} x_{3} \left( t \right) &= a_{3} \,t^{3} + b_{3} \,t^{2} + c_{3} \,t + d_{3} \hfill \\ y_{3} \left( t \right) &= K_{1} x_{3}^{2} + K_{2} x_{3} + K_{3} \hfill \\ \end{aligned} \right.\;} \\ \end{array} } \right.$$
(25)

This reference trajectory \(\it \bf {\text{r}}\left( t \right)\) defines a closed planer curve within the workspace of the VGT manipulator. For this task, the feedback fixed gains for CFC are selected by trial and error as \(\varvec{K}_{p} = {\text{diag}}\left[ {10000\quad 10000\quad 10000} \right]\), and \(\varvec{K}_{v} = \text{diag}\left[ {800\quad 800\quad 800} \right]\). In the second approach, these gains are calculated step by step by GA minimizing the trajectory errors. In the simulations, each element of the gain matrices varies between a minimum and maximum value such as \(\left[ {\varvec{K}_{\varvec{p}} } \right]_{{i{\kern 1pt} j}} = \left[ {0 - 10,000} \right]\) and \(\left[ {\varvec{K}_{\varvec{v}} } \right]_{{i{\kern 1pt} j}} = \left[ {0 - 300} \right]\) All specifications and manipulator parameters are given in Appendix 2. The compared outcomes of the simulations are shown in Figs. 46. Fig. 4 shows the desired and actual trajectories while Fig. 5 shows the absolute errors between the desired and actual positions for fixed and variable \(\varvec{K}_{\varvec{p}}\) and \(\varvec{K}_{\varvec{v}}\) matrices.

Fig. 4
figure 4

Trajectory tracking of the VGT Manipulator

Fig. 5
figure 5

The absolute position error between the actual and desired trajectories

For the fixed feedback gains, the manipulator can follow the given trajectory with very little error along the part of the straight line between 0 s and 2 s. The maximum absolute positional error for this part is 0.08765 mm. However, in the parabolic curve, the accuracy deteriorates and the maximum error becomes 0.2173 mm. \(\varvec{K}_{\varvec{p}}\) is increased so as to alleviate the position error but this causes very oscillatory and excessive actuator forces. The variable gains from GA give much better results compared to the fixed \(\varvec{K}_{\varvec{p}}\) and \(\varvec{K}_{\varvec{v}}\) matrices. For example, the maximum error is 0.0462 mm. The other comparison is held with respect to the root mean square (RMS). The RMS values are 0.0896 for fixed gains and 0.009556 for variable gains. Finally, during this task operation, Fig. 6 shows the calculated actuator forces only on the diagonal of the VGT for simplicity.

Fig. 6
figure 6

Actuator force on the diagonal of the VGT

3.2 Case Study 2

The trajectory defines an eight-shape closed parametric curve within the workspace with the convenient parameters of \(a_{0}\), \(b_{0}\) and \(c_{0}\) as follows:

$${\mathbf{r}}\left( t \right) = \left\{ {\begin{array}{*{20}c} {x\left( t \right) = a_{0} \sin \left( t \right)} \\ {y\left( t \right) = b_{0} \sin \left( t \right)\cos \left( t \right) + c_{0} } \\ \end{array} } \right.$$
(26)

For this task, the feedback gains are selected as \(\varvec{K}_{\varvec{p}} = \text{diag}\left[ {1000\quad 1000\quad 1000} \right]\), \(\varvec{K}_{\varvec{v}} = \text{diag}\left[ {900\quad 900\quad 900} \right]\). The results are shown in Figs. 79. Fig. 7 shows the desired and actual trajectories while Fig. 8 shows the absolute error between the desired and actual positions. The maximum error for the variable gain matrices is 0.22 mm while it is 0.0712 mm for the fixed ones. For GA method, the error is very higher especially in the initial times. Considering Eq. (26), this problem stems from the non-zero initial velocity and acceleration terms. However, after very small number of time step, GA method gives very convenient results. For example, the average error becomes 0.002 mm. The superiority of the GA’s performance can be observed from the RMS values which are \(RMS = 0.009\) for GA method and \(RMS = 0.044582\) for fixed gain matrices. Finally, during this task operation, Fig. 9 shows the calculated actuator forces on the diagonal of the VGT.

Fig. 7
figure 7

Trajectory tracking of the VGT Manipulator

Fig. 8
figure 8

Absolute position error between the actual and desired trajectories

Fig. 9
figure 9

Actuator forces on the diagonal of the VGT

It can be seen from the figures for two different trajectories that the actuator forces increase in proportion with the increase of the errors. This expression is valid only for the case of fixed PD gains. For the GA method, the actuator force profile shows an oscillating characteristic because the system has discretizated PD gains and the calculation of these gains can be performed randomly in different domains without depending the previous outcomes. For GA, tuning the control parameters consumes larger computing times owing to the fact that it includes the complex searching process and the large number of variables. As such, it may be unrealistic to apply it to real-time applications.

4 Discussion and Conclusions

In this paper, we studied a planar parallel manipulator with three degrees of freedom. The reachable workspace is defined analytically and the orientation workspace is obtained with the direct search method numerically. For the planar trajectory tracking task, the inverse kinematic of the redundant manipulator is solved according to the joint limit avoidance at position level. Although the manipulator possess joint constrains and the solutions need cumbersome calculations, the method gives the better results for accuracy and timing. For some sample trajectories with the position, velocity and acceleration profiles, the manipulator could try to follow them by using the inverse kinematic solution, the dynamic equations and the computed force control method.

From the examples, the simulation outcomes with the proposed methods in this paper are very satisfactory compared to similar studies in literature. However, the computed force control method with the PD controller whose parameters are determined by trial and error did not give accepted results. Generally speaking, even if the results are consistent with the literature, it is expected that the positional errors should be held at micrometer level rather than millimeter. Besides, in order to decrease the errors, the feedback gains were increased enormously. This results in a drawback of larger actuator forces, i.e., energy consumption, and causes an undesirable vibration on the actuators. For this aim, the genetic algorithm is proposed to make the fine tuning of the PD controller. From the figures and data, GA method has superiority on the classical approach and could considerably reduce the errors. However, in addition to the premature convergence, GA has a drawback that all generation loops take longer times. Thus, it can restrict GA method to use online implementations.

To compare the performance of the GA, other methods such as State Dependent Riccati Equation can be studied for a future work. Still the excessive actuator forces are present for both methods. For another future work, to overcome this problem, non-traditional controller can be designed or the redundancy resolution of the manipulator can be used to minimize the actuator forces.

References

  1. Huang M Z. Design of a planar parallel robot for optimal workspace and dexterity. International Journal of Advanced Robotic Systems, 2011, 8(4): 176–183, DOI:10.5772/45693.

  2. Merlet J P, Gosselin C M, Mouly N. Workspaces of planar parallel manipulators. Mechanism and Machine Theory, 1998, 33(1–2): 7–20, DOI:10.1016/S0094-114X(97)00025-6.

  3. Agheli M, Nestinger S S. Comprehensive closed-form solution for the reachable workspace of 2-RPR planar parallel mechanisms. Mechanism and Machine Theory, 2014, 74: 102–116, DOI:10.1016/j.mechmachtheory.2013.11.016.

  4. Hay A M, Snyman J A. Multidisciplinary Design Optimization Group. The determination of nonconvex workspaces of generally constrained planar Stewart platforms. Computers & Mathematics with Applications, 2000, 40(8): 1043–1060, DOI:10.1016/S0898-1221(00)85015-4.

  5. Liu X J, Wang J, Pritschow G. On the optimal kinematic design of the PRRRP 2-DoF parallel mechanism. Mechanism and Machine Theory, 2006, 41(9): 1111–1130, DOI:10.1016/j.mechmachtheory.2005.10.008.

  6. Qi H, Liwen G, Jianxin W. Dynamic performance evaluation of a 2-DoF planar parallel mechanism. International Journal of Advanced Robotic Systems, 2012, 9(6): 250, DOI:10.5772/54731.

  7. Wu J, Wang L, You Z. A new method for optimum design of parallel manipulator based on kinematics and dynamics. Nonlinear Dynamics, 2010, 61(4): 717–727, DOI:10.1007/s11071-010-9682-x.

  8. Wang J, Li Y, Zhao X. Inverse kinematics and control of a 7-dof redundant manipulator based on the closed-loop algorithm. International Journal of Advanced Robotic Systems, 2010, 7(4): 1–9, DOI:10.5772/10495.

  9. Ding M Z, Ong C J, Poo A N. Resolution of redundant manipulators via distance optimization. Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science, 2000, 214: 1037–1047, DOI:10.1243/0954406001523506.

  10. Varalakshmi K V, Srinivas J. Optimized configurations of kinematically redundant planar parallel manipulator following a desired trajectory. Procedia Technology, 2014, 14: 133–140, DOI:10.1016/j.protcy.2014.08.018.

  11. Amar A R, Perdereau V, Drouin M. Penalty approach for a constrained optimization to solve on-line the inverse kinematic problem of redundant manipulators. Robotics and Automation, 1996. Proceedings., IEEE International Conference on. April, Minneapolis, USA, 1996, 1: 133–138.

  12. Assal S F M, Watanabe K, Izumi K. Neural network-based kinematic inversion of industrial redundant robots using cooperative fuzzy hint for the joint limits avoidance. Mechatronics, IEEE/ASME Transactions, 2006, 11(5): 593–603, DOI:10.1109/TMECH.2006.882991.

  13. Wang J, Li Y. Comparative analysis for the inverse kinematics of redundant manipulators based on repetitive tracking tasks. Automation and Logistics, 2009; ICAL’09. IEEE International Conference on. 2009: 164–169.

  14. Lalo W, Brandt T, Schramm D, et al. A linear optimization approach to inverse kinematics of redundant robots with respect to manipulability. In The 25th International Symposium on Automation and Robotics in Construction. ISARC, Vilnius, Lithuania, 2008: 175–180.

  15. Zhang Y, Wang J. A dual neural network for constrained joint torque optimization of kinematically redundant manipulators. Systems, Man, and Cybernetics, Part B: Cybernetics, IEEE Transactions, 2002, 32(5): 654–662, DOI:10.1109/TSMCB.2002.1033184.

  16. Wu F X, Zhang W J, Li Q, et al. Control of hybrid machines with 2-DoF for trajectory tracking problems. Control Systems Technology, IEEE Transactions, 2005, 13(2): 338–342, DOI:10.1109/TCST.2004.839580.

  17. Kordjazi H, Akbarzadeh A. Inverse dynamics of a 3-prismatic-revolute-revolute planar parallel manipulator using natural orthogonal complement. Proceedings of the Institution of Mechanical Engineers, Part I: Journal of Systems and Control Engineering, 2011, 225(2): 258–269, DOI:10.1243/09596518JSCE1098.

  18. Wu J, Wang J, Li T, et al. Dynamic dexterity of a planar 2-DoF parallel manipulator in a hybrid machine tool. Robotica, 2008, 26(1): 93–98, DOI:10.1017/S0263574707003621.

  19. Wu J, Wang J, Wang L, et al. Dynamics and control of a planar 3-DoF parallel manipulator with actuation redundancy. Mechanism and Machine Theory, 2009, 44(4): 835–849, DOI: 10.1016/j.mechmachtheory.2008.04.002.

  20. Wu J, Wang J, Wang L, et al. Dynamic model and force control of the redundantly actuated parallel manipulator of a 5-DoF hybrid machine tool. Robotica, 2009, 27(1): 59–65, DOI:10.1017/S0263574708004529.

  21. Nasa C, Bandyopadhyay S. Trajectory-tracking control of a planar 3-RRR parallel manipulator with singularity avoidance. Proceedings of 13th World Congress in Mechanism and Machine Science, Guanajuato, Mexico, 2011.

  22. Tatlicioglu E, McIntyre M L, Dawson D M, et al. Adaptive non-linear tracking control of kinematically redundant robot manipulators. International Journal of Robotics and Automation, 2008, 23(2): 98–105, DOI:10.2316/Journal.206.2008.2.206-3081.

  23. Ata A A, Myo R T. Optimal point-to-point trajectory tracking of redundant manipulators using generalized pattern search. International Journal of Advanced Robotic Systems, 2005, 2(3): 239–244, DOI:10.5772/5781.

  24. Zi B, Cao J B, Zhu Z C. Dynamic simulation of hybrid-driven planar five-bar parallel mechanism based on simmechanics and tracking control. International Journal of Advanced Robotic Systems, 2011, 8(4): 28–33, DOI:10.5772/45683.

  25. Jaen-Cuellar A Y, Romero-Troncoso R J, Morales-Velazquez L, et al. PID-controller tuning optimization with genetic algorithms in servo systems. International Journal of Advanced Robotic Systems, 2013, 10: 1–14, DOI:10.5772/56697.

  26. Patrascu M, Hanchevici A B, Dumitrache I. Tuning of PID controllers for non-linear MIMO systems using genetic algorithms. Proceedings of the 18th IFAC Congress, Milano, Italy, 2011: 12644–12649.

  27. Jahed A, Piltan F, Rezaie H, et al. Design computed torque controller with parallel fuzzy inference system compensator to control of robot manipulator. International Journal of Information Engineering & Electronic Business, 2013, 5(3): 66–77, DOI:10.5815/ijieeb.2013.03.08.

  28. Oh Y, Chung W, Youm Y. Extended impedance control of redundant manipulators based on weighted decomposition of joint space. Journal of Robotic Systems, 1998, 15(5): 231–258, DOI:10.1002/(SICI)1097-4563(199805)15:5<231::AID-ROB1>3.0.CO;2-P.

  29. Wang J, Li Y. Traching control of a redundant manipulator with the assistance of tactile sensing. Intelligent Automation & Soft Computing, 2011, 17(7): 833–845, DOI:10.1080/107985872011.10643192.

  30. Bayram A, Özgören M K. The conceptual design of a spatial binary hyper redundant manipulator and its forward kinematics. Proc IMechE, Part C: J. Mechanical Engineering Science, 2012, 226(1): 217–227, DOI: 10.1080/10798587.2011.10643192..

  31. Mitchell M. An introduction to genetic algorithms. 5th ed. Cambridge, MA: The MIT Press, 1999.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Atilla BAYRAM.

Appendices

Appendix 1. Rate of the Passive Joint Variables

\(s_{1}\), \(s_{2}\) and \(s_{3}\): the independent joint variables

\(\alpha\), \(\beta\), \(\gamma\) and \(\theta\): the passive (dependent) joint variables

The rate of the passive joint variables is given in terms of the independent joint variables as follows.

$$\dot{\alpha } = a_{\alpha } \,\dot{s}_{1} + b_{\alpha } \,\dot{s}_{2} + c_{\alpha } \,\dot{s}_{3} ,$$
$$\dot{\beta } = a_{\beta } \,\dot{s}_{1} + b_{\beta } \,\dot{s}_{2} + c_{\beta } \,\dot{s}_{3}$$
$$\dot{\gamma } = a_{\gamma } \,\dot{s}_{1} + b_{\gamma } \,\dot{s}_{2} + c_{\gamma } \,\dot{s}_{3} ,$$
$$\dot{\theta } = a_{\theta } \,\dot{s}_{1} + b_{\theta } \,\dot{s}_{2} + c_{\theta } \,\dot{s}_{3}$$

The coefficients are defined as

  • $$a_{\alpha } = \frac{{\cot \left( {\alpha - \theta } \right)}}{{s_{1} }}$$
    $$b_{\alpha } = - \frac{{\csc \left( {\beta - \gamma } \right)\,\,\csc \left( {\alpha - \theta } \right)\;\sin \left( {\beta - \theta } \right)}}{{s_{1} }}$$
    $$c_{\alpha } = \frac{{\csc \left( {\beta - \gamma } \right)\,\,\csc \left( {\alpha - \theta } \right)\;\sin \left( {\gamma - \theta } \right)}}{{s_{1} }}$$
  • $$a_{\beta } = 0,\;b_{\beta } = - \frac{{\csc \left( {\beta - \gamma } \right)\,\,}}{{s_{3} }},\;c_{\beta } = \frac{{\cot \left( {\beta - \gamma } \right)\,\,}}{{s_{3} }}$$
  • $$a_{\gamma } = 0,\;b_{\beta } = - \frac{{\cot \left( {\beta - \gamma } \right)\,\,}}{{s_{2} }},\;c_{\gamma } = \frac{{\csc \left( {\beta - \gamma } \right)\,\,}}{{s_{2} }}$$
  • $$a_{\theta } = \frac{{\csc \left( {\alpha - \theta } \right)}}{2d},\;b_{\theta } = - \frac{{\csc \left( {\beta - \gamma } \right)\,\,\csc \left( {\alpha - \theta } \right)\;\sin \left( {\alpha - \beta } \right)}}{2d},\;c_{\theta } = \frac{{\csc \left( {\beta - \gamma } \right)\,\,\csc \left( {\alpha - \theta } \right)\;\sin \left( {\alpha - \gamma } \right)}}{2d}$$

Appendix 2. Features of the Manipulator

The masses: \(m_{2} = m_{4} = 0.3\;{\text{kg}}\), \(m_{3} = m_{5} = 0.135\;{\text{kg}}\)\(m_{6} = 0.456\;{\text{kg}}\), \(m_{7} = 0.181\;{\text{kg}}\), \(m_{8} = 1.772\;{\text{kg}}\)

The inertias: \(I_{2} = I_{4} = 0.82 \times 10^{ - 3} \;{\text{kg}} . {\text{m}}^{2}\), \(I_{3} = I_{5} = 0.33 \times 10^{ - 3} \;{\text{kg}} . {\text{m}}^{2}\),\(I_{6} = 3.2 \times 10^{ - 3} \;{\text{kg}} . {\text{m}}^{2}\), \(I_{7} = 0.63 \times 10^{ - 3} \;{\text{kg}} . {\text{m}}^{2}\), \(I_{8} = 18.42 \times 10^{ - 3} \;{\text{kg}} . {\text{m}}^{2}\).

The mass center of gravity: \(\rho_{c2} = \rho_{c4} = 0.0812\;{\text{m}}\), \(\rho_{c3} = \rho_{c5} = 0.0741\;{\text{m}}\), \(\rho_{c6} = 0.1418\;{\text{m}}\), \(\rho_{c7} = 0.0946\;{\text{m}}\), \(\rho_{c8} = 0.142\,{\text{m}}\).

The viscous friction coefficient: \(c = 50\;\;Ns/m\)

The norm of disturbance force: \(\eta = \left[ {\begin{array}{*{20}c} 2 \\ 2 \\ \end{array} } \right]\quad \left( N \right)\)

The parameters of the Genetic algorithm:

The crossover type: uniform crossover

The probability of crossover: 0.4

The mutation probability (per bit): 0.05

The selection type: The Stochastic Universal Sampling method

The size of the population: 30

The maximum number of generations: 30

The crossover type: uniform crossover

The probability of crossover: 0.4

The mutation probability (per bit): 0.05

The selection type: The Stochastic Universal Sampling method

The size of the population: 30

The maximum number of generations: 30.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

BAYRAM, A. Trajectory Tracking of a Planer Parallel Manipulator by Using Computed Force Control Method. Chin. J. Mech. Eng. 30, 449–458 (2017). https://doi.org/10.1007/s10033-017-0091-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10033-017-0091-7

Keywords