## 2 Robot Manipulator Kinematics  
A robot manipulator consist of a series of links interconnected by joints, forming a kinematic chain. The beginning of the chain is fixed to a base and an end-effector tool is connected to the end of the chain. A joint variable \(\mathbf{q}\) is defined as \(\mathbf{q}= \begin{bmatrix}q_{1}&q_{2}&\cdots&q_{n}\end{bmatrix} ^{T}\) where each joint \(q_{j}\) with \(j=1,2,\cdots,n\), where \(n\) represents the total DOFs of the manipulator robot [4; 34]. A manipulator kinematics model can be described based on the Denavit-Hartenberg convention (DH). Since each joint connects two links, a robot manipulator with \(n\) joints will have \(n+1\) links. In the DH convention, joint \(i\) connects link \(i-1\) to link \(i\). Each link \(i\) is represented by a homogenous matrix \({}^{i-1}\mathbf{T}_{i}\) that transforms the frame attached to the link \(i-1\) into the joint link \(i\). The homogeneous matrix \({}^{i-1}\mathbf{T}_{i}\) is defined as  
\[{}^{i-1}\mathbf{T}_{i}= \begin{bmatrix}\cos\theta_{i}&-\sin\theta_{i}\cos \alpha_{i}&\sin\theta_{i}\sin\alpha_{i}&a_{i}\cos\theta_{i}\\ \sin\theta_{i}&\cos\theta_{i}\cos\alpha_{i}&-\cos\theta_{i}\sin\alpha_{i}&a_ {i}\sin\theta_{i}\\ 0&\sin\alpha_{i}&\cos\alpha_{i}&d_{i}\\ 0&0&0&1\end{bmatrix} , \tag{1}\]  
where the parameters \(\theta_{i}\), \(a_{i}\), \(d_{i}\), and \(\alpha_{i}\) represent the joint angle, link length, link offset, and link twist, respectively. The parameter \(\theta_{i}=q_{i}\) becomes the joint variable for revolute joints. In contrast, the parameter \(d_{i}=q_{i}\) becomes the joint variable for prismatic joints. In both cases, the rest of the parameters remain constant. The forward kinematics computes the end-effector pose \({}^{0}\mathbf{T}_{n}\) given the joint variable \(\mathbf{q}\) which is  
\[{}^{0}\mathbf{T}_{n}(\mathbf{q})=\prod_{i=1}^{n}{}^{i-1}\mathbf{T}_{i}(q_{i}). \tag{2}\]  
The end-effector pose \({}^{0}\mathbf{T}_{n}\) contains the position \(\mathbf{t}\) and orientation \(\mathbf{R}\) of the tool in the following form: \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Reference** & **Algorithm** & **DOFs** & **Orientation** & **Boundaries** & **Robot Application** \\ \hline
[15] & PSO & 5,6-DOF & ✓ & ✓ & ✗ \\
[16] & DE & 6,7,8,9-DOF & ✓ & ✓ & ✓ \\
[17] & PSO, multi-PSP, imp PSO & 6-DOF & ✓ & ✓ & ✗ \\
[18] & DE & 5-DOF & ✗ & ✓ & ✗ \\
[19] & DE & 6-DOF & ✓ & ✓ & ✗ \\
[20] & PSO & 6-DOF & ✓ & ✓ & ✗ \\
[21] & ABC & 6-DOF & ✗ & ✓ & ✗ \\
[22] & BA & 6-DOF & ✗ & ✓ & ✗ \\
[23] & PSO & 7-DOF & ✗ & ✓ & ✗ \\
[24] & FA & 5-DOF & ✗ & ✓ & ✗ \\
[25] & \(\beta\)-\(SSA\) & 6,8-DOF & ✗ & ✓ & ✗ \\
[26] & Modified DE & 10-DOF & ✗ & ✗ & ✗ \\
[27] & GWO & 6-DOF & ✗ & ✓ & ✗ \\
[28] & GMO & 6-DOF & ✓ & ✗ & ✗ \\ Proposed Method & DE-H & 5,6,7-DOF & ✓ & ✓ & ✓ \\ \hline \hline \end{tabular}
\end{table} 
Table 1: State of the art related work. \[{}^{0}\mathbf{T}_{n}(\mathbf{q})= \begin{bmatrix}\mathbf{R}(\mathbf{q})&\mathbf{t}( \mathbf{q})\\ \mathbf{0}&1\end{bmatrix} = \begin{bmatrix}r_{11}&r_{12}&r_{13}&t_{x}\\ r_{21}&r_{22}&r_{23}&t_{y}\\ r_{31}&r_{32}&r_{33}&t_{z}\\ 0&0&0&1\end{bmatrix} . \tag{3}\]  
The inverse kinematics computes the joint variable \(\mathbf{q}\) given the end-effector pose \({}^{0}\mathbf{T}_{n}\). The iterative Jacobian pseudoinverse algorithm can solve the inverse kinematics as follows:  
\[\mathbf{q}_{k+1}=\mathbf{q}_{k}+\lambda\mathbf{J}^{\dagger}(\mathbf{q}_{k}) \mathbf{e}(\mathbf{q}_{k}), \tag{4}\]  
where \(k\) represents the current iteration, \(\lambda\) is a positive scalar factor with \(\lambda>0,\mathbf{J}\in\mathbb{R}^{6\times n}\) is a Jacobian matrix, and \(\mathbf{e}(\mathbf{q}_{k})\) is an error between a desired and current end-effector pose. Moreover, the operation \(\mathbf{J}^{\dagger}\) is the pseudoinverse of \(\mathbf{J}\) also called the Moore-Penrose inverse. For manipulators of 6 DOF (\(n=6\)), \(\mathbf{J}^{-1}\) is rather used. The error \(\mathbf{e}(\mathbf{q}_{k})\) is defined as  
\[\mathbf{e}(\mathbf{q}_{k})=