# Inverse Kinematics: An Alternative Solution Approach Applying Metaheuristics
## 3 Experiments and Results  
In this section, the performed experiments are described, and their results are analyzed. All of them had in common a general case study that consisted in the solution of the IKP for a kinematic chain of five links, each of them 10 cm long and with double articular joints. This implies that the full kinematic chain had 10 DOF, and each joint is represented in Figure 2, considering that the distance between the \(X_{0},Y_{0}\) plane and \(q_{1}\) was zero, so the kinematic chain was equivalent to coupling five of those robots sequentially. The proposed method to solve the IKP is flexible and has the potential to be applied to different types of kinematic chains, and not only the general case proposed, as long as the conditions expressed in (9)-(14) are fulfilled. However, the method may not be applicable in the case of parallel robots, since in some of their configurations, there is no function to obtain the position and orientation coordinates of the end effector from the values angles of the actuators (FK), so the set of equations is not fulfilled. \[S=\{(\theta_{1},\theta_{2},\ldots,\theta_{n})||\theta_{i}|\leq \theta\}; \tag{9}\] \[\forall s\in S\exists f(s)|f(s)\in\mathbb{R}^{3};\] (10) \[C=\{c=(c_{1},c_{2},\ldots,c_{n})|c_{i}\in\{-e,0,e\}|e>0\wedge||c ||=e\}\] (11) \[\forall s\in S\exists c\in C|s+c\in S;\] (12) \[PS=((x_{1},y_{1},z_{1}),(x_{2},y_{2},z_{2}),\ldots,(x_{n},y_{n}, z_{n})),\] (13) \[\forall(x_{i},y_{i},z_{i})\in PS\exists s\in S\wedge|f(s_{1})-PS _{k}|\leq\delta; \tag{14}\]  
Figure 1: Flowchart for solving the IKP as a sequence of optimization problems. As can be seen, the configuration space \(S\) must be described using a function that maps to \(\mathbb{R}^{3}\), where \(\theta_{i}\) refers to the value that the effector \(i\) of the kinematic chain can adopt. The possibility of an increment or decrement of that value also needs to exist in a way that the new posture is part of the same space. In other words, there exist a set of changes (\(C\)) allowed for each DOF that must lead to a configuration in the same space, so for a path defined by a series of points \((x_{i},y_{i},z_{i})\), there exists a configuration that maps to a value in \(\mathbb{R}^{3}\) with a boundary error (zero in the case that the point is in the work space and the effector adopts continuous values). The FK models that were obtained by following the Denavit-Hartenberg algorithm fulfilled the (9)-(14). This is an advantage, but it also implies the limitations of the proposal, because it is applicable to the characteristics of IKP for robots or animation applications where an initial posture and the final value (not the solution) of the optimization function are met, and the final and initial postures are similar. These characteristics contrast with the benchmark problems shown in [18; 20; 21], where the optimal value was assumed to be unknown; in some cases, the best value was not necessarily the optimal, and it was not required that the final solution has similarity with a specific initial design vector. Four experiments were carried out using this general case as a starting point. The first two are referred to as the common problem of finding the IK for a random point within the work space, and the difference between these experiments is the applied approach to find the solution. In the first experiment, the IKP was solved using DE as a mechanism to find the solution of a single optimization problem associated with the IK. In the second experiment, DE used biased populations to find the solution of a series of optimization problems, with each corresponding to an instant of the trajectory that the kinematic chain would follow to reach the desired final position. After the comparison between these approaches and considering the results, the third and fourth experiments were carried out. They consisted of trajectory tracking applying the second proposal to determine its potential as a mechanism to obtain the configurations to be followed on a path that reproduces a consistent animation.