1 INTRODUCTION
The success of a prosthetic human arm design can be evaluated mainly in terms of the functionality of the design and its cost. For these reasons the design of the mechanism that performs the movement of the prosthesis is an issue that impacts greatly in the final product. Upper limb disarticulation is one of the cases with less incidences, therefore the people with this disability have fewer options of prostheses available ( ^{Dillingham et al., 2002} ). One of the most advanced prosthetic arm can be found in ( ^{Johannes et al., 2011} ) that is a prosthetic arm with 2 DOF at the shoulder, a humeral rotator, elbow and three DOF at wrist. This device can be used for different levels of amputation. In ( ^{Resnik et al., 2014} ) the Deka arm is presented, which is a prosthetic arm with 6 DOF at the arm and 4 at hand and a weight of 4.45 kg. ^{He et al. (2014)} presented a prosthetic arm with 7 DOF that uses underactuated mechanisms and weighs 4.45 kg. Most of these solutions are based on serial kinematic chain configurations. In this work, a parallel configuration is addressed for a novel design.
Main advantages of parallel manipulators are that the payload is shared between the actuators, the actuators are located in the base so that the inertia is reduced and parallel manipulators exhibit stiff behavior. Disadvantages of the parallel manipulators are the small workspace and limited dexterity as compared to the serial manipulators ( ^{Ceccarelli, 2004} ).
For the design of a prosthetic arm, design criteria can be considered in workspace, stiffness, and dexterity among others that are used also in design procedures of manipulators.
Many authors have investigated the optimization of mechanisms using different techniques. In ( ^{Boudreau and Turkkan, 1996} ) the forward kinematics of three different planar parallel manipulators are solved using a genetic algorithm (GA). The optimization of two different parallel planar manipulators is achieved as well using a genetic algorithm in ( ^{Boudrear and Gosselin, 1999} ) where the objective function is formulated to get a workspace as close as possible to a predefined one. In ^{Cabrera et al. (2002)} the path synthesis of a four-bar mechanism is worked out using genetic algorithms. ^{Ceccarelli and Lanni (2004)} worked out the optimization of the workspace and the dimensions of general three revolute joints manipulator using sequential quadratic programming. In ( ^{Hernandez et al., 2015} ) the optimization of a cable-based parallel manipulator is worked out using evolutionary algorithms. The workspace of a spherical parallel mechanism for laparoscopic surgery is optimized using a genetic algorithm in ( ^{Li and Payandeh, 2002} ). In ( ^{Castejón et al., 2010} ) a multi-objective optimization was performed in order to design a robotic arm for service tasks. In ^{Zhen et al. (2010)} the optimization of the stiffness and dexterity of a six DOFs parallel manipulator is presented using genetic algorithms and neural network. ^{Chaker et al. (2012)} performed the synthesis of a spherical manipulator for surgeries by optimizing the workspace and dexterity of the mechanism using GA. In ( ^{Essomba et al., 2016} ) it is presented the synthesis of a spherical manipulator used as a probe holder considering a multi-objective optimization and GA. The synthesis of a 3-RRR spherical parallel manipulator is worked out in ( ^{Wu, 2012} ) using a multi-objective optimization considering as objective function the dynamic dexterity and the isotropy. In ^{Ramana et al. (2016)} it is worked out the optimization of a 3 DOF parallel manipulator using as objectives the dexterity, work space and stiffness.
An arising problem in the design of a parallel mechanism comes from the fact that their performance is highly dependent on their geometric parameters and configurations as well as the different performance measures (workspace, dexterity, etc) are mutually dependent ( ^{Wu, 2012} ). In this work, the synthesis of a parallel spherical manipulator is carried out using a multi-objective optimization combined with GA. The proposed spherical manipulator is used as a mechanism to replicate the shoulder movement in a prosthetic human arm. The shoulder of the prosthetic arm is analyzed as one of the most complex part of the prosthetic device since it requires a great mobility and volume restrictions. Three objective functions are taken in to account in the proposed optimization. For the first objective, the specified trajectory must be inside the available workspace; the second objective is the maximization of the mechanism accuracy (measured by the dexterity); while the third objective is the minimization of the torques (measured here by the maximum values) of the three actuators. This is done since a reduction in the torque could yield to a reduction in the actuators and thus reduction in weight and power consumption. With the obtained results, a parallel manipulator is designed and a set of dynamic simulations are performed to validate the results of the optimization and to characterize the design solution.
2 Genetic algorithms and multi-objective optimization
Genetic algorithms (GA), developed in ^{Holland (1992)} , are heuristic methods that consist in optimization procedures as inspired in natural evolution. In GA, an initial random population needs to be created. The characteristics of each solution are used in equivalent chromosomes. Each solution is evaluated and classified according to how well it satisfies the objective function and then it is assigned a probability of reproduction. The fittest individuals are more likely to be reproduced (selection), and thus they inherit those characteristics. The combination (crossover) of the parent genes yields to a consecutive generation (replacement). Mutation can occur in the chromosomes of some individuals. It is projected that some individuals of this new generation will have inherited the best characteristics of their parents and will be a better solution to the problem. This new population goes through the same process and this cycle is repeated until all the members share the same genetic information. This last generation is the best solution to the optimization problem ( ^{Fogel, 1994} ). A genetic algorithm is stopped when the population converges to an optimal solution or when a maximum number of generations is reached, Figure 1 .
Genetic algorithms require objective and fitness functions. The objective function defines the optimal condition and the fitness function assesses how well a specific solution satisfies the objective function and assigns a real value to that solution ( ^{Coello et al., 2007} ).
Formerly, the information of the individuals was encoded in bit strings called Binary-coded, but nowadays the individuals are coded using real numbers ( ^{Deb and Kumar, 1995} ). Real-coded GA usually achieves better results than Binary-coded GA ( ^{Davis, 1991} ) .
The selection process consists in taking two parents to create offspring. The objective is to provide to the fitter individuals a greater chance of reproduction expecting that their offspring will have higher fitness. Typical types of selection scheme are the proportionate selection and the ordinal-based selection. In the proportionate based selection, the individuals are picked up based on their fitness values that are relative to the fitness of the other individuals. The ordinal-based selection selects individuals by considering their rank within the population ( ^{Sivanandam and Deepa, 2007} ).
The crossover combines two different individuals to generate new offspring. Many crossover methods exist, and the most common is single-point crossover ( ^{Blum et al., 2012} ). In this work, a linear crossover is used. Two parents are selected as p_{1} and p _{2} and three offsprings are generated as 0.5 p_{1} + 0.5p_{2}, 1.5 p _{1} - 0.5p_{2}, -0.5 p_{1} + 1.5p_{2} respectively ( ^{Herrera et al., 1998} ). Then, the three offspring are evaluated and the best two are selected for the next generation.
Mutation consists in a random modification of a gene during reproduction ( ^{Cabrera et al., 2002} ). In general, the mutation prevents convergence to a local optimum ( ^{Li and Payandeh, 2002} ). The mutation operator is applied with a small probability ( ^{Wang et al., 2004} ). In this work, a non-uniform mutation is used ( ^{Michalewicz, 1996} ).
Multi-objective optimization commonly involves multiple conflicting objectives that must be considered simultaneously and there is a set of mathematically equally good solutions ( ^{Miettinen, 2008} ). These set of solutions are known as nondominated or Pareto optimal set. The set of solutions forms the Pareto optimal front. The characteristic of a Pareto optimal solution is that any change in the values of the solution will not improve any of the objective functions.
The concept of dominance or domination is used in most of the optimization algorithms. If there are N objective functions, a solution x^{(1)} dominates another solution x^{(2)} if the two following conditions are true ( ^{Deb, 2014} ):
1. The solution x^{(1)} is no worse than x^{(2)} in all objectives.
2. The solution x^{(1)} is better than x^{(2)} in at least one objective.
A solution x^{(1)} is Pareto-optimal if is nondominated with respect to the search space (or feasible region)( ^{Coello, 2015} ).
Many evolutionary algorithms have been proposed over the years to solve multi-objective optimization problems. In this work, it is used a controlled elitist non-dominated sorting GA (CENSGA)( ^{Deb and Goel, 2001} ). The algorithm of CENSGA is based in NSGA-II ( ^{Deb et al., 2002} ), but there is a difference in the selection approach that improves the convergence to the Pareto front.
The CENSGA algorithm works as follows. First, a random P_{t} population of size N is formed. From this population, Q offsprings are created using the common GA operators (crossover, mutation). Then, a combined R_{t} population (P_{t}
where r is the reduction ratio (r<1) and K is the number of non-dominated fronts.
n_{i} denotes the maximum allowable number of individuals taken from the i-th front. If n_{i} is larger than the number of elements in the i-th front, then all the elements of this front are chosen and the remaining slots are added to n_{i+1}. But if n_{i} is smaller than the number of elements in the front, n_{i} the elements are chosen using a crowded binary tournament selection. The crowded binary tournament takes two elements and returns the one with the bigger crowding distance. GA operators are applied to the new population of P_{t+1} to form Q_{t+1} and are combined to form R_{t+1} and the described process is repeated for a specific number of generations. The result of this process is the Pareto front, this means a set of optimal solutions. CENSGA algorithm is summarized in Figure 2 .
3 Kinematic design and its analysis
The prosthetic device considered in this work is based in the design in ( ^{Leal-Naranjo et al., 2016} ), Figure 3 (a). This device has seven degrees of freedom, with three DOFs that are in the shoulder, one in the elbow and three in the wrist. The shoulder of this prototype is driven by a 3DOF parallel spherical manipulator, Figure 3 (b). The mechanism of the elbow is a 4bar mechanism. The wrist mechanism is also a parallel spherical manipulator. The weight of this prototype is 1250 g including the hand. The main issue of prosthetic arms is the functionality and weight of the device. An improvement in the prosthetic kinematic design could potentially yield in improvements in the functionality and also in the weight due to lower power requirements.
The shoulder of the prosthesis is modelled as a three DOFs spherical manipulator, Figure 4 (a). The manipulator consists of three legs with three revolute joints each, whose axes converge at one point that is the center of rotation. The axes of these revolute joints are defined by the unit vectors u_{i}, v_{i} and w
_{i}. The links a_{i} (attached to the lower platform) are characterized by the angle
The mobile and the fixed platforms are commonly triangular pyramids defined by
For this parallel manipulator, the inverse kinematic analysis is pretty straight forward in comparison to the direct kinematic. The inverse analysis is as follows. Vector u _{i} is defined as
where R_{a}(b) represents a rotation of “b” degrees around the “a” axis.
Unit vector v_{i} is given by
unit vector w_{i} is a function of the orientation of the mobile platform, thus this vector is defined as
where w_{i}' is the initial orientation of the vectors when the manipulator is in its home configuration and is given by
For the second link this relation follows
substituting w_{i} and v_{i} in Equation 5, and making algebraic simplifications it yields to
Where
Equation 6 is a quadratic equation that provides the angle of the input links of the spherical manipulator. It can be seen from equation 6 that for each leg, two solutions exist. Thus, for every position in the workspace of this manipulator can be designed for eight possible assembly solutions, Figure 6 .
4 Modelling and design optimization procedure
One of the aims of the optimization of this parallel manipulator is to maximize the workspace in a way that the prosthetic arm should be able to describe a humeral extension movement of 20 degrees and a humeral flexion movement of 90 degrees, Figure 7 (a).
To fulfill this requirement, it is necessary the manipulator will to be able to perform a rotation from -20° to 90° around the axis X”, which is perpendicular to the sagittal plane of the body, Figure 7 (b). The axis X”, where the rotation occurs, not necessarily coincides with the home position of the manipulator. For this reason, it was considered that the manipulator is rotated an angle ϕ_{1} around the Z axis from its reference position, and the manipulator rotates (doing the flexion-extension) around the X” axis which is rotated from X’ an angle ϕ_{2}, so the orientation of the end-effector is given by
with
where k_{x}= -sin(ϕ_{2}), k_{y}= cos(ϕ_{2} ) and ε is a variable with values from -20° to 90°.
The required movement describes an arc of 110°. This arc was discretized in segments of 5°. The objective function with the workspace can be defined as
where g_{1} is evaluated in the mentioned arc. Thus, due to the adopted discretization, the maximum value for this function is 23. For simplicity, this function is multiplied by -1 and it is tried to be minimized.
The second objective of the optimization is related to the kinematic accuracy of the manipulator. The kinematic accuracy is associated with the conditioning number of the Jacobian matrix (also related to dexterity). The dexterity is defined as ( ^{Gosselin and Angeles, 1987} )
with
where || || denotes the Euclidean norm of its matrix argument and × denotes the vector product (or cross product).
The value of k=1 corresponds to a configuration with good kinematic accuracy, and does not have an upper limit. The second objective function is expressed as
The third objective is related to the torque that is required to perform the flexion-extension movement. Due to the low accelerations that are required during the movement and the low mass of the prosthetic device, the inertial effects can be ignored and a static analysis can be performed for each position in the defined trajectory with limited computational costs.
Using the virtual work approach, the end-effector output forces (forces and torques) is given by ( ^{Tsai, 1999} )
thus, the motor torques is calculated as
where J is the jacobian and its given by
and F are the torques due to the weight of the prosthetic device (15 N), the hand (5 N) and the load carried (5 N) and considering its corresponding lever arm.
By using Equation (27), the torque that is required for the actuators can be evaluated as the third objective function in the form
where Max Torque is the maximum value of the torque of the motors in the prescribed trajectory to be minimized.
Since the inverse kinematic of this manipulator it has eight different solutions (two different solutions for each leg), so it is necessary to stablish an equation to limit the mechanism to be constrained during the entire optimization process for the same branch. Furthermore, from Figure 4 it can be seen that in order to change from one branch to another it can only be possible if the links of a leg are aligned, thus the mechanism passes through a singular position. To constrain the mechanism in the same branch, the sign of the cosine between the plane formed by the unit vectors v_{i} and u_{i} and the unit vector w _{i} needs to remain constant. Such a condition can be expressed as
In order to assure that the position of the motors is not overlapped, a restriction between
A minimum angle of 40 degrees between the attachment points was stablished in order to be possible to fit the actuators.
The design parameters are ϕ_{1}, ϕ_{2}, γ, β, α_{1_1}, α_{1_2}, α_{1_3}, α _{2_1}, α_{2_2}, α_{2_3}, δ_{1}, δ _{2} and δ_{3}. The optimization problem is defined as
CENSGA algorithm was applied using a random population of 100 individuals and a reduction ratio of 0.5. The maximum number of iterations was 200. For the genetic operators, it was used a linear crossover and a non-uniform mutation with a mutation probability of 0.5%.
5 Results
After finishing the optimization, the Pareto front for the eight-different assembly solutions was obtained. The function g_{2} (Maximum torque of the motors) was plotted vs g _{1}(amplitude of the defined trajectory), Series 1 in Figure 8 . g_{2} vs g_{3} (dexterity), Series 2 in Figure 8 . Series 1 and 2 are in the same plot with two vertical axes in order to visualize the three objective values of a possible solution. For the g_{2} vs g_{3} plot, only solutions that completely satisfy the motion were plotted (g_{1}= 24) in order to reduce the data plotted and as the main interest is only in solutions that would satisfy the stablished trajectory. The scale in all the plots was the same in order to simplify the comparison. In Figure 8 a the values of the objective functions for the solutions of the first possible assembly are plotted. It can be seen that for this configuration one the most suitable solution has an objective value of g_{1}=24, g_{2}=3.5 and g_{3}= 1.4. There are other solutions that require a lower torque but the value of the dexterity increases to g_{1}=24, g _{2}=3.3 and g_{3}= 2.9; or some other solutions with a better dexterity but the torque increases to g_{1}=24, g_{2}=3.9 and g_{3}= 1.2. Figure 8 b shows objective functions for the second configuration. In this configuration, the most suitable solution has an objective value of g_{1}=24, g_{2}=5.9 and g_{3} = 2.5, so clearly is not a better one as compared with that for configuration 1.
For configuration 3 ( Figure 8 c), the solution with the smallest torque has values of g_{1}=24, g_{2}=3.2 and g_{3}= 4.9 and as the dexterity decreases, the torque increases so it is not better as the solution of configuration 1. In Figure 8 d it can be seen that the most suitable solution has the values of the objective function g _{1}=24, g_{2}=3.4 and g_{3}= 1.4. This solution is slightly better than configuration 1. For configuration 5 and 6 and 8( Figure 8 e, Figure 8 f and Figure 8 h), there is no solution in the used scale, so it can be concluded that there is not a better solution than the one proposed in the other configuration. In Figure 8 g it can be seen a set of suitable solutions like the one with values for objective function g _{1}=24, g_{2}=3.18 and g_{3}= 2.5. and g_{1}=24, g_{2} =3.5 and g_{3}= 1.2.
After comparing the solutions, it was chosen the one with objective function g_{1} =24, g_{2}=3.18 and g_{3}= 2.5 despite it has a slightly worst dexterity than the solution of configuration 1 because it is the one with the lowest torque, and a lower torque represents smaller actuators and lower overall weight. The value of the parameters associated to this solution are shown in Table 1 .
Parameter | Value [°] | Parameter | Value [°] |
---|---|---|---|
ϕ_{1} | 48 | α_{2_1} | 76 |
ϕ_{2} | 224 | α_{2_2} | 52 |
Γ | 77 | α_{2_3} | 53 |
Β | 76 | δ_{1} | 0 |
α_{1_1} | 39 | δ_{2} | 76 |
α_{1_2} | 39 | δ_{3} | 200 |
α_{1_3} | 47 |
With the calculated values, a CAD design of the manipulator was done. Two dynamic simulation were performed in order to evaluate the performance of the manipulator. The first simulation aimed to perform a flexion-extension movement with a load of 5 N at the location of the hand, Figure 9 . The movement begins with 20° of extension and finishes at 90° of flexion. The time required to perform the movement was stablished to be 2 s. The material of the prosthetic device was ABS except for the links of the parallel manipulator that were model as aluminum.
The results of the simulation show that during the movement, the actuators perform smooth movements. The manipulator does not approach any singularity, and this is because the optimization of the dexterity. The maximum torque that the actuators require is 2.98 Nm, Figure 10 .
The second simulation consisted in the same movement as in the previous analysis but with the elbow in a flexed position, Figure 11 .
The results show that the maximum required torque to perform this movement is 2.9 Nm, Figure 12 .
A third simulation was performed in order to compare with the previous design. The characteristics of the simulation are the same as simulation one but the payload was increased to 10 N and showed that when the payload is increased to 1 kg, the maximum required torque is 4 Nm.
6 Conclusions
In this work, a multi-objective optimization is used to design of a spherical parallel manipulator as the shoulder of a prosthetic device. The results show that the required torque to perform the defined movement was reduced in comparison with the previous design (4 Nm vs 6 Nm). In comparison to the previous configuration of the mechanism used, the range of motion was increased and an improvement in the controllability of the mechanism was achieved in terms of the dexterity. From the results, it is evident that the optimization of the three objectives needs to be carried out in a simultaneous way because they are dependent to each other and an improvement in one characteristic could yield to an undesired repercussion of the others.