Keywords

1 Introduction

Indoor tracking implements location tracking of a user in an indoor environment to achieve real-time position coordinates and represents the current position of a user with indoor positioning technologies. Ultra Wide Band (UWB) technology [13] is IEEE 802.15.4a and IEEE 802.4z compliant suitable for tracking in an indoor environment as the signal frequency penetrates through thin walls. UWB technology [6] positions a user with the Cartesian coordinates system (xy) obtained from timespan and frequency of communication. The technology tracks using Time Distance of Arrival (TDoA) [20], Time of Flight (ToF) and Two Way Ranging (TWR). The security at the Physical layer is achieved with Distance–Time bounded protocol and latency is less than 1ms to obtain x and y coordinates.

UWB technology uses Deccawave (now Qorva) DWM1001C module to identify the location of a user. The technology helps to determine the actual position of a user and plots the location as x and y coordinates. UWB based indoor positioning system [19] with high precision is achieved with DWM1001C module. DWM1001C module is configured either as an anchor or as a tag. A tag is also configured with RPi Zero with DWM1001C module.

The objectives of Real-Time Indoor Positioning Systems (IPS) with UWB are

  • Implement a human positioning system in an indoor environment with DWM1001C module using UWB technology

  • Obtain the position in xy coordinates and communicated to the time-series database in a remote system

  • Display the position with the xy coordinates on a scale map and path movements in an interactive visualization graph.

The DWM1001C module is programmed using Python. The location coordinates are communicated to InfluxDB to store the sensor data using an optimized time-series database (TSDB). The coordinates are visualized using an interactive visualization tool, Grafana to fetch the sensor data from InfluxDB and visualize the location coordinates in interactive dashboards. The anchors and tag communicate using UWB frequency and use Time Division Multiple Access (TDMA) [10]. The anchor is positioned in Line of Sight (LoS) propagation. The real-time system is implemented using UWB technology by configuring the DWM1001C module in two methods

  • DWM1001C module with RPi Zero configured as tag and DWM1001C modules as anchors

  • DWM1001C module configured as tag and anchors

Indoor Positioning Systems (IPS) is a real-time positioning of a human with Ultra Wide Band (UWB) technology using the devices programmed with DWM1001C module. The module DWM1001C combines DW1000 chipset, nRF52832 Micro-Controller Unit (MCU) and 3-axis accelerometer. The module enables Real-Time Locating Systems (RTLS) [11] integrated with DWM1001C Integrated Chip (IC), antenna and power control. The module supports Time of Flight (ToF) and Time Difference of Arrival (TDoA) location algorithms. The source code editors like Visual Studio Code and visualization Integrated Development Environments (IDE) platforms like Grafana and Jupyter are licensed under Free Software. The high-precision indoor tracking using Ultra-Wide Band devices and open standards aims to build a system using Free Software to provide reliability and privacy to the user [14].

Several research works have been executed in indoor tracking using UWB devices to achieve high precision over the last few decades. The literature review is achieved to overview, outline, analyze and classify the state-of-the-art research in this domain. The contributions of the works implemented using UWB are presented in Sect. 2. The experimental setup of the DWM1001C module with RPi Zero as tag and DWM1001C module configured as anchors and DWM1001C module as tag and anchors is detailed in Sect. 3. The methodology of the DWM1001C module configured as tag and anchors are elaborated in Sect. 4. In Sect. 5, the methodology of the DWM1001C module is deliberated. Future works and conclusions are given in Sect. 6.

2 Literature Review

The signal technologies for indoor localization means solutions providing the position of mobile objects or people in indoor environments (e.g., hospitals, malls, etc.), is one of the most cutting-edge services with growing demand in smart applications such as robotics for care and pedestrian navigation. The challenge of indoor technology is to position a person in a bounded environment surrounded by obstacles [12]. The experimental analysis of extensively deployed using UWB technology are discussed in Table 1.

Table 1 Real-time indoor positioning systems with UWB technology

The signal technologies for indoor localization means solutions providing the position of mobile objects or people in indoor environments (e.g., hospitals, malls, etc.), is one of the most cutting-edge services with growing demand in smart applications such as robotics for care and pedestrian navigation. The challenge of indoor technology is to position a person in a bounded environment surrounded by obstacles [12]. The experimental analysis of extensively deployed using UWB technology are discussed in Table 1.

Ultra Wide Band (UWB) is a long-range radio technology that communicates using LoS and NLoS propagation. UWB technology supports high bandwidth, multipath technique [7]. The technology provides an accuracy of 1 cm with a frequency range of 70–300 m. Positioning in an indoor location is achieved with Two Way Range (TWR) [2], Time Difference of Arrival (TDoA) [3], Phase Difference of Arrival (PDoA) algorithms. Smart homes, warehouse management applications are implemented using UWB technology. 3D positioning is achieved by implementing the distance resolution management principle estimating the accuracy of 2.1 mm. Angle of Arrival (AoA) [20] and Time Difference of Arrival (TDoA) [20] algorithms obtain the accuracy of 9.5 cm in local positioning systems. Indoor flying robots are implemented with AoA algorithms obtaining an accuracy of 1m. Indoor positioning is accomplished with ToA [17], AoA, TWR [15], MIMO, PDoA algorithms with the accuracy of 10 cm.

3 Experimental Setup

The setup is configured by installing the anchor devices at the height of 2.5–3 m. A minimum of 3 anchors is required to implement a trilateration algorithm. The devices operate using a repeating superframe structure of 100 ms duration. SuperFrame structure has 30 slots and is numbered as Beacon Message Numbers (BCN) slots. Each anchor is assigned with each slot and is called a seat number and varies from 0 to 29. The first slot is assigned for the initiator. The count of anchors is not limited to 30 and the count can be increased. BCN numbers can be increased accordingly. Each anchor is assigned with BCN slots and a seat number. The additional anchor after BCN 30 will reuse the slots but it should not connect the anchor with the same seat number. In case the same seat number is allotted, the system will disconnect from the network and reconnect to the same network until no conflicts occurs with the seat number.

The tag is connected to the processor which reads the location (xy) serially and communicates to the time-series database system. Initially, the tag sleeps and periodically wakes up to listen to the beacon of the anchor and Almanacs messages. Anchor listens to the period of 5 SuperFrames before returning to sleep for the specified interval. The anchor will automatically wake up and resume the process again. The sleep period will initially be 10 s and will be extended to 60 s. The tag is configured with two modes of operation—responsive and low-power mode operations. Responsive mode follows (Two Way Range) TWR exchange for scheduling the listening period. TWR exchange schedules the next listening period to listen to the beacons during the SuperFrame reserved the TWR exchange slot. The DW1000 chipset will remain idle in this period and nRF52832 will be in sleep mode. The low-power mode operation puts the DW1000 chipset in the sleep mode until the following TWR exchange.

In low-power mode, TWR exchange the DW1000 will be put to Deep Sleep and will be sent to a responsive state in the next TWR exchange. The microcontroller will be put to sleep with other components of the module except the Real-Time Clock (RTC) and accelerometer. The module is in the lowest power consumption mode and will not be able to listen to beacons. The module needs to moves out of the area and initiates communication with the anchors in range, the tag will proceed with TWR slot reservation. The tag collects the ranging and data slot maps to show the slot utilization from the beacon messages of all the anchors in range and combines to select a free-ranging slot in the SuperFrame to assign the anchor in the range. The system faces few technical issues as the ranging slots are occupied in the SuperFrame. Firstly, the system tries to establish communication every 60 s to receive the incoming data and reserve a TWR slot. Every 100 ms, the SuperFrame contains 15 ranging slots which provide sufficient time to the tag to perform TWR with 4 anchors and giving a maximum location rate capacity 150 Hz. Secondly, the system capacity is and new tags will not be able to start ranging until the existing tags move out of the area or give up the slots.

Fig. 1
figure 1

Experimental setup of real-time DWM1001C module with RPi Zero as tag and DWM1001C as anchors

Additional tags can be added to the system to high-precision indoor tracking using UWB devices. The system is designed to have 150 Hz system capacity and system expansion is achieved with the following tag count and location rate.

  • 15 tags @ 10 Hz (max. location rate)

  • 150 tags @ 1 Hz

  • 300 tags @ 0.5 Hz

  • 9000 tags @ 0.01667 (min. location rate).

The TWR internal location engine estimates the position of the tag with the known position of the anchors in range. The location estimate is calculated with the three or four ranging results. The location estimate manages one or two missing responses from the anchors and estimates the location of the tag. The position of the tag is estimated with the static position (xy). The three-axis accelerometer—STM LIS2DH12TR detects the orientation of the device. The devices operate at low power mode and the supply voltage is about 2.8 to 3.6 V. The technology communicates between 3.5 and 10 GHz frequency and achieves a precision of 10–30 cm. The range of the devices is \(250\,\mathrm{m}^2\) maximum. The data communications are achieved up to 27 Mbps. The system is capable of cluster communication as it communicates 750 tags in 0.2 Hz, 150 tags 1 Hz and 15 tags 10 Hz. The experimental setup to obtain the location from the DWM1000 chipset configured with RPi Zero is shown in Fig. 1 and DWM1001C module configured as tag and anchors is represented in Fig. 2.

Fig. 2
figure 2

Experimental setup of real-time DWM1001C module as tag and anchors

4 Methodology of Real-Time DWM1001C Module with RPi Zero as Tag and DWM1001C as Anchors

Real time indoor tracking with UWB using DWM1001C module is a human tracking system implemented for indoor environments. The following assumptions are made in implementing the system. The identity of the person is already known to the system. The timestamp information along with the location is communicated to the system. The location tracking details of a particular user is stored in the database for a maximum period of two days. The position is obtained in x and y coordinates. It is assumed that the user carries the device at all times. The user is located in the range of anchors fixed in the indoor area [18]. The methodology of DWM1001C Module with RPi Zero is represented in Fig. 3.

Fig. 3
figure 3

Methodology of DWM1001C module with RPi Zero

4.1 Step 1—Hardware Circuitry

The hardware setup is made as depicted in Sect. 3 in Fig. 1. The system is setup with DWM1001C enabled with DW1000 chipset, nRF52832 MCU and 3-axis accelerometer device. The anchor is fixed in equal distances and height with the Line of Sight (LoS). The tag is constructed by coupling DWM1001C module with RPi Zero. The Pin diagram of the Raspberry Pi Zero with DW1001C module is given in Fig. 4.

Fig. 4
figure 4

Pin diagram of RPi Zero with DW1001C module

4.2 Step 2—Software Environment

The anchor and DWM1001C module with RPi Zero tag are programmed using Python in Visual Studio Code. The code is divided into three sections—fetch, dump and plot. The fetch section retrieves the coordinates of the tag by calculating the time period of the message transfer and response obtained from the anchor. The dump section obtains the position (xy) of the tag from the anchor to the remote system. The plot section plots the graph from the obtained coordinates on two types of graphs—internal and external graphs. The internal graphs are plotted using matplotlib, Python graph library. The external graphs are represented over the cloud using Grafana, a visualization tool.

4.3 Step 3—Initialization Phase

The anchors have a static position and initialize the communication to the tag. The anchor and tag devices communicate at 3.3 GHz. Each anchor positioned in the indoor environment communicates to the tag by sending a message. The tag obtains the message from the nearest anchor faster than the distant anchor. The tag sends a response to every anchor in the order of message obtained and is called a Two Way Range (TWR). The fetch section calculates the position (xy) with time period and frequency.

4.4 Step 4—Communication Phase

The tag communicates the position coordinates (XY) to the dump section of the remote system via local network or by Cloud. The system receives x and y values depicting the position in Universal Asynchronous Receiver Transmitter (UART) mode.

4.5 Step 5—Decoding Phase

The system obtains the position coordinates (xy) values and calculates the position of the tag with the known static positions of the anchors. The position coordinates are sent to the plot section with the anchor positions.

4.6 Step 6—Positioning Phase

The plot sections plots the graph internally and externally. Matplotlib tool represents the graph marking the anchor points and displaying the tag movement. Grafana visualizes the tag and positions the movement line [16].

Fig. 5
figure 5

Using matlibplot to plot the position with DWM1001C module and RPi Zero

5 Methodology of Real-Time DWM1001C Module

DWM1001C module is preloaded with firmware to assist system developers to deploy RTLS systems for required applications at ease. The module is programmed to behave as an anchor as one of the fixed nodes and tag as mobile located nodes. DWM1001C module is configured using a UART connection from an external host to implement indoor tracking. Some assumptions are made for implementing the system to retrieve the position coordinates of the user in a bounded environment. The system assumes that the identity of the person is already known. The timestamp information is retrieved with the position coordinates. The data is stored for a maximum period of two days. The position is obtained in x and y coordinates (Fig. 5). The device—DWM1001C module is carried by the user at all times and the user is located in the range of anchors in a bounded environment. The methodology of DWM1001C module is represented in Fig. 6.

Fig. 6
figure 6

Methodology of DWM1001C module

5.1 Step 1—Hardware Circuitry

The hardware setup of DWM1001C Module programmed as anchors and tags is shown in Sect. 3 in Fig. 2. DWM1001C configured with DW1000 chipset, nRF52832 MCU and 3-axis accelerometer device serve as anchors and tag. The anchor is fixed in equal distances and height with the Line of Sight (LoS).

5.2 Step 2—Software Environment

DWM1001C module anchors and tag are programmed using Python in Visual Studio Code. The code is divided into three sections—fetch, dump and plot. The fetch section fetches the position coordinates by estimating the time period of the message sent to the anchor and the response received. The dump section communicates the position (xy) of the tag carried by the user to the remote system. The plot section plots the graph with the coordinates communicated by the dump section. The graphs are plotted as internal and external graphs using Matplotlib and Grafana as specified in Sect. 4.2.

5.3 Step 3—Initialization Phase

The anchors are fixed nodes and initiate the communication to the mobile nodes-tags. DWM1001C devices communicate at 3.3 GHz. Anchors initiate the communication with the tag by sending a message. The mobile node-tag receives the message faster from the nearest anchor than the message communicated by the distant anchor. TWR communication is achieved as the tag telecasts a response to every anchor in the range. The fetch section estimates the position (xy) with the response duration and frequency of communication.

5.4 Step 4—Communication Phase

The coordinates sent by the fetch section are communicated to the dump section in the remote system via a local network or Cloud. The system receives x and y values depicting the position in Universal Asynchronous Receiver Transmitter (UART) mode. DWM1001 module initiates UART Generic mode by default. The shell mode can be switched on by pressing the enter command twice within a second.

5.5 Step 5—Decoding Phase

The system obtains the position coordinates (xy) values and calculates the position of the tag with the known static positions of the anchors. The position coordinates are sent to the plot section with the anchor positions.

5.6 Step 6—Positioning Phase

The plot sections plots the graph internally and externally. Matplotlib tool represents the graph marking the anchor points and displaying the tag movement. Matplotlib visualizes the location of the user and positions the movements line in Fig. 7. The tag exiting the range of the anchors is shown in Fig. 8. The movement line visualized using Grafana is represented with Fig. 9.

6 Results and Conclusions

High-precision indoor tracking using Ultra-Wide Band devices and open standards is a real-time system deployed in a bounded environment. The real-time location of a human is obtained as Cartesian coordinates with DWM1001C devices. A minimum of four anchors is suggested to be used to position a single tag carried by the human to fetch the coordinates. The methodologies stated for real-time indoor tracking involves minimal infrastructure and achieves high-precision location coordinates. The implementation of DWM1001C Module with RPi Zero as tag and DWM1001C as anchors and DWM1001C as tag and anchors achieve precise coordinates of the user is shown in Figs. 7 and 8.

Fig. 7
figure 7

Using matlibplot to plot the position with DWM1001C module

Fig. 8
figure 8

Signal strength transmitted between the UWB node and anchors

Fig. 9
figure 9

Visualization graph plotted with the Grafana

DWM1001C Ultra-Wide Band devices are accessed based on accuracy and data rate. The results prove that the accuracy is up to 30 cm and the data rate is up to 70 Mbps in the indoor environment. UWB devices are programmed with DWM1001C module as 100 m distance mapped to 75 Kbps distance. The presence of obstacles and different interfering signals can affect the performance in the bounded environment. The schemes like Chirp Spread Spectrum (CSS) used by UWB are energy efficient, less complex and robust to minimize the adverse effects of multipath and noise. The static obstacles such as walls and ceilings have modeled the effect of human presence. Human bodies absorb, reflect, and diffract radio signals, which could affect the value of radio frequency. The offline mapping is performed with no or few people and positioning is performed with many people and is observed that the system could lose reliability. Accuracy and positioning error of UWB is shown in Fig. 10. Distance and displacement between multiple UWB devices is represented in Fig. 11. The signal strength transmitted between UWB devices is depicted in Fig. 12.

Fig. 10
figure 10

Accuracy and positioning error of UWB devices

Fig. 11
figure 11

Distance and displacement of UWB devices

Fig. 12
figure 12

Signal strength transmitted between the UWB devices

The results of past studies have shown that, on average, the presence of human bodies increased the error rate by 11% regardless of the algorithm used [4]. UWB radio provides high-speed data rate communication over the personal area network space. UWB devices transmit extremely short pulses and use techniques that cause a spreading of the radio waves through wide frequency band with very low power, spectral density [5]. The high bandwidth offers high data throughput for communication. The low frequency of UWB pulses enables the signal to effectively pass through obstacles such as walls and objects. In the presence of multipath, given the system bandwidth limitation of 125 kHz, signal paths are often indistinguishable. Only the average channel delay can be estimated. In some cases, the direct signal path is not present, introducing a delay offset into the frame timestamps, as only reflection paths are seen.

UWB devices with DWM1001C module positions using TWR, ToF and TDoA operating at 500 MHz frequency. The accuracy of the position is obtained at 10–30 cm in the indoor environment, and the range of 20 m is achieved with LoS or NLoS. OFDM spread spectrum is transmitted with BPSK, QPSK modulation. The channel bandwidth is about 3.5–10 GHz.

The inclusion of multiple anchors can be used to improve the performance of the system for enhanced efficiency and more accuracy of data. The direction and position of the human can be facilitated by determining the direction at multiple locations for positioning or moving closer towards the anchor. The experimental results show that high-precision indoor tracking using Ultra-Wide Band devices and open standards is efficient and robust for indoor environments with multiple tags and specified count of anchors. Implementation of trilateration algorithm for positioning in an indoor environment achieves better efficiency.