N/A
Geolocation refers to estimating the location of an object and is used in a wide variety of applications. There is also a wide variety of geolocation techniques. Some of these techniques only provide a general estimate of an object's location (e.g., a city in which the object is located), while others can provide a highly accurate estimate (e.g., latitude, longitude, and altitude of the object). The present invention is directed to improving these highly accurate geolocation techniques.
Most highly accurate geolocation techniques rely on multiple anchors (or known position sources) and therefore require complex systems to implement. This is especially true when geolocation must be performed in GPS denied spaces. Additionally, even with multiple anchors, many geolocation techniques may still fail to provide sufficient accuracy for many applications. For example, autonomous vehicles and other applications where objects are steered oftentimes require position estimates that are both highly accurate and capable of being produced in real-time.
The present invention extends to methods, systems and computer program products for performing multivariate position estimation. The multivariate position estimation approach of the present invention can employ multiple types of information including time of arrival (or time difference of arrival), angle of arrival, Doppler, and/or prior location information in an iterative process to calculate a location estimate that is highly accurate. In particular, the multivariate position estimation approach can employ the statistical quality of each of these types of information to quickly arrive at a highly accurate position estimate within a 3D coordinate system. The multivariate position estimation approach can be implemented in environments where a single receiver (i.e., a single anchor) is available as well as in environments where multiple receivers exist.
In one embodiment, the present invention is implemented by a tracker as a method for performing multivariate position estimation comprising. The tracker receives a communication emitted from a moving object and processes the communication to generate a time of arrival measurement, an angle of arrival measurement, and a Doppler measurement for the communication. The tracker also obtains a tracker location representing where the tracker was located when the communication was received. The tracker then estimates an object location representing where the moving object was located when the moving object emitted the communication using the time of arrival measurement, the angle of arrival measurement, the Doppler measurement, and the tracker location.
In another embodiment, the present invention is implemented as a tracker that includes: one or more antennas for receiving a communication emitted from a moving object; a time of arrival component that generates a time of arrival measurement for the communication; an angle of arrival component that generates an angle of arrival measurement for the communication; a Doppler component that generates a Doppler measurement for the communication; a tracker location component that obtains a tracker location representing where the tracker was located when the communication was received; and a location engine that receives and processes the time of arrival measurement, the angle of arrival measurement, the Doppler measurement, and the tracker location to estimate an object location representing where the moving object was located when the moving object emitted the communication.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter.
Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
In this specification, the term “tracker” should be construed as any computing system that is configured to receive periodic communications from a moving object and employ various types of information derived from the periodic communications to estimate a position of the moving object. The term “computing device” should be construed generally to encompass each of the various types of hardware platforms that one of skill in the art could use to implement the techniques of the present invention (e.g., a CPU platform, a microprocessor platform, an ASIC platform, an FPGA platform, a DSP platform, etc.). The term computing system should be construed as including one or more computing devices. Furthermore, although a tracker will be described primary as a single physical node, in some embodiments, a tracker can encompass more than one physical node. For example, a tracker could encompass two or more physically separated computing devices (i.e., two or more nodes).
To generate the different types of information for the multivariate position estimation, tracker 100 can include a time of arrival component 101 (which could equally be a time difference of arrival component in some embodiments), an angle of arrival component 102, a Doppler component 103, and a tracker location component 104. Tracker 100 also includes a location engine 105 which is configured to generate position estimates based on the information provided from components 101-104.
Time of arrival component 101 can represent any combination of hardware and/or software components that are configured to generate time of arrival information for each periodic communication received from moving object 150. For example, time of arrival component 101 can be configured to detect when a periodic communication is received and to generate a corresponding “receive timestamp.” This receive timestamp will be represented in the figures as ToAi where i represents the relative order of the communication. Time of arrival component 101 can also be configured to extract the “transmit timestamp” from the periodic communication which represents when the periodic communication was sent (whether by moving object 150 or by tracker 100). This transmit timestamp will be represented in the figures as timestampi.
As mentioned above, the transmit timestamp may represent either (1) when the periodic communication received at tracker 100 was sent by moving object 150; or (2) when a corresponding periodic communication was sent by tracker 100 to moving object 150. In this later case, moving object 150 can be viewed as simply relaying a received communication back to tracker 100. In either case, the difference between the receive timestamp and the transmit timestamp can represent the distance between moving object 150 and tracker 100 as will be further described below.
Angle of arrival component 102 can represent a monopulse antenna, a parabolic antenna, a phased array, or other suitable antenna configuration that can detect the angle at which the periodic communication arrives at tracker 100. The angle of arrival for a particular periodic communication will be represented in the figures as AoAi where i again represents the relative order of the communication (e.g., ToA1 and AoA1 can define when and at what angle a “first” periodic communication was received).
Doppler component 103 can represent any combination of hardware and/or software components that are configured to calculate the Doppler shift of each periodic communication. The Doppler shift for a particular periodic communication will be represented in the figures as Doppi where i again represents the relative order of the communication.
Finally, tracker location component 104 can represent any combination of hardware and/or software components that are configured to maintain/provide known locations of tracker 100 at periodic intervals which generally correspond with the timing at which the periodic communications are received. These known locations can be represented in X, Y, and Z coordinates (or another suitable coordinate system) as Xi, Yi, Zi where i represents the relative order of the periodic communication to which the location corresponds (e.g., X1, Y1, Z1 can represent the location of tracker 100 when it received a periodic communication from which ToA1, AoA1, and Dopp1 were generated). If tracker 100 is stationary, this known location would remain constant. However, when tracker 100 is moving, the known location will likely change for each received periodic communication. One of skill in the art would understand that there are many different ways to determine the location of tracker 100 each of which could be employed by tracker location component 104.
In this example, it is assumed that tracker 100 includes a single physical node. However, in other embodiments, tracker 100 may employ multiple physical nodes (e.g., two nodes that each independently receives the periodic communications). In such cases, the second physical node would include its own time of arrival component 101, angle of arrival component 102, and Doppler component 103 (and possibly its own tracker location component 104 if it is spaced a significant distance from the first receiver) to provide independent series of information to location engine 105. It is noted however that one benefit of the present invention is that a highly accurate position estimate can be generated with only a single node.
In summary, for each received periodic communication, each node of tracker 100 will generate time of arrival information, angle of arrival information, Doppler information, and tracker location information and provide this information to location engine 105. Location engine 105 can then use this information in an iterative manner to generate a location estimate for moving object 150. By including the node's location information in this process, the location estimate can be an actual location rather than a relative location with respect to tracker 100. In this regard, if a location estimate relative to tracker 100 is sufficient, the node location information could be excluded from the process.
In accordance with embodiments of the present invention, location engine 105 can be configured to implement a cost function by which moving object 150's position can be estimated. This cost function can be represented as:
where {circumflex over (α)} is the estimated position, T represents time, R represents the node (or “receiver,” which may be 1 or more), tij represents the known (or measured) time of arrival, θij represents the known angle of arrival, {dot over (f)}ij represents the known frequency, and α0 represents a priori information defining uncertainty of tracker 100's known position. The values of στ2, σφ−2, and σ{dot over (δ)}2 represent a confidence of the time of arrival, angle of arrival and Doppler measurements respectively, and τij(a), φij(a), and {dot over (δ)}ij(α) are the variables whose values can be selected using a non-linear least squares algorithm (e.g., the Levenberg-Marquardt algorithm) to minimize the cost function.
To implement this cost function from the measurements received from components 101-104, location engine 105 can be configured to process the measurements using the following version of the cost function:
{circumflex over (α)}=c1+c2+c3+c4
where c1 represents the Doppler component of the cost function, c2 represents the time of arrival component of the cost function, c3 represents the angle of arrival component of the cost function, and c4 represents the node location component of the cost function.
Each of the c1 through c4 components can be defined in terms of the following position vector:
{right arrow over (P)}=[A(1)−{right arrow over (B(n,1))}A(2)−{right arrow over (B(n,2))}A(3)−{right arrow over (B(n,3)])}
where A is the unknown position of moving object 150 defined as A=[xi, yi, zi] and {right arrow over (B)} is an n×1 vector (where n represents the number of nodes employed by tracker 100) of the position of the node of interest defined as B=[x(n×1)i, y(n×1)i, z(n×1)i].
In particular, c1 can be defined as:
where τobs is the measured time of arrival for the node of interest (i.e., ToAi), c is the speed of light, and τe is the emission time if known. If the emission time is not known this value is set to zero. στ is the standard deviation of time of arrival component 101.
c2 is defined as:
Where θ is defined as the four quadrant arctangent function of the two dimensional x, y plane between A and B. φ is the measured angle of arrival (i.e., AoAi). The operation of θ−φ is defined as taking the modulus of each operand relative to π and subtracting the difference. If the operand is greater than π then the sign of the resulting modulus operation is flipped prior to the difference being taken. σφ is the standard deviation of angle of arrival component 102.
c3 is defined as:
where σ{dot over (δ)} is the standard deviation of Doppler component 103, fdm is the measured Doppler frequency (i.e., Doppi), fc is the carrier frequency of the node of interest, fe is the measured frequency error, and V is the known velocity of the known node.
Finally, c4 is defined as:
c4=WT
Where W=pos−
Accordingly, the cost function to be minimized can be implemented within location engine 105 as:
Location engine 105 can continuously receive the series of time of arrival measurements (ToAi), the series of angle of arrival measurements (AoAi), the series of Doppler measurement (Doppi), and the series of locations (Bi), and for each set of measurements (e.g, ToA1, AoA1, Dopp1, and B1), can input the measurements into the respective component (c1-c4) and then minimize the cost function by a non-linear least squares algorithm (e.g., Levenberg-Marquardt). The values of A that produce a minimum can be selected as the estimated position of moving object 150 at the corresponding time. Because location engine 105 generates this estimated position from the time of arrival, angle of arrival, Doppler shift, and known location of the node(s), a highly accurate estimate can be obtained even when tracker 100 employs a single node.
As described above, each time tracker 100 receives a communication from moving object 150 it can generate a corresponding angle of arrival measurements, time of arrival measurement, Doppler measurement, and node location. For example at time t1,
In summary, location engine 105 can be configured to estimate a position of a moving object based on multiple types of measurements obtained from processing a communication emitted by the object and based on a known location of one or more nodes that received the communication. By employing the multiple types of measurements and by minimizing a cost function based on such measurements, location engine 105 can produce accurate estimates even when a single node is available to provide measurements of the received communications.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description.
Number | Name | Date | Kind |
---|---|---|---|
5890068 | Fattouche | Mar 1999 | A |
9880259 | Ramlall | Jan 2018 | B2 |
20040032361 | Kirscht | Feb 2004 | A1 |
20070010956 | Nerguizian | Jan 2007 | A1 |
20080133126 | Dupray | Jun 2008 | A1 |
20170276480 | Hedley | Sep 2017 | A1 |
20180284149 | Kommi | Oct 2018 | A1 |