## 1 Introduction
There are different measurement principles for positioning with VLP, including tri-lateration through phase measurements (PoA) [40] or received strength measurements (RSSS) [41], and triangulation [28] through angle-of-arrival (AoA) measurements. On the other hand, the effect of multipath (MP) due to different light reflections in the environment is one of the most important sources of error in VLP systems. Therefore, in [42] it was shown how AoA is more immune to MP than PoA, after modeling the multipath effect [43] with an accurate light reflection model suitable for this purpose [44]. When focusing, therefore, on the VLP based on angle of arrival (AoA) measurements, there are different alternatives depending on the types of sensors used; the most relevant are the works based on cameras [24], QADA sensors [45], photodiode arrays [46], and PSDs [47]. Each of the alternatives has its advantages and disadvantages. Broadly speaking, cameras achieve high measurement accuracy, but require high processing power, and the measurement refresh rate is low. QADA sensors such as photodiode arrays have the advantage that the processing is usually less burdensome; they also have larger bandwidths than other sensors, but need several emitters in the case of QADA or several photodiodes in the case of arrays for positioning. PSD-based systems have high accuracy and can achieve higher refresh rates than cameras, but have smaller bandwidths than QADA sensors and photodiodes. Depending on the application requirements, one alternative or the other can be used. When AoA is used as a measurement technique, it is necessary to use a lens system or a tiny aperture (pinhole). In the case of photodiode arrays, the use of such systems is not necessary, since they have a different configuration. They obtain the AoA not by the sensor itself but by the signal strength received from numerous photodiodes placed in a certain configuration. When using lenses it is necessary to know with high precision the intrinsic parameters of the sensors, plus the lens assembly and the distortion parameters. The precision of the positioning will depend directly on the errors made in the determination of these parameters. This is why there are numerous calibration methods designed primarily for the calibration of [48] cameras. These are based fundamentally on acquiring pictures of a checkerboard and from the corners of the different squares to obtain the distortions of the system. We focused our research on PSD-based VLP, and since for PSDs it is necessary to attach lenses to obtain the AoA, calibration had to be performed as well. In [49] a calibration process based on [PERSON]'s work [48] but adapted for PSDs was presented. In this case, checkerboards were no longer used, since the PSD did not form an image; instead, a template was used with multiple led emitters placed at known points on a surface, similarly to placing them on the corners of checkerboard squares. It was shown that this calibration method obtains quite good results, but it has some drawbacks, many of them inherited from camera calibration systems. First of all, let us remark that it is a long and laborious process. The calibration template has to be placed in multiple positions at different angles, covering most of the PSD's range. Since there must be many LEDs, in our case 16, and to avoid possible interference, each one of them emits the light sequentially, to acquire a single \"image\" it is necessary to spend approximately 2 min. Another problem can be found when placing and soldering the LED emitters, as this manufacturing process will always produce small errors. Usually, this error is greater than the error made by a printer when printing a checkerboard. For this reason, it will be necessary to take more \"images\" to reduce this error as much as possible. Another very important aspect is that once the calibration has been carried out, any small maladjustment, for example, in the handling or in the final installation, means that the calibration process will have to be repeated again.