Construction of an indoor positioning system using UWB

24
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

Transcript of Construction of an indoor positioning system using UWB

Page 1: Construction of an indoor positioning system using UWB

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

Page 2: Construction of an indoor positioning system using UWB

1 Abstract

In the world we are living in today, GPS is really important to track and findpeople or objects. However, tracking people or devices inside a building is hardusing GPS since it has a low accuracy. To track indoor objects, an alternativetracking 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 thesystem performance, and how it is implemented.

The implementation utilises three programming languages, Java, Python andC. 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

Page 3: Construction of an indoor positioning system using UWB

Contents

1 Abstract 1

2 Introduction 32.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3 Project Aim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.4 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.5 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Theory 43.1 Ranging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.1.1 One way Ranging . . . . . . . . . . . . . . . . . . . . . . . 53.1.2 Two way Ranging . . . . . . . . . . . . . . . . . . . . . . 53.1.3 Time difference of Arrival . . . . . . . . . . . . . . . . . . 73.1.4 Trilateration . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Line of sight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.3 Error source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.4 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.4.1 TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.5 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.5.1 DWM1001 dev board . . . . . . . . . . . . . . . . . . . . 103.5.2 Raspberry PI . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 Implementation 114.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.2 Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2.1 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . 124.2.2 Ranging . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.3 Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.4 Anchor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.5 Server/GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.6 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.7 Other systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5 Results 14

6 Discussion 216.1 Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216.2 BT vs UWB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

7 Conclusion 22

8 Future work 22

References 23

2

Page 4: Construction of an indoor positioning system using UWB

2 Introduction

2.1 Background

Tracking people and devices has been important throughout history and hasbeen constantly refined. Applications can be from knowing how your enemiestroops are located to find your lost phone.

The Global Position System (GPS) can be used to track phones and otherdevices 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 higheraccuracy than GPS. Syntronic saw this as an opportunity to develop an indoorpositioning system (IPS) that can track devices with a high accuracy, no morethan a few centimeters error. This would not be achievable by using GPS thusit has an accuracy of ±4.9m if using a cell phone. [1] It would not be helpfulwith 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 asgood as ±10cm. [2]. This report test an IPS with the use of UWB to see wherefailures in measurements can occur, how good the accuracy is and how to makethe system more flexible. However, a problem with UWB is that it is sensitiveto 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 tothe 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 understandablethese terms will be explained. The first term is tag. The tag in this thesis isthe device that is being located/positioned, in another words ”the target”. Thesecond term is the anchors, can also be called beacon, which is a device that isin 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 tocalculate where the tag is in the area. It should also be possible for all anchorsto communicate to each other and therefore exchange distance between theanchors. Another goal is to explore the data coming into the computer andvisualize how the tags and anchors are placed. This leads that an evaluation oferror needs to be done as well. In order to meet the project aim I will focus ona few objectives. The thesis will however not take metallic or liquid materialsin consideration, these materials will be removed when testing the system.

3

Page 5: Construction of an indoor positioning system using UWB

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 anchorsin 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 accuracybetween anchor to anchor and anchor to tag are. Also, the system needsto 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 indoorobjects with a high precision. As mentioned before, GPS would not be a goodalternative 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 formulad = vt is used. The velocity, v, in this case is speed of light in air, whichis 299, 792, 458m/s. Therefore this formula can be rewritten as d = c ∗ t (wherec is the speed of light in air) and d is the distance. Time is unknown, but bydoing a Time of Flight (ToF), also called Time of Arrival (ToA), calculation thedistance can be calculated. There are three different ways to calculate ToF, oras called here Tf .

4

Page 6: Construction of an indoor positioning system using UWB

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 RangingTwo way ranging (TWR) measures how long it takes for a signal to get from thesender and back, also called round trip time (RTT). This is the same principleas 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 thesignal is returned at time (end of Tround). Sense DeviceB has to process whenthe packet is coming in (TreplayB , this time needs to be removed because it doesnot have anything with the range it self. The formula to calculate this wouldbe.

Tf = (Tround − TreplayB)/2

By using TWR, the clock of each node does not need to be synchronized, dueto only using the reference time of the sender node to make the ToF. [8]

Figure 1: Two way Single sided

5

Page 7: Construction of an indoor positioning system using UWB

Symmetric Two way Double sidedIn the figure below it is explained how the Symmetric two way double sidedranging. At time Tround1’s beginning a message is sent from DeviceA (Tag),and is received by DeviceB (Anchor) at TreplyB ’s beginning. When DeviceBis done with the calculation it sends the signal back at TreplayB ’s end andDeviceA receives it at Tround1’s end. This triggers DeviceA to do the necessarycalculations and send back a final signal to DeviceB which will do the distanceestimation.[5] Tf will therefore be

Tf = ((TRound1− TReplayB

) + (TRound2− TReplayA

))/4

Figure 2: Symmetric Two way Double sided

Asymmetric Double sided Two way RangingEven though there are some similarities between the asymmetric and symmetricdouble sided TWR, there is one major difference. In an asymmetric TWRinstead of waiting a certain amount of time, looking at fig 3 DeviceA wouldsend a message at time Tround1’s beginning. When DeviceB receives the signalat treplyB ’s beginning, it then sends it back to DeviceA at treplyB ’s end. WhenDeviceA gets the message, it instantly sends it back to DeviceB. This can becalculated by using the following. [6]

Tf = (Tround1 + Tround2 − TreplyB)/4

6

Page 8: Construction of an indoor positioning system using UWB

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, wheretwo 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 ofv1 and is received at t2. While the second signal is sent at t3 with the velocityof v2. Furthermore, t3 = t1 +twait, and this signal is received at t4. To calculatethe distance, the formula becomes

Tf = (v1 − v2) ∗ (t4 − t2 − Twait)

Using this approach, no synchronized clock is needed and doesn’t necessarilyneed any additional hardware. Two example of signals that has different speedis 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 + 1reference points are needed. To do this, a process called trilateration is used,

7

Page 9: Construction of an indoor positioning system using UWB

which calculates an area where the unknown point is. In other words, theanchors (reference points) can position where the tag is in relation to the anchorsusing these calculated areas. In Fig.5, it shows how it looks in a 2d space wherethe intersection of the area can be seen. However, in a 3d space it uses the samealgorithm except it’s one more plane.

Figure 5: Trilateration

8

Page 10: Construction of an indoor positioning system using UWB

Calculate position of anchorsTo be able to approximate the position of the tag, the system must have fixedanchor position. This can be calculated by using the spherical equation x2 +y2 + z2 = r2 between the tag and the anchors. This will result in a systemof equation that is overdetermined. The following notation will be used, dtimeans distance from tag to the i-th anchor and dij is the distance from the i-thanchor 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 atthe 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 samex, 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)

(ax2 − ax3)2 + (ay2 − ay3)2 + (az2 − az3)2 = d223 (4)

(ax2 − ax4)2 + (ay2 − ay4)2 + (az2 − az4)2 = d224 (5)

(ax3 − ax4)2 + (ay3 − ay4)2 + (az3 − az4)2 = d234 (6)

(tx − ax2)2 + (ty − ay2)2 + (tz − az2)2 = d2t2 (7)

(tx − ax3)2 + (ty − ay3)2 + (tz − az3)2 = d2t3 (8)

(tx − ax4)2 + (ty − ay4)2 + (tz − az4)2 = d2t4 (9)

Now, there is 9 equations and 8 unknown variables and therefore the system willbe overdetermined. This system of equation can easily be solved with exampleNewton Raphson method.

Nonlinear Least SquareBy using nonlinear least square method, the result will be more accurate thanusing a linear method. First, let ri be the exact distance from the tag to thei-th anchor. This will result in:

(x− xi)2 + (y − yi)

2 + (z − zi)2 = ri

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 canbe done by minimize the function.

F (x, y, z) =

n∑i=1

(ri − ri)2

The final solution will therefore become:

F (x, y, z) =

n∑i=1

(√

(x− xi)2 + (y − yi)2 + (z − zi)2 − ri)2

To minimize this kind of problem and find a optimal solution would be to useNewtons iterations (Newton Raphson) method. [10]

9

Page 11: Construction of an indoor positioning system using UWB

3.2 Line of sight

In an IPS, a line of sight (LOS) is something wanted. This is because the signalwaves in a non line of sight (NLOS) can be disrupted and the calculation willhave a faulty ToF and therefore the distance will be off. To solve this kind ofproblem, object has to be detected and what kind of object it is because the lighttravels 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 witha line-of-sight.[4][9]

3.3 Error source

When working with real time systems and ranging with time, the timing iscrucial. If the system is drifting and the signal is off by just 1ns it would givean error of about 30cm in the distance calculation. One of the big error sourcesto this problem is the antenna delay, because it takes a small amount of timeto 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 theantenna and therefore it has a delay that needs to be calibrated. Another errorsource 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 timesystems, and can’t be solved unless using an atomic clock that sets the time ineach device.

3.4 Communication

3.4.1 TCP

UWB can be used to communicate between tag-anchor and anchor-anchor, butwhen it comes to tag-server it needs an internet-protocol. One protocol thatcan be used between all tags and the server, could be TCP. This protocol makessure that packages are sent in the right order, the connection is stateful and lesspackages 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 andtransmit these UWB signals. One of those are a DWM1001-dev board, whichhas both a UWB sensor and pins for a super easy connection to a RaspberryPI. 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+. Notonly is it a single board computer, it also has an embedded wifi, 40 GPIOheader, and the CPU is Cortex-A53 64-bit with a clock rate of 1.4 GHz. [13]

10

Page 12: Construction of an indoor positioning system using UWB

4 Implementation

4.1 System Overview

The system is build by using at least five DWM1001 dev boards, one raspberrypi, 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 newdata 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 allof the anchors Fig.6. The anchor replies with its ID, but due to the tag notbeing multithreaded, it can only handle one of the message from one anchor atthe time, which results in a synchronized sequence. When an anchor receivesan 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 betweeneach anchor. The tag dictates on which of the anchors the estimation shouldbe between, and then get the distance from the anchor back. Every anchor inthe system needs to do this estimation to get the best accuracy possible. Theformula for how many times the distance initialization between the anchors istotalAnchor ∗ (totalAnchor − 1) Although this takes some time to calculateeach anchor to anchor, the tag can after this start sending estimate how far itsdistance is to all other anchors.

11

Page 13: Construction of an indoor positioning system using UWB

Figure 6: System overview

4.2.1 Initialization

The first message that is sent out to the system is looking as in Fig.7, wherethe tag include its own ID and sends out the tx message. Each anchor sendsback a rx message, including its own ID as well as the tags ID. The tag sendsback an acknowledgement, that is shown in Fig.8. When the tag wants toknow 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 receivesthis message sends multiple ranging messages to the other anchor (Fig.10) andcalculates 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

Page 14: Construction of an indoor positioning system using UWB

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 sendsa RANG-message Fig.10 to the anchor, and it uses a double sided two wayranging 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 thatsits on top of the Raspberry PI. The raspberry and the DWM board talk throughUART 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 thecurrent position of itself to the server, so it can be displayed on the screen. Thetag uses three different languages, C, Java and Python. C is used to programthe DWM board and then send information through UART to a Java program.The Java program calculates the position of the tag, that uses nonlinear leastsquare, and also starts a python script that calculates how the anchor shouldbe 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 thesignal, process it, and send it back to the tag if the signal was meant to thisanchor. 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 Javaframework 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 anextra raspberry pi connecting the DWM to the raspberry. The system alsoneeds a server with a screen, that can receive the position of the tag and thendraw it on the screen.

13

Page 15: Construction of an indoor positioning system using UWB

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 UWBwith an error estimation of ±5cm. To eliminate any kind of hardware delay,four measurements was done between different Anchors. By using eight differentdistance 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 themeasured distance with a yardstick. Fig.11 is a picture how the setup looked.

Figure 11: The setup

14

Page 16: Construction of an indoor positioning system using UWB

Figure 12: Raspberry PI to Anchor1

15

Page 17: Construction of an indoor positioning system using UWB

Figure 13: Raspberry PI to Anchor2

Figure 14: Anchor1 to Anchor2

16

Page 18: Construction of an indoor positioning system using UWB

Figure 15: Anchor3 to Anchor4

The Fig.16 shows a zoomed in version of the shorter distances and the blueline 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

Page 19: Construction of an indoor positioning system using UWB

In the following figures (17-19), screenshots from the GUI is shown. Thewhite dots representing anchors, while the green is the tag. The setup was thateach anchor was place 1m up, in a square with the sides being 1m as well, andthe tag on the floor, 30cm in.

Figure 17: Top view

18

Page 20: Construction of an indoor positioning system using UWB

Figure 18: Front view

19

Page 21: Construction of an indoor positioning system using UWB

Figure 19: Side view

In the table below (table 1) shows the average estimation distance from allof the measurements.

20

Page 22: Construction of an indoor positioning system using UWB

Actual (cm) Measure (cm) Difference (cm)500 504.4175 4.4175400 404.0725 4.0725300 302.5725 2.5725200 200.05 0.05100 89.2425 10.757570 61.3275 8.672550 39.68 10.3230 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 wouldbe suitable for tracing inside since it has higher accuracy than GPS. But itwould not work as good if using it as drilling holes etc.

This has given a better understanding on how UWB works and its potentialto work as an IPS. On the other hand, this thesis is only a start on a fully workingIPS because when testing the system there were some bugs that showed whichmeans that there were some implementation issues that needs more code work.One of the issue was the serial communication between the Decawave UWBsensor 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 somemodification. Before, it could not send data to multiples nodes, but couldonly do a peer to peer communication. By changing the original protocol itwill therefore not be portable to other UWB system that follows the originalprotocol. This is definitely a flaw but a necessary one because otherwise it wouldnot be able to send to more than one node.

In this thesis the implementation of the self calibrated system is using spheresand 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 betweenthe nodes are wrong, for example when one node has to big of an error, it willhave 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, betterantenna and an accelerator, the results could be more accurate because it hasmore data to be calculated and doesn’t depend only on the ranging. As the resultdisplays, if the tag is close to an anchor, the distance gets very uncertain of whatthe actual distance is. Furthermore, if having more sensor, the calculation canbe calculated with different weights on the sensors. For example if the NLOSdetection sensors detects an object is between the tag and anchor, this wouldhave greater impact on the calculation than say the accelerator.

21

Page 23: Construction of an indoor positioning system using UWB

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 todayalready 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 thesame wavelength and the data can be corrupt.

7 Conclusion

As seen in the result, the system could do self-calibration with a relative highaccuracy. However, the result also shows when a tag get close to an anchor, theaccuracy decreases and is not as good as further away.

A homemade protocol needed to be implemented to support double sided twoway ranging instead of IEEE’s 802.15.4 that only supports single sided two wayranging.

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 howthe anchor is setup. And it can also track when the tag is moving in x, y andz-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 couldbe done with a trained neural network that predicts distance giving allthe inputs.

2. Implement a Kalman filter which would result in a more steady movementin case the calculation gives a unreasonable position.

3. NLOS detection would be really helpful, because this is a major errorsource if can’t be detected and the signal is going through another mediumthan air.

22

Page 24: Construction of an indoor positioning system using UWB

References

[1] U.S. Government. 2017. GPS Accuarcy. [ONLINE] Available at: https:

//www.gps.gov/systems/gps/performance/accuracy. [Accessed 16 May2018].

[2] Malajner M, Planinsic P, Gleich D (2015). UWB ranging accuracy. IEEEDOI: 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 andInertial 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 forCrystal Offset IEEE DOI: 10.1109/ISSSE.2007.4294528

[7] University of Notre Dame. 2010. Localization. [ONLINE] Availableat: 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 inThree 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 11November 2018]

23