Latest update: April 2017
In order to validate the positioning accuracy of the Pozyx system, extensive tests have been performed using mm-accurate ground truth data. The tests were performed within an office space of 7m x 9m with a person holding the tag upwards in his hand and moving around. For this test, four anchors were used, placed at the edges of the area at roughly 2m height. Test were made using ultra-wideband channel 5, preamble length 1024, prf 64MHz, and bitrate 110kbps. Similar results can be expected on different channels with different bitrates or prf. Shorter preamble lengths may slightly reduce the accuracy. One test was performed in an open area with no obstacles, i.e. the line-of-sight (LOS) test. A second test was performed with two anchors consistently blocked with metal racks filled with bottles of water, this is the non-line-of-sight (NLOS) test. Two algorithms available on the Pozyx device were compared: the UWB_ONLY algorithm and the TRACKING algorithm, both for 3D positioning. In the figure below, the cumulative distribution function of the horizontal (xy) positioning error is shown in millimeter for both algorithms.
Fig. Experimentally measured positioning error (in xy-plane)
From this figure, it can be seen that both algorithms perform similarly. For both algorithms, the average horizontal error in LOS is 92mm and 140mm in NLOS. The average vertical error was typically larger which is expected as a result of the poor anchor placement (all in the same plane at only 2m height). In the figures below, a scatter plot of this test is shown for each algorithm.
Fig. Experimentally measured positioning trajectory using the TRACKING algorithm
Fig. Experimentally measured positioning trajectory using the UWB_ONLY algorithm
Although both algorithms perform similarly on average, it can be seen that, in general, the TRACKING algorithm provides a much smoother trajectory, whereas the UWB_ONLY algorithm provides more jittery results. This is because the TRACKING algorithm uses previous position estimates in its estimation which smooths the result. It is suggested to use the TRACKING algorithm when performing continuous positioning. In scenarios where the position is only obtained once, or at very low update rates (multiple seconds or minutes), it is suggested to use the UWB_ONLY algorithm.
Note that the accuracy may be lower outside the area covered by the anchors. Furthermore, the best performance is obtained with the antennas in an upright position. For a better accuracy in the vertical direction it is suggested to place the anchors at different heights, sufficiently higher and lower than the height of the tag. This reduces the geometric dilution of precision (GDOP) as much as possible.
Positioning duration and update rate
The positioning update rate that can be achieved with the Pozyx system depends on a number of settings, of which the ultra-wideband settings will have the most significant impact. The highest possible update rate for positioning is around 140Hz. In the figures below, the timing of positioning is shown for several settings. The measurements were made by timing the duration on the Arduino. The Pozyx was configured to use 4 anchors and the TRACKING algorithm. Furthermore, the Pozyx system offers two ways of collecting the range measurements. One method, called PRECISION, is the slowest and most precise. The FAST algorithm is in general equally precise, but requires some time to become accurate. In general the first 100ms, the ranging information will not be precise. Also, the FAST protocol cannot provide accurate results for the longer preamble lengths.
In the figure, and the table below, the duration of positioning and the maximum update rate is shown, respectively.
Fig. Experimentally measured positioning duration
It is noted that using more anchors will increase the positioning duration, as more measurements must be made.
In the next figure, we show the duration of both algorithms as a function of the number of anchors used for positioning. These results are excluding the range measurements. Because of this, the results give a very good indication of the delay that can be expected, i.e., the time between measuring the position, and actually obtaining the position. It will be seen that the delays are very small. The solid lines show the average time, whereas the shaded areas indicate the spread (minimum and maximum times measured) for each algorithm. It can be seen that the UWB_ONLY algorithm typically requires around 0.7ms. However, it exhibits a large spread which is inherent to the algorithm. Typically, in situations with lots of noise and bad anchor geometry, the duration of the algorithm may be higher than in cases with good measurements. The TRACKING algorithm requires around 1ms when using 4 anchors, and up to 2.5ms for 10 anchors. The spread is very small. Note that the processing duration may also depend on other processes that are running on the microcontroller in the background, such as communication through I2C or USB. The results shown here are without any other process running on the pozyx device.
Fig. Experimentally measured algorithm delay
Tests were performed to compare the measured range with the Pozyx device against a millimeter accurate ground truth. For the tests, the PRECISION ranging method was used on ultra-wideband channel 5, preamble length 1024, prf 64MHz, and bitrate 110kbps. Test were performed between 2m and 10m. In total, 7000 range measurements were collected. The results are shown in the figures below. The FAST ranging method exhibits similar errors after a warm-up period of 100ms with preamble lengths up to 1024.
Fig. Experimentally measured ranges.
Fig. Histogram of the experimentally measured ranging error.
Similar to positioning, the duration of the ranging process depends on a number of settings. The ultra-wideband settings have the most impact.
Fig. Experimentally measured ranging duration