Go Down

Topic: Indoor Positioning System with DWM1000 (Read 1 time) previous topic - next topic

archeresque

I'm building an indoor positioning system using the Decawave DWM1000 chip. I have 3 anchors and one tag which is what I want to track. I am using the arduino dw-1000 library by thotro for my anchors and tags as well. I have no problem getting range from one anchor to the tag but how would I incorporate all 3 anchors such that I can triangulate a position? Additionally, once I can locate the tag I would love a couple recommendations on how to display this information graphically using a javascript or python etc but the objective of this post is simply to triangulate a position. I am using an Arduino Pro Mini and a custom PCB.
Thank you for any advice!

jremington

Look up "trilateration" for general methods.

archeresque

Look up "trilateration" for general methods.
More specifically, I guess I have a programming question. It seems like the examples in the library are only suited for one anchor and one tag. I would like to have 3 anchors transmitting a radius from the tag.

PaulS

More specifically, I guess I have a programming question. It seems like the examples in the library are only suited for one anchor and one tag. I would like to have 3 anchors transmitting a radius from the tag.
So, if you know where the anchors are (the centers of the circles) and three distances (the radii of the circles), you can draw a picture, right? Two circles intersect at 0 points, 1 point, or two points. If they don't intersect at all, you are out of range. If they intersect at one point, well, that's where you are. If they intersect at two points, you are at one of them. Which one is defined by the third circle.

Once you can see that visually, programming a solution is not too difficult.
The art of getting good answers lies in asking good questions.

jremington

#4
Oct 24, 2017, 05:25 pm Last Edit: Oct 24, 2017, 05:26 pm by jremington
Quote
It seems like the examples in the library are only suited for one anchor and one tag.
You will need to improve your coding skills, so that you can add additional tags and anchors to the library (or write your own library).

archeresque

You will need to improve your coding skills, so that you can add additional tags and anchors to the library (or write your own library).
I ended up looking at the documentation for the library and I adjusted the library to have static addresses such that I can add tags that will be labeled 1,2,3 and so on. In the end I realized that my issue wasn't with the code, it was that my DWM1000 units weren't receiving enough power. Once I fixed the power issue in my circuit, I was able to run several without much of a problem. If anyone else has this problem, it can helpful to go into the library and change the resistor type for the rst pin to a pull-up resistor.

Go Up