Two Way Ranging - F-Army/arduino-dw1000-ng GitHub Wiki
Two-way ranging
Two-way ranging RTLS methods entirely eliminate the need for precise time synchronization (TDoA) but do introduce a requirement for transmission capability in the tag. This approach avoids the uncertainty of different time bases by enabling the tag and anchors to exchange timing information with each other. Instead of synchronizing their time bases, the tag and anchors use a short bi-directional messaging protocol that allows precise determination of time-of-flight and accurate calculation of tag location.
With this approach, a tag transmits a brief identification signal to announce itself to surrounding anchors. Each anchor that receives the tag’s initial identification message then engages the tag in a short bi-directional data exchange used to determine time-of-flight despite differences in time bases across the anchors and the tag itself.
In its two-ranging RTLS protocol, Decawave defines this process in terms of a discovery phase and ranging phase. During discovery, a tag periodically transmits a brief identification signal, or blink, and waits for a response from an anchor. After the tag and anchor recognize each other, the paired tag and anchor use a brief two-way exchange of messages containing information needed to calculate the range.
There are a lot of documents, pictures and articles about Two-Way Ranging but the more concise is the Decawave's APS013: The implementation of two-way ranging with the DW1000 .
This APS013 Application Note, also, talks about the composition of the General ranging data frame format used to perform TWR. The general message format (shown at the following Figure) is the IEEE 802.15.4 standard encoding for a data frame.
The data frame above is the data unit of the IEEE 802.15.4 PHY layer packet structure.
We have used the standard ISO/IEC 24730-62_2013 instead of general data frame format.