jremington / UWB-Indoor-Localization_Arduino

Open source Indoor localization using Arduino and ESP32_UWB tags + anchors
GNU General Public License v3.0
130 stars 33 forks source link

TWR implantation #3

Closed did2kan closed 2 years ago

did2kan commented 2 years ago

Hello, do you use the TWR to calculate the distance like in the following library:

https://github.com/irit-rmess/DecaDuino

I don't have the skills to be able to integrate this library in your project and I would like to be able to activate the message exchange between TAG and ANCHOR modules, is it possible?

Otherwise I have done some tests by measuring the antenna delay at 2 distances in order to have accurate values when being very close (~10cm) and at longer distances. Depending on the measured distance I switch to one or the other delay.

My code : _if (dist>1){ uint16_t Adelay = 16570; float dist_m = 1.4; //meters DW1000.setAntennaDelay(Adelay);

} else{ uint16_t Adelay = 16518; float distm = 0.21; //meters DW1000.setAntennaDelay(Adelay); }

This really improves the measurement range.

Is it possible to include a measurement in millimetres?

Best regards.

jremington commented 2 years ago

It is certainly possible to improve the accuracy of the individual distance calculations by taking the nonlinearity of the ranging into account, but I have not done that.

My project doesn't really need it, because the purpose is to locate the tag (or robot) with reasonable accuracy within a large area, over a range of many meters (in a room, say 10x10x10m). The obtained accuracy of about +/- 10 cm is good enough for many purposes.

The coordinates can be scaled to any units you like. If the anchor coordinates and calibration are specified in meters, the length unit is 1 meter. Multiply the output coordinates by 1000 to get millimeters.