I Introduction
The term tof refers to a class of methods which calculate distances by measuring propagation time of signals. When measuring tof there are two main approaches to determine positions, toa and tdoa. The most relevant approaches include sdstwr [hach_ss_twr], asymdstwr [alternative_twr], Whistle [Whistle], dpw [dpw] and the method published by anti_whistle which we will refer to as djkm.
All those methods are developed for specific setups. For example, some methods assume that the devices which are located are only capable to send signals (Whistle, dpw) or, vice versa, can only receive data (djkm). Another important difference is that some methods have been developed for sound signals (e.g. Whistle) or radio signals (e.g. dpw, djkm). The methods have all in common that no clock synchronization between devices is needed.
We have conducted a detailed analysis of those methods in a different publication [analysis_paper]. While this paper is independent and self contained we recommend the lecture of that other work as an overview of the stateoftheart of tof methods.
One major drawback of the aforementioned methods is that they all need clearly defined roles of devices, e.g. there have to be Anchors with known positions which locate so called Tags. This restricts the ability to support infrastructurelesspositioning, i.e. positioning without predefined roles or with changing roles. This makes it impossible for existing tdoa methods to determine relative positions between Nodes in scenarios where all devices are mobile.
Those scenarios include swarms of search and rescue drones, indoor navigation for firefighters and autonomous vehicle coordination.
This work is presenting a new method which can be seen as a generalization of the aforementioned methods in the sense that all existing methods can be derived from the proposed scheme. Our method, called dpp, can simultaneously perform toa and tdoa. Even without any clock synchronization the errors induced by clockdrift are negligible. We show that our method outperforms the existing methods in terms of accuracy, flexibility and channelutilization in almost all situations.
The rest of the paper is structured as follows. We introduce the new method and show how the other methods can be derived from it (Section II). The clock errors are analyzed and compared with other methods in Section III followed by the evaluation of dpp in Section IV. The work is concluded with a conclusion and future work.
Ii DPP System Overview
For the following definitions, we assume that any access to the tof signal channel is coordinated by side communication channels (e.g. Wifi), and thus collisions (through simultaneous transmissions) are avoided. Also we assume that the Nodes can exchange information over a side channel.
We consider the devices’ clocks as imperfect with a typical clock drift accuracy of ppm. That means, we can not assume the devices to be synchronized nor to be running on one exact frequency. The only assumption we make over the device clocks is that their drift remains constant during one measurement cycle.
Iia Formal Definitions
As outlined in Section I, we are not differentiating between Anchors, Tags, Mirrors or such. Instead, all devices are represented as Nodes where each Node element is an element from the set of all Nodes . We define a function where is a Node and is a timestamp, that returns the cartesian coordinate of the Node at time . As a simplification, we write to refer to the current position of a Node. Further, we define that a System of Nodes is a subset of the available Nodes ().
A Node is further classified as one of three types:

Passive Nodes:
Nodes which are only capable of receiving data and never transmit something 
Active Nodes
Nodes which are only capable of transmitting data and never receive something 
Bilateral Nodes
Nodes which are capable of receiving and transmitting data
This differentiation makes up a partitioning of: :
We define to be the speed of the signal used when transmitting between Nodes (e.g., speed of light). The tof between Nodes is defined as the euclidean distance between them divided through the signal velocity:
It follows that:
The tdoa between two Nodes in relation to signal source is, under the previous definition of Nodes, defined as:
(1) 
In this document, representative Systems are sometimes selected as examples to visualize certain positioning scenarios. When Node Systems are presented in a figure, we use the following symbols:

Passive Nodes are labeled as and indexed individually by their suffix

This counts equivalently for Active () and Bilateral Nodes ()

Nodes with a known position (e.g., infrastructure mounted or Anchor devices) are depicted with a circle surrounding them
IiB DPP Operation Procedure and Message Diagram
The general operationprocedure of a dppNodeSystem is the following:

All of the Nodes in sequentially (turnbased) transmit two messages (Double Pulse)

All Nodes in listen constantly for any incoming messages
When each Active and Bilateral Node has communicated at least once, a socalled Cycle is completed. Fig. 1 shows an extract from such a sequence, and this way describes the different types of gathered measurements.
Each receiving timestamp is labeled as , where is the Node receiving, the Node transmitting, and is the index of the signal of this combination of receiver and sender in the current cycle. Similarly, the transmission timestamps are labeled as , where is the transmitting Node and is the index of that Node’s transmission in the current cycle with typically in the range of .
IiC TDoA Value
In the following, we derive a formula to calculate tdoa values based on the values generated by the dpp operation model (IIB).
When comparing the schematic Figures in this paper with dpw [dpw], we can see that some subsets of the message diagram resemble dpw schemes. That allows us to apply the tools provided by dpw to our measurements.
Depending on the operating modes of the Nodes (), up to two dpw subschemes can be derived from the situation shown in the diagram (Fig. 1). That is possible since the order of pulse and mirror is not fixed in dpw [dpw]. The signals of could therefore either be seen as a mirrorreply, or as a pulse to (potentially) capturing and . Viceversa the signals of can be interpreted as pulse or as mirrorreply to and . Both subschemes are illustrated in Fig. 2. Attention, mind the different ordering of the Nodes compared to the original dpw paper.
We assume that in a System, operating in dppmode, any Node triple of the following form generates novel input information for a dpw calculation:
First we define the timespans we would measure with any such triple.
(2)  
(3)  
(4) 
with being arbitrary but constant. It determines which of the two mirrorreplies should be used for the dpw calculation. The choice of the pulse does not make a difference in theory. However, it can be used in practice to reduce the error. Such a reduction can be done for example by averaging results that are based on different
s. Such a processing step can reduce the gaussian distributed measurement errors that might affect the
mirrorreplies’ timestamps.Note that all lines except (2) and (3) contain measurement input from all three Nodes. This shows that they are dependent on them. Displaying this relationship motivates the difference in notation.
We then define compound variables for those measurements:
(5)  
(6)  
(7) 
Using the findings of dpw [dpw] we can use those measurements in combination with knowledge over to calculate the tdoa value :
(8) 
Equation 8 can finally be used to calculate the tdoa values of dpp.
IiD ToA Value
In the following, we derive the formula which can be used to calculate toa values based on the values generated by the dpp operation model (IIB).
As we did with dpw, we can also identify up to two asymdstwr schemes in the transmission diagram (Fig. 1). This becomes evident when inspecting an extract of the diagram and restructuring the visual representation as seen in Fig. 3. When assuming the role distribution , we can spot the two possible asymdstwr measurements we can take.
Therefore, when performing dpp on a System of Nodes, any Node tuple fulfilling,
generates new input data for an asymdstwr calculation (comp. [alternative_twr]). Note that the Nodes generating this twr input could simultaneously generate the mentioned dpw input.
For such a tuple the timespans measured can be expressed as follows:
is assumed arbitrary but constant. It determines which of the possible dstwr paths to use. As with the in the tdoa derivation earlier (gaussian distributed) measurement errors, that affect the dstwr paths timestamps, can potentially be reduced.
Iii Error Analysis
In the following, we analyze dpp for its conditioning towards errors.
It is well known that clocks, or more precise the oscillators they are based on, in general contain imperfections [allan1987time]. That means that not even the highest quality clocks can be trusted with perfect timekeeping. Since tofbased methods rely on measurements of signals propagating with very high speeds such as the speed of sound, or the speed of light , these imperfections pose a major problem regarding the accuracy of the localization.
As mentioned in Sec. IIA we assume a clock drift of ppm which is a typical value for crystal oscillators in the industry [jiang2007asymmetric]. We model the clock drift by defining a worst case drift value for every device () clock separately: .
Iiia TDoA Value Error
Since we deduced all our tdoa values based on the exact method described in dpw [dpw], we can conduct the error estimation in a very similar way.
First, the erroneous values are defined:
and  
Then using (4), (5) and (6) it follows:
Where and designate the error with the calculation method (5) or (6). While represents the erroneous value resulting with application of the combining transformation from (7).
The overall worstcase error in the Node combination is then the difference between the true and erroneous value:
(12) 
Consequently, the overall tdoa error follows:
We then add and subtract :
The maximal value can take on is apparently (that is the maximal difference of arrival time). Therefore we can assume , from what follows:
(13) 
Which aligns with the error estimations from dpw [dpw]. That means that the tdoa value of the dpp method has the same worst case (clockdrift induced) error as dpw.
IiiB ToA Value Error
We used the findings of the aysmDStwr to calculate the distance values between two Bilaterals (IID). We can therefore apply the same method for its error estimation. For all the dppmethodterm calculating (11) is besides a renaming () equivalent to the one described in the works of alternative_twr. Therefore we can apply the same transformations to (11), which results in the error estimate:
(14) 
Therefore the toa (clock drift induced) error of dpp is equivalent to the one of asymdstwr
IiiC Error Analysis Summary
We can, therefore, estimate that the error each measurement can be characterized as:
and
In comparison with the worstcase error estimated of compared methods [dpw, alternative_twr, hach_ss_twr, Whistle, anti_whistle] the proposed method is always at least as well (error) conditioned as the compared ones.
The detailed and unified analysis and comparision of the errors of [dpw, alternative_twr, hach_ss_twr, Whistle, anti_whistle] can be found in our other publication [analysis_paper].
Finally, it is noted that the equality stated in (18) does not necessarily translate for its errors. In other words, does not need to be equal to as they depend on different clocks. One depends on and the other on .
Iv Evaluation of DPP
In the following, we analyze how dpp is related to other tof method in the literature and how its tdoa and toa calculation is improving existing methods..
Iva Relation to other tdoa methods
We can then extend and rearrange (8) with (1):
(15)  
Those equations can be interpreted as follows: With knowledge of one distance between either or we can use the measurement to calculate the tdoa value respectively .
If we compare the roles of the Nodes in the setup ( and ) we can make two observations:
djkm can be derived
We look at the case , and , rename and remove the secondary pulses. Renaming is valid w.l.o.g. here as the capabilities of the Nodes we rename to include the capabilities we rename from.
Now the setup exactly resembles the djkm method [anti_whistle]. In addition, our complete dpp setup calculates the same tdoa information as djkm (comp. (15)) would.
dpw can be derived
As already mentioned, dpw schemes can be derived from the dpp scheme. In the case , and this is achieved by renaming and removing the second pulse from . Then this subscheme exactly resembles dpw (comp. [dpw]). Further, we calculate with dpp the exact same tdoa information (compare (8)) as the dpw that was derived would.
For the particular case we can also deduce:
(16)  
(17) 
This value seems to be neither of the type toa nor tdoa and is therefore of particular interest for acquiring a deeper understanding of the relation between toa and tdoa. Nonetheless an analysis of the properties of this value would be out of the scope of this work and is subject to future work.
IvB Accuracy Improvement
For situations in which we try to position a Passive Node the only known applicable method until now was djkm (invWhistle). With dpp, there is now a new method for such situations. djkm has in those cases a worst case tdoa error of:
(19) 
The worst case tdoa error of dpp was previously shown (in Section IIIA) to be:
(20) 
is typically in the order of magnitude of milliseconds. It is usually many orders of magnitudes larger than , which is typically in the order of magnitudes of nanoseconds. Consequently, the accuracy of dpp is orders of magnitudes higher. This improvement can be attributed to the additional second pulse of dpp compared to djkm. In situations where dpw or twr are applicable, we have shown that dpp has the same worstcase error estimates (IIIA and IIIB).
IvC Efficient Mobile Positioning
dpp solves the problem of mobile positioning by performing toa and tdoa simultaneously. That way we only require a minimum of three Bilateral Nodes in our System to position the whole System. In practice, we recommend the use of four Bilateral Nodes for error correction.
Figures Fig. (h)h and Fig. (g)g show those two minimalistic examples of the new class of positioning situations that becomes available now. The positioning is achieved by first using the toa values between the Bilateral Nodes to establish their relative positions and then using that information for tdoabased positioning of the remaining Nodes.
IvD New Cases
dpp further allows addressing some situations that could not be positioned by one existing method alone. We present some example of such setups:
IvD1 More Flexible Positioning of a Passive Node
Until dpp the only method which could be used to position a Passive Node was djkm. To generate tdoavalues for a Passive Node, djkm requires an infrastructure of Bilateral Nodes [anti_whistle]. dpp allows in such cases for other, more flexible device roles in the infrastructure.
For example the minimal setup to create three individual tdoa values for a Passive Node using djkm is depicted in Fig. (a)a. For dpp, the setups in figs. (c)c, (h)h, (b)b and (a)a are all sufficient constellations.
Concerning the tdoa solution engine, for practical reasons it is often even required to generate four tdoa values in order to position a Node sufficiently. Also for this requirement, dpp is an improvement. While dpp can be used to calculate four tdoa values in figs. (f)f, (g)g and (e)e, djkm will only work for the first case.
IvD2 Mixed Tag Roles
All of the earlier presented known methods are limited to the one type (Active, Passive, Bilateral) of Tag they are positioning. With dpp, this restriction does not apply anymore. dpp allows for the combination of Active, Passive, and consequently Bilateral Tags to be positioned in the same operation cycle.
IvD3 Gathering of TDoA and ToA values
Next to djkm, dpp is the only method known to us, which generates toa and tdoa values simultaneously. Moreover we have shown that djkm has a worstcase error larger than dpp.
IvE Improved Performance
Another benefit which comes with the generalization of tdoa and toa methods into dpp is a reduction in redundancy. dpp uses in almost all cases equal or very often even fewer messages to gather the same set of measurements as the existing methods.
IvE1 Improvement Compared to DPW
dpw requires to send three messages for every combination of Tags and Mirrors in the System [dpw]. For a given amount of Mirrors and Tags dpw needs at least messages for a complete operation cycle, where :
For instance, dpw needs signals when operating on the System displayed in Fig. (d)d.
dpp requires for its operation to send two signals from every Active or Bilateral Node in the System. In comparison to dpw, dpp does require signals to operate one complete cycle on the same setup in Fig. (d)d.
In general, the amount of signals required by dpp () for a system with Actives (“Tags”) and Bilaterals (“Mirrors”) is:
Even if we set “mirrorcount” which resembles the situation in dpw, it is apparent that with an increasing number of Tags, dpp requires less signals to locate the same amount of Tags, due to the fact that
While the output of tdoa values generated are the same for both methods, dpp simultaneously yields toa values and the new value type from (17).
It can be assumed that the situation (or even ) rarely occurs in realworld scenarios. Therefore in almost all realistic Node setups, the application of the dpp scheme improves a setup that was previously operated on the dpw scheme in terms of sent Nodes/signals.
IvE2 Performance Improvement Against DJKM
When comparing dpp with djkm, one has to bear the mentioned difference in accuracy (Sec. IVB) in mind. However, even leaving this advantage aside, dpp outperforms djkm.
To substantiate that statement, one has to realize the operation principle of djkm as it is defined in the original paper [anti_whistle]. djkm specifies a distinct order after which Anchors should communicate with each other. This coordination is necessary to avoid collisions on the transmission medium. This specific order consists of two rounds. To describe the ordering, we consider our set of Anchors as an ordered list.
First Round
In the first round, as described in [anti_whistle] each Anchor performs communication with its successor in the list. This process starts with the first Anchor in the list and ends with the last one. For example, the first Anchor interacts with the second, then the second interacts with the third, and so on.
Second Round
In the second round, only Anchors with an uneven index in the list communicate in the same sequential order with each other. Again, this starts with the first Anchor and ends with the last uneven Anchor. For example the first interacts with the third, then the third with the fifth, and so on.
This sequential chain of communicating Anchors can be reduced as shown in Fig. 5.
In this Figure, the first message emitted by is used to initialize the djkm communication with the new Anchor device . From s perspective, this signal is still a reply in and ’s djkm communication. For this signal resembles the initial message in and ’s djkm communication. That way, the exchange of one signal can be saved whenever an Anchor has a predecessor since we can then reuse its reply message to the predecessor as the initial message for its successor. Note that the first Anchor in the list still has to transmit its initial message.
The number of signals () transmitted in one operation Cycle can therefore be calculated depending on the number of Anchors ():
(21)  
(22)  
(23) 
Where and are the numbers of signals transmitted in the first and second round.
The djkm System which uses the least amount of signals for gathering three tdoas is shown in Fig. (a)a. According to the formula derived, the amount of packages transmitted in this scheme is:
When using dpp, according to (IVE1) this exact setup takes only signals to finish the dpp cycle. According to IVA, it produces the exact same tdoa values.
In general, the signal requirements of every setup can be optimized by switching the scheme of operation from djkm to dpp.
That can be argued as follows. A System of Anchors/Bilaterals and Tags/Passives operating on djkm requires (23) signals. dpp requires for the exact same setup only signals. See (IVE1).
Furthermore, dpp allows us in many situations to use Active instead of Bilateral Nodes while achieving the same result as djkm would with all Nodes being bilateral. For instance (b)b will yield in one dpp cycle the values and additionally . Applying (8) and (1), the resulting equationset,
can then be transformed to
Under knowledge of the circled Nodes positions, this gives the tdoa values and . djkm would result in Fig. (a)a, a fully bilateral infrastructure with the measurement set , which is isomorphic.
The shown relaxation of restrictions does not only simplify the construction of positioning infrastructure. It also reduces the energy consumption of the whole network. That reduction roots in the fact that the energy consumption of radios that are commonly used for tof is in practice orders of magnitudes larger when operating in RX mode rather than in TX [dw_power_consumption].
IvE3 Bilaterals
Bilateral Nodes can be interpreted as operating active and passive at the same time. It was already mentioned in Sec. IVD2 that both types of Tags get processed in the same cycle when using dpp. This way, the preceding two paragraphs both apply simultaneously to any Tag with type Bilateral, generating the discussed tdoa values. That information can be used as input for a tdoa solver.
At the same time we already discussed that any pair of Bilaterals yields a toa value through asymdstwr when performing dpp. Again, this measurement comes at no additional performance cost as the same signals get used for twr, dpw, and direct values at the same time. While the authors of djkm mention that their System does measure toa values between the Anchors, this does only work for certain pairs of Anchors [anti_whistle]. It also does not work for TagNodes with the role active or bilateral.
V Conclusion and Future Work
In this work we presented a novel tof method, capable of tracking the relative positions of a large number of devices without the need for a fixed infrastructure. It is capable of collecting tdoa and toa values simultaneously (tdoa: (8) and toa: (11)).
We have proven our method to be more flexible, accurate, and efficient than existing methods.
Our tof positioning is therefore suitable for applications such as swarm drone coordination, Indoor Navigation/Guidance, and autonomous driving.
Since we excluded the side channel communication between the nodes from our analysis, future work has to include the protocol overhead for coordination of the pulses of Active Nodes for a realistic implementation of the proposed method.