## 4 Photogrammetric Reconstruction with the UWB Positioning System
During the photogrammetric survey, a Pozyx rover was rigidly attached to the camera, whereas nine Pozyx anchors were distributed inside of the bastion (as shown in Figure 6) to enable assessment of rover positions during the indoor survey. Another Pozyx anchor was positioned outside of the bastion, in order to track the rover also in front of the tunnel entry, i.e., where GNSS is available. Figure 6: Pozyx anchor positions during survey in the Impossible bastion estimated with respect to PhotoScan 3D model (local coordinate system): surveyed with Leica TCR 702 Total Station (red dots); estimated with self-positioning of Pozyx anchors (blue dots). Interestingly, Pozyx devices are provided with an auto-detecting procedure that allows them to automatically detect and communicate with each other. Once turned on, rovers and anchors start to communicate and to provide range measurements. In this case study, a rover was used to collect (anchor-rover) range measurements during the survey, whereas positioning was performed in post-processing. Nevertheless, it is worth noticing that the software provided with the Pozyx system provides also real-time positioning, if needed. However, this functionality was not used in our experiments in order to save computational power, hence allowing a higher data rate collection. Given the ease of use of the Pozyx system, distributing anchors in the bastion and setting the system required just a few minutes. Ideal positioning of UWB anchors is usually in high positions (e.g., high on a wall) to increase the probability of the direct line-of-sight in measurements [24], but in this case study, they were placed on the ground due to the impossibility of attaching anything to the walls. Calibration of the UWB systematic error has been previously considered in several works [40; 41; 42; 43; 44; 45]; however, according to our experiments, systematic errors of low-cost Pozyx devices are significantly anisotropic and difficult to properly model [8], i.e., the dependence on the relative orientation between rover and anchors is typically not negligible. Motivated by this consideration, the Pozyx system is used without any ad hoc calibration procedure. In order to make the system as simple to use as possible, anchor positions were obtained by means of a self-positioning procedure: a local coordinate system was established by considering range measurements provided by three UWB devices as described in [24], then trilateration (and nonlinear optimization) was used in order to estimate the positions of the remaining anchors (blue dot marks in Figure 6). Anchor self-positioning was performed assuming anchors placed on a planar surface (2D positioning). Their positions were measured also by means of a Leica TCR 702 Total Station (red dot marks in Figure 6). While using a total station requires some expertise, distributing UWB devices on the ground is a very easy task. Hence, the rationale of UWB self-positioning is that of providing a simple survey procedure for unspecialized personnel. Blue and red points in Figure 6 clearly show the error of the self-positioning procedure due to UWB measurement errors. In order to ease the comparison, Figure 6 shows anchor positions overlapping on the bastion map (gray points): bastion coordinates in the \(\Sigma_{uvb}\) system are obtained by means of the map from \(\Sigma_{photo}\) to \(\Sigma_{uvb}\), which was estimated as described in the following. Rover altitude with respect to the ground varied across a relatively small interval. Hence, in order to ease the rover positioning problem, rover altitude has been assumed to be fixed to a constant value, i.e., 1.5 m. Range measurements are combined by using an extended Kalman filter (EKF) in order to obtain estimates of the rover position in the \(\Sigma_{uvb}\) coordinate system [46]. The rover dynamic model is modeled as follows:  
\[\left[ \begin{array}{c}x_{t+1}\\ \dot{x}_{t+1}\end{array} \right]=\left[ \begin{array}{cc}1&T\\ 0&1\end{array} \right]\left[ \begin{array}{c}x_{t}\\ \dot{x}_{t}\end{array}