HTC Vive as a Ground-Truth System for Anchor-Based Indoor Localization

The last decade has seen a surge in the popularity of indoor localization systems. Researchers and companies keep searching for technologies that can locate users on a large scale with low costs and the highest possible accuracy. When evaluating the accuracy of a localization system, there is a trade-off between the cost and labor involved in acquiring ground-truth measurements. The cheapest option is to acquire measurements in fixed spots and manually compute their true location in a local coordinate system using distance measuring tools. However, this method is prone to human errors and has a high setup overhead. In contrast, high-end motion capture systems are easy to set up but have prohibitive prices. A middle-of-the-road solution is to use a consumer-grade motion capture system such as the HTC Vive which, although designed for virtual reality video games, can be adapted for scientific applications. We propose a ground-truth system for anchor-based indoor localization systems which builds on the HTC Vive and we demonstrate its use on ultra-wideband (UWB) localization. We apply Procrustes Analysis to bring location data sets into the coordinate system of a room, in order to easily overlap, visualize, and analyze measurements. We use the HTC Vive to acquire the locations of UWB anchors, which allows users to quickly test which hardware placement yields the lowest localization error. The resulting ground-truth system costs under $1000, has an average accuracy of more than 5 mm, is easy to set up, and can be used for both static and dynamic measurements.


I. INTRODUCTION
Indoor localization systems (LSs) are increasing in popularity on the consumer wearable market, being used in smart home, indoor navigation, and assisted living applications. Most of the popular wireless communication technologies such as Wi-Fi, Bluetooth, RFID, and Ultra-Wideband (UWB) double as viable localization technologies with accuracy ranging from several centimeters to a couple of meters [1].
One way to compute the location of a tracked device (called tag) is based on messages exchanged between the tag and several devices called anchors with fixed, known locations. The location of the tag can be computed using the distance between the tag and the anchors via trilateration, where distances can be estimated using the time of flight (TOF) [2] or received signal strength (RSS) [3] of a signal. The location of the tag can also be computed using the angle of The authors gratefully acknowledge funding from European Union's Horizon 2020 Research and Innovation programme under the Marie Sklodowska Curie grant agreement No. 813278 (A-WEAR: A network for dynamic wearable applications with privacy constraints, http://www.a-wear.eu/). arrival (AOA) [4] or the time difference of arrival (TDOA) [5] of signals sent by the anchors to the tag (or the other way around). We classify these techniques as anchor-based, since the coordinates of anchors are directly used in the tracking algorithm to compute the location of the tag.
When reporting the localization accuracy of these technologies, there is a trade-off between the cost and the labor involved in obtaining ground truth measurements. The cheapest method is acquiring measurements only in fixed spots, whose locations are manually computed using high-precision distance measuring tools. However, this method is prone to human errors when measuring distances, is very laborious, needs to be redone in every room in which measurements are acquired, and cannot be used for objects in motion. In contrast, highend motion capture systems with millimeter-level accuracy and precision such as OptiTrack and Meta Motion are easy to set up and use but cost tens of thousands of euros per testbed.
The HTC Vive 1 is a consumer-grade motion capture system designed for VR video games, with mmto cm-level tracking accuracy [6], [7]. Compared to high-end motion capture systems, the HTC Vive is significantly cheaper and covers a larger area, which makes it an affordable candidate for obtaining ground truth measurements.
In this paper, we propose a framework to use the HTC Vive as a ground-truth system for anchor-based indoor localization systems and we demonstrate its use for UWB localization. The proposed system satisfies the following criteria: (1) the user does not need to manually compute the locations of fixed points inside a room, (2) location data sets acquired in the same room share the same coordinate system so that they can be easily compared, and (3) the coordinate system of a location data set is independent of the hardware placement. In this way, users can test multiple hardware configurations inside the same room and easily compare results from one day to the next.
We realize the proposed goals by using the HTC Vive to acquire (1) the locations of a set of reference points, to make all recordings independent of the hardware placement inside the room and (2) the location of UWB anchors, to place UWB measurements in the Vive coordinate system. We apply Procrustes analysis to align data sets obtained in the same room to a reference coordinate system, so that they can be easily compared.
In [6], [7], the authors analyzed the accuracy, precision, and latency of the HTC Vive and its potential use as a ground truth system. However, they did not provide a framework for using it as a ground truth system in applications, which is the focus of our work. The authors found that the accuracy of the HTC Vive varies from several mm to several cm and therefore concluded that it is unsuitable as a ground truth system in robotics 2 . However, it can still be useful for other applications. It is commonly accepted that the average localization error of a ground truth system should be at least an order of magnitude lower than the one of the target system. Given that Wi-Fi and Bluetooth have dmor even m-level accuracy [8]- [10] and UWB has an average 2D accuracy of 10-20 cm [11], [12], the HTC Vive can be a viable ground-truth system for these technologies. In addition, our calibration method can check whether localization errors remain within an acceptable threshold when compared to a reference data set acquired in ideal conditions.
Another affordable ground-truth systems for robotics using the Microsoft Kinect was proposed in [13] but it has an average error of around 10 cm (thus unsuitable for UWB localization). Most of the indoor localization technologies are evaluated using the manual approach [14] or using expensive laser scanners 3 [15] or robotics test beds [16]. Therefore, an easy-to-use, accurate, and affordable ground-truth system for indoor localization applications is still needed, which is the scope of our work.
The contributions of this paper are: • We propose a relatively cheap and accurate ground truth system for anchor-based indoor LSs. • We apply Procrustes analysis to align location data sets to a coordinate system characteristic to a room, so that we can easily overlap, analyze, and visualize the data. • We describe how to use the HTC Vive to obtain the location of UWB anchors for fast prototyping of anchor arrangements. • We analyze the accuracy of the HTC Vive, how to choose the reference points needed by the Procrustes algorithm, and the accuracy of the UWB LS as given by the groundtruth system. In addition, the ground-truth system can also record the orientation of the target device, which can be used to obtain more insights into the target LS. The rest of the paper is organized as follows. We briefly describe the system components in Section II and the algorithms used by the ground-truth system in Section III. We present the system setup and how to use it in Section IV. Finally, in Section V we evaluate the accuracy of the HTC Vive and the UWB system.

II. SYSTEM OVERVIEW A. Ultra-Wideband signals
Owing to their large bandwidth, Ultra-Wideband signals have a very high time resolution which can be leveraged 2 In rare cases, the HTC Vive returned errors of a couple of meters [6]. 3   to measure the time of flight (TOF) of a signal with subnanosecond accuracy. We use TOF measurements to compute the distance between three or more reference devices with known locations (called anchors) and the tracked device (called tag) and then compute the location of the tag using trilateration algorithms. An UWB system using this method has a typical 2D accuracy of 10-20 cm [1].
In this study, we used UWB devices developed by the Swiss company 3db Access, which perform centimeter-level accuracy ranging and have ultra-low power consumption, suitable for the wearables market. Our setup consists of four UWB anchors and one tag.

B. Virtual Reality (HTC Vive)
HTC Vive is a laser-based tracking system intended for VR video games developed by Valve and HTC. It consists of at least one base station (BS), a headset, a tracker, and other accessories. In this paper, we used two BSs and one tracker (version 2.0).
The BS sweeps laser beams horizontally and vertically across the room with 1900 m s −1 at 5 m distance and has a vertical field of view of 110°and a horizontal one of 150°. When the modulated beams hit photodiodes placed on the tracker, the tracker uses information modulated on the beams to compute the AOA of the beam [17]. The tracker combines angle measurements with output from an inertial measurement unit (IMU) to compute its location.
The high accuracy and precision of the HTC Vive system make it an excellent candidate to acquire baseline measurements for the UWB system, whose accuracy and precision are in the range of centimeters. The HTC Vive is especially designed for human motion at high speed, as often required by video games, which suits our application. Figure 1a shows the main hardware components of the integrated UWB-Vive localization system, in this order: a BS, the tracker, and the 3db Access UWB device which can work as either an anchor or a tag.

III. ALGORITHMS
Using the HTC Vive as a ground-truth system for wireless localization applications poses some challenges. First, we want to make the location coordinate systems of measurements acquired in the same room independent of the locations of anchors and BSs. Therefore, it is useful to translate measurements taken inside the same room but with different hardware placements into the same coordinate system, which is explained in Section III-A. Second, we describe how to translate UWB locations into the Vive coordinate system in Section III-B. Finally, Section III-C proposes an offline method to evaluate the localization error of the target system.

A. Aligning Measurements to a Reference Coordinate System
The 3D coordinates and orientation returned by the Vive tracker are (partly) relative to the location of the BSs. However, we might want to change their location in order to see if a particular arrangement yields a higher localization accuracy. It is useful to have measurements acquired in the same room in the same 3D coordinate system, in order to easily compare the results. Therefore, we need to align the measurements to a chosen reference coordinate system.
In addition, the coordinates and orientation returned by the HTC Vive can change from one day to another, even if the BS and the tracker remain in the same location. Also, the Vive coordinate system changes whenever the tracking is lost, i.e., there is no BS in line of sight (LOS) with the tracker, which is seen as if the tracker were disconnected. This is more problematic in experiments because it means that if the tracker loses its LOS with all BSs during a recording, the reported location of the same physical point will be different before and after the disconnection. To demonstrate this behavior, we measured the coordinates of the same locations in two trials, when the tracker disconnects in between the trials. Table I shows that there can be a difference of even 7 cm between the measured coordinates of the same physical point before and after a disconnection.
To align measurements to a reference coordinate system we use ordinary Procrustes Analysis (PA) which finds the optimal linear transformation between two sets of points acquired in different coordinate systems. Assume that we have two sets of measurements, a 1 , a 2 , . . . , a n ∈ R 3 and b 1 , b 2 , . . . , b n ∈ R 3 , stacked as rows in two matrices A, B ∈ R n×3 . PA first computes the translation and (uniform) scaling components for each dataset: (µ A , s A ) and (µ B , s B ), respectively. Then, it finds the rotational component [18], Figure 2: The matrices A and C A before and after being transformed in the coordinate system of matrix B. where · F is the Frobenius norm andÃ is the translated and uniformly scaled version of A, i.e.,ã i = (a i − µ a )/s a (analogously forB). To change the coordinate system from A to B for a set of points we (i) represent them in the centered and scale-free coordinate system associated with A by removing the translation and scaling components (µ A , s A ), (ii) rotate them using T * , and (iii) add back the translation and scaling components of B, i.e., (µ B , s B ). Figure 2 shows points acquired in the two coordinate systems before and after alignment using Procrustes analysis. Besides the tracker's location, the VR system also outputs its orientation. When the Procrustes algorithm is applied on locations in a data set, the orientations also need to be transformed. Figure 3 illustrates this need. Figures 3a and 3b show the locations and yaw angles of poses acquired in two data sets, which we will call the reference and source data set, respectively 4 . If we align the source data set to the reference one and leave the orientations unchanged, the orientation angles are preserved with respect to the new coordinate system, as shown in Figure 3c. However, this means that the orientation of the tracker relative to other objects (or points) inside the room is lost. To obtain the correct new orientations, one option is to work with Tait-Bryan angles. We can convert the rotation matrix T * given by the Procrustes algorithm into roll, pitch, and yaw angles, which we add to (or subtract from, depending on the rotation convention) the corresponding orientation angles of the object. This transformation yields the correct poses, as shown in Figure 3d.

B. Transforming Local Coordinates
The Vive tracker and the UWB tag will never be at exactly the same location because of the physical size of the devices. We mount the devices on a stand (Figure 1b) which maintains a fixed relative location and orientation between the two devices. Then, we derive a transformation matrix to convert the 3D coordinates of the VR tracker into the coordinates of the UWB tag, which depends on both the 3D coordinates and the orientation of the tracker.
We use the quaternion representation of the tracker's pose to compute the location of the tag, since it is more stable than Euler angle rotations. We denote the pose of the tracker by the quaternion: The relative location of the tag with respect to the tracker is given by the vector: If the location of the tracker is v t = v x i + v y j + v z k, the location of the UWB tag can be computed as:

C. Evaluating Localization Errors
The end goal of a ground truth system is to compute the accuracy of the target localization system (in our case, the UWB one). In an ideal scenario, the UWB and Vive systems would have the same update rate and we could compute the localization error using samples acquired at exactly the same time. However, not only we cannot rely on the two systems to have the same update rate, but also this rate will vary in time because they are transmitted over a network. If we compute the error online, then we can simply compare the two latest locations given by the UWB and Vive systems.
However, if we analyze the data offline, we can use more information to find the ground truth location closest in time to a UWB location. One option is to find the Vive and UWB locations whose timestamps are closest to each other. However, if we assume a target with a speed of 1 m s −1 , a time difference of 10 ms between the samples can introduce an error of 1 cm Algorithm 1 Finding the location corresponding to a timestamp t new such that |t ref − t new | < ∆ T , where t ref is the reference timestamp and ∆ T is a chosen threshold. 1: procedure CLOSEST_LOC(t 1 , l 1 , t 2 , l 2 , t ref ) 2: if d 1 < d 2 then Return l 1 else Return l 2 6: else 7: Return CLOSEST_LOC(t new , l new , t 2 , l 2 , t ref ) between the two locations. We can instead generate locations in-between two timestamps by approximating the trajectory between them with a line.
In other words, we want to generate the ground truth location between two locations l 1 , l 2 acquired at timestamps t 1 , t 2 (t 1 < t 2 ), respectively, such that the time difference between a reference timestamp t ref and the timestamp of the ground truth location is smaller than a chosen threshold ∆ T . If we assume that the target is moving with constant velocity between l 1 and l 2 , we can generate the intermediate locations between t 1 and t 2 by recursively dividing the time period and the location span in half until the condition is met, as described in Algorithm 1.

IV. SYSTEM SETUP
The system is set up such that the Vive and UWB components can run independently and send their results (tracker location and anchor-tag distances, respectively) over a network through the MQTT network protocol [19]. A Python script collects these measurements, processes them, saves the results into files, and shows the locations of the tracker, tag, and anchors in a graphical interface in real-time.
Since the HTC Vive BSs have a range of 6.9 m 5 and the Vive system needs to see all the UWB anchors, the anchors should be placed over an area of approximately 6.9 m × 6.9 m. It is preferable to place them uniformly around the tracked perimeter [20]. The Vive BSs must be placed so that (1) they have direct sight to all anchors and (2) the maximum distance between each anchor and the BS does not exceed the maximum range of 6.9 m. In addition, the BSs should either face each other or otherwise be connected with a synchronization cable [21]; in our work, we chose the first option. The BSs should also be placed at different heights to minimize the geometric dilution of precision (GDOP) on the z axis (height). Figure 5b shows a suggested placement of the anchors and BSs.
To align measurements to a chosen reference system as described in Section III-A, the user needs to choose the location of at least three reference points, which must be kept constant for all future recordings. Therefore, they should be placed on walls or other furniture which will not be moved. The outline of the tracker can be drawn on the chosen surface, which will help the user place the tracker on the exact same spot each time. For each run (or recording), the user must perform the following steps: 1) Place the tracker on each of the reference spots; the software records a measurement each time a key is pressed. 2) Center the tracker on the antenna of each UWB anchor to acquire their location. Similarly, the software records a measurement when a key is pressed. 3) Track the devices. The software aligns the current locations to a chosen reference coordinate system (if given) and, once the tracking begins, will save: the location and orientation of the Vive tracker, the ground truth location and orientation of the UWB tag, and the location of the tag as measured by the UWB system.
Although it is slightly inconvenient that the system must be calibrated (steps 1 and 2) for each recording, these steps take less than 5 minutes. If the user is certain that the tracker has not disconnected between two recordings, the calibration can be omitted, case in which the reference points and the anchor locations can be read from an indicated directory (e.g. the directory in which the previous recordings were saved).
The UWB system computes the location of the tag using the regularized iterative least-squares (or Gauss-Newton) method presented in [22], which is suitable for online localization. The trilateration algorithm can yield large errors (more than 100 m) if the circles determined by the distance between anchors and the tag, which are centered at the anchors, do not intersect. This is a known issue of the algorithm and we handle it by restricting "valid" locations to the perimeter determined by the anchors (optionally, with a certain tolerance) and discarding locations outside of it.
UWB distance measurement errors acquired with 3db Access devices are inversely proportional to the signal-to-noiseratio (SNR) up to a certain path loss. To estimate this relationship, we calibrated pairs of devices (the tag with each anchor) by measuring the distance between them at known, fixed points. Then, we fit a line to the distance errors (which increase linearly with the measured distance) and correct raw measurements using the coefficients of the fitted line. We used the Vive system to measure the true distances, since in static scenarios it is known to have mm-level accuracy [6].

V. EVALUATION
In this section, we evaluate the performance of the HTC Vive as a ground truth system for UWB localization. First, we analyze the accuracy of the HTC Vive in Section V-A. In Section V-B we investigate how to choose a set of reference points that minimizes alignment errors. Finally, in Section V-C we evaluate UWB localization error using the proposed ground truth system.

A. HTC Vive Accuracy
First, we evaluate the accuracy of the HTC Vive. We mark 48 points inside a room shown in Figure 4b, out of which 40 points are on a table (center area) and 8 points are on the wall (left and right regions). Although the map shows only four points in the left and right areas, each marker corresponds to two test points at different heights with the same x − y coordinates. All the test points on the table are at the same height of approximately 0.854 m and the points on the wall are at heights between 0.763-1.861 m. We measure the true locations and distances of the marked points, which we will use to compute the average accuracy of the HTC Vive. Figure 4a shows the three regions and the placement of BSs inside the room.
We acquired measurements using three different placements of the two Vive BSs, denoted by S1, S2, and S3 in Figure 4b. BS1 and BS2 are always placed at a height of 2 m and 1.3 m, respectively. We placed the tracker on each of the test points, acquired five location samples, averaged them, and recorded the average location at each test point. We recorded one series of measurements in setup S1 and three series of measurements in each of the setups S2 and S3, where one series of measurements contains all the 48 test points. Measurements in setup S1 were recorded during the evening (so in artificial lighting) and all recordings using setups S2 and S3 were acquired in daylight.
The locations given by the HTC Vive are placed in a local coordinate system. In order to compute the errors between Vive locations and the true locations of the test points, we use the Procrustes algorithm to find the optimal linear transformation between the two data sets. The Procrustes algorithm yields zero errors if the locations perfectly overlap, so any excess disparity between the transformed and the reference data set will be due to HTC Vive localization errors or systematic errors in the true locations 6 .
The goal is to compute the average localization error of the HTC Vive and evaluate whether measurements acquired in different areas of the room have different average errors, since there is a chance that errors increase near the edge of the Each recording uses two BSs, placed above and below the tracking area, marked as rectangles. We tried three sets of BS placements, denoted by S1, S2, and S3. (c) CDF of HTC Vive errors on the x, y, and z axes.
field of view (FOV) of each BS (i.e. on the walls). Evaluating the accuracy of locations measured on the walls is especially important because this is where UWB anchors are typically placed. Since we use the HTC Vive to record the location of UWB anchors, Vive localization errors will propagate through the UWB tracking algorithm and it is critical for them to be as low as possible.
Since errors on the z axis (height) tend to be larger than on the x and y axis because of the higher GDOP, we present the localization errors on each axis. Figure 4c shows the CDF of HTC Vive localization errors on the x, y, and z axes and Table II shows the mean and maximum errors of measurements taken on the walls (left and right regions) and on the table (in the center of the room). On average, localization errors in the x − y plane are smaller than 1 cm and slightly higher in the z plane. It is notable that, although all measurements from the set S2 were acquired in strong lighting (sun shining on most of the table and some points on the wall), they did not seem to have significantly higher errors than the others except for two measurements on the wall which had the largest z−axis error of 13.14 cm.

B. Choosing the Reference Points
In this section, we want to investigate how to choose the reference points and their number in order to introduce the smallest errors when aligning data sets acquired in the same room. From the recordings described in the previous selection, we select two data sets acquired with different BS placements (we selected one with setup S2 and one with setup S3) and we will align one to the other using the Procrustes algorithm. We first split the 48 points from each data set into a training and a test set. We use the training set of points to compute the transformation between the reference and target coordinate system and the test set to evaluate the errors after the transformation.
To generate the training set, we split the points into three regions (left, center, and right) as shown in Figure 4b. For n training points, we choose an equal number of n/3 points from each region and the remainder of points at random from all regions. This reduces the chance of obtaining combinations of training points that lead to high alignment errors (i.e. all training points on one side of the room). The test set comprises all the points not in the training set. Table III shows the mean and maximum error on each axis when using between 3 and 6 training points. Using the minimum number of training points, while convenient, leads to large errors because the Procrustes algorithm cannot generalize the transformation matrix for the entire covered area. While using only one extra training point significantly reduces the average errors, bad configurations can also lead to large maximum errors. For 5 or 6 training points, the average errors on all axes are under 4 mm and none of them exceeds 5 cm. The configurations that yield the smallest errors contain at least one point on each wall, preferably in different corners of the tracking area, and at least one point in the center of the room. It is important to have at least two training points at different heights to obtain the correct transformation matrix.

C. Localization
We now evaluate the UWB localization error using ground truth measurements given by the HTC Vive. We use four UWB anchors, one UWB tag, one Vive tracker, and two Vive BSs placed as in configuration S3 from Figure 4b. We choose a combination of six training points similar to the one which minimized average errors in the previous experiment. Ideally, the UWB anchors should be placed as high as possible to improve the visibility to the tag. On the other hand, some anchors should be placed at lower heights to minimize the GDOP on the z axis. Because we need to measure the anchor locations with the Vive tracker, we have yet another constraint: UWB anchors should be reachable by the person who performs the calibration phase. To best satisfy these constraints, we placed the UWB anchors at heights between 1.5-1.8 m.
We performed two rounds of measurements with different BS placement in the x − y plane, similar to configurations S2 and S3 from before, and maintained the same anchor locations and training points. We moved the tracker and tag at walking speed inside the perimeter delimited by the UWB anchors. In addition, we ensured that the tracker is in LOS with at least one BS at all times and tried to keep the tag in LOS with all the anchors. We aligned the second set of measurements to the first one. We compute the closest ground truth location to a given UWB location using the algorithm from Section III-C. Figure 5a shows the CDF of the absolute value of localization errors on the x, y and z axes. The z axis has significantly larger errors than the other axes because of the high GDOP (there is a height difference of only 30 cm between the anchors). The median error on the x and y axis is 9.6 and 7.5 cm, respectively. On both of these axes over 90 % of errors are under 20 cm. Figure 5b shows the measured and ground truth tracks of one of the two trials.
The Vive tracker also records its orientation, which coincides with the orientation of the UWB tag. This information is useful because UWB measurements can be affected by irregular antenna radiation patterns. Knowing the orientation of the tag, we can identify which antenna alignments cause larger errors in distance measurements and we can use this information to optimize the placement of devices in the localization system. The orientation of the tracker or tag in the x − y plane is also shown in Figure 5b.
Because the average error of the UWB system in the x − y plane is about 10 cm and on the height axis approximately 25 cm, we consider the HTC Vive acceptable as a ground truth system since its average errors on the same axes are at least 10 times lower than the UWB ones.

D. Discussion
Using the HTC Vive as a ground truth system has several disadvantages. First and foremost, the HTC Vive is not a measurement tool and therefore does not guarantee an upper bound on its localization errors. While, on average, its static measurements have mm accuracy, in some cases we noticed higher errors of even 13.14 cm. This can be problematic if we need sub-cm accuracy for all measurements, especially since we acquire the location of UWB anchors using the Vive system. For the best performance, HTC recommends using the Vive system in low lighting, connecting the BSs with a synchronization cable, and has additional advice for placing the BSs [21]. One way to minimize the chances of large ground truth errors is to acquire the reference data set in these ideal conditions. When subsequent data sets are aligned to the reference one, if the disparity between the aligned training points is larger than a threshold, we can assume that the current setting is not ideal and reconsider the conditions of the experiment.
Another inconvenience is that, although the calibration step takes less than five minutes, it is still inconvenient to perform it at the beginning of each round of measurements. In the future, we could eliminate the need to manually acquire the locations of UWB anchors and instead compute them using the location returned by the tracker and the distances between each pair of UWB devices in use albeit with possibly higher errors.
Even with its shortcomings, the HTC Vive remains an attractive option for acquiring ground truth measurements for wireless LSs given its low price (at least when compared with high-end motion capture systems), high accuracy, and ability to acquire thousands of static and dynamic measurements with a small setup overhead.
Although we tested the ground truth system on UWB localization, the same framework can be applied to any other anchor-based wireless LS. The location of the anchors can be acquired with the procedure described in Section IV and then sent to the target LS through the MQTT network protocol. The HTC Vive and the target LS can then operate independently of each other and only need to send the estimated locations via MQTT to a computer that centralizes the data and computes the localization error of the target system. This framework can also be used as a starting point for a joint UWB-HTC Vive LS, since the two components have characteristics that complement each other. The HTC Vive offers localization with mm-level accuracy and precision, but can work only when the BSs are in LOS with the tracker. The UWB LS, on the other hand, works also in non-lineof-sight (NLOS) scenarios and could provide locations with decimeter-level accuracy when the VR system is unreachable. Many tourism applications could benefit from such a joint LS; for instance, museums could offer visitors wearables which use the UWB system to guide them through the museum and the VR component to closely interact with certain exhibits.

VI. CONCLUSIONS
We presented a framework for using the HTC Vive as a ground truth system for anchor-based wireless localization systems and tested it on UWB localization. We introduced a method to transform recordings acquired in the same room in the same coordinate system, in order to easily compare results with different hardware setups over time. We use the HTC Vive to acquire the locations of anchors, which allows us to test different hardware arrangements with little overhead.
Future research directions include simplifying or eliminating the calibration process, finding more setup guidelines which minimize HTC Vive errors, applying the framework to other localization systems, and integrating the UWB and HTC Vive in a joint localization system.