## 4 Approach Description
### Proposed Algorithm  
The proposed inverse kinematics algorithm, based on hybrid differential evolution, is outlined in Algorithm 1. Initially, individuals are generated randomly based on the following operation:  
\[x_{i,j}=q_{l,j}+r\left(q_{u,j}-q_{l,j}\right) \tag{17}\]  
where \(r\in[0,1]\) is a random number.  
The algorithm performs the mutation, recombination, and selection operation on each individual in the population. Subsequently, the algorithm identifies the best individual \(\mathbf{x}_{g}^{G}\). It then checks whether the best individual has stagnated, determined by whether the stagnation counter \(I^{G}\) exceeds the predefined limit \(L\) (i.e., \(I^{G}>L\)). If stagnation is detected, the proposed Jacobian pseudoinverse operation is performed. In this scenario, a candidate solution \(\mathbf{w}_{g}^{G}\) is computed using the Jacobian pseudoinverse step. Local refinements are made if \(\mathbf{w}_{g}^{G}\) proves to be a better solution than \(\mathbf{x}_{g}^{G}\). Additionally, the stagnation counter \(I^{G}>L\) increases when \(f^{\prime}\left(\mathbf{x}_{g}^{G+1}\right)<f^{\prime}\left(\mathbf{x}_{g}^{G }\right)\), indicating an unsuccessful improvement. This process is repeated until the stopping criteria are met. Finally the algorithm returns the individual with the best fitness as the solution.  
```
1: set objective function \(f^{\prime}\) as in (13)
2: set \(F\in[0,2]\) and \(C_{R}\in[0,1]\) values
3: set joint boundary \(\mathbf{q}_{l}\) and \(\mathbf{q}_{u}\)
4: set stagnation counter \(l=0\) and stagnation limit \(L\)
5:for each individual \(i\)do
6:for each dimension \(j\)do
7: randomly compute \(r\in[0,1]\)
8:\(x_{i,j}=q_{l,j}+r\Big{(}q_{u,j}-q_{l,j}\Big{)}\)
9:end
10:end
11:repeat
12:// Mutation, recombination, and selection operations on population:
13:for each individual \(i\)do
14: randomly choose \(r_{1},r_{2},r_{3}\), such that \(i\
eq r_{1}\
eq r_{2}\
eq r_{3}\)
15:\(\mathbf{v}_{i}^{G}=\mathbf{x}_{Y_{1}}^{G}+F\big{(}\mathbf{x}_{Y_{2}}^{G}- \mathbf{x}_{Y_{3}}^{G}\big{)}\)
16: randomly compute \(r_{j}\in\{1,D\}\)
17:for each dimension \(j\)do
18: randomly compute \(r\in[0,1]\)
19:if\(r\leq C_{R}\)or\(j=r_{j}\)then
20:\(u_{i,j}^{G}=v_{i,j}^{G}\)
21:otherwise
22:\(u_{i,j}^{G}=x_{i,j}^{G}\)
23:end
24:end
25:if\(f^{\prime}\big{(}\mathbf{u}_{Y}^{G}\big{)}<f^{\prime}\big{(}\mathbf{x}_{Y}^{G} \big{)}\)then
26:\(\mathbf{x}_{i}^{G+1}=\mathbf{u}_{i}^{G}\)
27:end
28:end
29:// Jacobian pseudoinverse operation:
30: find best individual \(g\)
31:if\(I^{G}>L\)then
32:\(\mathbf{w}_{g}^{G}=\mathbf{x}_{g}^{G}+\mathbf{J}^{\dagger}(\mathbf{x}_{g}^{G}) \mathbf{e}(\mathbf{x}_{g}^{G})\)
33:if\(f^{\prime}\Big{(}\mathbf{w}_{g}^{G}\big{)}<f^{\prime}\Big{(}\mathbf{x}_{g}^{G} \Big{)}\)
34:\(\mathbf{x}_{g}^{G+1}=\mathbf{w}_{g}^{G}\)
35:otherwise
36:\(\mathbf{x}_{g}^{G+1}=\mathbf{x}_{g}^{G}\)
37:end
38:\(I^{G}=0\)
39:end
40:if\(f^{\prime}\Big{(}\mathbf{x}_{g}^{G+1}\Big{)}<f^{\prime}\Big{(}\mathbf{x}_{g}^{G} \Big{)}\)then
41:\(I^{G+1}=0\)
42:otherwise
43:\(I^{G+1}=I^{G}+1\)
44:end
45:until the stopping criteria are met
46: Return the individual with the best fitness as the solution
```  
**Algorithm 1** Proposed inverse kinematics based on hybrid differential evolution.