Patent Description:
In many applications, it may be desirable to estimate a location of a target object. In some implementations, a system may be designed to allow a target to carry out location estimation using radio frequency (RF) signals, e.g., a wireless device may estimate its location using signal strength of RF signals received from anchors in fixed locations. Other objects may obstruct the path between the target and the anchors, thereby interfering with the RF signals. <CIT> proposes a system for estimating the location of a mobile device.

At least one aspect of this disclosure is directed to a method for locating a position of a target object equipped with a plurality of spatially distributed antennas in a network of a plurality of anchors at fixed locations. The method includes assigning a plurality of anchor pairs. Each anchor pair of the plurality of anchor pairs includes at least two anchors of a plurality of anchors. Each anchor pair is configured to transmit ranging packets according to a transmission schedule by transmitting, by a first anchor of the anchor pair, a range request (REQ) packet. A second anchor of the anchor pair receives the REQ packet. The second anchor transmits a range response (RSP) packet in response to the REQ packet. The method includes receiving, by at least one of the plurality of antennas on the target object, the REQ packet. The method includes receiving, by at least one of the plurality of antennas on the target object, the RSP packet. The method includes estimating, for each anchor pair, a distance difference between a first distance from the target object to the first anchor and a second distance from the target object to the second anchor, based on times at which the REQ packet and the RSP packet are received by at least two of the plurality of antennas of the target object. The method includes estimating, for each anchor pair, distance differences from the target object to the first anchor and the second anchor, based on times at which the REQ packet and the RSP packet are received by at least two of the plurality of antennas of the target object, the at least two antennas being separated spatially on the target object by a predetermined distance. The method includes estimating the position of the target object based on the estimated distance differences for each anchor pair.

In some implementations, each of the plurality of antennas on the target can include a respective internal clock. In some implementations, the internal clocks of the plurality of antennas can be synchronized. In some implementations, the internal clocks of the plurality of antennas may not be synchronized.

In some implementations, a turnaround time can be embedded in the RSP packet. In some implementations, a turnaround time can be predetermined and may not transmitted as part of the RSP packet.

In some implementations, the method can include transmitting the distance differences for each anchor pair from the target object to an external position estimator remote from the target object. In some implementations, the external position estimator can estimate the position of the target object based on the estimated distance differences for each anchor pair.

In some implementations, the target object can include a local position estimator configured to estimate the position of the target object based on the estimated distance differences for each anchor pair. In some implementations, the method can include transmitting the estimated position of the target object to at least one of the plurality of anchors in the network.

At least another aspect of this disclosure is directed to a system for locating a position of a target object. The system can include a target object equipped with a plurality of spatially distributed antennas and one or more processors. The system can include a position estimator. The system can include a plurality of anchors at fixed locations forming an anchor network. Each anchor of the plurality of anchors can have a transceiver. The anchors can be grouped into respective anchor pairs configured to transmit ranging packets according to a transmission schedule. A first anchor of an anchor pair can transmit a range request (REQ) packet. A second anchor of the anchor pair can receive the REQ packet. The second anchor can transmit a range response (RSP) packet in response to the REQ packet. Each of the plurality of antennas on the target object can be configured to receive the REQ packet and the RSP packet. In some implementations, the at least one processor can be configured to estimate, for each anchor pair, a distance difference between a first distance from the target object to the first anchor and a second distance from the target object to the second anchor, based on times at which the REQ packet and the RSP packet are received at the target object. In some implementations, the at least one processor can be configured to estimate, for each anchor pair, distance differences from the target object to the first anchor and the second anchor, based on times at which the REQ packet and the RSP packet are received by at least two of the plurality of antennas of the target object. The position estimator can be configured to estimate the position of the target object based on the estimated distance differences for each anchor pair.

In some implementations, each of the plurality of antennas can be coupled with a respective RF front-end (RFFE) processing unit. The one or more processors can include a central processing unit coupled with all of the RFFE processing units.

In some other implementations, each of the plurality of antennas can be coupled with a respective RF front-end (RFFE) processing unit and the one or more processors can include a respective processing unit coupled with a respective one of the RFFE processing units. In some implementations, the processing units may not be synchronized.

In some implementations, a turnaround time can be embedded in the RSP packets. In some implementations, a turnaround time can be predetermined and may not be transmitted as part of the RSP packet.

In some implementations, the position estimator can be local to the target object. In some other implementations, the position estimator can be remote from to the target object. In some implementations, the one or more processors can be further configured to transmit the distance differences for each anchor pair from the target object to the external position estimator. In some implementations, the one or more processors can be further configured to transmit the estimated position of the target object to at least one of the plurality of anchors in the network.

In some implementations, this disclosure provides systems to reduce the loss of ranging signal due to obstacle blockage in time difference of arrival (TDOA) based on location estimation and methods to carry out TDOA location estimation when there is some ranging signal loss due to blockage.

In some implementations, the target object is equipped with two or more antennas which are separated spatially. The antennas share the same processing unit to process signal received from all antennas. This creates two or more line-of-sight (LOS) signal paths from an anchor to the target object as each antenna can independently receive/transmit ranging signal from/to the anchor. Since there are multiple spatially separated LOS signal paths between the target object and an anchor, the possibility that all LOS signal paths are blocked by obstacles is reduced.

In some implementations, the target object is equipped with two or more wireless transceivers which are separated spatially. Each wireless transceiver is equipped with an antenna and its own processing unit to process signal received from its antenna. The wireless transceivers have synchronized clocks. Similarly, this also creates two or more LOS signal paths from an anchor to the target object as each wireless transceiver can independently receive/transmit ranging signal from/to the anchor.

In some implementations, the target object is equipped with two or more wireless transceivers which are separated spatially. Each wireless transceiver is equipped with an antenna and its own processing unit to process signal received from its antenna. The internal clocks of the wireless transceivers are not synchronized. Similarly, this also creates two or more LOS signal paths from an anchor to the target object as each wireless transceiver can independently receive/transmit ranging signal from/to the anchor.

The TDOA ranging signal transmissions are scheduled in a fashion that the anchors transmit sequentially and the time difference of ranging signals from two different anchors can be calculated. When ranging signals are received by the target object, it combines the receiving time information from multiple signals (from multiple antennas or transceivers) to estimate its location.

The foregoing and other objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the following description taken in conjunction with the accompanying drawings, in which:.

The features and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout.

Time of flight of an a signal such as a radio frequency (RF) signal, also known as time of arrival (TOA), may be used for location estimation. The TOA based location estimation is typically carried out using trilateration, i.e., the location of an object is estimated based on the distances between the object to be estimated and some other objects whose positions are known. The other objects at known positions can be referred to as "anchors" in the following description. In some implementations, because the target object may not be synchronized with the anchors, the distance between the target object and an anchor can be estimated using a round-trip flight time. For example, a first device (e.g., the target object or an anchor) transmits a first ranging signal. After receiving the first ranging signal, the second device transmits a second ranging signal back to the first device. The round-trip time is defined as the time elapsed between the reception of the second ranging signal and the transmission of the first ranging signal, which can be estimated by the first device. Such a technique may be referred to as Two-Way TOA (TW-TOA).

In some other implementations, location estimate can be performed using time difference of flight, also known as time difference of arrival (TDOA). In some TDOA techniques based on location estimations, the distance difference from the target object to two anchors can be estimated at the target object by measuring the time difference of two received ranging signals from each of the pair of anchors. This distance difference can be used in the location estimation of the target object. This TDOA based location estimation technique can have technical benefits as compared with the TW-TOA approach described above. For example, this approach may use fewer transmissions in the network when there are many objects to be located and it may not require the target object to transmit as well.

TOA and TDOA based location estimation methods may assume that the ranging signal paths from the target object to the anchors are line-of-sight (LOS) paths. When a signal path is LOS, the time calculated in TOA or TDOA can be used to estimate the distance (e.g., in TOA) or distance difference (e.g., in TDOA) between the target object and the anchors. However, in many indoor environments as well as outdoor environments, obstacles (e.g., shelves, furniture, frames, poles, people, etc.) can block LOS signal paths. Thus there may be no LOS path between the target object and some of the anchors. The obstacles may cause some ranging signal loss or may create no-line-of-sight (NLOS) signal paths. The ranging signal losses can cause incomplete ranging processes, and as a result TOA or TDOA techniques may be unable to accurately estimate the location of the target object. In some implementations, the NLOS paths between the target object and the anchors can degrade the location estimation accuracy significantly. Referring briefly to <FIG>, depicted is an environment for locating a position of a target object <NUM> in which a signal transmission is blocked by an obstacle <NUM>. The environment <NUM> can be used, for example, to determine a location of the target object <NUM> via a TDOA based location estimation. In the environment <NUM> the nodes 105a and 105b are anchors (generally referred to as anchors <NUM>). The LOS signal path between the anchor 105a and the target object <NUM> is blocked by the obstacle <NUM>, and the target object <NUM> therefore may not be able to receive a ranging request packet (REQ) from the node 105a. Because there is no ranging signal heard from the anchor 105a, the target object <NUM> may not be able to complete a time difference calculation used in TDOA.

In a wireless network comprises of multiple anchor nodes and one or more target objects, TDOA based on location estimation can be done in a variety of different ways. In one TDOA scheme, a target object can initiate the ranging process by sending a request packet (referred to as a REQ packet) to anchors, and the anchors which have received the REQ packet may respond with a response packet (referred to as a RSP packet). Then, the anchors which have received both REQ and RSP packets can calculate the time difference needed to perform a location estimation. In another TDOA scheme, a first one of the anchors can initiate the ranging process by transmitting a REQ packet. The REQ packet can be received by a number of neighboring anchors, as well as the target object, within the first anchor's transmission range. Some or all of the anchors that receive the REQ packet can then transmit a RSP packet in response to the reception of the REQ packet, and the target object can receive both REQ and RSP packets. The target object can then calculate the time differences needed to perform location estimation.

For illustrative purposes, this disclosure primarily discusses the latter TDOA scheme. However, it should be noted that the concepts presented in this disclosure can be used with other TDOA schemes without departing from the scope of this disclosure. In addition, while this disclosure is primarily directed to determining or estimating a location of a target object in two-dimensional (2D) space, (e.g., an x-y plane), the concepts presented in this disclosure can be used to determine or estimate a location of a target object in higher spatial dimensions (e.g., three-dimensional space, sometimes referred to herein as 3D space) without departing from the scope of this disclosure.

As described above, <FIG> illustrates an exemplary case in which some ranging signals used for TDOA may be blocked by the obstacle <NUM> between the anchor 105a and the target object <NUM>. The anchor 105a can initiate the TDOA ranging process by sending out a REQ packet. The REQ packet can be received by the anchor 105b, which can respond with a RSP packet. Without the obstacle <NUM>, the target object <NUM> within the transmission ranges of both the anchor 105a and the anchor 105b could receive both REQ and RSP packets. However, the obstacle <NUM> blocks the LOS signal path between the anchor 105a and target object <NUM>. Thus, the target object <NUM> may not be able to receive the REQ packet from the anchor 105a. As a result, the target object <NUM> may not be able to complete the calculation of time difference of arrival between the RSP packet and the REQ packet to be used for estimation of the location of the target object <NUM> based on TDOA.

<FIG> illustrates a target object <NUM> equipped with two antennas 220a and 220b (generally referred to as antennas <NUM>) which are separated spatially from one another. It should be noted that, although <FIG> illustrates only two antennas <NUM> for illustrative purposes, in some implementations, the target object <NUM> can be equipped with more than two antennas <NUM>, and all of the antennas <NUM> can be spatially separated from one another. The antennas <NUM> can be coupled with a processing unit <NUM> on the target object <NUM> and the signal received by antennas <NUM> can be processed in the processing unit <NUM> for a time difference calculation, as described above. The distances from the antennas <NUM> to the center of the target object <NUM> are denoted as d<NUM> and d<NUM>, respectively. Referring now to <FIG>, depicted is an example TDOA ranging process that can be performed using the target object <NUM> of <FIG>, according to an illustrative implementation. In <FIG>, the TDOA ranging process can take place between a pair of anchors 305a and 305b (generally referred to as anchors <NUM>) and the target object <NUM>, which is equipped with two antennas 220a and 220b. Since the antennas <NUM> are spatially separated on the target object <NUM>, the REQ packet from the anchor 305a is received at different times by each of the antennas <NUM>. Similarly, the RSP packet from anchor 305b also is received by both antennas <NUM> at different times, if there is no signal path blocked by obstacle(s). The following notations are used in this disclosure:.

As these time instances are recorded at the same processing unit, the target object <NUM> (e.g., using the processing unit <NUM>) can calculate four values of time difference, i.e., tB1 - tA1, tB2 - tA<NUM>, tB1 - tA<NUM>, tB2 - tA1. The first two values of time difference are from the signal received by the same antenna <NUM>, and the last two values of time difference are from the signal received by different antennas <NUM>. In all embodiments of the present invention, these time difference values can be used to estimate the location of the center of the target object <NUM> in space (e.g., in an xy plane). They can also be used to estimate an angle θ of the line between antennas <NUM> (e.g., with respect to the x-axis). For example, the location of anchor 305a can be represented as (xA, yA), the location of anchor 305b can be represented as (xB, yB), the distance between anchors 305a and 305b can be represented as dAB and the turn-around time between transmitting the RSP packet and receiving the REQ packet at the anchor 305b can be represented as Tt. The following equations for time difference values can be used in calculating the location of the center of the target object <NUM> (x,y) and the angle θ : <MAT> <MAT> <MAT> <MAT>.

When a sufficient number of time difference values from different anchor pairs similar to the anchor pair 305a and 305b are collected by the target object <NUM>, the location (x, y) and angle θ can be estimated via techniques such as nonlinear least-squares (NLS).

<FIG> illustrates a target object <NUM> equipped with two wireless transceivers 430a and 430b (generally referred to as transceivers <NUM>) which are spatially separated from one another, according to an illustrative implementation. Each of the transceivers <NUM> includes a respective one of the antennas 420a and 420b (generally referred to as antennas <NUM>) and a respective one of the processing units 425a and 425b (generally referred to as processing units <NUM>). The wireless transceivers <NUM> are coupled with a synchronized clock <NUM> for recording time. It should be understood that the target object <NUM> in this implementation can be equipped with more than two wireless transceivers <NUM> all of which may be spatially separated from one another and coupled with the clock <NUM>. The processing unit <NUM> of a wireless transceiver <NUM> can be configured to process signals received by its antenna <NUM>, and can also be configured to communicate with the processing units <NUM> of other wireless transceivers <NUM>. The distances from the wireless transceivers <NUM> to the center of the target object <NUM> are shown as d<NUM> and d<NUM>, respectively. Referring now to <FIG>, depicted is an example TDOA ranging process that can be performed using the target object <NUM> of <FIG>, according to an illustrative implementation. In <FIG>, the TDOA ranging process can take place between a pair of anchors 505a and 505b (generally referred to as anchors <NUM>) and the target object <NUM>. Because the wireless transceivers <NUM> are spatially separated, the REQ packet from the anchor 505a can be received by both transceivers <NUM> at different times. Similarly, the RSP packet from the anchor 505b can also be received by both transceivers <NUM> at different times, assuming there is no signal path blocked by obstacle(s). The following notations are used in this disclosure:.

As these time instances are recorded by according to the synchronized clock <NUM>, the target object <NUM> can calculate four values of time difference, i.e., tB<NUM> - tA<NUM>, tB<NUM> - tA<NUM>, tB<NUM> - tA<NUM>, tB<NUM> - tA<NUM>. In some implementations, these calculations can be performed, for example, by the processing units <NUM>. The first two values of time difference are from the signal received by the same transceiver <NUM>, and the last two values of time difference are from the signal received by different transceivers <NUM>. These time difference values can be used to estimate a location of the center of the target object <NUM> (x, y) as well as an angle θ of the line between the transceivers <NUM>. The location of anchor 505a can be represented as (xA, yA), the location of anchor 505b can be represented as (xB, yB), the distance between the anchors 505a and 505b can be represented as dAB and the turn-around time between transmitting the RSP packet and receiving the REQ packet at the anchor 505b can be represented as Tt. The equations (<NUM>) - (<NUM>) above for time difference values can be used in calculating the location of the center of the target object <NUM> (x,y) and the angle θ. When a sufficient number of time difference values from different anchor pairs similar to the anchor pair 505a and 505b are collected by the target object <NUM>, the location (x, y) and angle θ can be estimated via techniques such as NLS.

<FIG> illustrates a target object <NUM> equipped with two wireless transceivers 630a and 630b (generally referred to as wireless transceivers <NUM>) which are spatially separated from one another, according to an illustrative implementation. Each of the transceivers <NUM> includes a respective one of the antennas 620a and 620b (generally referred to as antennas <NUM>) and a respective one of the processing units 625a and 625b (generally referred to as processing units <NUM>). The wireless transceivers <NUM> are not coupled with any synchronized clock source. Instead, each transceiver <NUM> can operate using its own clock signal, such that the transceivers 630a and 630b are not synchronized. It should be understood that the target object <NUM> in this implementation can be equipped with more than two wireless transceivers <NUM> all of which may be spatially separated from one another, and each transceiver may operate according to its own asynchronous clock signal. The processing unit <NUM> of a wireless transceiver <NUM> can be configured to process signals received by its antenna <NUM>, and can also be configured to communicate with the processing units <NUM> of other wireless transceivers <NUM>. The distances from the wireless transceivers <NUM> to the center of the target object <NUM> are shown as d<NUM> and d<NUM>, respectively. Referring now to <FIG>, depicted is an example TDOA ranging process that can be performed using the target object <NUM> of <FIG>, according to an illustrative implementation. In <FIG>, the TDOA ranging process can take place between a pair of anchors 705a and 705b (generally referred to as anchors <NUM>) and the target object <NUM>. Because the wireless transceivers <NUM> are spatially separated, the REQ packet from the anchor 705a can be received by both transceivers <NUM> at different times. Similarly, the RSP packet from the anchor 705b can also be received by both transceivers <NUM> at different times, assuming there is no signal path blocked by obstacle(s). The following notations are used in this disclosure:.

As these time times are not recorded by any synchronized clock, the target object <NUM> may only calculate time difference values from the same transceiver <NUM>, i.e., tB<NUM> - tA<NUM>, tB<NUM> - tA<NUM>. These time difference values can be used to estimate the location of the center of the target object <NUM> (x, y) as well as an angle θ of the line between the transceivers <NUM>. In some implementations, these calculations can be performed, for example, by the processing units <NUM>. The location of the anchor 705a can be represented as (xA, yA), the location of the anchor 705b can be represented as (xB, yB), the distance between the anchors 705a and 705b can be represented as dAB and the turnaround time between transmitting the RSP packet and receiving the REQ packet at the anchor 705b can be represented as Tt. The equations (<NUM>) - (<NUM>) above relating for time difference values can be used in calculating the location of the center of the target object <NUM> (x, y) and the angle θ. When a sufficient number of time difference values from different anchor pairs similar to the anchor pair 705a and 705b are collected by the target object <NUM>, the location (x, y) and angle θ can be estimated via techniques such as NLS.

In some instances, there may be an obstacle that obstructs a path between an anchor <NUM> and the target object <NUM>. As a result, some of the LOS signal paths may be blocked. <FIG> illustrates an example TDOA ranging process that can be performed when signal paths are blocked by an obstacle, according to an illustrative implementation. In some implementations, the scenario shown in <FIG> can include the target object <NUM> shown in <FIG>. <FIG> also shows an obstacle <NUM> blocks the LOS paths between an anchor 805a and the antenna 220b on the target object <NUM>, as well as the path between an anchor 805b and the antenna 220a on the target object <NUM>. <FIG> illustrates an example TDOA transmission schedule that can be implemented in the TDOA scenario illustrated in <FIG>, according to an illustrative implementation. Because of the presence of the obstacle <NUM>, the target object <NUM> may not receive the REQ packet from the anchor 805a on the antenna 220b, as well as the RSP packet from the anchor 805b on the antenna 220a. Therefore, there may be only one value of the time difference, e.g., tB<NUM> - tA<NUM>, available on the target object <NUM>. In this case, the spatially distributed antennas <NUM> on the target object <NUM> can help the target object <NUM> to obtain a valid time difference value from the transmissions of the anchors 805a and 805b (or other anchor pairs). When a sufficient number of time difference values from different anchor pairs similar to the anchor pair 805a and 805b are collected by the target object <NUM>, the location of the target object <NUM> (x, y) and the angle θ can be estimated via techniques such as NLS.

<FIG> illustrates a block diagram of a target object <NUM> having multiple antennas 920a-902n (generally referred to as antennas <NUM>) and a central processing unit <NUM> to process signals from all antennas <NUM>, according to an illustrative implementation. Each antenna also is coupled with a respective RF front-end (RFFE) processing unit 940a-940n (generally referred to as RFFE processing units <NUM>). An RF signal is received by each antenna <NUM> and the signal can be processed by the respective RFFE processing unit <NUM>. The signal from different antennas <NUM> can be further processed by the central processing unit <NUM> to get information about anchors and time and to calculate time differences from packets received from different anchor pairs.

<FIG> illustrates a block diagram of a target object <NUM> having multiple wireless transceivers 1030a-1030n (generally referred to as wireless transceivers <NUM>) which are spatially separated from one another, according to an illustrative implementation. Each transceiver <NUM> includes a respective one of the RFFE processing units 1040a-1040n (generally referred to as RFFE processing units <NUM>) and a respective one of the processing units 1025a-1025n (generally referred to as processing units <NUM>). All of the transceivers <NUM> are coupled with a common clock <NUM>, which can provide a common timing signal to the processing unit <NUM> of each transceiver <NUM>. Thus, the internal clocks of all of the transceivers <NUM> can be synchronized with one another. An RF signal can be received and processed by individual wireless transceivers <NUM> to get information about anchors and times at which packets arrive. The transceivers <NUM> can communicate with one another to calculate the time-difference from different received packets.

<FIG> illustrates a block diagram of a target object <NUM> having multiple wireless transceivers 1130a-1130n (generally referred to as wireless transceivers <NUM>) which are spatially separated from one another, according to an illustrative implementation. Each transceiver <NUM> includes a respective one of the RFFE processing units 1140a-1140n (generally referred to as RFFE processing units <NUM>) and a respective one of the processing units 1125a-1125n (generally referred to as processing units <NUM>). Unlike the target object <NUM> shown in <FIG>, the target object <NUM> does not include any synchronized clock source. An RF signal can be received and processed by individual wireless transceivers <NUM> to get information about anchors and times at which packets arrive. The transceivers <NUM> can communicate with one another to calculate the time-difference from different received packets.

<FIG> illustrates a flowchart of an example method <NUM> for locating a position of a target object, according to an illustrative implementation. The target object can be equipped with a plurality of spatially distributed antennas, and can be located within a network of a plurality of anchors at fixed locations. The method <NUM> can include assigning anchor pairs (block <NUM>). In some implementations, each anchor pair of the plurality of anchor pairs can include at least two anchors of a plurality of anchors. Anchor pairs can be selected such that the anchors in each pair are within communication range of one another. In some implementations, anchor pairs may be overlapping, such that a single anchor may be included in more than one anchor pair. In some other implementations, the anchor pairs may be non-overlapping. Each anchor pair can be configured to transmit ranging packets according to a transmission schedule.

The method <NUM> can include transmitting a range request (REQ) packet from a first anchor (block <NUM>). The first anchor can include a transmitter or a transceiver configured to transmit the REQ packet. In some implementations, the REQ packet can include header information indicating that the first anchor is the source of the REQ packet. In some implementations, transmitting the REQ packet can include broadcasting the REQ packet to any device within communication range without any destination specified. In some other implementations, the REQ packet can have at least one specified destination. For example, at least one destination can be specified in a header of the REQ packet.

The method <NUM> can include receiving the range request packet at a second anchor (block <NUM>). The second anchor can include a receiver or transceiver configured to receive the REQ packet from the first anchor. In some implementations, the second anchor can be identical to the first anchor. The second anchor can record a time at which the REQ packet was received. The method <NUM> can also include transmitting a range response (RSP) packet from the second anchor (block <NUM>). The second anchor can transmit the RSP packet in response to receiving the REQ packet from the first anchor. In some implementations, the RSP packet can include header information indicating that the second anchor is the source of the RSP packet. In some implementations, transmitting the RSP packet can include broadcasting the RSP packet to any device within communication range without any destination specified. In some other implementations, the RSP packet can have one or more specified destinations. For example, at least one destination can be specified in a header of the REQ packet. In some implementations, the destination can be specified as the first anchor. In some implementations, a turnaround time can be embedded in the RSP packet. In some implementations, a turnaround time can be predetermined and may not transmitted as part of the RSP packet.

In some implementations, the method <NUM> can include repeating the operations of blocks <NUM>, <NUM>, and <NUM> by additional pairs of anchors in the system. For example, the system may include any number of anchors grouped into pairs, and each pair of anchors can perform operations similar to those described above in connection with blocks <NUM>, <NUM>, and <NUM> of the method <NUM>.

The method can include receiving, by at least one of the plurality of antennas on the target object, the REQ packet (block <NUM>). In some implementations, the REQ packet may be received by more than one of the plurality of antennas on the target object. The target object can include an antenna configured to receive the REQ packet from the first anchor. In some implementations, the antenna can be positioned on a fixed location of the target object, and can be spaced away from at least one other antenna that is positioned at a different fixed location on the target object. The target object can record a time at which the REQ packet was received.

The method can include receiving, by at least one of the plurality of antennas on the target object, the RSP packet (block <NUM>). In some implementations, the RSP packet can be received by more than one of the antennas on the target object. The RSP packet can be received in the same manner as the REQ packet, for example. In some implementations, the target object can also record a time at which the REQ packet was received.

The method can include estimating, for each anchor pair, a distance difference (block <NUM>). In some implementations, the estimation can be performed on the target object. For example, one or more processing units on the target object can be configured to perform the estimation. In some implementations, each of the processing units on the target can include a respective internal clock. In some implementations, the internal clocks of the antennas can be synchronized. In some implementations, the internal clocks of the antennas may not be synchronized. In some implementations, a different processing unit on the target object can be configured to perform the respective estimation for different anchor pairs. The distance difference can be the difference between a first distance from the target object to the first anchor and a second distance from the target object to the second anchor. In some implementations, the difference can be calculated based on times at which the REQ packet and the RSP packet are received at the target object.

The method can include estimating the position of the target object based on the estimated distance differences for each anchor pair (block <NUM>). In some implementations, the method can include transmitting the distance difference for each anchor pair from the target object to an external position estimator remote from the target object. Thus, the external position estimator can perform the estimate of the position of the target object based on the estimated distance differences for each anchor pair. In some implementations, the target object can include a local position estimator configured to estimate the position of the target object based on the estimated distance differences for each anchor pair. In some implementations, the position of the target object can be estimated using a technique such as nonlinear least-squares. In some implementations, the method can include transmitting the estimated position of the target object to at least one of the plurality of anchors in the network.

The systems and methods of this disclosure can enable more time difference value calculations available for location estimation from TDOA ranging processes when there is no obstacle in LOS signal paths. Therefore it could statistically improve the location estimation accuracy with additional time difference values, as compared with existing methods and systems. In addition, the systems and methods of this disclosure can enable a higher probability to get valid time difference values for location estimation from TDOA ranging process when one or more obstacles are present. Therefore, it is more robust for TDOA based location estimation than the existing methods/systems in the literature.

It should be understood that the systems described above may provide multiple ones of any or each of those components and these components may be provided on either a standalone machine or, in some embodiments, on multiple machines in a distributed system. The systems and methods described above may be implemented as a method, apparatus or article of manufacture using programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. In addition, the systems and methods described above may be provided as one or more computer-readable programs embodied on or in one or more articles of manufacture. The term "article of manufacture" as used herein is intended to encompass code or logic accessible from and embedded in one or more computer-readable devices, firmware, programmable logic, memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, SRAMs, etc.), hardware (e.g., integrated circuit chip, Field Programmable Gate Array (FPGA), Application Specific Integrated Circuit (ASIC), etc.), electronic devices, a computer readable non-volatile storage unit (e.g., CD-ROM, floppy disk, hard disk drive, etc.). The article of manufacture may be accessible from a file server providing access to the computer-readable programs via a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc. The article of manufacture may be a flash memory card or a magnetic tape. The article of manufacture includes hardware logic as well as software or programmable code embedded in a computer readable medium that is executed by a processor. In general, the computer-readable programs may be implemented in any programming language, such as LISP, PERL, C, C++, C#, PROLOG, or in any byte code language such as JAVA. The software programs may be stored on or in one or more articles of manufacture as object code.

Claim 1:
A method (<NUM>) for locating a position of a target object equipped with a plurality of spatially distributed antennas in a network of a plurality of anchors at fixed locations, the method comprising:
assigning (<NUM>) a plurality of anchor pairs, each anchor pair of the plurality of anchor pairs including at least two anchors of a plurality of anchors, wherein each anchor pair is configured to transmit ranging packets according to a transmission schedule by:
transmitting (<NUM>), by a first anchor of the anchor pair, a range request, REQ, packet;
receiving (<NUM>), by a second anchor of the anchor pair, the REQ packet; and transmitting (<NUM>), by the second anchor in response to the REQ packet, a range response, RSP, packet;
receiving (<NUM>), by at least one of the plurality of antennas on the target object, the REQ packet,;
receiving (<NUM>), by at least one of the plurality of antennas on the target object, the RSP packet;
estimating (<NUM>) for each anchor pair, distance differences from the target object to the first anchor and the second anchor, based on times at which the REQ packet and the RSP packet are received by at least two of the plurality of antennas of the target object, the at least two antennas being separated spatially on the target object by a predetermined distance; and
estimating (<NUM>) the position of a center of the target object based on the estimated distance differences for each anchor pair.