Project Overview - Hellymaw/ragnarok-red GitHub Wiki
This project involves developing a network of UWB/Bluetooth (DWM1001C) transceivers to track multiple people, across a few rooms and corridors of a building floor (level 2/3 of GP South). The aim is to minimise the number of nodes required to provide sufficient tracking of an individual/individuals.
This will be achieved by using a BLE mesh network containing advertising nodes, relays and a base station. The base station will receive the “flood” of information from the mesh network, process it and display it to an online application.
The online dashboard application will display the location of the user in a predetermined grid space, indicating RSSI and UWB ranging methods.
-
0.8m Localization Accuracy:
Using UWB, the network is able to localize ‘tags’ (mobile devices) to a fine grain ranging accuracy of at least 0.8m. Using RSSI ranging for additional course grain ranging (~2m accuracy). -
Minimizing the nodes required for localization:
Using less than 8 nodes to accurately localize a tag, allowing for at-least 2 tags to be tracked simultaneously. -
Persistent BLE Mesh provisioning:
Once provisioned, the nodes are required to remember their association to the BLE mesh network. That is, power cycling the device should allow for the device to reconnect to the mesh without needing to be re-provisioned (Mesh key retained in non-volatile memory). -
Scalability:
The node network should be able to track multiple tags throughout the test area. At a minimum, the network should be able to track 2 tags. -
Web-Dashboard to display localization map and ranging information:
Location of tags able to be seen on web dashboard in close to real time (~2s update time)
The hardware used in this project is based on the DWM10001C module. The module contains a DW1000 (Radio IC), an nRF52832 and a 3-axis accelerometer. The module is implemented on the DWM1001 development board as a complete package.
The figure above, shows the intended approach for integrating project sub-systems.
The figure above, shows the intended software implementation approach for the project for different device types (Master Node, Slave Node and Tag).
The two interfaces that are required for implementation is BLE and UWB.
The DWM1001 development board is based on the DW1000 Ultra Wideband (UWB) transceiver IC, which is an IEEE 802.15.4-2011 UWB
implementation. It integrates a UWB and Bluetooth® antenna, all RF circuitry, a Nordic Semiconductor nRF52832 and a motion sensor.
DWM1001 Schematic
BLE is supported in Mynewt. BLE mesh is supported through NimBLE which provides various examples on how to setup. Driver support apache-mynewt-core>nimble for the nrf52 MCU. The UWB DW1000 is also supported in Mynewt.
Once the UWB device is setup, ranging information can be gathered <uwb_rng/uwb_rng.h>
. Similarly, RSSI is gathered through BLE advertising/connection between the tag and relay nodes.
This project will use a BLE mesh network to pass location information from tags to a "base". As such the network will follow an ad-hoc mesh network topology. The network will make use of the Bluetooth SIG Generic Location Client/Server model where the "base" (client) will subscribe to the tag (server). The other nodes in the network will be configured as relays so the "base" can retrieve the state of the tag outside of the tags immediate range. Due to the web dashboard having a throughput limit of ~1 upload per 2 seconds the data rate required is expected to be, at it's maximum, 5 messages per second.
The nodes in the network follow a ring topology where one node is designated as "master" which synchronises the "slaves" in the network. It does this through the use of Clock Check Packets (CCP) as per in the decawave-uwb-apps
repositories rtdoa_node
example. The UWB is sent via the DW1000 radio using the modules mode 2, which can be seen below:
Data Rate | PRF (MHz) | Preamble (Symbols) | Data Length (B) | Packet Duration (us) |
---|---|---|---|---|
6.8 Mbps | 16 | 128 | 12 | 152 |
- Multilaterization:
Multilaterization is used in this project for localization with both UWB and BLE signals. For the UWB it is used in conjunction with ranging information gathered using Reverse Time Difference of Arrival (RTDoA), whereas for BLE it is used with ranging information estimated via the BLE RSSI. - Kalman Filter:
A Kalman filter will be used in order to filter the received RSSI values as due to multipath propagation the received BLE RSSI values are expected to fluctuate wildly