METHOD AND SYSTEM FOR 3D POSITION ESTIMATION OF A GNSS RECEIVER USING TRAVEL TIME MEASUREMENTS

- Umm AI-Qura University

A system and associated methodology determines the 3D position of a Global Navigation Satellite System (GNSS) receiver using travel times of a signal. In addition, the system determines a clock offset between the GNSS receiver and satellites. The system finds the required coordinate component while minimizing the computational requirement.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority from International PCT Application No. PCT/IB2014/002237 filed Oct. 27, 2014, the entire contents of which are incorporated herein by reference.

BACKGROUND

The proliferation of wireless and mobile devices has promoted the demand for context-aware applications, in which location is viewed as one of the most significant contexts. In addition, accurately determining a 3D position of an object is needed in many situations such as in aircrafts, vehicles and mobile devices location systems. A commonly used method for object localization is trilateration. Typically, a trilateration based object localization system makes use of Time of Arrival measurements from three reference stations. One drawback of trilateration is an ambiguity that arises in one of the 3D components. The ambiguity cannot be resolved without prior knowledge of the location of the object. Another drawback of trilateration is the difficulty in solving the nonlinear system of equations involved. For the 2D case, some of the methods to solve the nonlinear system are described in: B. Saduon and O. Al-Bayari, “Location based services using geographical information systems,” Computer Communications, vol. 30, 2007, pp. 3154-3160, Y. Zhao, “Standardization of mobile phone positioning for 3G systems,” IEEE Communication Magazine, 2002, pp. 106-108, Y. T. Chan, “A simple and efficient estimator or hyperbolic location,” IEEE Transactions on Signal Processing, vol. 42, no. 8, 1994, pp. 1905-1915, S. Tekinay, E. Chao, and R. Richton, “Performance benchmarking for wireless location systems,” IEEE Communication Magazine, 1998, pp. 72-76, J. Caffery Jr., “A new geometry approach to TOA location,” IEEE Vehicular Technology Conference, IEEE VTS Fall 2000, vol. 4, 2000, pp. 1943-1949, S. Venkatraman, and J. Caffery Jr., “Hybrid TOA/AOA techniques for mobile location in non-line-of-sight environments,” IEEE wireless communications and Networking Conference (WCNC'04), vol. 1, 2004, pp. 274-278, K. W. Cheung, H. C. SO, W. K. Ma, and Y. T. Chan, “Least squares algorithms for time of arrival based mobile location,” IEEE Transactions on Signal Processing, vol. 52, no. 4, 2004, pp. 1121-1128, S. Venkatraman, J. Caffery Jr., and H. R. You, “A novel TOA location algorithm using LOS range estimation for NLOS environments,” IEEE Transactions on Vehicular Technology, vol. 53, no. 5, 2004, pp. 1515-1524, S. Fischer, H. Grubeck, A. Kangas, H. Koorapaty, E. Larsson, and P. Lundqvist, “Time of arrival estimation of narrowband TDMA signals for mobile positioning,” IEEE International Symposium on Personal, Indoor and Mobile Radio Communications, vol. 1, 1998, pp. 451-455, P. N. Pathirana, A. V. Savkin, S. Jha, “Location estimation and trajectory prediction for cellular networks with mobile base stations,” IEEE Transactions on Vehicular Technology, vol. 53, no. 6, 2004, pp. 1903-1913, S. Al-Jazzar, J. Caffery, H. R. You, “Scattering-model-based methods for TOA location in NLOS environments,” IEEE Transactions on Vehicular Technology, vol. 56, no. 2, 2007, pp. 583-593, and A. Y. Olenko, K. T. Wong, S. A. Qasmi, and J. Ahmadi-Shokouh, “Analytically derived uplink/downlink TOA and 2D-DOA distribution with scatters in 3D hemispheroid surrounding the mobile,” IEEE Transactions on Antennas and Propagation, vol. 54, no. 9, 2006, pp. 2446-2454 each incorporated herein by reference in its entirety. For the 3D case, some methods are describe in: Q. Wan and Y. N. Peng, “An improved 3-dimensional mobile location method using volume measurements of tetrahedron,” The 4th World Congress on Intelligent Control and Automation, Shanghai, China, June 2002, pp. 2181-2185, F. Thomas, and L. Ros, “Revisiting trilateration for robot localization,” IEEE Transactions on Robotics, vol. 21, no. 1, 2005, pp. 93-101, I. Jami, M. Ali, and R. F. Ormandroyd, “Comparison of methods of locating and tracking cellular mobiles,” Novel methods of location tracking of cellular mobiles and their system applications, IEE Colloquium, London, UK, 1999, D. E. Manolakis, “Efficient solution and performance analysis of 3D position estimation by trilateration,” IEEE Transactions on Aerospace and Electronic Systems, vol. 32, no. 4, 1996, pp. 1239-1248, J. Zhou, J. K. Yin Ng, “Mobile location estimation using a 3-dimension ellipse propagation model,” Technical Report: COMP-04-006, Dept. of Computer Science, Hong Kong Baptist University, 2004, G. Shen, R. Zetik, and R. S. Thoma, “Performance comparison of TOA and TDOA based location estimation algorithms in LOS environment,” 5th Workshop on Positioning, Navigation and Communication (WPNC'08), 2008, pp. 71-78, J. R. Gonzalez, and C. J. Bleakley, “Accuracy of spread spectrum techniques for ultrasonic indoor location,” International Conference on Digital Signal Processing (ICDSP 2007), 2007, pp. 284-287, and C. P. Yen, and P. J. Volts, “Direct Location Estimation using Indoor Wireless Communication Systems,” Applications and Technology Conference 2007, Long Island, May 2007, pp. 1-5, each incorporated herein by reference in its entirety. Statistical approaches are described in W. H. Foy, “Position location solutions by Taylor series estimation,” IEEE transactions on Aerospace and Electronic Systems, vol. 12, no. 2, March 1976, pp. 187-194 incorporated herein by reference in its entirety. Other methods are described in I. Guvenc and C. C. Chong, “A survey on TOA based wireless localization and NLOS Mitigation Techniques,” IEEE communications Surveys & Tutorials, vol. 11, no. 3, 3rd QUARTER 2009 incorporated herein by reference in its entirety. In addition, in many applications, the 3D position of the object needs to be found using limited computational and power resources. Due to the reasons mentioned above there is a need for a method and system that requires minimal processing power, uses existing technologies and provides the exact 3D location.

A global navigation satellite system (GNSS) is a space-based satellite radio navigation system that provides three-dimensional (3-D) receiver positioning by solving a set of nonlinear equations using pseudorange measurements. The current approach of solving the nonlinear equations is to linearize the pseudorange equations and calculate the receiver position iteratively, starting with an initial position guess. For near-earth navigation, the center of the earth is usually used as a good initial position guess to make iterative algorithms converge to the position solution. Non-iterative closed-form (CF) and direct solutions to the nonlinear pseudorange GNSS equations provide potential improvements. A direct solution that does not require an initial position guess is attractive for space navigation and for unusual planar array configurations using pseudo-satellites (pseudolites), where the iterative procedure is sensitive to the initial position guess as described in: J. McKay, “Optimization of a GPS-Based Navigation Reference System,” MS Thesis, School of Engineering, Air Force Institute of Technology, Wright-Patterson AFB, OH, 1996 and M. Pachter, and J. McKay, “Geometry Optimization of a GPS-Based Navigation System,” Navigation: Journal of the institute of Navigation, vol. 44, no. 4, 457-470, winter 1997-1998 each incorporated herein by reference in its entirety. Moreover, solutions that require fewer iterations and floating-point operations (FLOPS) are attractive for high-speed vehicles, e.g. spacecrafts, where the computational and power resources may be limited. This results in reduced time to first fix (TTFF), which also helps to acquire more measurements quickly. CF solutions have been developed and described in: S. Bancroft, “An algebraic Solution of the GPS equations,” IEEE Transactions on Aerospace an Electronic Systems, vol. 21, no. 1, pp. 56-59, 1985, J. Leva, “An alternative closed-form solution to the GPS Pseudo-Range Equations,” IEEE Transactions on Aerospace and Electronic Systems, vol. 32, no. 4, pp. 1430-1439, 1996, L. Krause, “A Direct Solution to GPS Type Navigation Equations,” IEEE Transactions on Aerospace and Electronic Systems, vol. 23, no. 2, pp. 223-232, 1987, J. Abel and J. Chaffee, “Existence and Uniqueness of GPS solutions,” IEEE transactions on Aerospace and Electronic Systems, vol. 27, no. 6, pp. 952-956, 1991, J. Chaffee and J. Abel, “On the Exact Solutions of Pseudorange Equations,” IEEE Transactions on Aerospace and Electronic systems, vol. 30, no. 4, pp. 1021-1030, 1994, J. Hoshen, “The GPS Equations and the Problem of Apollonius,” IEEE Transactions on Aerospace and Electronic Systems, vol. 32, No. 3, pp. 1116-1124, 1996, S. Nardi, and M. Pachter, “GPS Estimation Algorithm Using Stochastic Modeling,” Proceedings of the Conference on Decision and Control, Tampa, Fla., USA, 1998, and M. Pachter, and S. Nardi, “Stochastic Modeling in GPS Estimation,” Advances in Intelligent System: Concepts, Tools, and Applications, Kluwer Academic, vol. 35, pp. 389-400, 1999, each incorporated herein by reference in its entirety.

The foregoing “background” description is for the purpose of generally presenting the context of the disclosure. Work of the inventor, to the extent it is described in this background section, as well as aspects of the description which may not otherwise qualify as prior art at the time of filing, are neither expressly or impliedly admitted as prior art against the present invention. The foregoing paragraphs have been provided by way of general introduction, and are not intended to limit the scope of the following claims. The described embodiments, together with further advantages, will be best understood by reference to the following detailed description taken in conjunction with the accompanying drawings.

SUMMARY

A method for determining a 3D position of a Global Navigation Satellite System (GNSS) receiver is provided that comprises obtaining a first, a second, a third, a fourth, and a fifth travel times of a signal from a first, a second, a third, a fourth, and a fifth satellites, determining the 3D position of the GNSS receiver as a function of the first, the second, the third, the fourth, and the fifth travel times of the signal from the first, the second, the third, the fourth, and the fifth satellites, and positions of the first, second, third, fourth, and fifth satellites, determining a clock offset between synchronized clocks of the first, the second, the third, the fourth, and the fifth satellites and a clock of the GNSS receiver and sending the 3D position of the GNSS receiver and the clock offset to an external device to provide enhanced accurate position data to host applications.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:

FIG. 1 is a schematic diagram that shows an object and four stations according to one example;

FIG. 2 is an exemplary block diagram of a station according to one example;

FIG. 3 is a schematic diagram of a 3D position estimating system according to one example;

FIG. 4 is a flow chart showing a method for determining a 3D position of the object according to one example;

FIG. 5 is a table showing a list of stations according to one example;

FIG. 6 is a flow chart showing a method for determining the 3D position of the object according to one example;

FIG. 7 is an exemplary block diagram of a server according to one example;

FIG. 8 is a schematic diagram of the 3D position estimating system according to one example; and

FIG. 9 is a flow chart showing a method for determining the 3D position of the object according to one example.

DETAILED DESCRIPTION

Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout several views, the following description relates to determining a 3D object position using measurements from four stations. Specially, as shown in the drawings and related discussion, in one embodiment, the measurements from the four stations are sent to a server. The server, using processing circuitry, determines the 3D object position. Then, the server can send the 3D object position to a user.

Since recent technological advances have enabled the development of low cost, low power and multifunctional sensor devices, many systems use localization information to provide directions and services related to the user's current location. For example, cellular operators use location information to find the source of emergency calls. Location information is also essential for wirelessly tracking objects such as vehicles and valuable goods. There are several techniques for localization using data, such as the time when signals arrives and the received signal strength.

Time of Arrival (TOA) method uses a travel time from a transmitter to a receiver to measure the distance between the two. Since the TOA method relies on the difference between a time of arrival and a time of departure, all receivers and transmitters must be synchronized so there in no error due to clock offsets. TOA measurements are also used in locating cell phones and for seismological studies. The TOA method is based on time of flight (TOF) principle of distance measurement where the sensed parameter, time interval, is converted to distance by multiplication by the speed of propagation. In the TOA method, location estimates are found by determining points of intersections of circles (2D case) or spheres (3D case) whose centers are located at fixed stations and radii are estimated distances to an object. Trilateration is the determination of the 3D object position using three stations at known locations. In trilateration, a solution of a system of quadratic equations is involved where an exact solution is not easy to obtain. However, many algebraic and numerical solutions are available. These approaches involve complex geometric computations, which usually require a relatively long execution time and thus are not suitable for low-cost applications with constrained power and computational resources. In addition, algorithms that use three TOA measurements with three stations to obtain a 3D position solution face a twofold ambiguity and can be only be resolved if some information about the object general location is available. Described herein is an efficient and computational cost effective method and system for determining the 3D object position.

FIG. 1 is a schematic representation of a 3D position estimation system. The position of the object 100 is determined by the 3D position estimation system. As shown in FIG. 1, the system can be configured in a 3D rectangular coordinate system. The system consists of four stations 102,104,106,108 as shown in FIG. 1. The stations are arranged at different axis coordinates. The object 100 can comprise any object that can be detected by the stations 102,104,106,108. In selected embodiments, the object 100 may be an aircraft, a missile, a satellite, a vehicle, or the like. In other embodiments, the object 100 may be any type of electronic device capable of being detected by the stations 102,104,106,108. For example, the object 100 can be a cellular telephone, a paging device, a GPS receiver, or the like. Each of the four stations 102,104,106,108 is equipped with at least one sensor. Each station can be equipped with many sensors to detect different type of objects. In selected embodiments, the sensor type can depend on the type of position determining system being employed. For example, the position determining system like radar, sonar, GPS, cellular and the like, each employ appropriate types of sensors to detect the relevant signals. In selected embodiments, the object location system may be contained at least in part in a spacecraft or aircraft such as MILSTAR satellite or JSTARS aircraft. Each of the four stations 102,104,106,108 is equipped with a clock.

A transmitted or reflected signal from the object 100 is received by each of the sensors at stations 102,104,106,108. The time of arrival for the signal from the object 100 to each station is recorded. A range measurement from the object 100 to each of the station can be calculated based on the TOA and a signal propagation speed in a media. In one embodiment, the range measurement from the object 100 to each of the station is found by multiplying the TOA by the signal propagation speed in the media. In selected embodiments, the signal propagation speed in the media is the speed of light for electromagnetic based systems and the speed of sound in that medium for sonar based systems.

FIG. 2 is a block diagram showing the station components according to one example. Each station may include communication circuitry 200, processing circuitry 202 and synchronization circuitry 204 as would be understood by one of ordinary skill in the art. The synchronization circuitry 204 is responsible of the synchronization of the clocks of stations 102,104,106, 108. The communication circuitry 200 sends and receives data. The processing circuitry 202 receives data from the sensor. In selected embodiments, the processing circuitry 202 calculates the range measurements as described above.

FIG. 3 is a schematic representation of the 3D position estimation system according to one example. The stations 102, 104, 106, 108 may connect via communication circuitry 200 to the server 300 to transmit and receive data. The stations 102,104,106, 108 may transmit the range measurements calculated by the processing circuitry 202 to the server 300. The server 300 includes a CPU 700 as shown in FIG. 7. The user 304 may connect via the network 302 to the server 300. The user 304 may send via the network 302 data such as information about the object that needs to be located. The information may indicate the type of the object that needs to be localized. The user may also indicate which coordinate is needed. The CPU 700 may use a table that lists the type of sensors available in each station to choose the four stations. The table may be stored in the server 300. In selected embodiments, the table may also include a status indicating the availability of the station. For example, a particular station may be down for maintenance and therefore may not be used to detect the object 100. The network 302 is any network that allows the server 300 and the user 304 to communicate data with each other such as a Wide Area Network, Local Area Network or the Internet. The server 300 is one or more servers that respond to requests across a computer network and processes information. In selected embodiments, the stations 102, 104, 106, 108 may send, via the communication circuitry 200, TOA measurements to the server 300. Then, the server 300 may calculate the range measurements using the CPU 700. The user 304 is one or more users trying to locate the object 100. The user 304 may be a mobile device application or other software trying to locate the object 100. In other embodiments, the user 304 may be the owner of the mobile device being located. The object 100 may be part of a group of objects that needs to be located.

FIG. 4 is a flowchart that illustrates the method to find the 3D position of the object 100 according to one example. At step S400, the server 300 may choose the four stations that need to be used to find the 3D position. In other embodiments, the user may indicate which four stations should be used. For example, the user may be interested in the area (region) covered by those stations. In this example, it is assumed that the stations positions are known. In selected embodiments, stations 102, 104, 106, 108 are located at (x1, y1, z1), (x2, y2, z2), (x3, Y3, z3), and (x4, y4, z4) respectively in the 3-dimensional rectangular coordinate system. The coordinates (x1, y1, z1), (x2, y2, z2), (x3, y3, z3), and (x4, y4, z4) can be stored in the server 300. In selected embodiments, the station 102 may represent the reference of the 3-dimensional rectangular coordinate system.

At step S402, the clocks of the four stations and the object are synchronized using the synchronization circuitry 204. In one embodiment, the synchronization method may be that disclosed in U.S. Pat. No. 5,469,409, entitled “METHOD FOR CLOCK CALIBRATION IN A POSITION DETERMINATION SYSTEM” the entire disclosure of which is incorporated herein by reference.

At step S404, the server 300 may obtain the time of arrival of the signal from stations 102, 104, 106 and 108. At step 406, the server 300 using processing circuitry computes the range of measurement based on the time of arrival and the signal speed in the medium. In selected embodiments, the server 300 can compute the range of measurement by multiplying the time of arrival and the signal speed in the medium. In selected embodiments, the signal may be reflected or transmitted from the object 100. In other embodiments, the signal can be received and re-transmitted by the object 100. At step S408, the server 300 can compute the 3D position of the object 100. The unknown location of the object 100 may be defined in the 3-dimensional rectangular coordinate system as (x,y,z).

The equations of the four available TOA measurements may be written as


(x−x1)2+(y−y1)2+(z−z1)2=r12  (1)


(x−x2)2+(y−y2)2+(z−z2)2=r22  (2)


(x−x3)2+(y−y3)2+(z−z3)2=r32  (3)


(x−x4)2+(y−y4)2+(z−z4)2=r42  (4)

Subtracting equations (2), (3) and (4) from equation (1), three expressions are obtained:

( x 2 - x 1 ) x + ( y 2 - y 1 ) y + ( z 2 - z 1 ) z = 1 2 A 1 ( 5 ) ( x 3 - x 1 ) x + ( y 3 - y 1 ) y + ( z 3 - z 1 ) z = 1 2 A 2 ( 6 ) ( x 4 - x 1 ) x + ( y 4 - y 1 ) y + ( z 4 - z 1 ) z = 1 2 A 3 where ( 7 ) A 1 = ( r 1 2 - r 2 2 ) + ( x 2 2 - x 1 2 ) + ( y 2 2 - y 1 2 ) + ( z 2 2 - z 1 2 ) ( 8 ) A 2 = ( r 1 2 - r 3 2 ) + ( x 3 2 - x 1 2 ) + ( y 3 2 - y 1 2 ) + ( z 3 2 - z 1 2 ) ( 9 ) A 3 = ( r 1 2 - r 4 2 ) + ( x 4 2 - x 1 2 ) + ( y 4 2 - y 1 2 ) + ( z 4 2 - z 1 2 ) ( 10 )

to cancel out z, equations (5) and (6) are first multiplied by (z3−z1) and (z2−z1) respectively, and then (6) is subtracted from (5). Rearranging the resultant to get y explicitly, yields

y = 1 2 I 3 - x I 1 I 5 ( 11 )

Repeating the previous step by multiplying equations (5) and (7) by (z4−z1) and (z2−z1) respectively, and then rearranging the expression resulting from subtracting (7) from (5), yields another expression for y as:

y = 1 2 I 4 - x I 2 I 5 ( 12 )

An expression for x is obtained from (11) and (12) in terms of the given information and independent of the other two position components as:

x = 1 2 I 4 I 5 - I 3 I 6 I 2 I 5 - I 1 I 6 ( 13 )

where

  • I1=(z3−z1)(x2−x1)−(z2−z1)(x3−x1),
  • I2=(z4−z1)(x2−x1)−(z2−z1)(x4−x1),
  • I3=(z3−z1)A1−(z2−z1)A2,
  • I4=(z4−z1)A1−(z2−z1)A3,
  • I5=(z3−z1)(y2−y1)−(z2−z1)(y3−y1), and
  • I6=(z4−z1)(y2−y1)−(z2−z1)(y4−y1),

In a similar way, expressions for y and z may be obtained independently from the other two respective position components as:

y = 1 2 I 1 I 4 - I 2 I 3 I 1 I 6 - I 2 I 5 ( 14 ) z = 1 2 I 7 I 10 - I 8 I 9 I 7 I 12 - I 8 I 11 ( 15 )

where

  • I7=(y3−y1)(x2−x1)−(y2−y1)(x3−x1),
  • I8=(y4−y1)(x2−x1)−(y2−y1)(x4−x1),
  • I9=(y3−y1)A1−(y2−y1)A2,
  • I10=(y4−y1)A1−(y2−y1)A3,
  • I11=(y3−y1)(z2−z1)−(y2−y1)(z3−z1) and
  • I12=(y4−y1)(z2−z1)−(y2−y1)(z4−z1),

Equations (13), (14) and (15) can be used to calculate the 3D position of the object 100 at step S408. Then, the server 300 can send the coordinates to the user 304 via the network 302. The server 300 may send the 3D position of the object 100 to an external device to provide accurate position data to host applications. The accurate position data may be used by smartphone applications. The 3D position of the object 100 found has no ambiguities as in the methods that use three stations. The computation of each position component is independent of the other components. For example, the server 300 may find the x coordinate independently of the y and z coordinates. Thus, the method has the advantage of calculating the position component of interest only, for example, the vertical position (altimeter mode). The method can also be used to initiate more computationally intensive iterative positioning algorithms to help overcome divergence problems.

FIG. 5 is a table showing the different information stored in the server 300 according to one example. In selected embodiments, the table contains a station identification number, a station location, a type of position determining system, a range of frequencies, a sensor type, and a status. For example, the table shows that station 501 uses a radar based position system with a frequency of 2.4 GHz and the sensor type used is an antenna. The processing circuitry may analyze the information to choose the four stations at step S400. The analysis may include the status of the station, the type of position determining system used and the range of frequencies. In selected embodiments, the CPU 700 may choose the four stations with the most precise clock synchronization system (not shown). The clock synchronization is directly related to accuracy of the position. For example, if the accuracy is to be of the order of 1-2 m then the clock synchronization should be accurate to a nanosecond or better. The accuracy of each station may be also stored in the server 300. The CPU 700 may use additional information as would be understood to one of ordinary skill in the art. For example, the processing circuitry may not choose station that use GPS based position determining system during inclement weather or when a clear line of sight is not available.

FIG. 6 is a flowchart showing the method for determining location according to one example. At step S600, the time of arrival of the signal can be sent, from the stations 102, 104, 106, 108 via the communication circuitry 200, to the server 300. At step S602, the server 300 using the processing circuitry can compute the range measurement. At step S604, the processing circuitry may check whether the x coordinate of the object is needed. The user 304 may indicate which coordinates are needed to the server 300 via the network 302. The user 304 depending on the application may need only one coordinate from x, y and z coordinates. At step S606, in response to determining that the x coordinate is needed, the x coordinate is calculated using equation (13). In response to determining that the x coordinate is not needed, then the process goes to step S608. At step S608, the server 300 may check whether the y coordinate is needed. In response to determining that the y coordinate is needed the process goes to step S610. At step S610, the y coordinate is found using equation (14). In response to determining that the y coordinate is not needed then the process goes to step S612. At step S612, the server 300 may check whether the z coordinate is needed. In response to determining that the z coordinate is needed then the process goes to step S614. At step S614, the z coordinate is calculated using equation (15).

In selected embodiments, the user may indicate the coordinate that needs to be determined for a group of objects. The user using an interface may enter the coordinate needed only once along with the group of objects that needs localization. For example, the user may be interested in the z coordinates. In other example, the user may be interested in two the x and y coordinates as in tracking ships. In selected embodiments, the user may indicate the area to detect any object presents. The user may also indicate using the interface, the period of time when the location should be determined. The server 300 then gets the TOA measurements from the four stations during the indicated period.

In selected embodiments, the disclosed system and associated methodology may be an indoor positioning system. The type of position determining system may be based on radio-frequency identification. The object may be equipped with a RFID reader and the stations may be equipped with RFID tags. For example, the stations may be fixed objects in the surrounding environment whose positions are known and stored in the server 300. Once the object moves inside the surrounding of the RFID tags its position can be calculated using steps S400-S408.

FIG. 7 is an exemplary block diagram of the server 300 according to one embodiment. In FIG. 7, the server includes a CPU 700 which performs the processes described above. The process data and instructions may be stored in memory 702. These processes and instructions may also be stored on a storage medium disk 704 such as a hard drive (HDD) or portable storage medium or may be stored remotely. Further, the claimed advancements are not limited by the form of the computer-readable media on which the instructions of the inventive process are stored. For example, the instructions may be stored on CDs, DVDs, in FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk or any other information processing device with which the server communicates, such as a server or computer.

Further, the claimed advancements may be provided as a utility application, background daemon, or component of an operating system, or combination thereof, executing in conjunction with CPU 700 and an operating system such as Microsoft Windows 7, UNIX, Solaris, LINUX, Apple MAC-OS and other systems known to those skilled in the art.

CPU 700 may be a Xenon or Core processor from Intel of America or an Opteron processor from AMD of America, or may be other processor types that would be recognized by one of ordinary skill in the art. Alternatively, the CPU 700 may be implemented on an FPGA, ASIC, PLD or using discrete logic circuits, as one of ordinary skill in the art would recognize. Further, CPU 700 may be implemented as multiple processors cooperatively working in parallel to perform the instructions of the inventive processes described above.

The server in FIG. 7 also includes a network controller 706, such as an Intel Ethernet PRO network interface card from Intel Corporation of America, for interfacing with network 302. As can be appreciated, the network 302 can be a public network, such as the Internet, or a private network such as an LAN or WAN network, or any combination thereof and can also include PSTN or ISDN sub-networks. The network 302 can also be wireless such as a cellular network including EDGE, 3G and 4G wireless cellular systems. The wireless network can also be WiFi, Bluetooth, or any other wireless form of communication that is known.

The server further includes a display controller 708, such as a NVIDIA GeForce GTX or Quadro graphics adaptor from NVIDIA Corporation of America for interfacing with display 710, such as a Hewlett Packard HPL2445w LCD monitor. A general purpose I/O interface 712 interfaces with a keyboard and/or mouse 714 as well as a touch screen panel 716 on or separate from display 710. General purpose I/O interface also connects to a variety of peripherals 718 including printers and scanners, such as an OfficeJet or DeskJet from Hewlett Packard.

A sound controller 720 is also provided in the server, such as Sound Blaster X-Fi Titanium from Creative, to interface with speakers/microphone 722 thereby providing sounds and/or music.

The general purpose storage controller 724 connects the storage medium disk 704 with communication bus 726, which may be an ISA, EISA, VESA, PCI, or similar, for interconnecting all of the components of the mobile device. A description of the general features and functionality of the display 710, keyboard and/or mouse 714, as well as the display controller 708, storage controller 724, network controller 706, sound controller 720, and general purpose I/O interface 712 is omitted herein for brevity as these features are known.

In other embodiments, the system may be used for the estimation of a 3D GNSS receiver position. A GNSS receiver determines its position using satellites. The 3D GNSS receiver position may be defined in the 3-dimensional rectangular coordinate system as x, y, z. The GNSS receiver measures the transmitting time of GNSS signal emitted from the satellites known as pseudorange measurements of the GNSS receiver. The pseudorange measurements may be used to construct a system of quadratic (nonlinear) equations. In addition, a clock-offset τ exists between the synchronized clocks of the satellites and the GNSS receiver's clock. Therefore, for a direct unambiguous analytical solution, five such equations can be used to estimate four unknowns (x, y, z, τ) and to eliminate the resulting ambiguity due to the quadratic nature of the equations. With the extra pseudorange measurements, several sets of five measurements can be formed and utilized to improve the estimation accuracy and fault detection.

FIG. 8 is a schematic representation of the 3D position estimation system according to one example. The system may consist of five satellites 802, 804, 806, 810, 812. The system may include a Global Navigation Satellite System (GNSS) receiver 800. The satellites 802, 804, 806, 810, 812 broadcast signals that are received by the GNSS receiver 800. The GNSS receiver 800 may be located at the object 100 position. The satellites 802, 804, 806, 810, 812 are GPS satellites. The satellites may also be satellite based augmentation system (SBAS) satellites. The GNSS 800 receiver may be a personal navigation device (PND), a cellphone with built-in GPS functionality or any GPS device as would be understood by one of ordinary skill in the art. The GNSS receiver 800 may comprise an antenna, a processor, a memory to store GNSS signal received, a radio frequency front end module and a baseband digital signal processing (DSP) module. The GNSS receiver 800 may also include communication circuitry to transmit measurements to the server 300.

The positions of the five satellites are known and may be represented by (ai, bi, ci) where i=1, . . . , 5. The pseudorange measurements may be represented by Ti, where i=1, . . . , 5. Ti is the known travel time of the signal from satellite i as calculated by the GNSS receiver. ti, i=1, . . . , 5, may represent the unknown actual time traveled by the signal from satellite i. Thus, ti=Ti−τ. The unknown position of the GNSS receiver may be represented by (x,y,z).

The i-th pseudorange measurement may be expressed as


c(Ti−τ)=√{square root over ((x−ai)2+(y−bi)2+(z−ci)2)}{square root over ((x−ai)2+(y−bi)2+(z−ci)2)}{square root over ((x−ai)2+(y−bi)2+(z−ci)2)}  (16)

where c is the speed of light in vacuum or the propagation speed of the GNSS signal in the medium between the GNSS satellites and the receiver.

Squaring both sides of the pseudorange measurement equation (16), the following five equations can be written


(x−a1)2+(y−b1)2+(z−c1)2=c2(T1−τ)  (17)


(x−a2)2+(y−b2)2+(z−c2)2=c2(T2−τ)  (18)


(x−a3)2+(y−b3)2+(z−c3)2=c2(T3−τ)  (19)


(x−a4)2+(y−b4)2+(z−c4)2=c2(T4−τ)  (20)


(x−a5)2+(y−b5)2+(z−c5)2=c2(T5−τ)  (21)

Expanding equations (17)-(21) and then subtracting equations (18)-(21) from equation (17) successively and rearranging, four expressions are obtained:

( a 2 - a 1 ) x + ( b 2 - b 1 ) y + ( c 2 - c 1 ) z = c 2 τ I 1 + 1 2 B 1 ( 22 ) ( a 3 - a 1 ) x + ( b 3 - b 1 ) y + ( c 3 - c 1 ) z = c 2 τ I 2 + 1 2 B 2 ( 23 ) ( a 4 - a 1 ) x + ( b 4 - b 1 ) y + ( c 4 - c 1 ) z = c 2 τ I 3 + 1 2 B 3 ( 24 ) ( a 5 - a 1 ) x + ( b 5 - b 1 ) y + ( c 5 - c 1 ) z = c 2 τ I 4 + 1 2 B 4 ( 25 )

where

  • L1=T2−T1,
  • L2=T3−T1,
  • L3=T4−T1,
  • L5=T5−T1,
  • B1=c2(T12−T22)+(a22−a12)+(b22−b12)+(c22−c12),
  • B2=c2(T12−T32)+(a32−a12)+(b32−b12)+(c32−c12),
  • B3=c2(T12−T42)+(a42−a12)+(b42−b12)+(c42−c12) and
  • B4=c2(T12−T52)+(a52−a12)+(b52−b12)+(c52−c12).

Multiplying (22) and (23) by J2 and J1 respectively, and then subtracting (23) from (22) and rearranging to cancel out z, the following expression is obtained:


L2[(a2−a1)x+(b2−b1)y+(c2−c1)z]−L1[(a3−a1)x+(b3−b1)y+(c3−c1)z]=½(B1L2−B2L1)  (26)

Similarly, equations (22) and (24) are multiplied by J3 and J1 respectively, and then subtracting (24) from (22) and rearranging to cancel out τ, the following expression is obtained:


L3[(a2−a1)x+(b2−b1)y+(c2−c1)z]−L1[(a4−a1)x+(b4−b1)y+(c4−c1)z]=½(B1L3−B3L1)  (27)

Finally, equations (22) and (25) are multiplied by J4 and J1 respectively, and then subtracting (25) from (22) and rearranging to cancel out τ, the following expression is obtained:


L4[(a2−a1)x+(b2−b1)y+(c2−c1)z]−L1[(a5−a1)x+(b5−b1)y+(c5−c1)z]=½(B1L4−B4L1)  (28)

Equations (26)-(28) may be further simplified by defining the following variables:

  • L11=L2(a2−a1)−L1(a3−a1),
  • L12=L2(b2−b1)−L1(b3−b1),
  • L13=L2(c2−c1)−L1(c3−c1),
  • L14=½(B1L2−B2L1),
  • L21=L3(a2−a1)−L1(a4−a1),
  • L22=L3(b2−b1)−L1 (b4−b1),
  • L23=L3(c2−c1)−L1(c4−c1),
  • L24=½(B1L3−B3L1),
  • L31=L4(a2−a1)−L1(a5−a1),
  • L32=L4(b2−b1)−L1(b5−b1),
  • L33=L4(c2−c1)−L1(c5−c1) and
  • L34=½(B1L4−B4L1).

Thus, equations (26)-(28) may be written as:


L11x+L12y+L13z=L14  (29)


L21x+L22y+L23z=L24  (30)


L31x+L32y+L33z=L34  (31)

To further simplify, the following variables are introduced:

  • J1=L23L11−L13L21
  • J2=L23L12−L13L22,
  • J3=L23L14−L13L24,
  • J4=L33L11−L13L31,
  • J5=L33L12−L13L32 and
  • J6=L33L14−L13L34.
    Multiplying equations (29) and (30) by L23 and L13 respectively, and then subtracting (30) from (29) and rearranging to cancel out z yields


J1x+J2y=J3  (32)

Similarity, equations (29) and (31) are multiplied by L33 and L13 respectively, and then subtracting (31) from (29) and rearranging to cancel out z yields


J4x+J5y=J6  (33)

From (32) and (33), a solution for x independent of the other unknown, y, z and τ, is obtained:

x = J 3 J 5 - J 2 J 6 J 1 J 5 - J 2 J 4 ( 34 )

Similarly, solutions for y, z and τ independent of the rest of the unknowns are obtained:

y = J 1 J 6 - J 3 J 4 J 1 J 5 - J 2 J 4 ( 35 ) z = K 1 K 6 - K 3 K 4 K 1 K 5 - K 2 K 4 ( 36 )

where

  • K1=L22L11−L12L21,
  • K2=L22L13−L12L23,
  • K3=L22L14−L12L24,
  • K4=L32L14−L12L31,
  • K5=L32L13−L12L33 and
  • K6=L32L14−L12L34.
    Finally the clock-offset may be expressed as:

τ = N 3 N 4 - N 1 N 6 c 2 ( N 1 N 5 - N 2 N 4 ) ( 37 )

where

  • M1=a2−a1,
  • M2=a3−a1,
  • M3=a4−a1,
  • M4=a5−a1,
  • M11=M2(b2−b1)−M1(b3−b1),
  • M12=M2(c2−c1)−M1(c3−c1),
  • M13=M2(T2−T1)−M1(T3−T1),
  • M14=½(M2B1−M1B2),
  • M21=M3(b2−b1)−M1(b4−b1),
  • M22=M3(c2−c1)−M1(c4−c1),
  • M23=M3(T2−T1)−M1(T4−T1),
  • M24=½(M3B1−M1B3),
  • M31=M4(b2−b1)−M1(b5−b1),
  • M32=M4(c2−c1)−M1(c5−c1),
  • M33=M4(T2−T1)−M1(T5−T1),
  • M34=½(M4B1−M1B4),
  • N1=M21M12−M11M22,
  • N2=M21M13−M11M23,
  • N3=M21M14−M11M24,
  • N4=M31M12−M11M32,
  • N5=M31M13−M11M33 and
  • N6=M31M14−M11M34.

FIG. 9 is a flowchart that illustrates the method to find the 3D position of the object according to one example. At step S900, the server 300 may choose the five satellites that need to be used to find the 3D position. In one embodiment, the method to search for the five satellites may be that disclosed in U.S. Pat. No. 8,436,711B2 entitled “ENHANCING SEARCH CAPACITY OF GLOBAL NAVIGATION SATELLITE SYSTEM (GNSS) RECEIVERS” the entire disclosure of which is incorporated herein by reference. In this example, it is assumed that the satellites positions are known. The satellites positions can be stored in the server 300. At step S902, the server 300 may obtain the travel times of the signals from the satellites to the GNSS receiver 800. At step 904, the server 300 may check whether the x coordinate is needed. The user 304 may indicate which coordinates are needed to the server 300 via the network 302. The user 304 depending on the application may need only one coordinate from x, y and z coordinates or the clock-offset r. In response to determining that the x coordinate is needed, the server 300 compute the x coordinate using equation (34) at step S906. At step S908, the server 300 may check whether they coordinate is needed. In response to determining that they coordinate is needed, the server 300 compute they coordinate using equation (35) at step S910. At step S912, the server 300 may check whether the z coordinate is needed. In response to determining that the z coordinate is needed, the server 300 compute the z coordinated using equation (36) at step S912. At step S916, the server 300 may check whether the clock-offset τ is needed. In response to determining that the clock-offset τ is needed, the server 300 compute the clock offset τ using equation (37) at step S916.

A system which includes the features in the foregoing description provides numerous advantages to the users. In particular, the method and system determines the position of the object using exactly four TOA from four different stations. The present disclosure has the advantage of finding the exact location without ambiguities. Thus, the present disclosure provides an improvement to the technical field by finding the exact position without ambiguities and by reducing errors. In addition, the present disclosure has the advantage of finding only the needed components thus minimizing computation. Thus, the present disclosure improves the functioning of the server by increasing processing speed, decreasing power consumption and resulting in a chip area reduction. The presented method can be applied to indoor or outdoor localization. With the rapid development of wireless sensor networks, location information becomes critically essential and indispensable. In many applications, it is important to associate sensed data with locations. In addition, the presented method may also be used for localization using satellites. The presented method has the advantage to minimize the computational requirement for localization using satellites, which make it beneficial to use in locating high-speed vehicles. The method also finds the clock-offset without ambiguities.

Obviously, numerous modifications and variations are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.

Thus, the foregoing discussion discloses and describes merely exemplary embodiments of the present invention. As will be understood by those skilled in the art, the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting of the scope of the invention, as well as other claims. The disclosure, including any readily discernible variants of the teachings herein, define, in part, the scope of the foregoing claim terminology such that no inventive subject matter is dedicated to the public.

The above disclosure also encompasses the embodiments listed below.

    • (1) A method for determining a 3D position of a Global Navigation Satellite System (GNSS) receiver, including: obtaining a first, a second, a third, a fourth, and a fifth travel times of a signal from a first, a second, a third, a fourth, and a fifth satellites; determining, using processing circuitry and with reduced computation time, the 3D position of the GNSS receiver as a function of the first, the second, the third, the fourth, and the fifth travel times of the signal from the first, the second, the third, the fourth, and the fifth satellites, and positions of the first, second, third, fourth, and fifth satellites; determining, using the processing circuitry, a clock offset between synchronized clocks of the first, the second, the third, the fourth, and the fifth satellites and a clock of the GNSS receiver; and sending the 3D position of the GNSS receiver and the clock offset to an external device to provide enhanced position data to host applications.
    • (2) The method for determining the 3D position of the Global Navigation Satellite System (GNSS) receiver of (1), wherein the 3D position of the GNSS receiver is defined by x, y and z coordinates.
    • (3) The method for determining the 3D position of the GNSS receiver of (2), further including: calculating the x coordinate as a function of J1, J2, J3, J4, J5 and J6 where
      • J1=L23L11−L13L21,
      • J2=L23L12−L13L22,
      • J3=L23L14−L13L24,
      • J4=L33L11−L13L31,
      • J5=L33L12−L13L32,
      • J6=L33L14−L13L34,
      • L11=L2(a2−a1)−L1(a3−a1),
      • L12=L2(b2−b1)−L1(b3−b1),
      • L13=L2(c2−c1)−L1(c3−c1),
      • L14=½(B1L2−B2L1),
      • L21=L2(a2−a1)−L1(a4−a1),
      • L22=L3(b2−b1)−L1(b4−b1),
      • L23=L3(c2−c1)−L1(c4−c1),
      • L24=½(B1L3−B3L1),
      • L31=L4(a2−a1)−L1(a5−a1),
      • L32=L4(b2−b1)−L1(b5−b1),
      • L33=L4(c2−c1)−L1(c5−c1),
      • L34=½(B1L4−B4L1),
      • L1=T2−T1,
      • L2=T3−T1,
      • L3=T4−T1,
      • L5=T5−T1,
      • B1=c2(T12−T22)+(a22−a12)+(b22−b12)+(c22−c12),
      • B2=c2(T12−T32)+(a32−a12)+(b32−b12)+(c32−c12),
      • B3=c2(T12−T42)+(a42−a12)+(b42−b12)+(c42−c12),
      • B4=c2(T12−T52)+(a52−a12)+(b52−b12)+(c52−c12),
      • T1, T2, T3, T4, and T5 are the first, the second, the third, the fourth, and the fifth travel times of the signal from the first, the second, the third, the fourth, and the fifth satellites,
      • a1, b1, c1 are coordinates defining the 3D position of the first satellite,
      • a2, b2, c2 are the coordinates defining the 3D position of the second satellite,
      • a3, b3, c3 are the coordinates defining the 3D position of the third satellite,
      • a4, b4, c4 are the coordinates defining the 3D position of the fourth satellite,
      • a5, b5, c5 are the coordinates defining the 3D position of the fifth satellite, and
      • c is the signal propagation speed of the signal in a medium between the first, the second, the third, the fourth, and the fifth satellites and the GNSS receiver.
    • (4) The method for determining the 3D position of the GNSS receiver of (3), wherein calculating the x coordinate includes applying

x = J 3 J 5 - J 2 J 6 J 1 J 5 - J 2 J 4 .

    • (5) The method for determining the 3D position of the GNSS receiver of (3), further including: calculating the y coordinate as a function of J1, J2, J3, J4, J5 and J6.
    • (6) The method for determining the 3D position of the GNSS receiver of (5), wherein calculating the y coordinate includes applying

y = J 1 J 6 - J 3 J 4 J 1 J 5 - J 2 J 4 .

    • (7) The method for determining the 3D position of the GNSS receiver of (3), further including: calculating the z coordinate as a function of K1, K2, K3, K4, K5 and K6, where
      • K1=L22L11−L12L21,
      • K2=L22L13−L12L23,
      • K3=L22L14−L12L24,
      • K4=L32L11−L12L31,
      • K5=L33L13−L12L33, and
      • K6=L32L14−L12L34.
    • (8) The method for determining the 3D position of the GNSS receiver of (7), wherein calculating the z coordinate includes applying

z = K 1 K 6 - K 3 K 4 K 1 K 5 - K 2 K 4 .

    • (9) The method for determining the 3D position of the GNSS receiver of (3), further including: calculating the clock offset as a function of N1, N2, N3, N4, N5, N6 and c where
      • M1=a2−a1,
      • M2=a3−a1,
      • M3=a4−a1,
      • M4=a5−a1,
      • M11=M2(b2−b1)−M1(b3−b1),
      • M12=M2(c2−c1)−M1(c3−c1),
      • M13=M2(T2−T1)−M1(T3−T1),
      • M14=½(M2B1−M1B2),
      • M21=M3(b2−b1)−M1(b4−b1),
      • M22=M3(c2−c1)−M1(c4−c1),
      • M23=M3(T2−T1)−M1(T4−T1),
      • M24=½(M3B1−M1B3),
      • M31=M4(b2−b1)−M1(b5−b1),
      • M32=M4(c2−c1)−M1(c5−c1),
      • M33=M4(T2−T1)−M1(T5−T1),
      • M34=½(M4B1−M1B4),
      • N1=M21M12−M11M22,
      • N2=M21M13−M11M23,
      • N3=M21M14−M11M24,
      • N4=M31M12−M11M32,
      • N5=M31M13−M11M33 and
      • N6=M31M14−M11M34.
    • (10) The method for determining the 3D position of the GNSS receiver of (9), wherein calculating the clock offset includes applying

τ = N 3 N 4 - N 1 N 6 c 2 ( N 1 N 5 - N 2 N 4 )

    • where τ is the clock offset.
    • (11) A system for determining a 3D position of a Global Navigation Satellite System (GNSS) receiver, including: at least five satellites; a GNSS receiver; and processing circuitry configured to obtain, a first, a second, a third, a fourth, and a fifth travel times of a signal from a first, a second, a third, a fourth, and a fifth satellites, determine the 3D position of the GNSS receiver as a function of the first, the second, the third, the fourth, and the fifth travel times of the signal from the first, the second, the third, the fourth, and the fifth satellites, and positions of the first, second, third, fourth, and fifth satellites, determine a clock offset between synchronized clocks of the first, the second, the third, the fourth, and the fifth satellites and a clock of the GNSS receiver, and send the 3D position of the GNSS receiver and the clock offset to an external device to provide enhanced position data to host applications.

Claims

1. A method for determining a 3D position of a Global Navigation Satellite System (GNSS) receiver, the method comprising:

obtaining a first, a second, a third, a fourth, and a fifth travel times of a signal from a first, a second, a third, a fourth, and a fifth satellites;
determining, using processing circuitry and with reduced computation time, the 3D position of the GNSS receiver as a function of the first, the second, the third, the fourth, and the fifth travel times of the signal from the first, the second, the third, the fourth, and the fifth satellites, and positions of the first, second, third, fourth, and fifth satellites;
determining, using the processing circuitry, a clock offset between synchronized clocks of the first, the second, the third, the fourth, and the fifth satellites and a clock of the GNSS receiver; and
sending the 3D position of the GNSS receiver and the clock offset to an external device to provide enhanced position data to host applications.

2. The method of claim 1, wherein the 3D position of the GNSS receiver is defined by x, y and z coordinates.

3. The method of claim 2, further comprising: where J1=L23L11−L13L21, J2=L23L12−L13L22, J3=L23L14−L13L24, J4=L33L11−L13L31, J5=L33L12−L13L32, J6=L33L14−L13L34, L11=L2(a2−a1)−L1(a3−a1), L12=L2(b2−b1)−L1(b3−b1), L13=L2(c2−c1)−L1(c3−c1), L14=½(B1L2−B2L1), L21=L2(a2−a1)−L1(a4−a1), L22=L3(b2−b1)−L1(b4−b1), L23=L3(c2−c1)−L1(c4−c1), L24=½(B1L3−B3L1), L31=L4(a2−a1)−L1(a5−a1), L32=L4(b2−b1)−L1(b5−b1), L33=L4(c2−c1)−L1(c5−c1), L34=½(B1L4−B4L1), L1=T2−T1, L2=T3−T1, L3=T4−T1, L5=T5−T1, B1=c2(T12−T22)+(a22−a12)+(b22−b12)+(c22−c12), B2=c2(T12−T32)+(a32−a12)+(b32−b12)+(c32−c12), B3=c2(T12−T42)+(a42−a12)+(b42−b12)+(c42−c12), B4=c2(T12−T52)+(a52−a12)+(b52−b12)+(c52−c12), T1, T2, T3, T4, and T5 are the first, the second, the third, the fourth, and the fifth travel times of the signal from the first, the second, the third, the fourth, and the fifth satellites, a1, b1, c1 are coordinates defining the 3D position of the first satellite, a2, b2, c2 are the coordinates defining the 3D position of the second satellite, a3, b3, c3 are the coordinates defining the 3D position of the third satellite, a4, b4, c4 are the coordinates defining the 3D position of the fourth satellite, a5, b5, c5 are the coordinates defining the 3D position of the fifth satellite, and c is the signal propagation speed of the signal in a medium between the first, the second, the third, the fourth, and the fifth satellites and the GNSS receiver.

calculating the x coordinate as a function of J1, J2, J3, J4, J5 and J6

4. The method of claim 3, wherein calculating the x coordinate includes applying x = J 3  J 5 - J 2  J 6 J 1  J 5 - J 2  J 4.

5. The method of claim 3, further comprising:

calculating the y coordinate as a function of J1, J2, J3, J4, J5 and J6.

6. The method of claim 5, wherein calculating the y coordinate includes applying y = J 1  J 6 - J 3  J 4 J 1  J 5 - J 2  J 4.

7. The method of claim 3, further comprising: where K1=L22L11−L12L21, K2=L22L13−L12L23, K3=L22L14−L12L24, K4=L32L14−L12L31, K5=L32L13−L12L33, and K6=L32L14−L12L34.

calculating the z coordinate as a function of K1, K2, K3, K4, K5 and K6,

8. The method of claim 7, wherein calculating the z coordinate includes applying z = K 1  K 6 - K 3  K 4 K 1  K 5 - K 2  K 4.

9. The method of claim 3, further comprising: where M1=a2−a1, M2=a3−a1, M3=a4−a1, M4=a5−a1, M11=M2(b2−b1)−M1(b3−b1), M12=M2(c2−c1)−M1(c3−c1), M13=M2(T2−T1)−M1(T3−T1), M14=½(M2B1−M1B2), M21=M3(b2−b1)−M1(b4−b1), M22=M3(c2−c1)−M1(c4−c1), M23=M3(T2−T1)−M1(T4−T1), M24=½(M3B1−M1B3), M31=M4(b2−b1)−M1(b5−b1), M32=M4(c2−c1)−M1(c5−c1), M33=M4(T2−T1)−M1(T5−T1), M34=½(M4B1−M1B4), N1=M21M12−M11M22, N2=M21M13−M11M23, N3=M21M14−M11M24, N4=M31M12−M11M32, N5=M31M13−M11M33 and N6=M31M14−M11M34.

calculating the clock offset as a function of N1, N2, N3, N4, N5, N6 and c

10. The method of claim 9, wherein calculating the clock offset includes applying τ = N 3  N 4 - N 1  N 6 c 2  ( N 1  N 5 - N 2  N 4 )

where τ is the clock offset.

11. A system for determining a 3D position of a Global Navigation Satellite System (GNSS) receiver, the system comprising:

at least five satellites;
a GNSS receiver; and
processing circuitry configured to obtain, a first, a second, a third, a fourth, and a fifth travel times of a signal from a first, a second, a third, a fourth, and a fifth satellites, determine the 3D position of the GNSS receiver as a function of the first, the second, the third, the fourth, and the fifth travel times of the signal from the first, the second, the third, the fourth, and the fifth satellites, and positions of the first, second, third, fourth, and fifth satellites, determine a clock offset between synchronized clocks of the first, the second, the third, the fourth, and the fifth satellites and a clock of the GNSS receiver, and send the 3D position of the GNSS receiver and the clock offset to an external device to provide enhanced accurate position data to host applications.
Patent History
Publication number: 20160116600
Type: Application
Filed: Apr 15, 2015
Publication Date: Apr 28, 2016
Applicant: Umm AI-Qura University (Makkah)
Inventor: Mohamed KHALAF-ALLAH (Makkah)
Application Number: 14/687,701
Classifications
International Classification: G01S 19/42 (20060101);