Construction of an indoor positioning
system using UWB
Anders Lagerkvist
Computer Science and Engineering, bachelor's level
2019
Luleå University of Technology
Department of Computer Science, Electrical and Space Engineering
1 Abstract
In the world we are living in today, GPS is really important to track and find
people or objects. However, tracking people or devices inside a building is hard
using GPS since it has a low accuracy. To track indoor objects, an alternative
tracking system is needed.
This report describes how you can implement a self calibrated indoor posi-
tion system using the alternative technique Ultra-wide band. It determines the
system performance, and how it is implemented.
The implementation utilises three programming languages, Java, Python and
C. The protocol is build on top of IEEE 802.15.4 standard data frame encoding.
The result shows that this approach is very good on distances over 2 meters,
but not suitable for distances below 2 meters.
1
Contents
1 Abstract 1
2 Introduction 3
2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Project Aim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Theory 4
3.1 Ranging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.1 One way Ranging . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 Two way Ranging . . . . . . . . . . . . . . . . . . . . . . 5
3.1.3 Time difference of Arrival . . . . . . . . . . . . . . . . . . 7
3.1.4 Trilateration . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Line of sight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Error source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.1 TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5.1 DWM1001 dev board . . . . . . . . . . . . . . . . . . . . 10
3.5.2 Raspberry PI . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Implementation 11
4.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2.1 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.2 Ranging . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 Anchor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5 Server/GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.6 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.7 Other systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Results 14
6 Discussion 21
6.1 Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.2 BT vs UWB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7 Conclusion 22
8 Future work 22
References 23
2
2 Introduction
2.1 Background
Tracking people and devices has been important throughout history and has
been constantly refined. Applications can be from knowing how your enemies
troops are located to find your lost phone.
The Global Position System (GPS) can be used to track phones and other
devices with a relative high accuracy, but not down to cm or mm and there-
fore is not suitable for indoor position. Here is where Ultra-wide band (UWB)
comes in hand. UWB has a higher accuracy and can track devices with a higher
accuracy than GPS. Syntronic saw this as an opportunity to develop an indoor
positioning system (IPS) that can track devices with a high accuracy, no more
than a few centimeters error. This would not be achievable by using GPS thus
it has an accuracy of ±4.9m if using a cell phone. [1] It would not be helpful
with an accuracy of ±4.9m inside a store, office etc.
However, GPS is more suitable for an outdoor environment, for example to lo-
cate a house or a building. As an alternative to GPS, Ultrawide-band (UWB)
can be used in an IPS. UWB has a significant better accuracy, and can be as
good as ±10cm. [2]. This report test an IPS with the use of UWB to see where
failures in measurements can occur, how good the accuracy is and how to make
the system more flexible. However, a problem with UWB is that it is sensitive
to metallic and liquid materials and can cause a distribution in the signal. [3]
Example of applications using this system can be
• Emergency situations, being able to locate people rather fast compared to
the GPS that has such lower accuracy.
• Industry, locate tools that has disappeared.
2.2 Terminology
In this thesis a few terms will be used. To make the study more understandable
these terms will be explained. The first term is tag. The tag in this thesis is
the device that is being located/positioned, in another words ”the target”. The
second term is the anchors, can also be called beacon, which is a device that is
in a fixed position and helps locating the tag.
2.3 Project Aim
The goal of this project is to have a fully working IPS that uses UWB to
calculate where the tag is in the area. It should also be possible for all anchors
to communicate to each other and therefore exchange distance between the
anchors. Another goal is to explore the data coming into the computer and
visualize how the tags and anchors are placed. This leads that an evaluation of
error needs to be done as well. In order to meet the project aim I will focus on
a few objectives. The thesis will however not take metallic or liquid materials
in consideration, these materials will be removed when testing the system.
3
2.4 Objectives
In this projects the objectives are,
• to learn more about UWB and how it works.
• how the communication between several anchors can be done in a sophis-
ticated way.
• how to position a device inside a building with an accuracy that can differs
±10cm.
• implement a self calibrated system.
2.5 Approach
The project is divided into following steps:
1. Configure and install hardware.To make this project successful, a Rasp-
berry PI Model B+ and five Decawave 1001 dev boards are needed.
2. Establish communication between the anchors. The communication pro-
tocol has to be implemented as well.
3. Program the tag. The tag should be able to communicate with all anchors
in the system by using the commutation protocol written.
4. Ranging and approximation calculation.
5. Evaluation on how the system is doing, by see how good the accuracy
between anchor to anchor and anchor to tag are. Also, the system needs
to be evaluated how good it’s to approximate the self calibration.
3 Theory
UWB stands for ultrawide bandwidth and can be used to locate nearby indoor
objects with a high precision. As mentioned before, GPS would not be a good
alternative for an IPS due to its low accuracy.[1] Instead one can use UWB,
which can achieve much higher accuracy than GPS system.[2]
3.1 Ranging
Ranging is a method to calculate the distance between two objects.
To calculate the distance from the tag to the anchor, the physics formula
d = vt is used. The velocity, v, in this case is speed of light in air, which
is 299, 792, 458m/s. Therefore this formula can be rewritten as d = c ∗ t (where
c is the speed of light in air) and d is the distance. Time is unknown, but by
doing a Time of Flight (ToF), also called Time of Arrival (ToA), calculation the
distance can be calculated. There are three different ways to calculate ToF, or
as called here Tf .
4
3.1.1 One way Ranging
One way ranging depends on both nodes has synchronized clocks. Node N1
transmit at Tt and node N2 received it at Tr . The ToF can therefore be calcu-
lated as following
Tf = Tr − Tt
In case of non-synchronized nodes, the calculation above will result in an incor-
rect ToF estimation, due to the clocks not sharing the same time reference.
3.1.2 Two way Ranging
Single sided Two way Ranging
Two way ranging (TWR) measures how long it takes for a signal to get from the
sender and back, also called round trip time (RTT). This is the same principle
as when a ping message is measured and is illustrated at fig 1. To calculate this,
a timestamp when the message is sent is needed (start of Tround ), and when the
signal is returned at time (end of Tround ). Sense DeviceB has to process when
the packet is coming in (TreplayB , this time needs to be removed because it does
not have anything with the range it self. The formula to calculate this would
be.
Tf = (Tround − TreplayB )/2
By using TWR, the clock of each node does not need to be synchronized, due
to only using the reference time of the sender node to make the ToF. [8]
Figure 1: Two way Single sided
5
Symmetric Two way Double sided
In the figure below it is explained how the Symmetric two way double sided
ranging. At time Tround1 ’s beginning a message is sent from DeviceA (Tag),
and is received by DeviceB (Anchor) at TreplyB ’s beginning. When DeviceB
is done with the calculation it sends the signal back at TreplayB ’s end and
DeviceA receives it at Tround1 ’s end. This triggers DeviceA to do the necessary
calculations and send back a final signal to DeviceB which will do the distance
estimation.[5] Tf will therefore be
Tf = ((TRound1 − TReplayB ) + (TRound2 − TReplayA ))/4
Figure 2: Symmetric Two way Double sided
Asymmetric Double sided Two way Ranging
Even though there are some similarities between the asymmetric and symmetric
double sided TWR, there is one major difference. In an asymmetric TWR
instead of waiting a certain amount of time, looking at fig 3 DeviceA would
send a message at time Tround1 ’s beginning. When DeviceB receives the signal
at treplyB ’s beginning, it then sends it back to DeviceA at treplyB ’s end. When
DeviceA gets the message, it instantly sends it back to DeviceB. This can be
calculated by using the following. [6]
Tf = (Tround1 + Tround2 − TreplyB )/4
6
Figure 3: Asymmetric double sided TWR
3.1.3 Time difference of Arrival
Another approach is to use a Time Difference of Arrival (TDoA) system, where
two signals, example acoustic and radio waves, with different speed are trans-
mitted. This can be described as the first signal is sent at t1 with a velocity of
v1 and is received at t2 . While the second signal is sent at t3 with the velocity
of v2 . Furthermore, t3 = t1 + twait , and this signal is received at t4 . To calculate
the distance, the formula becomes
Tf = (v1 − v2) ∗ (t4 − t2 − Twait )
Using this approach, no synchronized clock is needed and doesn’t necessarily
need any additional hardware. Two example of signals that has different speed
is one radio and another is acoustic. [7]
Figure 4: Time difference of Arrival
3.1.4 Trilateration
To be able to determine where an object is placed in a nd space, at least n + 1
reference points are needed. To do this, a process called trilateration is used,
7
which calculates an area where the unknown point is. In other words, the
anchors (reference points) can position where the tag is in relation to the anchors
using these calculated areas. In Fig.5, it shows how it looks in a 2d space where
the intersection of the area can be seen. However, in a 3d space it uses the same
algorithm except it’s one more plane.
Figure 5: Trilateration
8
Calculate position of anchors
To be able to approximate the position of the tag, the system must have fixed
anchor position. This can be calculated by using the spherical equation x2 +
y 2 + z 2 = r2 between the tag and the anchors. This will result in a system
of equation that is overdetermined. The following notation will be used, dti
means distance from tag to the i-th anchor and dij is the distance from the i-th
anchor to the j-th anchor where also dij = dji . Each anchor has the position
(axi , ayi , azi ) where i = 1, 2, 3...n and the tag has (tx , ty , tz ). The tag starts at
the relative position (0, 0, 0), and the first anchor has its location at (0, dt1 , 0).
To define the equation system, az2 = 0 because it needs three points in the same
x, y or z-axis to define a plane.
(ax1 − ax2 )2 + (ay1 − ay2 )2 + (az1 − az2 )2 = d212 (1)
(ax1 − ax3 )2 + (ay1 − ay3 )2 + (az1 − az3 )2 = d213 (2)
(ax1 − ax4 )2 + (ay1 − ay4 )2 + (az1 − az4 )2 = d214 (3)
2 2 2
(ax2 − ax3 ) + (ay2 − ay3 ) + (az2 − az3 ) = d223 (4)
2 2 2
(ax2 − ax4 ) + (ay2 − ay4 ) + (az2 − az4 ) = d224 (5)
(ax3 − ax4 )2 + (ay3 − ay4 )2 + (az3 − az4 )2 = d234 (6)
2 2 2
(tx − ax2 ) + (ty − ay2 ) + (tz − az2 ) = d2t2 (7)
(tx − ax3 )2 + (ty − ay3 )2 + (tz − az3 )2 = d2t3 (8)
2 2 2
(tx − ax4 ) + (ty − ay4 ) + (tz − az4 ) = d2t4 (9)
Now, there is 9 equations and 8 unknown variables and therefore the system will
be overdetermined. This system of equation can easily be solved with example
Newton Raphson method.
Nonlinear Least Square
By using nonlinear least square method, the result will be more accurate than
using a linear method. First, let rˆi be the exact distance from the tag to the
i-th anchor. This will result in:
(x − xi )2 + (y − yi )2 + (z − zi )2 = rˆi 2
Secondly, ri is the approximated distance from the tag to the i-th anchor. Now,
the summation of all squared errors should be as small as possible, and this can
be done by minimize the function.
n
X
F (x, y, z) = (rˆi − ri )2
i=1
The final solution will therefore become:
n p
X
F (x, y, z) = ( (x − xi )2 + (y − yi )2 + (z − zi )2 − ri )2
i=1
To minimize this kind of problem and find a optimal solution would be to use
Newtons iterations (Newton Raphson) method. [10]
9
3.2 Line of sight
In an IPS, a line of sight (LOS) is something wanted. This is because the signal
waves in a non line of sight (NLOS) can be disrupted and the calculation will
have a faulty ToF and therefore the distance will be off. To solve this kind of
problem, object has to be detected and what kind of object it is because the light
travels in different speed depending on what kind of material it is. However,
even though the accuracy is good it can not be as accurate as it would be with
a line-of-sight.[4][9]
3.3 Error source
When working with real time systems and ranging with time, the timing is
crucial. If the system is drifting and the signal is off by just 1ns it would give
an error of about 30cm in the distance calculation. One of the big error sources
to this problem is the antenna delay, because it takes a small amount of time
to read from the registry, let the data go through the antenna and then out.
The problem is that the time should be calculated when the data is leaving the
antenna and therefore it has a delay that needs to be calibrated. Another error
source can be clock drifting, especially if the distance is calculated by one way.
Clock drifting is when having two devices and both of them has their own clock,
but it is not sure if they are in sync or not. This is a big problem in real time
systems, and can’t be solved unless using an atomic clock that sets the time in
each device.
3.4 Communication
3.4.1 TCP
UWB can be used to communicate between tag-anchor and anchor-anchor, but
when it comes to tag-server it needs an internet-protocol. One protocol that
can be used between all tags and the server, could be TCP. This protocol makes
sure that packages are sent in the right order, the connection is stateful and less
packages will be dropped compared to UDP. [11]
3.5 Hardware
3.5.1 DWM1001 dev board
In order to use the UWB technique, a specific sensor is needed to read and
transmit these UWB signals. One of those are a DWM1001-dev board, which
has both a UWB sensor and pins for a super easy connection to a Raspberry
PI. It has a J-link on board that makes flashing and debugging available on it.
[12]
3.5.2 Raspberry PI
The Raspberry PI used in this project is the third generation model B+. Not
only is it a single board computer, it also has an embedded wifi, 40 GPIO
header, and the CPU is Cortex-A53 64-bit with a clock rate of 1.4 GHz. [13]
10
4 Implementation
4.1 System Overview
The system is build by using at least five DWM1001 dev boards, one raspberry
pi, and also one server. It’s the tag that tells the anchors what they should do,
and how they should behave in the system. It also makes sure that the new
data will be sent over to the server so it can be displayed for a user.
4.2 Protocol
When the system is up and ready, the tag sends out an initial message to all
of the anchors Fig.6. The anchor replies with its ID, but due to the tag not
being multithreaded, it can only handle one of the message from one anchor at
the time, which results in a synchronized sequence. When an anchor receives
an acknowledgment message from the tag, it knows that it has been initialized.
After all anchors has been initialized it’s time to make an approximation between
each anchor. The tag dictates on which of the anchors the estimation should
be between, and then get the distance from the anchor back. Every anchor in
the system needs to do this estimation to get the best accuracy possible. The
formula for how many times the distance initialization between the anchors is
totalAnchor ∗ (totalAnchor − 1) Although this takes some time to calculate
each anchor to anchor, the tag can after this start sending estimate how far its
distance is to all other anchors.
11
Figure 6: System overview
4.2.1 Initialization
The first message that is sent out to the system is looking as in Fig.7, where
the tag include its own ID and sends out the tx message. Each anchor sends
back a rx message, including its own ID as well as the tags ID. The tag sends
back an acknowledgement, that is shown in Fig.8. When the tag wants to
know the distance between two anchors, it sends an INRA tx-message (Fig.9),
that includes the tags ID and both of the anchors ID. The anchor that receives
this message sends multiple ranging messages to the other anchor (Fig.10) and
calculates the mean distance between them. It then sends back an INRA rx-
message to the tag with the calculated distance between the anchors.
Figure 7: Initialization protocol
12
Figure 8: Acknowledgement protocol
Figure 9: Range between anchors protocol
4.2.2 Ranging
Similar when the anchor wants to know the distance between another anchor,
the tag uses the same protocol to get the distance between tag-anchor. It sends
a RANG-message Fig.10 to the anchor, and it uses a double sided two way
ranging that has been explained in previously chapter.
Figure 10: Ranging protocol
4.3 Tag
The tag itself consist of one Raspberry PI and one DWM 1001-dev board that
sits on top of the Raspberry PI. The raspberry and the DWM board talk through
UART where the raspberry gives command to the DWM that it should perform.
Also, the raspberry talks with the server using the TCP-connection. It sends the
current position of itself to the server, so it can be displayed on the screen. The
tag uses three different languages, C, Java and Python. C is used to program
the DWM board and then send information through UART to a Java program.
The Java program calculates the position of the tag, that uses nonlinear least
square, and also starts a python script that calculates how the anchor should
be positioned (only happening when the initialization is done).
4.4 Anchor
The anchor is a DWM 1001-dev board and does nothing else than take the
signal, process it, and send it back to the tag if the signal was meant to this
anchor. Otherwise it skips the signal and start listening again.
4.5 Server/GUI
The server displays where the tag and all of the anchors are by using a Java
framework called Processing. It gets the position from the tag and displays it.
4.6 Hardware
As explained, the anchor is only a DWM 1001-dev board and the tag has an
extra raspberry pi connecting the DWM to the raspberry. The system also
needs a server with a screen, that can receive the position of the tag and then
draw it on the screen.
13
4.7 Other systems
There are other system that can be used, for example Pozyx [14] however Syn-
tronic wanted to do their own IPS that matches their needs.
5 Results
This project’s goal was to have a self calibrated position system using UWB
with an error estimation of ±5cm. To eliminate any kind of hardware delay,
four measurements was done between different Anchors. By using eight different
distance points, each graph shows how the system did on the different distances.
From Fig.12-15, the orange line is what the system calculated and the blue is the
measured distance with a yardstick. Fig.11 is a picture how the setup looked.
Figure 11: The setup
14
Figure 12: Raspberry PI to Anchor1
15
Figure 13: Raspberry PI to Anchor2
Figure 14: Anchor1 to Anchor2
16
Figure 15: Anchor3 to Anchor4
The Fig.16 shows a zoomed in version of the shorter distances and the blue
line is the actual distance.
Figure 16: Zoomed in from previous graphs. Orange: Raspberry PI - Anchor1.
Yellow: Raspberry PI - Anchor2. Green: Anchor1 - Anchor2. Brown: Anchor3
- Anchor4
17
In the following figures (17-19), screenshots from the GUI is shown. The
white dots representing anchors, while the green is the tag. The setup was that
each anchor was place 1m up, in a square with the sides being 1m as well, and
the tag on the floor, 30cm in.
Figure 17: Top view
18
Figure 18: Front view
19
Figure 19: Side view
In the table below (table 1) shows the average estimation distance from all
of the measurements.
20
Actual (cm) Measure (cm) Difference (cm)
500 504.4175 4.4175
400 404.0725 4.0725
300 302.5725 2.5725
200 200.05 0.05
100 89.2425 10.7575
70 61.3275 8.6725
50 39.68 10.32
30 14.8425 15.1575
Table 1: Average measurements
6 Discussion
From the results, it shows that UWB works quite good on distances over 1m,
while when under a meter, it gets unstable. Therefore a system like this would
be suitable for tracing inside since it has higher accuracy than GPS. But it
would not work as good if using it as drilling holes etc.
This has given a better understanding on how UWB works and its potential
to work as an IPS. On the other hand, this thesis is only a start on a fully working
IPS because when testing the system there were some bugs that showed which
means that there were some implementation issues that needs more code work.
One of the issue was the serial communication between the Decawave UWB
sensor and Raspberry-PI, were the sensor did not flushed its buffer directly.
The communication was build on top of IEEE’s 802.15.4 protocol, with some
modification. Before, it could not send data to multiples nodes, but could
only do a peer to peer communication. By changing the original protocol it
will therefore not be portable to other UWB system that follows the original
protocol. This is definitely a flaw but a necessary one because otherwise it would
not be able to send to more than one node.
In this thesis the implementation of the self calibrated system is using spheres
and then setup a system of equations to solve where the anchors are. The for-
mula to calculate the anchors positions (See ”calculate position of anchors” p.10)
is proven mathematical. However, if the calculation of the distances between
the nodes are wrong, for example when one node has to big of an error, it will
have an effect on the whole system and the result will be compromised.
6.1 Sensors
If this system would use more sensors, like altitude, NLOS detection, better
antenna and an accelerator, the results could be more accurate because it has
more data to be calculated and doesn’t depend only on the ranging. As the result
displays, if the tag is close to an anchor, the distance gets very uncertain of what
the actual distance is. Furthermore, if having more sensor, the calculation can
be calculated with different weights on the sensors. For example if the NLOS
detection sensors detects an object is between the tag and anchor, this would
have greater impact on the calculation than say the accelerator.
21
6.2 BT vs UWB
Another aspect of it would see if using Bluetooth instead of UWB. An advan-
taged that Bluetooth has compare to UWB is that almost all cellphones today
already has Bluetooth while UWB is not installed in most cellphones. However,
this means that it’s more devices that can interrupt signals sense it’s on the
same wavelength and the data can be corrupt.
7 Conclusion
As seen in the result, the system could do self-calibration with a relative high
accuracy. However, the result also shows when a tag get close to an anchor, the
accuracy decreases and is not as good as further away.
A homemade protocol needed to be implemented to support double sided two
way ranging instead of IEEE’s 802.15.4 that only supports single sided two way
ranging.
The system is now working comparing to the setup aims for this project. An-
chors can talk to one and another. The tag can communicate to all the anchors.
The tag can self calibrate the system and send it to the GUI that displays how
the anchor is setup. And it can also track when the tag is moving in x, y and
z-axis.
8 Future work
Next recommended step on this project based on my conclusions, but not in-
cluded in my scope, would be to:
1. Improve accuracy on shorter distances with weighted anchors. That could
be done with a trained neural network that predicts distance giving all
the inputs.
2. Implement a Kalman filter which would result in a more steady movement
in case the calculation gives a unreasonable position.
3. NLOS detection would be really helpful, because this is a major error
source if can’t be detected and the signal is going through another medium
than air.
22
References
[1] U.S. Government. 2017. GPS Accuarcy. [ONLINE] Available at: https:
//www.gps.gov/systems/gps/performance/accuracy. [Accessed 16 May
2018].
[2] Malajner M, Planinšič P, Gleich D (2015). UWB ranging accuracy. IEEE
DOI: 10.1109/IWSSIP.2015.7314177
[3] Lui H, Houshang D, Banerjee P, Jing L (2007). Survey of Wireless Indoor Po-
sitioning Techniques and Systems IEEE DOI: 10.1109/TSMCC.2007.905750
[4] Kok M, Hol J, Schon T (2015). Indoor Positioning Using Ultrawideband and
Inertial Measurements. IEEE Transactions on Vehicular Technology DOI:
10.1109/TVT.2015.2396640
[5] Baba A, Atia M (2011). Burst mode symmetric double sided two way rang-
ing. IEEE DOI: 10.1109/WD.2011.6098183
[6] Yi J, Leung V (2007). An Asymmetric Double Sided Two-Way Ranging for
Crystal Offset IEEE DOI: 10.1109/ISSSE.2007.4294528
[7] University of Notre Dame. 2010. Localization. [ONLINE] Available
at: https://www3.nd.edu/~cpoellab/teaching/cse40815/Chapter10.
pdf. [Accessed 18 May 2018].
[8] Utter M (2015). Indoor Positioning using Ultra-wideband Technology Uni-
versity of Uppsala
[9] B. Denis, J. Keignart, N. Daniele (2003). Impact of NLOS Prop-
agation upon Ranging Precision in UWB System IEEE DOI:
10.1109/UWBST.2003.1267868
[10] Non Murphy Jr. W, Hereman W (1995). Determination of a Position in
Three Dimensions Using Trilateration and Approximate Distances
[11] Berkeley. Transport Protocols: UDP, TCP. [ONLINE] Available at: https:
//people.eecs.berkeley.edu/~wlr/12203/transport-slides.pdf. [Ac-
cessed 20 May 2018].
[12] DWM. [ONLINE] Available at: https://www.decawave.com/products/
dwm1001-dev. [Accessed 1 June 2018].
[13] Raspberry PI. [ONLINE] Available at: https://www.raspberrypi.org/
products/raspberry-pi-3-model-b-plus/ [Accessed 1 June 2018].
[14] Pozyx. [ONLINE] Available at: https://www.pozyx.io/ [Accessed 11
November 2018]
23