Keywords

1 Introduction

The robot design process currently involves two isolated procedures: the structural synthesis and the dimensional synthesis (Merlet 2005). The first aims to find the number, type, and orientation of the robot joints in order to generate a manipulator with a desired number of degrees of freedom (DOF). For this purpose, several methods like the Lie groups (Caro et al. 2010) and the screw theory (Kuo and Dai 2010) have been employed. In the dimensional synthesis, the optimal dimensions of the robot links are determined in order to accomplish a given task (Carbone et al. 2007). For this optimisation, many kinds of performance indices (Patel and Sobh 2015) as well as optimisation algorithms (Carbone et al. 2007; Lara-Molina et al. 2010) have been proposed.

Although the methods for the structural and dimensional synthesis are well established, the architectures produced as a result of the structural synthesis are not considered in the dimensional synthesis. Instead, the optimisation of the links dimensions is performed only for one structure, which is usually chosen a priori. Thus, the obtained manipulator that results from the dimensional synthesis is not necessarily the best mechanism for the given task.

Integrated synthesis of planar mechanisms has been developed for rigid body guidance in (Luu and Hayes 2012; Pucheta and Cardona 2011). Furthermore, dual quaternions have been used (Perez-Gracia and McCarthy 2006) in the synthesis of spatial mechanisms from a prescribed set of finite positions.Some authors have tried to unify the two aforementioned procedures for task-specific serial manipulators (defining the task as one or several paths). However, these attempts consider only manipulators with three DOF (Kucuk and Bingul 2006), simplified architectures (e.g. the last three axes intersecting at one point) (Patel and Sobh 2014, 2015), or a limited set of link geometries (i.e. the possible components are predefined modules) (Rubrecht et al. 2011).

The present work introduces a combined (structural and dimensional) synthesis of serial robot manipulators which does not assume any structural simplification. It is able to synthesize manipulators with up to six DOF while taking prismatic (P) and revolute (R) joints into account. In order to reduce the computational effort, the generation of all task-suitable architectures as well as the extraction of the minimal optimisation parameters is performed as the first step of the approach. Then, a generic numerical solution of the inverse kinematics for serial manipulators is presented. The optimisation procedure for an exemplary pick and place task with four DOF is addressed in the fourth section. Finally, the method’s capability is demonstrated by synthesizing a manipulator for the mentioned task.

2 Generation of Suitable Architectures and Extraction of the Optimisation Parameters

The generation of suitable architectures to perform a required task is summarized here. A detailed description of the algorithm was previously published (Ramirez et al. 2015).

The architecture and geometry of a serial manipulator are described for the combined synthesis through a symbolic matrix of Denavit-Hartenberg (DH) parameters. The first part of the synthesis aims to find the parameters that can be used during the optimisation as variables and the parameters that have to be constant in order to provide the required end effector (EE) DOF.

The necessary DOF to execute a given task can be used to define the required motion vector \(\varvec{\xi }_{\mathrm {req}}\) as

$$\begin{aligned} \varvec{\xi }_{\mathrm {req}} = \left[ \xi _{\mathrm {req}_1}, \xi _{\mathrm {req}_2}, \xi _{\mathrm {req}_3}, \xi _{\mathrm {req}_4}, \xi _{\mathrm {req}_5}, \xi _{\mathrm {req}_6} \right] ^{\mathrm {T}} \, , \end{aligned}$$
(1)

where \(\xi _{\mathrm {req}_1}\), \(\xi _{\mathrm {req}_2}\), and \(\xi _{\mathrm {req}_3}\) represent the translational DOF in direction of the axes x, y, and z while \(\xi _{\mathrm {req}_4}\), \(\xi _{\mathrm {req}_5}\), and \(\xi _{\mathrm {req}_6}\) represent the rotational DOF around the axes x, y, and z, respectively. It has to be noticed that \(\varvec{\xi }_{\mathrm {req}}\) corresponds to the EE velocity of a serial manipulator \(\varvec{\xi }\):

$$\begin{aligned} \varvec{\xi } = \left[ \xi _{1}, \xi _{2}, \xi _{3}, \xi _{4}, \xi _{5}, \xi _{6} \right] ^{\mathrm {T}} = \begin{bmatrix} \varvec{v}_{n} \\ \varvec{\omega }_{n} \end{bmatrix} =\varvec{J} \dot{\varvec{q}} \, , \end{aligned}$$
(2)

with \(\varvec{J}\) being the Jacobian matrix of the manipulator, \(\varvec{v}_{n} = \left[ \xi _{1}, \xi _{2}, \xi _{3} \right] ^{\mathrm {T}}\) the EE linear velocity, \(\varvec{\omega }_{n} = \left[ \xi _{4}, \xi _{5}, \xi _{6} \right] ^{\mathrm {T}}\) the EE angular velocity, and \(\dot{\varvec{q}}\) the joint rates vector. For a given task, if \(\varvec{\xi }_{\mathrm {req}_i} = 0\) for any \(i=1 \ldots 6\), then \(\varvec{\xi }_i\) should be also zero for the same i and for any \(\dot{\varvec{q}}\). The suitability of a manipulator with respect to the task is evaluated using three conditions. Firstly, the null terms of \(\varvec{\xi }_{\mathrm {req}}\) and \(\varvec{\xi } \) have to be the same. Secondly, the rank of the Jacobian matrix (\( \mathrm {rank}(\varvec{J})\)) must be equal to the total number of required DOF. Thirdly, the independence of each EE DOF with respect to each DH parameter has to be verified. This evaluation is conducted in symbolic form in order to perform a global analysis. After the application of this conditions to the generated manipulators, it is possible to obtain a minimum set of architectures (i.e. without isomorphisms) to be considered during the subsequent optimisation.

Fig. 1
figure 1

Exemplary architecture generated for a task that requires three translational DOF and one rotational DOF around the z-axis (Ramirez et al. 2015)

Exemplarily, Fig. 1 shows a RPPP architecture, which is one of the 17 architectures that fulfil a required motion vector \({\varvec{\xi }}_{\text {req}}=[ {\xi }_{\text {req}_1}, {\xi }_{\text {req}_2}, {\xi }_{\text {req}_3}, 0, 0, {\xi }_{\text {req}_6}]^{\text {T}} \) (Ramirez et al. 2015). The corresponding DH parameters as well as the vector \(\varvec{p}\) with the optimisation parameters are also presented. In this case, the fixed parameters are \(\alpha _2 = \pi / 2\), \(\theta _3 = \pi / 2\), and \(\alpha _3 = \pi / 2\).

3 Kinematics Modelling

A central problem of the combined structural-dimensional synthesis is the solution of the inverse kinematics for a general serial manipulator including R and P joints. In this paper, the inverse kinematics is solved using a numerical approach, which exploits the advantages of both the pseudoinverse and the transpose of the Jacobian matrix.

The kinematics of a serial manipulator can be expressed as the relationship between the joint coordinates vector \(\varvec{q}\) and the Cartesian coordinates vector (position and orientation) of the EE \(\varvec{x}_{\mathrm {EE}}\):

$$\begin{aligned} \varvec{x}_{\mathrm {EE}} = \varvec{f} \left( \varvec{q} \right) \, . \end{aligned}$$
(3)

The inverse kinematics problem consists of calculating \(\varvec{q}\) from a given \(\varvec{x}_{\mathrm {EE}}\):

$$\begin{aligned} \varvec{q} = \varvec{f}^{-1} \left( \varvec{x}_{\mathrm {EE}} \right) \, . \end{aligned}$$
(4)

Most widespread numerical methods to solve (4) employ either the pseudoinverse or the transpose of the Jacobian \(\varvec{J}\). The first case corresponds to the Newton-Raphson method to solve nonlinear kinematic equations (Schwarz and Köckler 2011). The approach approximates the solution of the inverse kinematics \(\varvec{q}\) to the vector \(\varvec{q}_{p+1}\) using:

$$\begin{aligned} \varvec{q}_{p+1} = \varvec{q}_{p} + \varvec{J}\left( \varvec{q}_p \right) ^{\dag } \varvec{K} \, \mathrm {\Delta } \varvec{x}_{p} \, , \end{aligned}$$
(5)

with

$$\begin{aligned} \mathrm {\Delta } \varvec{x}_{p}&= \varvec{x}_{\mathrm {EE}} - \varvec{f} \left( \varvec{q}_p \right) \, , \end{aligned}$$
(6)
$$\begin{aligned} \varvec{J}^{\dag }&= \varvec{J}^{\mathrm {T}} \left( \varvec{J} \varvec{J}^{\mathrm {T}} \right) ^{-1} \, , \end{aligned}$$
(7)

and \(\varvec{K}\) being a diagonal matrix to adjust the step size of the algorithm.

At the beginning of the algorithm \(\varvec{q}_p\) corresponds to a given initial joint coordinates vector \(\varvec{q}_0\), which can be arbitrarily chosen. Though the approach usually has a high convergence rate, it diverges when \(\varvec{J}\left( \varvec{q}_p \right) \) is singular.

Another numerical method to solve the inverse kinematics corresponds to the gradient method for the solution of a system of nonlinear equations (Schwarz and Köckler 2011). This utilizes the transpose of \(\varvec{J}\) in a similar way as (5):

$$\begin{aligned} \varvec{q}_{p+1} = \varvec{q}_{p} + \varvec{J}\left( \varvec{q}_p \right) ^{\mathrm {T}} \varvec{K} \, \mathrm {\Delta } \varvec{x}_{p} \, . \end{aligned}$$
(8)

Since the inversion of the Jacobian matrix is not necessary, this approach does not present problems with singularities. However, the convergence is slower in comparison to the Newton-Raphson method.

In order to take advantage of both approaches, a combined numerical solution of the inverse kinematics is proposed. This begins by using (5) and calculates the condition number \(\kappa \) of the Jacobian matrix \(\varvec{J} \left( \varvec{q}_p\right) \) at each step p. If \(\kappa \, \ge \,\kappa _{\mathrm {max}}\), the algorithm switches to use (8) until \(\kappa \, < \,\kappa _{\mathrm {max}}\) and \(\varvec{q}_p\) converges again. Then, Eq. (5) is used again to continue the process. The threshold \(\kappa _{\mathrm {max}}\) for the maximal allowed value of the condition number is given arbitrarily. Numerous tests showed that the algorithm is able to overcome singularities during the process and even find solutions near to singular poses with an appropriated convergence rate for \( 200< \kappa _{\mathrm {max}} < 600\). The process is performed until \(\mathrm {\Delta } \varvec{x}_{p} < \varvec{\epsilon }\) for a given tolerance \(\varvec{\epsilon }\). The proposed algorithm is presented in Algorithm 1. Detailed features of the algorithm are not discussed here due to space limitations.

figure a

4 Optimisation Procedure

Due to the reasonable number of task-suitable architectures found through the generation of suitable architectures (Sect. 2), each of them can be optimised. Afterwards, the optimal configuration will be the one with the best performance of all architectures. The optimisation can be conducted for many kinds of requirements, e.g. accuracy, manipulability, size of the workspace, dynamical performance, etc. Exemplarily, the synthesis of a serial manipulator for a pick and place task will be introduced. Since the robot size influences other performance characteristics like stiffness and energy consumption, it will be used as optimisation criterion. Furthermore, the accuracy in the start pose (\(\varvec{x}_{\mathrm {EE, s}}\)) and end pose (\(\varvec{x}_{\mathrm {EE, e}}\)) are used as additional requirements of the design process. The indices that are used to evaluate the performance of the manipulator regarding these requirements as well as the optimisation algorithm are explained in the next sections.

4.1 Performance Indices

For the considered pick and place task, the robot size should be minimized maintaining a predefined accuracy in the start and end poses.

Several indices can be found in literature to evaluate the robot size. In this paper, the robot size index \(f_{\mathrm {size}}\) is based on the structural length index (Waldron 2008), which compares the sum of the link lengths \(a_{i}\) and the joint offsets \(d_{i}\) to the volume of the reachable workspace. In our approach, the distance between the start and end points \(L_{\mathrm {task}}\) will be used instead:

$$\begin{aligned} f_{\mathrm {size}}= \frac{\sum _{i=1}^{n} \left| a_{i} \right| + \left| d_{i} \right| }{L_{\mathrm {task}}} \, . \end{aligned}$$
(9)

Since the condition number of \(\varvec{J}\) (\(\kappa \left( \varvec{J} \right) \)) is generally employed to analyse the error of the EE due to errors in the actuators, the local conditioning index (LCI) (Angeles and López-Cajún 1992) provides a good measure of the accuracy of the manipulator. However, in order to avoid the dimensional inhomogeneities of \(\varvec{J}\), the dimensionally homogeneus Jacobian matrix \(\tilde{\varvec{J}\;}\) (Ranjbaran et al. 1995) must be used instead. The LCI is evaluated at the initial (\(\varvec{q}_{\mathrm {ini}}\)) and end (\(\varvec{q}_{\mathrm {end}}\)) point of the task. Then, the performance index corresponding to the accuracy of the manipulator is the minimum of these two values:

$$\begin{aligned} LCI_{\mathrm {min}} = \min \Big ( \, \kappa ^{-1}\left( \tilde{\varvec{J}\;}(\varvec{q}_{\mathrm {ini}}) \right) , \, \kappa ^{-1}\left( \tilde{\varvec{J}\;}(\varvec{q}_{\mathrm {end}}) \right) \Big )\, . \end{aligned}$$
(10)

4.2 Optimisation Problem

Exemplarity, the index \(f_{\mathrm {size}}\) will be used as cost function and the minimum local conditioning index \(LCI_{\mathrm {min}}\) as constraint. Therefore, the optimal geometric parameters vector \(\varvec{p}^{*}\) has to be found:

$$\begin{aligned} \varvec{p}^{*} = \arg \min _{\varvec{p}} \big ( f_{\mathrm {size}} \left( \varvec{p} \right) \big ) \, , \end{aligned}$$
(11)

subject to

$$\begin{aligned} {\begin{matrix} LCI_{\mathrm {min}}&\ge LCI_{\mathrm {min}}^{*} \, , \end{matrix}} \end{aligned}$$
(12)

where \(LCI_{\mathrm {min}}^{*}\) defines the lowest allowed value of \(LCI_{\mathrm {min}}\). The parameters vector \(\varvec{p}_{\mathrm {min}} \le \varvec{p} \le \varvec{p}_{\mathrm {max}} \) (lower bound \(\varvec{p}_{\mathrm {min}}\), upper bound \(\varvec{p}_{\mathrm {max}}\)) is obtained for each suitable architecture as explained in Sect. 2.

Since it is not possible to obtain an explicit expression for the cost function, a global optimisation method has to be used. In this case, the particle swarm optimisation algorithm (PSO) (Ebbesen et al. 2012) was chosen to solve the optimisation problem. The optimisation process is performed for each suitable architecture. At the end of the process, the configuration (i.e. architecture including geometrical parameters) with the best performance is selected to perform the required task.

5 Exemplary Results

In order to demonstrate the capability of the proposed approach, the results of the synthesis for the aforementioned task are presented. This task requires three translational DOF and one rotational DOF around the vertical axis. The corresponding required motion vector is \( {\varvec{\xi }}_{\text {req}}=[ {\xi }_{\text {req}_1}, {\xi }_{\text {req}_2}, {\xi }_{\text {req}_3}, 0, 0, {\xi }_{\text {req}_6}]^{\text {T}}\). The required start and end poses of the EE (\(\varvec{x}_{\mathrm {EE, s}}\) and \(\varvec{x}_{\mathrm {EE, e}}\)) are described using the position and orientation of the EE coordinate system \((\mathrm {CS})_{\mathrm {EE}}\) with respect to the robot base coordinate system \((\mathrm {CS})_{0}\). Table 1 gives the coordinates x, y, z and \(\varphi \) of the start and end poses.

Table 1 Start and end poses of the required task
Fig. 2
figure 2

Evolution of the position error during the solution of the inverse kinematics a Using the transpose of \(\varvec{J}\) b Using the solution proposed in Algorithm 1

The optimisation process was performed as explained in Sect. 4 for every suitable architecture (Ramirez et al. 2015). In each iteration of the optimisation, the inverse kinematics as introduced in Sect. 3 is computed to determine the joint coordinates corresponding to \(\varvec{x}_{\mathrm {EE, s}}\) and \(\varvec{x}_{\mathrm {EE, e}}\). Afterwards, a point to point (PTP) interpolation is calculated in the joint space using a polynomial function of degree five (Biagiotti and Melchiorri 2008) in order to ensure the task feasibility.

The improvement in the numerical solution of the inverse kinematics is visualised in Fig. 2. As an example, for an RRRP architecture, the numerical inverse kinematics was performed with \(\varvec{q}_0 = \left[ \pi /4,\, 0,\, \pi /4 ,\, 0.05 \right] ^{\mathrm {T}}\)and \(\varvec{x}_{\mathrm {EE}} = \varvec{x}_{\mathrm {EE, s}}\). Since \(\varvec{q}_0\) corresponds to a singular pose, the proposed algorithm (Fig. 2b) switches to use (8), but after step 13, it uses (7) for rapid convergence. Using only \(\varvec{J}^{\mathrm {T}}\) the convergence of the algorithm is slower (Fig. 2a). The represented position error corresponds to the norm of the first three terms of \(\mathrm {\Delta } \varvec{x}_{p}\).

The architectures with the highest performance after the optimisation (RPPP, RPRP, RPPR, PRPR) and its performance indices are reported in Table 2. These results were obtained using 100 particles (swarm size) for each architecture and \(LCI_{\mathrm {min}}^{*} = 0.1\). The optimisation of every architecture was carried out several times with similar results.

Table 2 Architectures with the best performance after the optimisation procedure

The DH parameters of the best manipulator (RPPP) are shown in Table 3. As can be seen, the dimensions of the manipulator are reasonable for the given task. The capability of the method is demonstrated comparing the indices of the serial architectures that are usually employed for pick and place operations, namely PPPR (Gantry robot) and RRRP (Scara robot). The performance obtained for these manipulator are clearly poorer than the manipulator obtained with our method as reported in Table 2.

Table 3 DH parameters of the optimised manipulator

6 Conclusions

The paper presents an approach to combine the structural and dimensional synthesis of serial manipulators. Starting from a required task, every suitable architecture is considered during the dimensional optimisation process. In order to reduce the computational effort, the appropriate geometrical parameters of each architecture are deduced automatically. Due to an efficient numerical solution of the inverse kinematics, mechanisms with up to six DOF can be synthesized without any kinematic simplification. The benefits of considering all task-suitable architectures are observed in the design of the manipulator for an exemplary pick and place operation. Here, the size of the robot was minimized and the accuracy was considered as a constraint during the optimisation. The obtained manipulator has a higher performance than the architectures typically employed for this kind of tasks.