The subject method and system are generally directed to the virtual synchronization of timing information obtained from unsynchronized communication nodes. More specifically, the subject method and system are directed to the adaptively synchronized use of timing information provided in communications messages transmitted and received between independently clocked nodes operating in a wireless communications network.
With the widespread use of wireless communications networks, and various devices—from smart phones, electronic reading devices, and laptop computers—having readily available wi-fi capability, a wealth of very practical applications may be realized by collecting the timing information contained in network messages passed between users. The nodes of a wireless communication network which send and receive network communications comply with the network's protocol and invariably include some timing information. For example, each node typically applies a timestamp when it receives and/or when it sends a message. Such timing information is based on the node's own time reference established by its own local clock.
While the applicable communications standards may impose helpful requirements on the accuracy of the local clocks, they typically are not sufficient for many applications requiring precise timing information. Unlike more sophisticated and expensive satellite navigation systems (which are synchronized to the nanosecond level based on precise atom clocks), most computer hardware used as nodes in wireless computer networks employ far less sophisticated and much less expensive quartz crystal oscillator clocks. Conventional time synchronization techniques such as network time protocol (NTP) are not sufficiently accurate. Other known time synchronization techniques such as set forth by IEEE 1588 is not adequately implemented and tends to be expensive because they require hardware support.
As a result, it is very difficult to make concerted use of timing information obtained from different nodes. System-wide use of timestamping data collected from the various nodes of a communications network cannot be made without some corrective measures to account for the nodes' disparate frames of time reference. Complicating the problem is the nonlinear behavior exhibited by local clocks used in prevalent node network cards. For the example of the widely used wireless devices complying with the IEEE 802.11 standard typically exhibit clock drifts which very significantly enough to preclude use of a standard linear line of least squares approach to fit modeling clock behavior.
If sufficient synchronization of a communication nodes' timing information could be attained, it would find highly useful application in positioning/location finding systems. Currently known wireless location systems are generally based on three separate sources of information: angle of arrival, signal strength, and time. Angle of arrival measurements, while allowing the location of nonparticipants (not participating in the given system's location protocol), require expensive antenna arrays. Signal strength based location systems require signal strength measurements at the receiver being located, which precludes their use to locate nonparticipants.
In contrast, time-based wireless location systems are based on the simple equation:
D=speed of light*t (1)
By measuring time precisely, distance between nodes may be measured. By measuring multiple distances between anchor nodes having known locations and a mobile node with unknown location, location may be determined by solving the nonlinear optimization problem defined by applicable distance equations.
Numerous time-based location systems are known; however, no location system heretofore known provides the degree of accuracy, compatibility, and economy necessary for required for productive use in existing wireless network broadcast environments. There is therefore a need for a simple yet accurate time-based location system which:
1) provides the capability to locate nonparticipating nodes;
2) may be implemented using inexpensive, off-the-shelf hardware;
3) is communication protocol agnostic; and
4) locates nodes accurately, with error less than a few meters.
It is an object of the present invention to provide a system and method for effectively synchronizing timing information locally generated by a plurality of independently clocked nodes of a wireless network for combined use within a common frame of time reference.
It is another object of the present invention to provide a system and method for applying effectively synchronized timing of information locally generated by a plurality of independently clocked nodes of a wireless network for combined use within a common frame of time reference in a time-based location system.
These and other objects are attained in a system and method implemented in accordance with the present invention for adaptive synchronization of timing information provided in communications messages transmitted between independently clocked communication nodes of a wireless communications network. The system and method include measures for collecting timestamps of messages generated by a plurality of the nodes, each timestamp being generated by one of the nodes relative to a local time reference thereof. A pairwise clock error is computed for at least one pair of nodes based upon a plurality of network messages passed therebetween. A global time reference is adaptively established for the timestamps responsive to the pairwise clock error. A plurality of mapping factors are defined each for translating from one local time reference to the global time reference. The mapping factors are selectively applied to corresponding ones of the timestamps.
D(p, q) is the Euclidean distance between node positions p and q.
D(p,q)=√{square root over ((xp−xq)2+(yp−yq)2+(zp−zq)2)}{square root over ((xp−xq)2+(yp−yq)2+(zp−zq)2)}{square root over ((xp−xq)2+(yp−yq)2+(zp−zq)2)} (4)
It is easier to describe distances in terms of light propagation time,
approximating a uniform speed of light to be 2.998*108 m/s.
The following conventions are adopted herein for referencing time values. The value t represents the common absolute time at all locations, ignoring any relativistic effects. Means for measuring t directly are not readily available, since any time measurement is typically made by a node in the local time of its internal clock. Local times are represented herein by the symbol τ. A general local time measured at node a is denoted relative to absolute time t by τa(t). Unless otherwise indicated, the subscript designates the node whose local clock time is recorded.
Of particular interest are times corresponding to those instants when a message is either sent or received by the given node. Send and receive times for network messages are represented as follows:
The offset between two clocks may be measured in two distinct ways. Both are important for computing distance and time.
Each clock ω is assumed to run at a rate βω=1+δω, where |δω|<10−4. Either the β or δ notation may be used depending on the context. The calculation of relative clock drifts has two distinct estimates.
The point estimate of slope is the primitive.
The cumulative estimate of slope may use multiple point estimates.
As used in connection with location system applications herein, communication nodes are generally referenced based upon whether they do or do not participate in the given system's location protocol and whether they have known locations. All nodes are presumed to transmit messages with a common wireless network communication protocol.
Location protocol participants are capable of timestamping messages. Usually, this includes both sent and received messages, but in some cases only receive message timestamps may be available. All timestamps recorded by participant nodes are available for location computation.
Nodes with known location are not necessarily fixed. Their location information is simply known through outside sources and accordingly updated over time if the node is moving.
In broad concept, the present invention provides a system and method which collects timing information locally generated by a plurality of independently clocked nodes of a wireless network, and effectively synchronizes them according to a common frame of reference adaptively obtained therefor. No clock of any node is necessarily slaved to another's. Nor is a forced correction imposed on any node's clock. Rather, the locally generated timing information is simply collected and adaptively synchronized for distance measurement, location finding, or any other such suitable use requiring consistently precise interpretation of the collected timing information. In this manner, a truly passive synchronization of the disparately referenced timing information collected is effected, and the need for any substantial modification or reconfiguration of the nodes themselves altogether obviated.
The timing information in an illustrative embodiment of the present invention is provided by the network's nodes as locally generated event timestamp data. For example, the event timestamp data may be generated each time a node receives a message, and each time it sends a network message. Such send and receive timestamps may then be collected between a set of nodes, and a common frame of reference imposed for the set of nodes. This is based on comparative measures of certain clock parameters between sending and receiving node clocks relative to a global consensus frame of reference based upon a virtual global clock.
Measuring time accurately for system-wide use in a system which uses multiple independently-running clocks (at remote wireless nodes) is difficult because each node references its time to its own local clock. Even if the timestamping carried out at each node were perfectly accurate with infinite precision, any calculation using multiple clocks must still reconcile differences in clock start times and variations in each clock's frequency.
The clock synchronization effected in accordance with the present invention not only accounts for the fact that the timestamping process in actuality incurs some delay (unique to a node's individual local clock), but also reconciles these other parametric differences of the nodes' multiple, independent clocks. Preferably, a consensus clock synchronization approach is implemented in accordance with the present invention to model a virtual global clock which adaptively accounts for local clock difference and even their nonlinear behavior in a practical setting. The consensus clock synchronization approach is based on dynamic measurements of clock offsets and clock drift. It finds particularly useful application in time-based distance measurements.
Accurate time measurement in accordance with the present invention is based on timestamp information generated by the nodes of the given wireless communication network. For system-wide use, the timestamp information collected from different nodes must be synchronized—that is mapped to a common system-wide frame of reference. A standard technique known in the art (for example, simple network time protocol (SNTP)) synchronizes two clocks by adjusting their times to match within a fixed precision ε. An alternative approach to synchronization taken in accordance with the present invention is to define virtual clock functions ƒa, ƒb to map times obtained from physical local clocks to a synchronized virtual clock, as indicated in the table below.
This single, synchronized virtual clock is then applicable to all nodes. Instead of fitting an explicit linear clock model to the stamp measurements, offsets between two clocks are thereby tracked implicitly to define an offset function which enables translation between the timescales of the two different clocks. (See the Estimation of Dynamic Clock Parameters section below.) With each round of messages passed between the two clocks' nodes, piecewise linearity is presumed. This yields a plurality of piecewise linear functions such as illustrated in
Consensus clock synchronization in accordance with the present invention implements a distributed technique by which a set of clocks Ω map their local times to a consensus time scale. The network model of this approach treats all nodes equivalently, such that there is no root node. The node clocks are taken to be of similar quality, in that each node communicates only with its neighbors (without requiring any intermediate routing) and does so using only local information.
Consensus clock synchronization computes a consensus linear clock model, whose slope represents the consensus clock drift rate. The consensus may change over time due to variations in the node clocks' frequencies.
Consensus clock synchronization includes the estimation of pairwise clock drift and offset for network neighbors. This requires the ability for the nodes to timestamp outgoing and incoming messages. Local bias delays in generating received timestamps and sent timestamps must also be corrected for.
With this synchronization approach, each node uses a function ƒ to map its local time to the consensus timescale. Comparisons between times collected from different nodes are then made only after converting the local time information to this consensus timescale. The local clocks are considered to be synchronized if for any given time t, the differences between the ƒ—mapped local measurements of that time is less than a small predetermined error ε.
For the purposes of consensus clock synchronization, the network is prefereably modeled as a weighted, undirected graph G(Ω, E), where Ω represents the number of nodes and E represents the set of edges in the network graph. The network nodes are presumed to be connected for bidirectional communication therebetween. The weight of an edge is taken to represent the propagation delay over a link. All nodes are also presumed to be self-connected, with the neighborhood of a node a being represented by Ωa and aεΩa.
The two general elements for mapping local time to consensus time are:
(1) clock drift, and
(2) clock offset.
Messages for determining clock drift may be received from paired nodes in the manner illustrated in
By measuring the pairwise clock drift ratios of paired nodes in this manner, the ratio between the consensus clock rate, represented by β* (and defined to be the average drift rate of the nodes in Ω) to the clock drift rate of each node ω,
may be computed. The consensus clock rate β* would then be defined as follows:
The clock drift in fully connected graph may then be expressed in matrix (A) form by estimating the pairwise clock drift ratios of the set of clocks Ω, where:
The eigenvector x for the greatest eigenvalue (λ=1) of the matrix A contains conversions from local clock to virtual global clock.
Each node may directly compute its corresponding eigenvector entry by averaging its locally available clock drift ratios with reference to equation 1.3. By way of example, the eigenvector entry for node A would then be defined by:
The resulting eigenvector entry is the ratio of the consensus clock drift β* relative to one particular node's clock drift value. This enables each node to convert its local time to the same consensus time scale running at rate β*.
For the more general case of computing average clock drift, the entries of matrix A of equation 1.3 may be generalized based on the existing graph edges for the case when all nodes are not directly connected. With the parameter kω1, ω2 defined as shown below according to whether an edge is disposed between nodes ω1 and ω2, matrix A may be expressed more generally as shown by equation 1.6.
Each row of the more generalized matrix A corresponds to relative clock drifts involving one node ω. The number of non-zero entries for the row corresponding to ω is therefore |Ωω|. The eigenvector x is found to remain unchanged from the fully connected case.
The matrix A is nonnegative, and it is irreducible because the network graph is presumed to be strongly connected. Since all network graph edges are presumed to be bidirectional and there are self-loops, A will be aperiodic. An interative power method known in the art may be applied to find the eigenvector x corresponding to the eigenvalue λ=ρ(A)=1.
Each node may iteratively compute its own eigenvector entry using only locally available clock drift ratios. For example, node A maintains
for its initial state. The eigenvector entries for subsequent states of node a may be computed accordingly, as follows:
Node A then publishes its own
value to its neighbors, with the neighbors then updating their own states accordingly. This process is repeated iteratively, eventually converging to the eigenvector entry. This iterative process is independent of any additional measurements taken to update the matrix clock drift entries.
The second of the two general elements for mapping local time to consensus time is clock offset. Where the consensus time scale β*, the relative offset between clocks (or pairwise clock offset) is defined according to equation:
The offset θa→b denotes the offset of node A's clock from node B's clock in the consensus time scale. This offset is computed from network message timestamps received from the two local clocks. This offset computation is made based on the clock drifts computed as described in preceding paragraphs.
The consensus clock offsets, θa→*, represents the offset of node A's clock from the consensus global clock in the consensus timescale. Each local clock's consensus offset may be determined as shown below:
The pairwise consensus offset between each and every pair of nodes in the set Ω is computed and collected. In the general case where the nodes are not fully connected, nodes may measure their offsets with only a strict subset of nodes within Ω. In this case, the consensus clock offset θa→* is iteratively computed. In this process, each node's consensus offset is initialized to zero:
∀ωεΩ,θω→*(0)=0 (Eq. 1.11)
Each node iteratively updates its consensus offset estimate using both its neighbors' consensus offset estimates and current pairwise offsets relative to those neighbors as follows:
After each iteration, each node ω publishes its updated θω→* value to its neighbors.
By consensus agreement, the offsets converge as follows:
φ is dependent upon α values and neighborhood sizes and is invariant across nodes.
Once the drift and offset measures are computed in the consensus, or virtual global, timescale of the consensus, or virtual global clock, local time measures made at the different nodes may be readily translated to its corresponding global virtual time, as follows:
If the local nodes' different local times, such as τa and τb of nodes a and b are to be compared, their corresponding global virtual time values of ƒa (τa) and ƒb (τb) are compared to preserve consistency and accuracy. The advocacy of consensus clock synchronization provided in accordance with the present invention is demonstrated by a simulation implementing the same. The simulation system included nodes configured with fixed pre-set clock drifts. For each node ω within the full set of nodes Ω, the clock drift was factored into the node's clock rate βω=1+σω having the initial starting values αω. Each node was set to broadcast two messages at specified times node send times were captured in local clock values.
Received times for the messages were computed for neighbors according to the connectivity and distances set in a corresponding network graph similar to that illustrated in
. . . and pairwise clock offsets θa→b, θa→c, . . . . These values are then used to compute the consensus time for each (relative to the virtual global clock) for each node ω in terms of global clock drift
and global clock offset θω→*.
The results of simulation verify that a set of connected nodes may be adaptively synchronized according to a virtual global clock reference based on timestamped network messages passed between them in distributed manner. The implementation with actual physical clocks at the different nodes would factor in the timestamping bias and errors unique to each clock. These parametric values will bear on the actual level of accuracy realized by consensus synchronization, as will the network's actual graph diameter and number of iterations in computing
and θω→*.
A particularly effective application of the subject method and system for adaptive synchronization of otherwise unsynchronized timing information is in the accurate time-based location of communication nodes in a wireless network. Referring to
TOA(a,b)=d(a,b) (2)
If a is an anchor node, and b is a mobile node, the locus of possible positions of node b satisfying the distance equation is a sphere centered at node a.
TDOA measures the difference of the distances between a single node z and two participant nodes a and b.
TDOA(a,b,z)=d(b,z)−d(a,z) (3)
As illustrated in
In the time based system category, the popular global positioning system (GPS) relies on participation of all mobile nodes, usually referred to as the receivers. Each receiver, although it does not send any messages, is solely responsible for computing its own location. Existing TOA location systems for 802.11 hardware include the so-called PinPoint TOA. PinPoint TOA relies upon the local timestamping of both send and receive times of network messages at two nodes to measure TOA. This requires the nodes to be cooperative participants in the location system. Certain known TOA systems exploit the short interframe spacing between sequences of packets such as data and ACK packets to measure TOA. Such systems are thereby dependent upon protocol particularities, and thus not communication protocol agnostic. They also require the exchange of packets between multiple participating nodes and the node being located, which may not be possible unless all nodes are participants.
Known TDOA systems such as LORAN for ship navigation and E-OTD for mobile phones are not accurate enough when actually implemented. Typically, they exhibit accuracies on the order of 50 m. LORAN and one variant of E-OTD also require the nodes to be participants.
The ability to measure location using time of flight in conventional wireless networks, such as IEEE 802.11 type networks, has been heretofore impeded by various factors, like the standard one microsecond clock resolution, imprecise synchronization of the 802.11 protocol, and the inaccuracy of the available clock oscillators. According to one aspect of the present invention, a system incorporating off-the-shelf 802.11 hardware is configured to accurately determine locations of transmitting 802.11 devices according to a TDOA technique. A TOA PinPoint clock model for 802.11 wireless cards is programmably reconfigured according to certain aspects of the present invention to provide a location system which implements a TDOA technique and provides heightened accuracy in locating nodes operating on free running clocks. The location system adaptively translates times from one frame of reference to another, such that locations of transmitting nodes may be determined with heretofore unseen combination of simplicity and accuracy. In certain applications, for example, location accuracies within 3 m may be realized.
An added advantage of the system is that nodes may be accurately located, regardless of their participation in the location system. Moreover, the location system may be implemented with other wireless communication protocols, where suitable send and receive timestamps are available in communications between nodes.
In accordance with one exemplary embodiment of a location system, ‘anchor’ nodes with known location are used to compute the location of other nodes. These other nodes may be mobile nodes, which actively participate in the location system. Alternatively, they may be nonparticipants which communicate using the wireless medium but do not participate in the location determination process directly. While other location system variants may be implemented without anchors in alternate embodiments, the case with anchors is the simplest to illustrate.
The TDOA location system is preferably implemented to meet the following criteria in a wireless network broadcast environment:
1) Capable of locating nonparticipants;
2) Is implementable using inexpensive, off-the-shelf hardware;
3) Is communication protocol agnostic; and
4) Capable of locating nodes accurately, with error less than approximately 3 m.
The capability to locate nonparticipants enables the location system to be deployed with minimal impact on the existing software and hardware of the wireless system. The location system may then be deployed for an existing wireless network, and existing nodes may be located without changes. No other existing wireless location system heretofore known adequately meets the criteria listed above.
Referring to
The collected timestamp data, respectively referenced to the local clocks of their generating nodes, are then combined by the PinPoint processing 20 to produce distance information, either TOA or TDOA. As mentioned, a PinPoint system known in the art is a TOA system. It makes use of a simple clock model for the local clocks and a predetermined protocol for the exchange of timestamped messages to determine the locations of nodes. In the disclosed system, the PinPoint approach is improved and extended to realize TDOA capabilities using consensus clock synchronization features in accordance with certain aspects of the present invention. As a result, a TOA system's limitation to distance measurements between only participant nodes is overcome, whereby the location of a non-participant transmitting node may be determined in two dimensions by use of three receiving nodes, and in three dimensions by use of four receiving nodes.
The time-based distance information obtained from processing 20 are then used by an optimizer 30 to solve the optimization problem defined by the distance information for location. Location information for both participant and non-participant nodes are thus generated by the optimizer 30.
In the exemplary embodiment disclosed, a TDOA location system provides simple yet highly accurate computing of TDOA even with nodes employing off-the-shelf 802.11 wireless cards which run independently on inexpensive local clocks. The efficacy of the location system is demonstrated by experimental results for a basic hyperbolic location application, as illustrated in following paragraphs. The TDOA location system may be realized with hardware in just about any wireless network system where participants can timestamp for both sending and receiving operations.
The TDOA location system should not be viewed as a direct competitor to existing TOA systems. The location information from the subject TDOA implementation of PinPoint may actually be complementary to TOA systems depending on the intended application. Fusion of TOA and TDOA information may be feasible in certain applications.
For applications requiring precise location estimation to within meters, it is necessary to very precisely record and translate times. When recording times, latency is invariably a major challenge. Due to the interrupt latency variability (˜μs) involved with CPU-based timestamping in modern operating systems, arriving packets need to be timestamped on the MAC clock. For MAC clock timestamping, appropriate hardware support is suitably accessed.
Ideally, every node clock would measure time indistinguishably. That is, every clock runs at exactly the same frequency such that times locally measured at different nodes could be directly compared. In practice, however, no two clocks will have exactly the same frequency, and clock frequencies may vary depending on oscillator stability. Significant frequency changes could occur over time periods on the order of seconds.
In the disclosed system, each communication node is permitted to operate with an independent, free running local clock that records time in its own frame of reference. The goal of the clock model is to accurately convert times of two local clocks into a common frame of reference.
In typical applications, all clocks generally run with the same discrete precision (e.g. 25 ns, 1 μs). The local time τ may generally be expressed as:
τ=└β(t+α)┘ (6)
The quantity τ is an integer, with the unit of time determined by the clock speed. The α value for a given clock is reflective of the clock being started independently at different time relative to the other clocks in the system; and, the β value represents the running rate of a given clock (reflecting the fact that each individual clock runs at a slightly different rate). A discretization error is modeled by a separate term e, along with intrinsic receive and send delays characteristic of a particular node, such that the local time is more completely expressed as:
τa=βa(ta+αa)+sa+ea send (7)
τba=βb(ta+αb+d(a,b))+rb+eba receive (7′)
The term d(a, b) in the local receive time expression accounts for the actual transmit time between the nodes a and b.
Suitable linear regression is carried out to compute the linear relationship between two clocks' locally measured times. Measured time values, however, deviate significantly from linear behavior as typically evidenced by residuals of measured times. The offset between clocks successfully captures this behavior. Such offset and clock drift are used in accordance with the present invention to translate times into a common frame of reference.
Since a perfect clock does not exist, it is not possible to directly compute the values α or β for any one clock. Composite values for two clocks are computed instead, with the values of these parameters assumed to remain constant.
For event i occurring at time t (i), participant nodes a and b measure the time separately at respective instants as follows.
τa=βa(t0+αa+da)+ea (8)
τb=βb(t0+αb+db)+eb (9)
The values d represent time delays based on the geometry (relative positions) of nodes a, b, and possibly a third node c. For the simple two node case, the model for time translation enables the τb to be solved in terms of τa as follows:
This function is linear in τa and includes an error term
Estimates of the slope
and intercept k=βb[(αb−αa)+(db−da)] may be obtained using linear regression for multiple events.
There are two basic approaches to generating these multiple events with known values of d. The first approach is to cause node a to repeatedly send multiple timestamped messages to b. In this case, da=0 and db=d(a,b). Another approach is to use reference broadcast synchronization techniques, where a third node c broadcasts a message that is received by both a and b. In this case, da=d(a,c) and db=d(b,c). Such distances are not adequately accounted for in known systems. The use of reference broadcasts in this manner provides the advantage of eliminating sender variability, but relies on the use of a third node.
In order to evaluate the extent of nonlinear effects, actual clock parameters may was illustratively determined for reference as follows. A data set was obtained for one access point (AP) c and two participant nodes a and b operating in both AP and monitor mode. The AP and nodes were placed together to make d(a,c)=d(b,c)=0 The AP generated 200 beacons per second. Nodes a and b were run with reference clock speeds of 40 MHz and sent 40 beacons per second. Over the experiment duration of ˜220 seconds, nodes a and b recorded ˜42000 beacons from the AP and ˜8400 beacons from each other. Linear regression for reference broadcasts determined the clock relation to be:
τb=(1−1.99*10−6)τa+889936589.95 (11)
While each clock in the experimental setup was expected to behave linearly, it was observed empirically that the 802.11 clocks exhibited significant nonlinear behavior. The nonlinear behavior may be quantified using the residuals τbc(i)−(mτac(i)+k) for the received times τac(i) and τbc(i) with the linear behavior from equation 11 removed.
It is believed that a main factor contributing to such demonstrated nonlinear behavior is temperature. In standard 802.11 operating environments, variable temperature is expected, so the basic clock model is insufficient to completely characterize clock behavior.
Instead of fitting an explicit linear clock model to the timestamp measurements, the offset between two clocks may be tracked implicitly to define θa→b(τ). θa→b(τ) enables translation between the times of two different clocks. To translate a time τa from node a's timescale to a value on node b's timescale, the local time at node b is set such that τb=τa+θa→b(τa). Each point in the offset function is the result of one round of messages. Between the messages, the offset function is assumed to be locally linear, and an estimation of the relative clock drift is accordingly made to compute intermediate values.
1) Estimation of Offset: Applying known Simple Network Time Protocol (SNTP) techniques for measuring clock offsets with network messages, send and receive timestamps are collected from one round of messages to estimate the clock offset θa→b and roundtrip delay time δ for two network nodes. Of interest here is the offset θa→b. The messages and timestamps necessary for SNTP are shown in
and a message sent at time tb arrives at time tab=tb+½δ. The SNTP equation, which ignores clock drift, for the offset θa→b is:
The θa→b measurement is associated with the average
for times at node a.
The function θa→b(τa) captures the nonlinear clock behavior. The residuals with the line of least squares removed, θa→b(τa)−(mθτa+kθ), match those for the reference broadcast line. The match is evidenced by the difference of the residuals from the reference broadcast line and discrete θa→b(τa) without draft correction, as shown in
To find θa→b(τa) for an arbitrary time τa=βa(t+αa), the closest messages to τa are found, then a correction term for clock drift added. The clock drift term depends on the time elapsed between τa and the time of the θa→b measurement, τa=
It is assumed that the error terms e for send and receive times are independent with standard deviation σ. The error from the SNTP equation terms then dominates because
Since two clocks will run at different rates, that is βb≠βa, θa→b(τa) will be a nonconstant, linear function of time.
2) Estimation of Clock Drift
It is necessary to estimate
to compute the drift corrected offset in equation 13 and make accurate distance measurements. Clock drift is estimated using the set of messages sent from a sender S and arriving at receiver R as shown in
Individual measurement error may be reduced by increasing the value of k. A value of k=20 for the results reported here. An exponential filter is then applied to successive measurements with ω=0.995 to estimate the beta ratio. The ratio
is estimated for the time corresponding to index i.
ƒ(i):=ω*ƒ(i−1)+(1−ω)m(i) (16)
The results of applying the exponential filter to the experimental data set appear in
is nonconstant. From the reference broadcast linear regression calculation for this data,
For the exponential filter, the value varies between −1.91*10−6 and −2.07*10−6.
As mentioned, known PinPoint systems use TOA to compute distance between PinPoint nodes. The systems incorporate a distributed, linear algorithm requiring no external clock synchronization to determine spatial topology. In contrast, the subject location system adapts PinPoint features to TDOA, measuring time difference of arrival for a nonparticipating, or non-PinPoint, node in order to locate its position. The location system improves significantly upon the basic clock model, for example, by incorporating individual card delay terms to enhance accuracy and obviate the need for synchronized local clocks. The system, moreover, improves estimation of β ratios preferably by replacing the simple slope calculation employed in known systems with an exponential filter.
The TDOA location system disclosed herein addresses situations where a nonparticipant node with known MAC address is transmitting. A set A of anchor nodes locates the nonparticipant node z using PinPoint TDOA and hyperbolic location. Anchor node times are translated between local clock times for TDOA comparison preferably using broadcast beacons sent among the anchors. The anchors send their timestamp data to a central location server programmably configured to process the data and solve the hyperbolic location problem defined by the PinPoint TDOA measurements. Illustrative movement of data is shown in
In the disclosed embodiment, each anchor is equipped with a wireless card operating in AP and monitor mode. In AP mode, each card sends beacons at regular intervals. In monitor mode, each card records receive times for beacons from all other anchor nodes as well as the nonparticipant node z. Each beacon contains the AP's send time as specified in the 802.11 standard. Send times which may be presented by the nonparticipant are not used. Nonparticipant nodes do not report receive times. Anchors store the timestamps for each transmitting node in a separate circular buffer.
The basic set of times needed for PinPoint TDOA measurements is shown in
ratio between anchor nodes.
PinPoint TDOA values are computed using the filtered average of TDOA values from the basic message sets. By using many disjoint message sets for TDOA, the nonlinear behavior of θa→b(τ) is captured. By averaging over these sets, it is assumed that the nonparticipant is stationary for the duration of measurements.
Within the basic message set illustrated in
The send and receive times are modeled using a basic clock model which has been augmented with a send delay s and receive delay r for each card. If timestamping were perfectly executed, then s=r=0. In practice, however, actual card delays are nonzero. While the delay values remain relatively stable for any one card, they tend to vary from card to card. The reference equations with delays in local time are as follows:
τa=βa(ta+αa)+sa+ea (17)
τba=βb(ta+αb+d(a,b))+rb+eba (18)
τb=βb(tb+αb)+sb+eb (19)
τab=βa(tb+αa+d(a,b))+ra+eab (20)
τaz=βa(tz+αa+d(a,z))+ra+eaz (21)
τbz=βb(tz+αb+d(b,z))+rb+ebz (22)
The card delay terms are in local clock units and not absolute time, so they are not multiplied by β.
The reference equations may be solved for the PinPoint TDOA equation:
There are three distinct terms of the right side of the equation. The first of these terms is the simple difference of the two receive times, using the clock offset as described in preceding paragraphs relating to Estimation of Offset. The second of these terms corrects for clock drift using the time elapsed between the arrival of τaz and the average of the second and receive times at node a for the exchange of timing messages. To minimize the effect of clock drift error, messages corresponding to the minimum send times after τaz and τbz are looked up for the TDOA computation. The third of these terms corrects for the card delay values.
The card delay values are necessary corrections for proper computation of distance in PinPoint TDOA. In the distance computations, the send and receive delays appear together, so that solving for the difference (r−s) is sufficient to characterize the delays. The correction is not a simple offset because it is dependent on the clock drift values, which have been observed to vary.
The (r−s) terms may be solved for when nodes a and b are co-located such that d(b,z)−d(a,z)=d(a,b)=0.
The exact behavior of card delay stability is not yet known; however, startup card delay values appear to be consistent. Also, card delay values appear to be relatively stable over approximately 20 minutes after startup. Thereafter, values may shift, but again appear stable over periods on the order of tens of minutes.
To examine the effect of measurement error of τ, each of the errors, E1, E2, E3 for the three terms in equation 23 are estimated separately. For E1, the standard deviation is computed since the error cannot be bound. For E2 and E3 the absolute error is estimated. The following assumptions in performing this analysis:
1) The receive and send time errors e are independent with mean 0 and standard deviation σ.
2) Beacons are sent between the anchor nodes at intervals no larger than beacon interval P.
3) Clock drift is stable over short time periods about some value
The relative drift rate may fluctuate within this range in any manner.
4) The clock drift estimate
is accurate.
The first term is the addition of random variables. The variance of the error term E1 is the sum of the variances. The standard deviation for E1 therefore equals √{square root over (3)}σ.
For the second term, the absolute error for E2 is estimated. For this term, the clock drift
is more significant than the receive and send time errors. The total error may be bounded in terms of the beacon interval P and the error ε.
The receive and send time errors are negligible. Consequently, clock drift values are <100 ppm so
Any timing errors e will result in distances
clock ticks, the errors e will result in total distances <10−4*e<10−3 clock ticks, which is negligible for 25 ns clock ticks and expected meter level accuracy.
Next, the error due to clock drift is estimated. Assuming beacons are being sent at a regular common beacon interval P from the anchor nodes,
For PinPoint TDOA then:
The error E2 is bounded by 2εP.
The absolute error E3 for the card delay correction term is dependent on the sample size for this estimation. Since the relative clock drift values are very close to one, the standard deviation for error for a single (r−s) measurement is 2σ. By pre-measuring the (r−s) values with large sample sizes, this error may be virtually eliminated. Similar to the analysis for E2, |E3|<2ε(ra−sa).
With reasonable assumptions, the expected total error will have a random error component with standard deviation related to σ and a bounded error component based on ε. This is summarized in Table I.
For a 802.11 based location system, PinPoint TDOA error may be numerically estimated. If clock drift may be measured within 0.1 ppm, then ε≦1.10−7. In a known madwifi driver, for example, the maximum beacon interval is P=106 clock ticks. Assuming σ=1.6 clock ticks and ra−sa=45000 clock ticks, the total error has standard deviation 2.77σ, with bias les than 0.21 clock ticks.
Preferably, two general types of filtering mechanisms are employed to eliminate outliers. One type filters timestamps between anchor nodes. The other type filters the final TDOA measurements. The filter for anchor node timestamps accepts values that satisfy the following condition:
This is the 802.11 standard specified clock tolerance. Raw TDOA results of equation 23 are filtered using a median-based approach. The median is computed using a partial sort, which runs in expected linear time. Any measurement outside a predetermined hard limit—of say 10 clock ticks, for example—from the median is considered an outlier.
Following filtering, a simple averaging is used to compute the times for TDOA. Using the speed of light, this time average translates to a distance and determines a hyperboloid for use in solving the hyperbolic location problem.
To solve the hyperbolic location optimization problem defined by the TDOA values, any suitable process known in the art may be used. For example, the conceptually simple gradient descent method may be used.
The first experimental setup example illustrated below is designed solely to measure distances. For that reason, the optimization step is not required in this example.
NETGEAR WG511T and NETGEAR WG511U PC cards with ATHEROS chipsets were used for this experiment on laptop computer platforms running GNU/Linux with the 2.6.22 kernel and the madwifi-ng driver. The wireless card reference clocks were set to run at 40 MHz rather than the standard 1 MHz. Instead of 10 beacons per second, 400 beacons per second were generated. These changes are summarized in Table II.
1 μs
As illustrated in
Laptops B and C were left stationary at separate locations. A was moved to seven separate locations, all collinear with B and C. In the linear configuration, the difference of distances is expressed by d(B, C)−d(A, C)=−d(A, B). At each location of A, the timestamps for all received beacons were recorded by B for both A and C and by C for A and B. Measurements were performed for 60-100 seconds at each location.
The initial measurement with A and B at distance zero was used to determine the card delay quantities. The card delay quantities are given in Table III. Note that the card delay values are significant. With the measured value
the correction for the card delay may be represented by
At 25 ns per clock tick, this equates roughly to 1.57 m.
The TDOA computation gives measurements within 5 m. For this particular experiment, that accuracy is not sufficient to successfully order the distances. Referring to Table IV, for example, the estimated distance value for 12.19 m was larger than that for 15.24 m. The cause of these measurement errors was presumably multipath effects.
A histogram of TDOA values for the 15.24 m case is shown for illustration in
The Q-Q plot in
This experiment demonstrates for the example of a location system implemented with IEEE 802.11 mobile nodes that a mobile node may be located reliably when in line-of-sight position relative to the anchor nodes, with an accuracy of less than approximately 3.5 m. The end-to-end accuracy is determined by comparing the distance between actual locations of the mobile node to those estimated by the subject TDOA location system.
The test equipment included 2 anchor laptops with UBIQUITI Superrange Cardbus, 1 anchor laptop computer with NETGEAR WG511T, and 1 mobile laptop computer with NETGEAR WG511U. The display laptop computer and each anchor laptop computer were connected to the router via Ethernet.
Each anchor card ran at 40 MHz reference clock speed with maximum beacon interval, sending 40 beacons per second. The 40 MHz value is the maximum known current capability of the ATHEROS based cards.
After an initial measurement with all anchor nodes at the same location to determine the card delay quantities, all three anchor nodes were placed in a single corridor. The locations of the anchor nodes are shown in
The card delay quantities for this experiment's anchor nodes are given in Table V.
Locations 2 through 8 in Table VI show the actual and estimated mobile locations with location error. Coordinates are in the Qt system, with the origin in the upper left corner, x dimension increasing to the right, and the y dimension increasing downward.
The arrangement of the anchor nodes in the corridor (of the indoor experiment site diagrammed) provided poor tracking geometry. This is a known limitation of an indoor corridor environment, where nodes cannot be placed with equal angular distribution. In particular, a pair of anchor nodes cannot distinguish between two positions on the same hyperbola using TDOA. For the degenerate hyperbola case, the hyperbola is a line starting at one anchor that extends away from the other anchor. For locations 4 and 6, the initial guess strongly affects the estimated location. For these two locations, the center anchor node was used as the initial guess.
TDOA was effective in locating the mobile node in line-of-sight situations, but not as effective for non-line-of-sight situations. Locations 2-6 are within line-of-sight of the anchor nodes. The error for line-of-sight arrangements was computed to be less than 3.5 m. Locations 7 and 8 are non-line-of-sight. The error for one of the non-line-of-sight measurements was computed to be 3.18 m, while the other was computed to be 6.61 m.
In accordance with certain aspects of the present invention, therefore, TDOA location system based on inexpensive, off-the-shelf 802.11 hardware may be implemented which passively yet accurately locates transmitting nodes. A major difficulty of such inexpensive hardware use—namely, the inaccuracy of local node clocks, and their significant nonlinear behavior even over relatively short periods (for instance, on the order of minutes)—is overcome by the subject method and system. The nonlinear behaviors exhibited by individual local clocks are corrected to measure TDOA using a model that combine clock offset and locally linear behavior around measurements of the clock offset. Based on such corrections, the TDOA location system disclosed herein has demonstrated accuracies of approximately 3 m in simple line-of-sight environments.
The TDOA location system requires anchor nodes to have the capability of timestamping sent and received messages, but need not make any assumptions about the communication protocol. For this reason, the system may be used for any communication protocol so long as the requisite timestamps are available.
Moreover, the subject TDOA location system provides the capability to locate transmitting nonparticipants. This allows implementation of location capabilities without control over existing network nodes.
Application of the present invention to even more complex operating environments than those in the exemplary embodiments illustrated herein is contemplated in various alternate embodiments. In certain applications, for example, complex multipath effects may be encountered. In certain others, for example, both TOA and TDOA information may need to be combined to optimize location finding.
Although this invention has been described in connection with specific forms and embodiments thereof, it will be appreciated that various modifications other than those discussed above may be resorted to without departing from the spirit or scope of the invention as defined in the appended claims. For example, functionally equivalent elements may be substituted for those specifically shown and described, certain features may be used independently of other features, and in certain cases, particular locations of elements, steps, or processes may be reversed or interposed, all without departing from the spirit or scope of the invention as defined in the appended claims.
This application for patent is based on Provisional Application Ser. No. 61/313,476, previously filed on 12 Mar. 2010.
The invention described herein was developed through research funded by the U.S. Government under Contract nos. 1302-07-019S and N00173-05C-2016 awarded by the Naval Research Laboratory. The U.S. Government has certain rights to the invention.
Number | Date | Country | |
---|---|---|---|
61313476 | Mar 2010 | US |