Hi, is there an existing database for the DWM1001 module that I could access? I’m part of a research team and we purchased the MDEK1001 kit but it’s backordered until mid-August. We’re trying to see if there’s a way we can use pre-existing data so we can begin testing and analyzing the data. We’ve had previous experience doing something like this in the past with LIDAR data, and it would be great if there was a similar resource for UWB data. Thanks!
What would you need as parameters in this database ?
- estimated tags position
- raw distances estimations from all anchors as output of TWR
- ToF + RF diagnostic (e.g. stdNoise, maxNoise, fpAmp1,…)
Given the lack of even open source positioning firmware, such a public database is unlikely to already exist, but I’m interested to help or even collaborate in case you’d like to later on improve the one I would start.
You can get in touch with me in case you’d like to influence how this database is generated.
I’m working on an open source positioning framework that is configurable and controllable through a json API, on top, I just started with the python layer that provides not only a simple environment to configure and control but also to analyze and generate data.
You can check the “DW1000_Software_API_Guide_rev2p7.pdf” and let me know which parameters you’d be more interested in. As example, I already have functions that can launch any given number of TWR and report the estimated range, and I have ping functions that can send an uwb packet between any two nodes and report the following parameters (
stdNoise, maxNoise, rxPreamCount, maxGrowthCIR, fpAmp1, fpAmp2, fpAmp2)
I can generate a database with static objects which position is manually measured, but for motion it’s harder because getting a synchronized ground truth might be difficult.
And also important to note that the raw data is easy to get, but getting range estimation for example already includes assumptions on antenna calibration and other compensation that renders the database not applicable on other setups.
I’m not entirely sure what parameters we’d need to start with, since this is something completely new and we’re trying to figure out. I think it would be best to start out trying to become familiar with static objects and looking at the raw data, since as you said range estimations include assumptions and biases for the individual modules. Being able to look at the raw distance estimations and ToF + RF diagnostics (the stdNoise and maxNoise would be helpful) would be beneficial. Do you think the estimated tag positions would be useful without any real distances measured as well, or is that what you meant when you said you could generate a database with position of static objects manually measured?
Also I just have to say, I think that’s amazing that you’re working on an open source positioning framework.
there is a free Qorvo PANS software (closed source) that will provide you a position via gateway (or locally on the TAG or on the android phone, check the documentation here https://www.decawave.com/product/mdek1001-deployment-kit/ ). On the gateway the position is accessible via MQTT server so there is no database that will be possible to provide to you. This system is easy to deploy, scalable to large networks, well tested and etc.
There are some opensource implementation like https://www.homesmartmesh.com/ whit which I don’t have an experience. But it might be a way for you if you need to get some “internal values” like @wassfila has mentioned - With PANS you will get only position or 4 ranges on the tag which you can receive via user app.
@bawilhelm I already have the first database examples available, you can have a look and let me know if the content and structure is useful, I only could provide these two samples for the moment but I can increase the number easily now as the generation process is fully automated with python that can even include cycling through different uwb channels and config.
I think that the content and structure you have is useful. Would you be able to provide a little insight into “seq”? If I’m understanding it right, it’s just a counter for the number of samples right? I’m just a little confused because in the ping diagnostic measures it doesn’t seem to count normally. Also it would be wonderful if you could increase the number of ranging samples. Thank you so much for your assistance so far!
seq stands for sequence identifier, it’s only meant to identify if there’s a miss in the sequence so it’s not relevant for the db itself and you noticed there might have been lots of misses at some point. I also used it inconsistently as some tests have tne same seq for group of samples. Also unfortunately some sample misses might not be due to uwb but the the rf report channel that is not reliable due to the real time need but could be improved.
Yes, I’ll definitely be adding more samples and scale to large databases where I simply let it capture for a longer time (within the next week). Just keep in mind the range dist measure is a simplistic estimation taken from the examples and far from showing the best uwb accuracy (no calib, no compensation yet)
I’m also workining on the extraction of the channel impulse response accumulator.
For info, and if you want, you can define even your own python database capture script and I can run it for you, here’s the python repo that I linked on the announcement topic
or a direct link to the db capture funtion