Problem with distance offset in DWM1001


I have a setup with 4 anchors and 2 tags. I use the DWM1001 module. I read the distance values from the tags and calculate the position myself.

My application requires quite high position accuracy. The average distance error must be within ±30 mm. I am aware of that the distance values fluctuate more than ± 30mm, but that we can handle with filtering. But the average error needs to be within these limits.

My problem is that the average distance error is often a lot bigger than ±30 mm. And also it varies a lot when i move the tags around. I have attached a plot where I have plotted the distance offset as “true distance - average measured distance”. The X axis is distance between tag and anchor in mm. Each cross represents a 60 s measurement with 100 ms update rate.

As can be seen the offset is large, typically 50-150 mm. Also it can be seen that while the tag is in the same position the offset is fairly constant. But when I move to a new position the offset is changed.

I have some questions:

  1. Is there any explanation to why the offset differs so much when the tag is moved?

  2. What is expected value of the max offset?

  3. Is there any possibility to improve this behaviour when using the DWM1001?

Best regards

Hi Olas,

A 3cm error is very challenging but can be achieved depending on the hardware used and the conditions.
Usually, the performance to expect is more around 10cm.

We you are moving the tag, I suspect you are modifying the line of sight conditions of the tag and this will create an additional error. An object close to the antenna (such as your hand) is sufficient to impact the accuracy. This is probably the phenomena you are observing.

You are really trying to stretch the system to its limit. As you observed, it works fairly when when everything is static, but move and change in environment will unfortunately introduce some additional error. I don’t think there is much that can be done against this effect.

To give you an idea, we have validated the system with the following:
*range mean error < 17cm
*range std dev <4cm

We have observed a strong dependency on environment. With static device, the system behaves well and the criteria above are usually passed, but with movement we see an increased error.

Hope it helps