In the Bui et al. (2013) we suggested to develop a new version of DE algorithm that can automatically adapt the learning strategies and the parameters settings during evolution. The main ideas of the ISADE algorithm are summarized below.
Mutation operator
ISADE probabilistically selects one out of several available learning strategies in the mutation operator for each individual in the current population. In this research, we select three learning strategies in the mutation operator as candidates: “DE/best/1/bin”, “DE/best/2/bin” and “DE/rand to best/1/bin” that are respectively expressed as (Fig. 6):
$$ DE/best/1{\text{:}}\,\,\,V_{{i,j}}^{G} = X_{{best,j}}^{G} + F \times (X_{{r1,j}}^{G} - X_{{r2,j}}^{G} ) $$
(9)
$$ DE/best/2{\text{:}}\,\,V_{{i,j}}^{G} = X_{{best,j}}^{G} + F \times (X_{{r1,j}}^{G} - X_{{r2,j}}^{G} ) + F \times (X_{{r3,j}}^{G} - X_{{r4,j}}^{G} ) $$
(10)
$$ DE/rand\,to\,best/1{\text{:}}\,\,V_{{i,j}}^{G} = X_{{r1,j}}^{G} + F \times (X_{{best,j}}^{G} - X_{{r1,j}}^{G} ) + F \times (X_{{r2,j}}^{G} - X_{{r3,j}}^{G} ) $$
(11)
where \(i = \left\{ {1,2, \ldots ,NP} \right\};j = \left\{ {1, \ldots ,D} \right\}\) are current population and design variable, respectively.
\( DE/Rand{\text{~}}to{\text{~}}best/1/bin\) strategy usually demonstrates good diversity while the \( DE/{\text{~}}best/1/bin\) and \( DE/best/2/bin\) strategy show good convergence property, which we also observe in our trial experiments.
Adaptive scaling factor F and crossover control parameter CR
In the ISADE algorithm, the author suggested to use the sigmoid function to control neighborhood parameter. we sort the particles by estimating their fitness. A ranked particle is labeled with ranked number and assigned F that corresponds with its number. The formula for F by sigmoid function as following:
$$ F_{i} = \frac{1}{{1 + \exp \left(\alpha \times \frac{{i - \frac{{NP}}{2}}}{{NP}}\right)}} $$
(12)
where \(\alpha ,i{\text{~}}\) denote the gain of the sigmoid function, particle of the \({\text{~}}i_{{th}} {\text{~}}\) in \(NP\), respectively.
For better performance of ISADE, the scale factor F should be high in the beginning to have much exploration and after curtain generation F needs to be small for proper exploitation. Thus, we proposed to calculate the F as follow:
$$ F_{{iter}}^{{mean}} = F_{{\min }} + (F_{{\max }} - F_{{\min }} )\left( {\frac{{iter_{{\max }} - iter}}{{iter_{{\max }} }}} \right)^{{n{}_{{iter}}}} $$
(13)
where \(F_{{max}} ,F_{{min}} ,iter,iter_{{max}} {\text{~}}and{\text{~}}n_{{iter}}\) are the lower boundary condition of \(F\), upper boundary condition of \(F\), current generation, maximum generation and nonlinear modulation index, respectively.
The author introduced a novel approach of scale factor \({\text{~}}F_{i}\) of each particle with their fitness in Eq.13. Thus, in one generation the value of \(F_{i}^{{iter}} \left( {i = 1, \ldots ,NP} \right)\) are not the same for all particles in the population rather they are changed in each generation. The final value of scale factor for each generation is calculated as follow:
$$ F_{{iter}}^{i} = \frac{{F_{i} - F_{{iter}}^{{mean}} }}{2} $$
(14)
where \(iter = 1, \ldots ,{\text{~}}iter_{{max}} {\text{~}}and{\text{~}}i = 1, \ldots ,NP.\)
The control parameter \(CR{\text{~}}\) is adapted as following:
$$ CR_i^{G + 1} = {\rm{ }}\left\{ {\begin{array}{*{20}{l}}
{ran{d_2}}&{if{\mkern 1mu} {\mkern 1mu} ran{d_1} \le \tau }\\
{CR_i^G}&{othewise}
\end{array}} \right.{\mkern 1mu} $$
(15)
where rand1 and rand2 are uniform random values ∈ [0, 1], τ represents probabilities to adjust CR, same as(6) we assign τ = 0.10.
Proposed ISADE algorithms with searching space improvement (Pro-ISADE)
As mention in the introduction part, the disadvantage of many studies using optimization algorithms to solve the IK problem of redundant robots is almost only to focus on the results related to the optimal running process such as execution time, number of generation, etc., but have not yet considered the feasibility of the joints’ variable values. In order to overcome these drawbacks, the author of this research (Thanh-Trung et al. 2020) proposed this algorithm that is explained as following. The solution to improve the continuity of joints’ values is limiting the initialization domain of X. This help the program to achieve the dual goal of increasing calculation speed, accuracy and ensuring continuity for the value of joints’ variables. In this algorithm, firstly the robot from any position moves to the first point of the trajectory. With this first point, the initialization values for the particles are randomly selected in the full Range of Motion \(\left( {ROM} \right)\) of joints. In addition, the target function in this case has the form (Thanh-Trung et al. 2020):
$$ Func.1 = a \times \sqrt {\sum\limits_{k = 1}^5 {{{(q_1^k - q_0^k)}^2}} } + b \times \sqrt {\begin{array}{*{20}{l}}
{{{({x_i} - {x_{ei}})}^2} + {{({y_i} - {y_{ei}})}^2} + {{({z_i} - {z_{ei}})}^2}}\\
{ + {{(R{x_i} - R{x_e})}^2} + {{(Rx - R{x_e})}^2} + {{(R{y_i} - R{y_e})}^2} + {{(R{z_i} - R{z_e})}^2}}
\end{array}} $$
(16)
where \(i~\left( {1/n} \right)\) are the points in the trajectories; \(k~\left( {1/5} \right)\) are the joints of the robot.
Values \(q_{1}^{k} {\text{~}}and{\text{~}}q_{0}^{k}\) (i = 1) are the joints’ variable values at the original position and 1st point on the trajectory, respectively; \((x_{i}\),\(~y_{i} ,z_{i} )\) and \((x_{{ei}}\),\(~y_{{ei}} ,z_{{ei}} )\) are the End-effector coordinates for the i-point found by the algorithm and the desired End-effector coordinates; \(\left( {R_{{xi}} ,R_{{yi}} ,R_{{zi}} } \right)\) and \(\left( {R_{{xei}} ,R_{{yei}} ,R_{{zei}} } \right)\) are corresponding rotation cosine angles performing orientation of the end-effector which are found by Algorithm and orientation of the desired end-effector; \(a,~b\) are penalty coefficients. Cost function as Eq. (16) ensures the energy spent in the joints to reach the 1st desired position is minimized. Besides, it also minimizes the distance error between the actual and desired end-effector position. The condition to stop algorithm is that the Cost Func.1 value is less than value of e or the number of iterations reaches \(iter_{{max}} ~.\)
In the case of solving the IK for consecutive point, after calculating for 1st point of the trajectory, the remaining points are calculated with a search limitation around the previous optimal joints’ values. By limiting this, the program's search space will be limited while ensuring the continuity of the joint variables. In this case, the target function will still be same as the function of 1st point, but it has coefficient a = 0.
Applied in this study, the research has initialized the first values of the joints (Zero positions of the joints) were equal to the measured values for the first point on the trajectory. This means \(q_{0}^{k} = q_{1}^{k} \,(k = 1 / 5)\).