I am currently working on a project using DWM3000 modules for positioning of a tag using 5 anchors placed coaxially.
My problem is that I can calibrate a set of 3 DWM3000 modules using the equalatteral triangle method outlined in APS014. They all report 1000mm with their respective antenna delays but when I replace a single DWM module and rerun the calibration, the values for the 2 original UWB modules change massively (~200mm).
Here are the antenna delay results for 4 modules across 4 tests, replacing a single module between each test:
I am not sure how it is possible that the set of 3 modules all report accurate distances after being calibrated but inaccurate when ranged with a module calibrated in a different set.
I have a couple questions:
What are the potential sources of error during calibration?
Are there any tests I can do to locate the source of error?
Things like this are why those last few cm of accuracy are so much harder.
I suspect if you took the same 3 units and simply rotated your calibration system 120 degrees you’d get different results. Calibration values end up being influenced by the environment.
It’s not clear from your picture if you have mounting posts that are in a fixed location to ensure the modules are always in exactly the same location. If not then maybe add something to do this.
I’d also re-route the cables under the desk so you don’t have any wires near the signal paths.
Ideally the whole system should be raised up in the air away from any metal structures like the table frame.
Even after doing all of that you’re still going to get inconsistent results, hopefully less so but they will still show some variation.
The approach we ended up taking was:
Initial crude calibration is done as a point to point against a single previously calibrated unit*, this is good enough for ~5 cm accurate positions.
Final calibration is then done after anchors have been installed in their final locations. For this every device in the system (or in range for big installs) measures to all other devices, we then perform a least squares optimisation to find the delay values that minimise all of the errors.
While this doesn’t give the “correct” results for any given set of 3 units it gives the best possible result for any randomly selected set of units.
When doing this final calibration the tag is also placed in the middle of the site and included in the results to set it’s delay.
By doing this and then using 12 anchors simultaneously to calculate the position we can get positions within 2 cm of truth.
The previously calibrated unit is generated by putting 6+ units on tripods raised 2 m above the ground in the middle of a field and performing the final on site calibration process. Ideally we’d do this for all initial calibrations but it’s too time consuming.