METHODS AND APPARATUS FOR EFFICIENT CORRECTION OF A PARAMETER ASSOCIATED WITH A NAVIGATION SATELLITE OR THE PROPAGATION OF SIGNALS TRANSMITTED THEREBY
20230125115 · 2023-04-27
Assignee
Inventors
Cpc classification
G01S19/07
PHYSICS
G01S19/27
PHYSICS
International classification
Abstract
A method, apparatus and computer program product determine a position of a client computing device. In the context of a method, a parameter, such as an orbit or a clock, associated with a respective navigation satellite are predicted, with the client computing device, based on data associated with the respective navigation satellite. The method also includes providing time information to a correction service identifying the data used as a basis for predicting the parameter associated with the respective navigation satellite. The method further includes receiving, from the correction service, a correction to the parameter that has been predicted for the respective navigation satellite and determining the position of the client computing device based upon the parameter that has been predicted for the respective navigation satellite in combination with the correction thereto.
Claims
1. A method for determining a position of a client computing device, the method comprising: predicting, with the client computing device, a parameter associated with a respective navigation satellite or propagation of signals transmitted by the respective navigation satellite based on data associated with the respective navigation satellite or the propagation of signals transmitted thereby; providing, to a correction service, time information identifying the data used as a basis for predicting the parameter associated with the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite; receiving, from the correction service, a correction to the parameter that has been predicted; and determining the position of the client computing device based at least in part upon the parameter that has been predicted in combination with the correction thereto.
2. A method according to claim 1, further comprising applying the correction to the parameter that has been predicted for the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite in order to update the parameter that has been predicted.
3. A method according to claim 1, wherein predicting the parameter comprises predicting one or more of an orbit or a clock of the respective navigation satellite based on ephemeris data associated with the respective navigation satellite, and wherein receiving the correction comprises receiving a correction to one or more of the orbit or the clock that have been predicted.
4. A method according to claim 3, wherein predicting one or more of the orbit or the clock of the respective navigation satellite comprises utilizing ephemeris extension initialized with the ephemeris data to predict one or more of the orbit or the clock of the respective navigation satellite.
5. A method according to claim 3, wherein: predicting the parameter comprises predicting one or more of a code bias, an ionospheric model, a tropospheric model or a phase bias, receiving the correction comprises receiving a correction to the one or more of the code bias, the ionospheric model, the tropospheric model or the phase bias that have been predicted, and determining the position of the client computing device comprises determining the position of the client computing device based upon the one or more of the code bias, the ionospheric model, the tropospheric model or the phase bias that have been predicted in combination with the correction thereto.
6. A method according to claim 5, wherein the correction to the one or more of the code bias, the ionospheric model, the tropospheric model or the phase bias is received from the correction service at an update rate that is less than the update rate at which the correction to one or more of the orbit or the clock is received from the correction service.
7. An apparatus embodied by a client computing device and configured to determine a position of the client computing device, the apparatus comprising processing circuitry and at least one non-transitory memory including computer program code instructions stored therein, the computer program code instructions configured to, when executed by the processing circuitry, cause the apparatus at least to: predict a parameter associated with a respective navigation satellite or propagation of signals transmitted by the respective navigation satellite based on data associated with the respective navigation satellite or the propagation of signals transmitted thereby; provide, to a correction service, time information identifying the data used as a basis for predicting the parameter associated with the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite; receive, from the correction service, a correction to the parameter that has been predicted; and determine the position of the client computing device based at least in part upon the parameter that has been predicted in combination with the correction thereto.
8. An apparatus according to claim 7, wherein the computer program code instructions are further configured to, when executed by the processing circuitry, cause the apparatus to apply the correction to the parameter that has been predicted for the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite in order to update the parameter that has been predicted.
9. An apparatus according to claim 7, wherein the apparatus is caused to predict the parameter by predicting one or more of an orbit or a clock of the respective navigation satellite based on ephemeris data associated with the respective navigation satellite, and wherein the apparatus is caused to receive the correction by receiving a correction to one or more of the orbit or the clock that have been predicted.
10. An apparatus according to claim 9, wherein the apparatus is caused to predict one or more of the orbit or the clock of the respective navigation satellite by utilizing ephemeris extension initialized with the ephemeris data to predict one or more of the orbit or the clock of the respective navigation satellite.
11. A method for determining a correction to be applied to a parameter associated with a respective navigation satellite or propagation of signals transmitted by the respective navigation satellite, the method comprising: receiving, from a client computing device, time information identifying data associated with the respective navigation satellite and used by the client computing device as a basis for predicting the parameter associated with the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite; predicting, with a server computing device, the parameter associated with the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite based on the data identified by the time information from the client computing device; determining a correction to the parameter that has been predicted; and providing, to the client computing device, the correction to the parameter that has been predicted.
12. A method according to claim 11, wherein predicting the parameter comprises predicting one or more of an orbit or a clock of the respective navigation satellite based on ephemeris data associated with the respective navigation satellite and identified by the time information from the client computing device.
13. A method according to claim 12, further comprising accessing corresponding ephemeris data associated with the respective navigation satellite based upon the time information received from the client computing device that identifies the ephemeris data utilized by the client computing device to predict one or more of the orbit or the clock of the respective navigation satellite.
14. A method according to claim 12, wherein predicting one or more of the orbit or the clock of the respective navigation satellite comprises utilizing ephemeris extension initialized with the corresponding ephemeris data to predict one or more of the orbit or the clock of the respective navigation satellite.
15. A method according to claim 11, wherein: predicting the parameter comprises predicting one or more of a code bias, an ionospheric model, a tropospheric model or a phase bias; and providing the correction comprises providing a correction to the one or more of the code bias, the ionospheric model, the tropospheric model or the phase bias that have been predicted by the client computing device.
16. An apparatus configured to determine a correction to be applied to a parameter associated with a respective navigation satellite or propagation of signals transmitted by the respective navigation satellite, the apparatus comprising processing circuitry and at least one non-transitory memory including computer program code instructions stored therein, the computer program code instructions configured to, when executed by the processing circuitry, cause the apparatus at least to: receive, from a client computing device, time information identifying data associated with the respective navigation satellite and used by the client computing device as a basis for predicting the parameter associated with the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite; predict the parameter associated with the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite based on the data identified by the time information from the client computing device; determine a correction to the parameter that has been predicted; and provide, to the client computing device, the correction to the parameter that has been predicted.
17. An apparatus according to claim 16, wherein the apparatus is caused to predict the parameter by predicting one or more of an orbit or a clock of the respective navigation satellite based on ephemeris data associated with the respective navigation satellite and identified by the time information from the client computing device.
18. An apparatus according to claim 17, wherein the computer program code instructions are further configured to, when executed by the processing circuitry, cause the apparatus to access corresponding ephemeris data associated with the respective navigation satellite based upon the time information received from the client computing device that identifies the ephemeris data utilized by the client computing device to predict one or more of the orbit or the clock of the respective navigation satellite.
19. An apparatus according to claim 17, wherein the apparatus is caused to predict one or more of the orbit or the clock of the respective navigation satellite by utilizing ephemeris extension initialized with the corresponding ephemeris data to predict one or more of the orbit or the clock of the respective navigation satellite.
20. An apparatus according to claim 16, wherein the apparatus is caused to: predict the parameter by predicting one or more of a code bias, an ionospheric model, a tropospheric model or a phase bias; and provide the correction by providing a correction to the one or more of the code bias, the ionospheric model, the tropospheric model or the phase bias that have been predicted by the client computing device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Having thus described example embodiments of the present disclosure in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
[0032]
[0033]
[0034]
[0035]
[0036]
DETAILED DESCRIPTION
[0037] Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
[0038] A method, apparatus and computer program product are provided in order to determine the position of a client computing device based upon a correction provided by a server computing device, such as server computing device that provides a correction service. The correction provided by the server computing device may relate to a parameter associated with a respective navigation satellite, such as one or more of the orbit or the clock of the navigation satellite, or the propagation of signals transmitted by the navigation satellite, such as a code bias, an ionospheric model, a tropospheric model and/or a phase bias. By way of example, the method, apparatus and computer program product of one embodiment are therefor able to determine the position of a client computing device based upon one or more of the orbit or the clock of a navigation satellite that had been predicted in reliance upon ephemeris data associated with the respective navigation satellite in combination with a correction to one or more of the orbit or the clock of the respective navigation satellite that has been determined by the server computing device. By providing for the correction to the orbit and/or the clock that had been predicted for the respective navigation satellite, the position of the navigation satellite at a particular instance in time may be accurately determined such that the position of a GNSS receiver and, as a result, a client computing device that includes or is associated with the GNSS receiver may be correspondingly determined in an accurate manner even after the lifetime of the ephemeris data.
[0039] In one example embodiment that is described below, the determination of the correction to the parameter associated with the respective navigation satellite or the propagation of signals transmitted by the respective navigation satellite by the server computing device advantageously utilizes the more substantial computing resources of the server computing device, while conserving the generally more limited computing resources of the client computing device. Additionally, since the server computing device is configured to determine the correction to the parameter, the server computing device is also configured to receive the correction data upon which the correction is based, such as via a network connection, with the correction data at least sometimes being provided relatively frequently, such as every 5 to 30 seconds. Consequently, the client computing device need not receive and process the correction data, thereby further conserving computational and communication resources of the client computing device. Moreover, the client computing device can continue to accurately determine the position of the client computing device in a timely manner, such as with a relatively small TTFF, based upon the parameter, such as the orbit and/or clock, that had been predicted for the respective satellite in combination with the correction provided by the server computing device even in instances in which the client computing device lacks or has only intermittent network access since the server computing device, as opposed to the client computing device, receives the correction data. As a result, reliance upon the correction provided by the server computing devices provides for more accurate positioning than reliance by the client computing device solely upon a prediction of the parameter
[0040] Referring now to
[0041] A server computing device 10 may be embodied by any of a variety of computing devices including, for example, a server, a cloud computing device, a computer workstation, a distributed network of computing devices, a personal computer, a positioning or navigation system or any other type of computing device. The server computing device of an example embodiment may include a receiver, such as a GNSS receiver, for receiving signals transmitted by the navigation satellite 14, such as a message including the ranging code and the ephemeris data. As described below, the server computing device may also include a communication interface, such as a network interface, to receive correction data from a third party provider 16, such as may be provided via the Internet or another terrestrial network, either in addition to or instead of receiving signals from the navigation satellite.
[0042] The client computing device 12 is also configured to communicate with the navigation satellite 14, as well as to receive information transmitted by the server computing device 10. As a result, the client computing device may also include a receiver, such as a GNSS receiver, for receiving the signals transmitted by the navigation satellite. The client computing device may be embodied by any of a variety of devices including, for example, a mobile device, such as a mobile terminal, e.g., a personal digital assistant (PDA), mobile telephone, smart phone, personal navigation device, smart watch, tablet computer, or any combination of the aforementioned and other types of portable computer devices, or a positioning or navigation system such as a positioning or navigation system onboard a vehicle, e.g., an automobile, a truck, a drone, a train, etc. In an example environment, however, the client computing device is an TOT device that includes a GNSS receiver. Regardless of the manner in which the client computing device is embodied, the client computing device is generally configured to predict the position of the navigation satellite, such as the orbit and/or the clock of the navigation satellite, at one or more points in time within a prediction interval. The prediction interval may extend temporally beyond a predefined period of time during which the ephemeris data is valid so as to predict the position of the navigation satellite at each of a plurality of points in time following the lifetime of the ephemeris data. Although the client computing device may be configured to predict the position of the navigation satellite at the plurality of points in time within the prediction interval in any of a variety of different manners, the client computing device of an example embodiment is configured to predict the position of the navigation satellite utilizing a prediction algorithm, such as a prediction algorithm that provides an ephemeris extension of the ephemeris data. In order to more accurately determine the position of the navigation satellite and, in turn, the position of the client computing device, the client computing device is also configured to determine its position based not only upon the predicted position of the navigation satellite at a respective point in time, but also a correction to the predicted position at the respective point in time that is provided by the server computing device.
[0043] An apparatus 20 that may be embodied by the client computing device 12 and/or the server computing device 10 is depicted in
[0044] In some embodiments, the processing circuitry 22 (and/or co-processors or any other processors assisting or otherwise associated with the processing circuitry) can be in communication with the memory device 24 via a bus for passing information among components of the apparatus 20. The memory device can be non-transitory and can include, for example, one or more volatile and/or non-volatile memories. In other words, for example, the memory device may be an electronic storage device (for example, a computer readable storage medium) comprising gates configured to store data (for example, bits) that can be retrievable by a machine (for example, a computing device like the processing circuitry). The memory device can be configured to store information, data, content, applications, instructions, or the like for enabling the apparatus to carry out various functions in accordance with an example embodiment of the present disclosure. For example, the memory device can be configured to buffer input data for processing by the processing circuitry. Additionally or alternatively, the memory device can be configured to store instructions for execution by the processing circuitry.
[0045] The processing circuitry 22 can be embodied in a number of different ways. For example, the processing circuitry may be embodied as one or more of various hardware processing means such as a processor, a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. As such, in some embodiments, the processing circuitry can include one or more processing cores configured to perform independently. A multi-core processor can enable multiprocessing within a single physical package. Additionally or alternatively, the processing circuitry can include one or more processors configured in tandem via the bus to enable independent execution of instructions, pipelining and/or multithreading.
[0046] In an example embodiment, the processing circuitry 22 can be configured to execute instructions stored in the memory device 24 or otherwise accessible to the processing circuitry. Alternatively or additionally, the processing circuitry can be configured to execute hard coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processing circuitry can represent an entity (for example, physically embodied in circuitry) capable of performing operations according to an embodiment of the present disclosure while configured accordingly. Thus, for example, when the processing circuitry is embodied as an ASIC, FPGA or the like, the processing circuitry can be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processing circuitry is embodied as an executor of software instructions, the instructions can specifically configure the processing circuitry to perform the algorithms and/or operations described herein when the instructions are executed. However, in some cases, the processing circuitry can be a processor of a specific device (for example, a computing device) configured to employ an embodiment of the present disclosure by further configuration of the processor by instructions for performing the algorithms and/or operations described herein. The processing circuitry can include, among other things, a clock, an arithmetic logic unit (ALU) and/or one or more logic gates configured to support operation of the processing circuitry.
[0047] The apparatus 20 of an example embodiment can also include the communication interface 26. The communication interface can be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data from/to other electronic devices in communication with the apparatus, such as by providing for communication between a client computing device 12 and a serving computing device 10. The communication interface can be configured to communicate in accordance with various wireless protocols including Global System for Mobile Communications (GSM), such as but not limited to Long Term Evolution (LTE). In this regard, the communication interface can include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network. Additionally or alternatively, the communication interface can include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s). In some environments, the communication interface can alternatively or also support wired communication. In addition to supporting communication between a client computing device 12 and a serving computing device 10, the communication interface may also be configured to support communication with one or more navigation satellites 14. As such, the communication interface of an example embodiment may also include a satellite receiver, such as a GNSS receiver 28.
[0048] Referring now to
[0049] The apparatus 20 embodied by the client computing device 12 also includes means, such as the processing circuitry 22 or the like, for predicting a parameter associated with the navigation satellite 14, such as one or more of the orbit or the clock of the navigation satellite, or associated with the propagation of signals transmitted by the navigation satellite, such as a code bias, an ionospheric model, a tropospheric model and/or a phase bias, based on data associated with the navigation satellite or the propagation of signals transmitted thereby. As shown in block 32, for example, the means for predicting the parameter includes means, such as the processing circuitry 22 or the like, for predicting one or more of the orbit or the clock of the navigation satellite 14 based on the ephemeris data associated with the navigation satellite. While the apparatus, such as the processing circuitry, may be configured to predict one or more of the orbit or the clock of the respective navigation satellite during the lifetime of the ephemeris data, the apparatus, such as the processing circuitry, may also be configured to predict one or more of the orbit or the clock of the respective navigation satellite at one or more points in time within a prediction interval, such as a predetermined period of time, following, such as immediately following, the lifetime of the ephemeris data. The prediction interval during which the position of the navigation satellite is predicted can therefore extend beyond the lifetime of the ephemeris data and is based upon one or more positions of the navigation satellite that were determined based upon the ephemeris data within the lifetime of the ephemeris data. In this regard, the apparatus, such as the processing circuitry, may be configured to predict one or more of the orbit or the clock of the navigation satellite based upon a prediction algorithm that implements an ephemeris extension of the ephemeris data including, for example, any of the variety of ephemeris extension models described above. As such, the apparatus, such as the processing circuitry, may be configured to define the prediction of the orbit of the navigation satellite and the clock of the navigation satellite, such as the clock offset of the clock onboard the navigation satellite relative to GNSS time, in any of various manners including as a continuous polynomial function, such as a spline or Heremitea polynomial function, as a piecewise continuous function was a delta or differential correction to the ephemeris data or almanac, etc.
[0050] As noted above, the apparatus 20, such as the processing circuitry 22, may be configured to predict the position of the navigation satellite 14 at one or more points in time within the prediction interval in various manners. In this regard, the prediction of the position of the navigation satellite at the one or more points of time within the prediction interval includes the prediction of the orbit of the navigation satellite, the prediction of the clock offset of the clock of the navigation satellite or both. In an example embodiment, the apparatus, such as the processing circuitry, is configured to determine the position of the navigation satellite at the one or more points of time within the prediction interval in accordance with a prediction algorithm that is based upon gravitational forces of the earth, sun and moon and solar radiation pressure. In some example embodiments, the apparatus, such as the processing circuitry, is configured to determine the prediction of the position of the navigation satellite not only based upon the gravitational forces of the earth, sun and moon and solar radiation pressure, but also based upon one or more additional forces, such as the gravitational forces of other celestial body(ies), the tidal effect, solar radiation reflected from the surface of the earth, etc.
[0051] Ephemeris data for a navigation satellite 14 may be repeatedly received by the client computing device 10. For example, a different set of ephemeris data may be provided for a navigation satellite at a predefined frequency, such as every 2 hours. Each set of ephemeris data provides information regarding one or more of the orbit or the clock at the respective navigation satellite at a particular instance in time. Since the different sets of ephemeris data are associated with different instances in time, different sets of ephemeris data may be uniquely identified by time information, such as an issue of data ephemeris (IODE). As shown in block 34, the apparatus 20 of this example embodiment also includes means, such as the processing circuitry 22, communication interface 26 or the like, for providing time information to a correction service, such as a correction service provided by a server computing device 10. The time information identifies the data that is used as a basis for predicting the parameter associated with the navigation satellite or the propagation of signals transmitted by the navigation satellite. For example, the time information may identify the ephemeris data that is used as a basis for predicting one or more of the orbit or the clock of the respective navigation satellite. Any type of time information may be employed so long as both the server computing device and client computing device utilize the same type. However, in an example embodiment, the time information may be the ephemeris IODE that identifies the ephemeris data used as a basis for predicting one or more of the orbit or the clock of the respective navigation satellite, such as based on the time for which the client computing device predicted one or more of the orbit or the clock of the navigation satellite. In some embodiments, the time information may also include the length of the prediction so that the correction service is able to properly replicate the prediction and derive the correction. In other embodiments, however, such as in an instance in which the latest available prediction is utilized, the length of the prediction may not be necessary such that the time information need not include the length of prediction in those embodiments.
[0052] The time information that is provided to the correction service may identify the ephemeris data as described above. In this regard, in an embodiment in which correction data is provided as a polynomial model or otherwise has a time-dependent variable, time information that merely identifies the ephemeris data may be sufficient to identify the correction data. In other embodiments, however, both time information that identifies the ephemeris data as described above as well as a timestamp identifying the time of calculation may be provided to the correction service to insure that the proper correction data is identified. For example, if a correction is to be determined for the orbit of a satellite at a specific time instance, both the time of calculation as well as the time information associated with the ephemeris data may be provided to the correction service.
[0053] The communication between the apparatus 20 embodied by the client computing device 12 and the correction service provided by the server computing device 10 in accordance with one example embodiment is depicted in
[0054] As also shown in
[0055] As shown in
[0056] The apparatus 20 embodied by the client computing device 12 also includes means, such as the processing circuitry 22, the communication interface 26 or the like, for receiving, from the server computing device 10, such as a correction service provided by the server computing device, a correction to the parameter that has been predicted, such as a correction to the orbit and/or the clock that had been predicted for respective navigation satellite 14 as shown in block 36 of
[0057] As shown in block 39 of
[0058] By relying upon the server computing device 10, such as the correction service provided by the server computing device, to determine the correction to the parameter that has been predicted, such as the orbit and/or the clock that have been predicted for the respective satellite 14, the processing resources of the client computing device 12 are conserved while still providing for the accurate determination of the position of the navigation satellite and, in turn, the position of the client computing device. Additionally, by relying upon the server computing device to determine the correction to the parameter that has been predicted, such as the orbit and/or the clock that been predicted for the respective navigation satellite, the client computing device need not receive, store and process the correction data, which is typically provided relatively frequently, such as every 5 to 30 seconds, such that the position of the client computing device may be determined even in an instance in which the client computing device lacks or has only limited network access at the time at which the correction data was provided, thereby also reducing the TTFF in such instances by relying upon the network connection of the server computing device to receive the correction data in a timely manner.
[0059] In some example embodiments, the apparatus 20 embodied by the client computing device 12 may also take into account additional or different parameters that impact the determination at the position of the client computing device and that may allow for a more accurate determination of the position of the client computing device, such as parameters associated with the propagation of signals transmitted by a navigation satellite. In addition to or instead of the orbit and the clock of a navigation satellite, examples of these parameters include, but are not limited to a code bias, an ionospheric model, a tropospheric model and/or a phase bias. These parameters associated with the propagation of signals transmitted by the navigation satellite may be taken into account in addition to the parameters associated with the navigation satellite, such as one or more of the orbit or the clock of the navigation satellite, as shown in
[0060] In this example embodiment, the server computing device 10 is also configured to repeatedly receive and store data regarding one or more of the code bias, the ionospheric model, the tropospheric model and/or the phase bias. Based upon the time information provided by the client computing device 12, the server computing device is also able to predict one or more of the code bias, the ionospheric model, the tropospheric model and/or the phase bias based upon the data regarding the one or more of the code bias, the ionospheric model, the tropospheric model and/or the phase bias that is associated with the instant in time for which the prediction is made, such as defined by the time information provided by the client computing device. The correction data that is received by the server computing device from a third party provider 16 may also include correction data regarding the code bias, the ionospheric model, the tropospheric model and/or the phase bias. As such, the server computing device of this example embodiment is configured to determine a correction to the code bias, the ionospheric model, the tropospheric model and/or the phase bias based upon the correction data and to provide a correction to the code bias, the ionospheric model, the tropospheric model and/or the phase bias to the client computing device.
[0061] In an example embodiment, the correction to the code bias, the ionospheric model, tropospheric model and/or the phase bias may be provided by the server computing device 10 in a different manner than the manner in which the correction is to the orbit and/or the clock of the respective navigation satellite 14 is provided to the client computing device 12. For example, the correction to the code bias, the ionospheric model, the tropospheric model and/or the phase bias may be provided as a polynomial fit, a differential correction or a grid point model in comparison to the correction to the orbit and/or the clock of the respective navigation satellite being provided as a polynomial model. The corrections may be provided in other manners if so desired.
[0062] The apparatus 20 embodied by the client computing device 12 of this example embodiment may also include means, such as processing circuitry 22, the communication interface 26 or the like, for receiving the correction to the one or more of the code bias, the ionospheric model, the tropospheric model or the phase bias that have been predicted. See block 36 of
[0063] As the code bias, the ionospheric model, the tropospheric model and the phase bias may be updated less frequently than the ephemeris data, the correction to the code bias, the ionospheric model, the tropospheric model and/or the phase bias may be provided by the server computing device 10 and received by the client computing device 12 at an update rate that is less than the update rate at which the correction to the orbit and/or the clock is provided, thereby also reducing the amount of data transmitted by the server computing device and received by the client computing device. Thus, computational resources of both the client computing device and the server computing device may be correspondingly conserved.
[0064] Referring now to
[0065] As shown in block 54 of
[0066] Additionally, the apparatus 20 embodied by the server computing device 10 includes means, such as the processing circuitry 22 or the like, for determining a correction to the parameter that has been predicted, such as a correction to one or more of the orbit or the clock have been predicted for the respective navigation satellite 14. See block 60 of
[0067] As noted above, corrections provided by the server computing device 10 may be to a parameter associated with the navigation satellite 14, such as the orbit and/or the clock of the navigation satellite, and/or to one or more additional or different parameters that impact the determination of the position of the client computing device 12, such as one or more parameters associated with the propagation of signals transmitted by the navigation satellite, so as to allow for a more accurate determination of the position of the client computing device. Examples of these additional or different parameters include, but are not limited to a code bias, an ionospheric model, a tropospheric model and/or a phase bias for a navigation satellite 14. As such, the apparatus embodied by the server computing device may optionally include means, such as the processing circuitry 22 or the like, for predicting a parameter associated with the propagation of signals transmitted by the respective navigation satellite, such one or more of the code bias regarding the respective navigation satellite, the ionospheric model, the tropospheric model or the phase bias regarding respective navigation satellite. See block 58 of
[0068] In this example embodiment, based upon the correction data that has been received regarding the code bias, the ionospheric model, the tropospheric model and/or the phase bias, the server computing device includes means, such as the processing circuitry 22, for determining a correction to the code bias, the ionospheric model, the tropospheric model and/or the phase bias based upon the correction data and means, such as the processing circuitry, the communication interface 26 or the like, for providing a correction to the code bias, the ionospheric model, the tropospheric model and/or the phase bias to the client computing device 12. See blocks 60 and 62 of
[0069] As described above, the correction to the code bias, the ionospheric model, tropospheric model and/or the phase bias may be provided by the server computing device 10 in a different manner than the manner in which the correction is to the orbit and/or the clock of the respective navigation satellite 14 is provided to the client computing device 12. For example, the correction to the code bias, the ionospheric model, the tropospheric model and/or the phase bias may be provided as a polynomial fit, a differential correction or a grid point model in comparison to the correction to the orbit and/or the clock of the respective navigation satellite being provided as a polynomial model. The corrections may be provided in other manners if so desired.
[0070] Although described above in terms of any correction to the code bias, the ionospheric model, the tropospheric model and/or the phase bias being performed in addition to a correction to the orbit and/or the clock of a navigation satellite 14, the method, apparatus 20 and computer program product of another example embodiment is configured to correct the code bias, the ionospheric model, the tropospheric model and/or the phase bias without correction of the orbit and/or clock of the navigation satellite or with any correction of the orbit and/or clock of the navigation satellite being performed secondarily to the correction of the code bias, the ionospheric model, the tropospheric model and/or the phase bias. Thus, the foregoing description of the correction to the orbit and/or the clock of the navigation satellite is provided by way of example, but not of limitation, as the method, apparatus and computer program product may, instead, be configured to correct any one or more parameters impacting the signals transmitted by the navigation satellite for purposes of determining the position of a client computing device 12.
[0071] As described, a method, apparatus 20 and computer program product are provided for determining the position of a client computing device 12 in an efficient and accurate manner utilizing a correction to a parameter associated with a respective navigation satellite 14 or the propagation of signals transmitted by the respective navigation satellite. In order to accurately determine the position of the client computing device without consuming substantial computing resources of the client computing device, the parameter is predicted by the client computing device based on data, e.g., ephemeris data, while a correction to the parameter is determined by a server computing device 10, such as a correction service provided by the server computing device. As the server computing device receives the correction data from which the correction to the parameter is determined, the client computing device of this example embodiment need not necessarily also receive the correction data, but is still be able to correct the parameter based on a correction provided by the server computing device in an instance in which the client computing device is unable to consistently maintain a network connection, thereby providing for more accurate positioning than reliance by the client computing device solely upon a prediction of the parameter. Thus, a method, apparatus and computer program product of an example embodiment are also able to maintain a relatively small time-to-first-fix, even in an instance in which the client computing device lacks a consistent network connection.
[0072] As described above,
[0073] Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
[0074] In some embodiments, certain ones of the operations above may be modified or further amplified. Furthermore, in some embodiments, additional optional operations may be included. Modifications, additions, or amplifications to the operations above may be performed in any order and in any combination.
[0075] Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.