## 3 Identification of IPS Parameters Using Genetic Algorithms  
To position a mobile agent in a plane, when using AoA in a PSD-based positioning system, it is necessary to receive the signal from at least two emitters. The computation requires one to know the height of the motion plane to obtain the rotation of the mobile agent. It is also possible to obtain the position from the signal of only one emitter if the rotation of the agent is already known by means of external methods or sensors. In [47], the positioning proposals using 1, 2, and 3 or more emitters are shown in detail. This last case allows one to obtain the total pose, i.e., 3D coordinates and three angles that define its orientation. Focusing in the positioning using one or two emitters, one or more of the following conditions may occur in real environments:  
* The normal vector of the PSD surface is not parallel to the normal vector of the motion plane. This is usually due to errors in the placement of the sensor holder. An example is shown in Figure 1 showing the relative situation between the motion plane and the sensor plane. This difference in orientation can be defined with the Euler angles. From these angles, we obtain the \(R\) matrix of rotation between one plane and the other. * The parameters focal length \(f\) and center of projection of the PSD + lens \((C_{x},C_{y})\) are unknown, along with the radial and tangential distortion parameters. These parameters are those that would be obtained with a formal calibration and are essential to be able to position by triangulation with AoA measurements. * The emitter position is not known with sufficient accuracy within the environment \((X_{e},Y_{e},Z_{e})\). When placing emitters on the ceiling, the required accurate measurement tools are not always available to obtain precise positioning values. Since it is not always possible to know all the parameters of a system with the required precision, our aim is to propose a weak calibration process that allows, with few measurements from the real scenario, obtaining the parameters needed calculate the position of the PSD accurately. It is worth noting that the more system parameters one knows, the fewer there are to estimate, and the better the results can be expected to be. The steps proposed for the calibration process are listed below. Figure 2 helps with following the process. * Choose a reference origin for the coordinate system of the environment. Figure 1: Relative position between the plane of movement and the plane of the PSD. * Place the mobile agents with the PSDs at different known positions in the environment along the motion plane, maintaining \(Z=Z_{r}\). Each position is defined as \((X_{r}^{n},\ Y_{r}^{n},\ Z_{r}^{n})\), where \(n\) is the receiver position number out of a total of \(N\) distinct positions. * Obtain, for each position, the incident point on the PSD surface, \((x^{in},\ y^{in})\) from one or more emitters \(J\), where \(n\) defines the position of the receiver and \(j\) defines the incident point of the \(j\)th emitter. * Obtain the system parameters that minimize the reprojection error by means of an optimization and fitting process, such as a genetic algorithm. In this work, the genetic algorithm (GA) [59; 60; 61] is used because it presents some advantages over other optimization techniques, including the following:  
* GAs are less likely to converge on local maxima or minima. * They are simple to implement, since the only information needed is the objective function and the corresponding constraints. * GAs can be implemented in distributed or parallel implementations. * Genetic algorithms are appropriate for optimizing non-differentiable functions or functions profuse with local minima, since GAs are global search methods that do not employ gradient information. Next, we summarize how the genetic algorithm works, as related in [62]. * The algorithm starts by creating a random initial population. * Next, the algorithm creates a sequence of new populations.