System and method for determining GNSS positioning corrections
Through the sliced correction method, tile correction data associated with the geographical area is generated, which solves the continuity and availability problems of correction data in GNSS positioning technology, improves positioning accuracy and integrity, and reduces data requirements.
Patent Information
- Application Number
- CN202180061174.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-07-13
- Filing Date
- 2021-07-13
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2041-07-13
AI Technical Summary
Existing GNSS positioning technology has difficulty ensuring the continuity and availability of correction data when the receiver is moving, especially at high speeds, which affects the positioning accuracy and integrity.
A tiled correction method is adopted to ensure that the receiver can obtain valid correction information when entering a new area by generating and transmitting tile correction data associated with a geographical area, using tile overlap to provide continuity and determining correction transmission based on the receiver location to reduce data requirements.
The continuity and availability of correction data during the movement of the receiver are achieved, the accuracy and integrity of positioning are improved, the amount of data transmission is reduced, and the kinematic changes of the receiver are adapted.
Smart Images

Figure CN116261676B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Application No. 63 / 051,007, filed on July 13, 2020, which is incorporated by reference in its entirety. Technical Field
[0003] The present invention relates generally to the field of GNSS positioning, and more particularly to a new and useful system and method in the field of GNSS positioning. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Figure 1 It is a schematic representation of the system.
[0006] Figure 2 is a schematic representation of the method.
[0007] Figure 3 is a flowchart representation of an example of this method.
[0008] Figure 4 is a schematic representation of an example of tiled corrections.
[0009] Figure 5A and Figure 5B Schematic representation of examples of a single thin layer model and a multilayer model for atmospheric effects, respectively.
[0010] Figure 6 is a flowchart representation of an example of this method.
[0011] Figure 7A 、 Figure 7B and Figure 7C is a schematic representation of an example of interpolating between grid points.
[0012] DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] The following description of the preferred embodiments of the invention is not intended to limit the invention to these preferred embodiments, but rather to enable any person skilled in the art to make and use the invention.
[0014] 1. Overview.
[0015] like Figure 2 As shown, method 20 may include receiving satellite observations S100 and generating a set of corrections S200, wherein the corrections may be used to determine a receiver position (e.g., in step S500). The method may optionally include determining a receiver location S300, transmitting corrections based on the receiver location S400, operating an external system based on the receiver position S600, and / or any other suitable steps.
[0016] like Figure 1 As shown, system 10 may include one or more data sources 100, one or more computing systems 200, one or more GNSS receivers 300, and / or any suitable components.
[0017] The systems and methods preferably function to generate corrections (e.g., GNSS corrections) that can be used to determine and / or refine receiver positioning with high accuracy (e.g., cm-level, dm-level, m-level, etc.) and / or completeness. However, the corrections may be used in other ways.
[0018] Embodiments of the system and / or method may be used, for example, for autonomous or semi-autonomous vehicle guidance (e.g., for unmanned aerial vehicles (UAVs), unmanned aerial systems (UASs), self-driving cars, agricultural equipment, robotics, rail transportation / delivery systems, autonomous trucking, last mile delivery, etc.), GPS / GNSS research, surveying systems, user devices, mobile applications, Internet of Things (IoT) devices, and / or for any other suitable application. In a specific example, the system (and / or components) may be coupled to any suitable external system, such as a vehicle (e.g., a UAV, a UAS, a car, a truck, etc.), a robot, a rail car, a user device (e.g., a cell phone), and / or any suitable system, and may provide positioning data, integrity data (e.g., protection level data), and / or other data to the system, where the system may use the data for control and / or navigation.
[0019] 2. Benefits.
[0020] Variations of this technique may provide several benefits and / or advantages.
[0021] First, variations of the technology can ensure continuity of the availability of correction data across geographic regions (e.g., neighborhoods, cities, counties, parishes, states, countries, continents, the globe, oceans, seas, lakes, etc.), for example, as the receiver moves with the geographic region (e.g., above a threshold rate). Examples of the technology achieve continuity by overlapping tiles (correction tiles) corresponding to corrections, such that the receiver receives correction information for the current location and additional correction information for adjacent geographic regions (e.g., rather than just correction information for the current location). This enables corrections for adjacent regions to be determined when the receiver enters the adjacent geographic region, even if the receiver has not yet received tiles addressed to that region (e.g., due to update lag or connectivity issues).
[0022] Second, variations of this technique can ensure that corrections are valid and / or available across a geographic area. In a specific example, by separating the corrections for each tile into continuous corrections and discrete corrections, the discrete corrections can correct for variations (e.g., residuals) in the continuous corrections between correction tiles. In a second example, having a validity area that is larger than the transmission area of the tile can help ensure that the corrections being used by a receiver remain valid after the receiver receives the corrections (e.g., if an outage occurs, if communication is delayed due to receiver motion, etc.).
[0023] Third, variations of the technique can use minimal data to determine and / or transmit corrections from a remote computing system to a receiver. In a specific example, the corrections to be transmitted to the receiver can be determined based on (e.g., solely based on) the receiver's location. In a related example, the corrections to be transmitted to the receiver (e.g., a client-managed resource) can be determined without knowing the receiver's trajectory, position, velocity, and / or other kinematic information.
[0024] However, variations of the technology may impart any other suitable benefits and / or advantages.
[0025] 3. System.
[0026] The system 10 may function to determine a receiver's position (and / or associated integrity, such as integrity risk, protection level, etc.) and / or corrections (e.g., GNSS corrections), such as corrections that may be used to facilitate or improve the position determination. However, the system may function in other ways.
[0027] The system preferably uses a set of data collected by one or more data sources 100. Data sources may include: receivers, sensors (e.g., located on the receiver, external systems, reference stations, etc.), databases, satellites 120, reference stations 110, and / or any other suitable data sources. Examples of data that may be used include: satellite observations, sensor observations, and / or any other suitable data.
[0028] The receiver preferably functions to receive a set of satellite observations (e.g., satellite signals such as carrier phase and satellite code) from one or more satellites. In a variant, the receiver can determine the position of the receiver (and / or an external system) based on the satellite observations. The receiver preferably communicates with a computing system. However, the receiver can be integrated with the computing system, and / or the receiver and computing system can be arranged in any suitable manner. The receiver is preferably a standalone device (e.g., a GNSS receiver, an antenna). However, the receiver can be integrated into an external system (e.g., as a component of an automobile, aircraft, marine vehicle, mobile device, etc.), can be a user device (e.g., a smartphone, laptop, mobile phone, smartwatch, etc.), and / or can be configured in any suitable manner.
[0029] The set of satellite observations may include orbit data (e.g., ephemeris), timestamps, range rate data, carrier phase data, pseudocode data, and / or any suitable data. The set of satellite observations may include metadata (e.g., ephemeris data) and / or any suitable data or information, and / or be associated with metadata (e.g., ephemeris data) and / or any suitable data or information. The set of satellite observations preferably includes satellite observations corresponding to satellites from a plurality of satellite constellations (e.g., Global Positioning System (GPS), Global Navigation Satellite System (GLONASS), BeiDou Navigation Satellite System (BDS), Galileo System (Galieo), Quasi-Zenith Satellite System (QZSS), etc.). However, the set of satellite observations may correspond to satellites from a single satellite constellation, may include data from augmentation systems (e.g., satellite-based augmentation systems (SBAS), such as the Wide Area Augmentation System (WAAS), the European Geostationary Navigation Overlay Service (EGNOS), the Multifunctional Satellite Augmentation System (MSAS), GPS-Aided Geographic Augmentation Navigation (GAGAN), Omnistar, StarFire, etc.; ground-based augmentation systems (GBAS), such as the Local Area Augmentation System (LAAS); etc.), and / or may include any suitable data.
[0030] In variations of the system that include more than one receiver, each receiver can be configured to receive satellite observations corresponding to a satellite constellation, satellite observations corresponding to a carrier frequency (e.g., L1, L2, L5, E1, E5a, E5b, E5ab, E6, G1, G2, G3, B1, B2, B2a, B2b, B2ab, B3, LEX, etc. frequencies), and / or satellite observations corresponding to any suitable source.
[0031] The reference station preferably functions to receive a set of satellite observations (e.g., reference station satellite observations) and transmit the reference station satellite observations to a computing system (and / or a receiver). The satellite observations from the reference station can be used to determine corrections to a set of satellite observations measured (or otherwise received) by the receiver (e.g., local and / or global corrections, e.g., to account for atmospheric effects such as ionospheric delay, tropospheric delay, ionospheric gradient, etc.; orbit errors; clock errors; hardware biases; antenna offsets, such as phase center offset, phase center variation, etc.; ocean tides; polar tides; solid tides; etc.). Each reference station is preferably communicatively coupled to the computing system. However, the reference station may include the computing system and / or be coupled to the computing system in any suitable manner. The reference station may communicate with the receiver (e.g., via a direct communicative link, via an intermediate computing system, etc.). The reference station is preferably located within approximately 500 km of the receiver, but the distance between the reference station and the receiver may be any distance.
[0032] The reference station satellite observations may correspond to the same and / or a different set of satellites than the set of satellite observations received by the receiver.However, the reference station satellite observations may correspond to any suitable set of satellite observations.
[0033] The location (eg, position) of the reference station is preferably known with high accuracy (eg, uncertainty in the location of the reference station is less than 1 mm, 1 cm, 1 dm, 1 m, etc.) The location of the reference station may be static and / or dynamic.
[0034] The computing system preferably functions to process data (e.g., satellite observations) from the receiver and / or reference station. The computing system may: aggregate data (e.g., combine receiver satellite observations, reference station satellite observations, and sensor data; for example, reorganize receiver satellite observations, reference station satellite observations, and sensor data based on timestamps, transmission times, reception times, etc.), filter data (e.g., to calculate state vectors, ambiguities (e.g., phase ambiguities), etc. associated with the data), calculate receiver positioning (e.g., based on the ambiguities), correct data (e.g., correct satellite observations for orbit errors, clock errors, hardware biases, antenna offsets, atmospheric effects, ocean tides, polar tides, etc.), generate corrections (e.g., global corrections, local corrections, atmospheric corrections, etc.), and / or process data in any suitable manner. The computing system may be local (e.g., on an external system, integrated in a receiver, integrated with a reference station, etc.), remote (e.g., cloud computing, a server, networked, etc.), and / or distributed (e.g., between a remote computing system and a local computing system).
[0035] Corrections are preferably used to correct one or more satellite observations. Corrections can correspond to individual satellites, groups of satellites, satellite constellations, satellite frequencies, each satellite, a reference station, and / or any data source. For example, corrections can be used to correct satellite observations for atmospheric effects (e.g., ionospheric delay, such as for each satellite, for each satellite frequency, etc.; tropospheric delay, such as for dry or hydrostatic delay components, for wet or non-hydrostatic delay components, for a given satellite, etc.; etc.), global errors (e.g., hardware bias, orbit error, clock error, satellite antenna offset, ocean tides, extreme tides, etc.), and / or any error source. Corrections can correspond to RTK corrections, PPP corrections, PPP-RTK corrections, and / or any suitable corrections. Corrections can be updated (e.g., at predetermined times, such as based on the correction type, intended application, external system, target receiver positioning accuracy, target receiver positioning integrity, etc.) and / or fixed. Corrections can be updated at predetermined times (e.g., 1 second, 5 seconds, 10 seconds, 30 seconds, 60 seconds, 2 minutes, 5 minutes, 10 minutes, 20 minutes, 30 minutes, 60 minutes, 2 hours, 4 hours, 8 hours, 12 hours, 24 hours, values therebetween, etc.), in response to a trigger (e.g., a change in weather, a change in temperature, a change in receiver positioning, a change in satellites in view of a receiver, a threshold change in the line of sight vector between a satellite and a receiver, etc.), manually (e.g., in response to a user request for updated corrections), and / or at any suitable timing. In one example, each correction type for each tile can be continuously updated at a different rate of change. Corrections can be associated with a validity period, where the correction can be invalid beyond the validity period (e.g., and must be refreshed) or permanently valid (e.g., until a new correction is calculated).
[0036] The corrections are preferably SSR corrections (e.g., state-space representation corrections), but may alternatively be OSR corrections (e.g., observation-space representation corrections) and / or other corrections. Each correction within the group may correct for a different error (e.g., clock error, orbit error, atmospheric error, hardware biases such as code and phase bias errors, etc.) and may be sent with the same or different update frequencies. For example, long-lived component corrections may be sent less frequently, while highly variable component corrections may be sent more frequently. In another example, spatially invariant component corrections (e.g., clock error, orbit error, hardware biases, antenna offset, polar tides, etc.) may be sent less frequently for mobile receivers than spatially varying components (e.g., atmospheric error, ocean tides, etc.). However, corrections may be transmitted with any suitable timing.
[0037] In particular examples, corrections may be determined (e.g., generated) using a particle filter (e.g., a Kalman filter, an extended Kalman filter, etc.), using a model, using a Gaussian process (e.g., as disclosed in U.S. patent application Ser. No. 16 / 983,706, filed on August 3, 2020, entitled “SYSTEM AND METHODFOR GAUSSIAN PROCESS ENHANCED GNSS CORRECTIONS GENERATION,” which is incorporated by reference in its entirety), as disclosed in U.S. patent application Ser. No. 16 / 589,932, filed on October 1, 2019, entitled “SYSTEMS AND METHODS FOR DISTRIBUTED DENSENETWORK PROCESSING OF SATELLITE POSITIONING DATA,” which is incorporated by reference in its entirety, and / or corrections may be determined (e.g., generated) in any manner.
[0038] Each correction 1000 is preferably associated (e.g., verified in the tile, accurate within the tile, transmitted within the tile, etc.) with at least one tile 1100 (e.g., an area such as a tiled map, a geographic area, a unique geographic area, etc.). Having the correction correspond to or be associated with a tile can have the benefit of transmitting only relevant information to the receiver, which can reduce the bandwidth requirements of the system. However, corrections can be used for a wide range of areas (e.g., cities, counties, parishes, countries, continents, oceans, seas, lakes, etc.), global areas, point-based areas, and / or for any suitable area. Tiles (e.g., geographic extent, shape, etc.) can be predetermined (e.g., predefined, retrieved from memory, etc.), dynamically determined (e.g., determined based on satellite observations, reference stations, receivers, applications, target receiver positioning accuracy, target receiver positioning integrity, receiver applications, etc.), and / or determined in other ways. In a first variant, each tile includes corrections for a set of errors (e.g., spatially invariant corrections and spatially varying corrections). In a second variation, each tile may include corrections for specific errors (eg, one or more spatially invariant corrections, one or more spatially varying corrections). However, each tile may include or be associated with any correction.
[0039] The size of the tiles is preferably chosen so that the correction does not change significantly (e.g., changes by less than 1%, 2%, 5%, 10%, 20%, etc.; so that a low-order polynomial or other simple fitting function can accurately represent the correction, e.g., with a high regression coefficient such as greater than 0.8, 0.9, 0.95, etc., or otherwise has a high goodness of fit; etc.). However, the size of the tiles can be determined based on the correction to be generated, based on the correction (e.g., corrections with greater variability can have smaller tile sizes), can be predetermined, can depend on the application of the GNSS receiver positioning or external system, can depend on the target accuracy or completeness of the positioning, and / or can be selected in other ways. The tiles can have the same or different sizes. In a first specific example, each tile (e.g., geographic area, validity area, zone, etc.) can be a geographic area of approximately 5° latitude by approximately 5° longitude (e.g., latitude and / or longitude between approximately 1°-10°, between approximately 2°-5°, between approximately 5°-10°, between approximately 4.5°-5.5°, between approximately 4°, approximately 3°, approximately 2°, approximately 1°, etc.). In a second specific example, each tile can be a geographic area of approximately 500 km by 500 km (e.g., 500±100 km by 500±100 km, 500±200 km, 500±250 km, etc.). However, a tile can have an extent of less than 1° (latitude or longitude), an extent of less than approximately 250 km, an extent of greater than approximately 750 km, and / or any suitable size.
[0040] Tiles can be aligned to grid points (e.g., starting and / or ending points on a grid point), reference points (e.g., landmarks, reference stations, etc.), predetermined locations, can be randomly aligned, aligned to latitude and / or longitude, have any orientation or alignment relative to a grid point, and / or aligned to any reference. The tile grid points are preferably the same as the correction grid points (e.g., in variations where the correction includes grid points), but can be different from and / or independent of the correction grid points. Tiles are preferably located at fixed locations. However, tile positions can be updated, can be changed, and / or can be positioned in other ways.
[0041] Tiles preferably overlap (e.g., have an area overlap). However, tiles may additionally or alternatively be adjacent to other tiles, be touching (e.g., along one or more edges, at one or more corners, at one or more points, etc.) or continuous, nested, non-adjacent (e.g., include a separation area between tiles), and / or arranged in other ways. Tiles preferably overlap by about 10%-50% (e.g., an overlapping area of 10%-50%), but may overlap by less than 10% or more than 50%. Tiles may overlap along a reference axis (e.g., latitude, longitude, a reference axis that intersects latitude or longitude at any angle, etc.), overlap in a predetermined shape, overlap a predetermined number of grid points, and / or overlap in other ways. In a specific example, for example, in Figure 4 As shown in , 2-4 tiles can overlap in a given area (e.g., to provide coverage for a given area). In a second specific example, adjacent tiles (e.g., a unique geographic area) can overlap by at least 0.01° latitude or 0.01° longitude (e.g., overlapping latitudes and / or longitudes of 0.01°, 0.05°, 0.1°, 0.5°, 1°, 2°, 3°, 5°, values therebetween, >5°, etc.). However, adjacent geographic areas can overlap by less than 0.01° (latitude and / or longitude). However, a single tile can be used in a region, and / or any number of tiles can overlap for a region.
[0042] In an illustrative example, adjacent tiles may be (e.g., along one or more axes, such as in Figure 4 , etc.) overlap by one grid point such that one grid point is contained within the tile (e.g., not counting grid points along the edges or surfaces of the tile). However, adjacent tiles may overlap in other ways (e.g., by more than one grid point, by less than one grid point, etc.).
[0043] Typically, adjacent tiles have overlapping validity areas, but not overlapping transmission areas, which can function to transmit a single set of corrections at a time. However, additionally or alternatively, transmission areas can overlap between adjacent tiles (e.g., geographic areas).
[0044] Adjacent (e.g., adjacent overlapping tiles; adjacent non-overlapping tiles, etc.) tiles can: share corrections (e.g., share grid points), be piecewise continuous (e.g., discontinuous at boundaries), be regularized (e.g., smoothed at boundaries), and / or be related in other ways. Overlapping tiles preferably provide the same correction value (e.g., the same correction value within ±0.01%, ±0.02%, ±0.05%, ±0.1%, ±0.2%, ±0.5%, 1%, 2%, 5%, 10%, 20%, etc.) within the overlapping region, but may provide different correction values.
[0045] For example, in Figure 4 As shown in , each tile 1100 preferably includes a validity area 1200 and a transmission area 1400. The validity area 1200 preferably corresponds to an area over which the correction is valid and / or accurate, so that the correction can be used to determine the receiver positioning (e.g., to achieve target accuracy and / or completeness). The validity area is preferably the same as the tile (e.g., the same size as the tile), but can be a subset and / or superset of the tile. The transmission area 1400 preferably corresponds to an area over which the correction corresponding to the tile is transmitted (e.g., when the receiver is within the transmission area, the tile or the correction to the validity area is transmitted to the receiver). The validity area preferably contains (e.g., surrounds, circumscribes, etc.) the transmission area and is preferably larger than the transmission area. Therefore, the correction is preferably valid in the transmission area, but can be invalid and / or unverified in the transmission area. However, the validity region and the transmission region may be the same size, the validity region and the transmission region may overlap, the transmission region may surround (e.g., contain, define) the validity region, the validity region and the transmission region may be proximate and / or adjacent to each other (e.g., but not overlapping), and / or the validity region and the transmission region may be arranged in other ways. The validity region and / or the transmission region are preferably fixed, but may vary (e.g., based on receiver kinematics, based on changes or lack thereof in corrections, etc.). The validity region and / or the transmission region may be predetermined; may depend on receiver properties (e.g., receiver kinematics, receiver hardware, etc.), external system properties, satellite constellation, update time for corrections, target receiver position accuracy, target receiver position integrity, target receiver application, and / or other properties; and / or may be determined in other ways.
[0046] The transmission zone is preferably located near the center or central region of the validity zone (e.g., the center of the transmission zone coincides with or nearly coincides with the center of the validity zone). However, the transmission zone can be located near an edge, a vertex, independent of the validity zone (e.g., based on a landmark), and / or otherwise arranged relative to the validity zone.
[0047] The transmission areas for two or more tiles (e.g., adjacent tiles) are preferably contiguous (e.g., touching or sharing edges, portions, and / or vertices) but do not overlap (e.g., do not have area overlap). However, the transmission areas for two or more tiles may overlap, may have gaps (e.g., space not associated with transmission for any of the two or more tiles), and / or may be related in other ways.
[0048] In an illustrative example (e.g., Figure 4 ), the validity zone may be approximately 5° latitude by 5° longitude, and the transmission zone may be approximately 3° latitude by 3° longitude. In a related example, the validity zone may be defined by approximately 5 grid points (e.g., in each cardinal direction), and the transmission zone may be defined by approximately 3 grid points (e.g., in each cardinal direction). However, the transmission area can have any suitable size (e.g., a range in any direction) between approximately 0.01°-10° (e.g., 0.01°-1°, 0.1°-5°, 1°-3°, 1°-10°, 2°-5°, 5°-10°, 4.5°-5.5°, 4°, 3°, 2°, 1°, etc. in latitude and / or longitude), a range less than 0.1° (latitude or longitude), a range greater than 10°, a range between 10 km and 750 km (e.g., 10-500 km, 25-100 km, 50-250 km, 100-300 km, 10 km, 25 km, 50 km, 100 km, 200 km, 500 km, etc.), a range less than approximately 10 km, a range greater than approximately 750 km, and / or any suitable size.
[0049] Each tile can be the same (e.g., same area, same size, same shape, etc.) or different (e.g., different area, different size, different shape, etc.) from the other tiles. For example, a different size arrangement of each tile can be selected to preserve area as the tile approaches the poles (e.g., the North and South Poles), preserve the validity of the correction as the tile approaches the poles, and / or the size of each tile can be selected in other ways.
[0050] The tiling is preferably a periodic tiling that effectively covers the surface of the Earth. However, the tiling can be non-periodic, can cover a subset of the Earth's surface (e.g., between latitudes of 0°-85°, -85°-85°, -80°-80°, -75°-75°, etc.), and / or can be any suitable tiling. Each tile is preferably a regular polygonal tiling (e.g., using rectangles; triangles, such as right triangles, isosceles triangles, scalene triangles, etc.; or hexagonal tiles), but irregular polygonal tiling, mixed tiles (e.g., tiles with two or more shapes), using wallpaper groups, and / or any suitable tiling can additionally or alternatively be used. In the illustrative example, each tile can be a square or rectangle confined to a sphere (e.g., an oblate spheroid). In a variation of this illustrative example, the vertices of the squares are preferably aligned with the ordinal (also known as intercardinal directions), namely northeast, southeast, northwest, southwest. However, the vertices of the squares may be aligned with the cardinal directions (i.e., north, south, east, west) and / or have any suitable orientation. However, any suitable tile layout may be used.
[0051] Typically, the corrections associated with a tile are valid for any altitude (e.g., can be used at any altitude). For example, a mapping function (e.g., a fixed altitude mapping function, an IRI model, a Chapman model, a variable altitude mapping function, a global mapping function (GMF), a Vienna mapping function (VMF), a mapping function defined or used in conjunction with a global pressure and temperature (GPT) model, a mapping function defined or used in conjunction with a GPT2 model, a Niell mapping function, etc.) can be used to map the delay from the zenith direction to the elevation angle of the signal. However, the corrections can vary with altitude. In this case, each tile can define a volume having a depth (e.g., along a range of altitudes) that is typically between 0-10 miles, but the depth of the volume can be greater than 10 miles (e.g., to use GNSS satellites to locate other satellites and / or interstellar objects).
[0052] In a variant, the correction may include a continuous correction, a discrete correction, and / or any suitable correction. The continuous correction preferably acts to provide a coarse correction to the error. The discrete correction preferably acts to adjust and / or improve the continuous correction (e.g., to provide a fine-tuning of the continuous correction). The continuous correction and the discrete correction may each include and / or be associated with a spatially invariant correction (e.g., such as a global correction for correcting satellite orbits, satellite hardware biases, satellite clock errors, satellite antenna offsets, polar tides, etc.) and / or a spatially varying correction (e.g., such as a local correction for correcting atmospheric effects, the atmospheric effects including ionospheric delay, ionospheric slant delay, tropospheric delay, ionospheric gradient, first-order ionospheric effects, second-order ionospheric effects, etc.; multipath errors; ocean tides, etc.). In a specific example, the set of corrections includes both continuous and discrete corrections. In a variant of this specific example, the continuous correction and / or discrete correction may include a local correction (e.g., for atmospheric effects). However, the set of corrections may include any suitable correction. Typically, a continuous correction is associated with a single tile, while a discrete correction can be associated with multiple tiles (usually 2-4, but can be greater than 4). However, a continuous correction can be associated with multiple tiles, a discrete correction can be associated with a single tile, and / or a continuous or discrete correction can be associated with any suitable tile or no tile.
[0053] Continuous and / or discrete corrections can be derived from a model of corrections, actual corrections (e.g., measured correction values), simulated corrections, and / or any suitable corrections. For example, continuous and / or discrete corrections can be determined by fitting a model of corrections.
[0054] The continuous correction preferably includes a fitting function (e.g., coefficients of the fitting equation, information for deriving the fitting coefficients, the fitting function degree such as the polynomial degree, the fitting function form, etc.), but may include any suitable equation, mapping, and / or any suitable continuous correction. The fitting function may be a polynomial function (e.g., a linear, quadratic, cubic, quartic, quintic, spline, etc. function), an exponential, a rational equation, a radical equation, a trigonometric function, a logarithmic function, a logical function, and / or any suitable function. In a specific example, the fitting function may include a second-order polynomial function of latitude, longitude, and / or altitude (e.g., including a cross term that makes the highest polynomial term second-order, excluding a cross term that makes the highest polynomial term possibly fourth-order or sixth-order, etc.). In a variant of this specific example, the second-order polynomial may be a bivariate polynomial function of at most 2 degrees, such as with latitude and longitude or east / west and north / south positioning as variables. In a second specific example, a first fitting function that is second-order (e.g., quadratic) in latitude may be used, and a second fitting function that is second-order in longitude may be used. In the first and second specific examples, a polynomial fit function can be advantageous in balancing bandwidth and / or the amount of data to be transmitted for correction with accuracy (e.g., goodness of fit); however, other fit functions can be advantageous and / or the polynomial fit function can confer any suitable benefit. However, any suitable fit function can be used.
[0055] In a first specific example, the fitting function may be associated only with ionospheric delays (e.g., TEC delay, VTEC delay, STEC delay, etc.). In a second specific example, the fitting function may be associated with ionospheric delays and tropospheric delays (e.g., a wet or non-hydrostatic component of the tropospheric delay, a dry or hydrostatic component of the tropospheric delay, a vertical tropospheric delay, etc.). However, the fitting function may be associated with any suitable data.
[0056] Each tile is preferably associated with a different fitting function (e.g., a fitting function with different coefficients), but can be associated with the same fitting function. The fitting function can be extended around a central portion of the associated tile (e.g., the center of the tile), a vertex of the associated tile, an edge of the associated tile, a reference point (e.g., inside the tile, outside the tile), a grid point (e.g., a grid point as discussed below), an arbitrary point, a symmetric point (e.g., a point about which the correction is symmetric or approximately symmetric, a point about which the correction is antisymmetric or approximately antisymmetric, etc.), an asymmetric point, and / or any suitable extension location.
[0057] The discrete corrections preferably correspond to grid point 1600 corrections (e.g., corrections corresponding to reference points or geographic locations), but may correspond to a continuous model, grid lines (e.g., corrections corresponding to reference lines), grid surfaces (e.g., corrections associated with grid surfaces), and / or any suitable model format. The grid points are preferably evenly spaced (e.g., forming a uniform grid), but may be unevenly spaced. The grid points may correspond to a regular grid (e.g., a Cartesian grid, a rectilinear grid, an oblique grid, a curvilinear grid, etc.) and / or an irregular grid. The grid points may correspond to predetermined locations (e.g., on the surface of the Earth), reference station locations, receiver locations, broadcast tower locations, geostationary orbit locations, random or pseudo-random locations, virtual locations, hypothetical locations, and / or any suitable locations. The grid points may preferably be spaced apart by distances between approximately 10-1000 km, such as 50 km, 100 km, 200 km, 500 km, or 750 km. In an illustrative example, the grid points may be spaced apart by approximately 1° of latitude and / or 1° of longitude (e.g., between adjacent or nearest neighboring grid points). However, the grid points may be separated by less than 10 km, more than 1000 km, 0.01-10° latitude or longitude, less than 0.01° latitude or longitude, greater than 10° latitude or longitude, and / or any suitable distance.
[0058] A tile is preferably associated with between 3-1000 (e.g., 3, 4, 5, 6, 8, 10, 15, 20, 25, 30, 40, 50, 100, 150, 200, 300, 400, 500, 1000, values therebetween, etc.), less than 3 grid points (such as 0 grid points, 1 grid point, 2 grid points), greater than 1000 grid points, and / or any suitable number of grid points or other discrete corrections. The grid points may be along the edges of the tile, at the vertices of the tile, at the centroid of the tile or a portion thereof, randomly positioned, and / or otherwise arranged relative to the tile. Each tile is preferably associated with the same number of grid points. However, different tiles may be associated with different numbers of grid points. In one example, each tile may be associated with exactly 25 grid points. In a second example, each tile may be associated with exactly 30 grid points. However, each tile may be associated with any number of grid points.
[0059] In a variation, estimation techniques may be used to provide substantially continuous coverage over areas that do not correspond to discrete locations and / or to determine corrections for specific locations (e.g., GNSS receiver locations, locations that are different from grid points, locations that are greater than a threshold distance from grid points, etc.). Examples of estimation techniques include interpolation, extrapolation, rounding, selecting the nearest grid point, prediction (e.g., using machine learning), and / or other estimation techniques may be performed. These estimation techniques are preferably performed by the receiver (e.g., its computing system), but may be performed by a correction generator, a cloud computing service, and / or any suitable component. For example, discrete corrections may be interpolated using nearest neighbor interpolation, kriging, inverse distance weighting, natural neighbor interpolation, spline interpolation, radial basis function interpolation, Barnes interpolation, bilinear interpolation, bicubic interpolation, Bézier surfaces, Lanczos resampling, Delaunay triangulation, gradient boosted kriging, polyharmonic splines (e.g., thin plate splines), and / or using any suitable interpolation method. For example, Figures 7A-7C As shown in , interpolation can include: triangular interpolation (e.g., interpolating between 3 grid points), rectangular interpolation (e.g., interpolating between 4 grid points) and / or any suitable interpolation (e.g., interpolating between 2, 5, 6, 8, 10, 15, 20, 25, 100, values therebetween, etc. grid points).
[0060] When the estimation (e.g., interpolation, extrapolation, etc.) can have a direction (e.g., as in Figure 7A and Figure 7B , triangulation, etc.), the orientation may be selected based on kinematic parameters of the receiver (e.g., velocity, direction of travel, etc.), randomly selected, predetermined (e.g., preset), selected based on verified or (expected) receiver positioning accuracy or completeness, selected based on verification of corrections, determined based on a preferred orientation, and / or selected in other ways. However, any orientation may be used (e.g., where the results may be averaged, selected using voting, etc.) and / or any suitable orientation may be used.
[0061] Discrete corrections can be or include: component corrections for geographic location (e.g., ionospheric corrections, tropospheric corrections); corrections for continuous corrections (e.g., where the component corrections are determined using a primary correction method and the grid point corrections adjust the output); and / or other corrections. For example, each discrete correction can be associated with a residual value (e.g., a residual of tropospheric delay; a residual of ionospheric delay, such as the total electron content (TEC), the slant total electron content (STEC), the vertical total electron content (VTEC), etc., for one or more satellites in the satellite group; etc., such as the residual after fitting the modeled correction to the fitting function), a variance or standard deviation of the atmospheric delay (e.g., for the troposphere, for the ionosphere, etc.), and / or any suitable information can be included or associated with the discrete correction point.
[0062] Discrete corrections can be associated with a single tile and / or multiple tiles. A discrete correction for overlapping multiple tiles can be determined (e.g., calculated, averaged, etc.) based on all or a subset of the continuous corrections for the overlapping tiles (e.g., the residuals from each continuous correction can be used to generate the discrete correction). For example, the same grid point correction can correct the output of all overlapping continuous corrections. However, a different discrete correction can be provided for each overlapping tile, or a different discrete correction can be determined in other ways.
[0063] Each tile is preferably associated with a unique correction. However, more than one tile may correspond to the same correction. The correction for each tile may be independent (e.g., uncorrelated) and / or dependent on the corrections for other tiles. In a first illustrative example, a discrete correction may correct for residual differences resulting from differences in continuous corrections between tiles. In a second illustrative example, the continuous correction may be normalized, renormalized, regularized, and / or otherwise modified to ensure that the residual (e.g., receiver positioning residual) is less than a threshold for receiver positioning determined using corrections corresponding to different tiles. The second illustrative example may be beneficial when the residual (e.g., from using only continuous corrections) cannot be limited to less than a threshold, but the second illustrative example may be used when the residual is limited to less than a threshold. In the second illustrative example, all tiles are preferably generated simultaneously (e.g., at the same time, within a predetermined duration of each other), but may be generated with any suitable timing.
[0064] The computing system is preferably communicatively coupled to the receiver, the reference station, but the computing system may communicate with any suitable component. In a variant, the computing system may include one or more of: a communication module and a correction module. However, the computing system may include any suitable module.
[0065] In certain examples, the system may include U.S. patent application Ser. No. 16 / 983,706, filed on August 3, 2020, entitled “SYSTEM AND METHOD FOR GAUSSIAN PROCESS ENHANCED GNSS CORRECTIONS GENERATION,” U.S. patent application Ser. No. 16 / 817,196, filed on March 12, 2020, entitled “SYSTEMS AND METHODS FOR REAL TIME KINEMATIC SATELLITE POSITIONING,” U.S. patent application Ser. No. 16 / 865,077, filed on May 1, 2020, entitled “SYSTEMS AND METHODS FOR HIGH-INTEGRITY SATELLITE POSITIONING,” and / or U.S. patent application Ser. No. 16 / 836,964, filed on October 1, 2019, entitled “SYSTEMS AND METHODS FOR DISTRIBUTED DENSE NETWORK PROCESSING OF SATELLITE POSITIONING.” DATA", each of which is hereby incorporated by reference in its entirety, or otherwise configured.
[0066] 4. Method.
[0067] The method preferably functions to determine GNSS corrections and / or estimate (e.g., calculate, determine) a receiver position (e.g., by utilizing or using GNSS corrections). The steps and / or substeps of the method may be performed iteratively (e.g., for different periods of time, for the same period of time, etc.), sequentially, and / or in any suitable order. The steps and / or substeps of the method may be performed serially and / or in parallel. These steps and / or substeps are preferably performed by the system described above, but may be performed by any system.
[0068] Receive satellite observations S100 functions to measure and / or detect a set of satellite signals at a reference station, a receiver, and / or any suitable endpoint, where each satellite signal is associated with a satellite. Satellite signals corresponding to the same set of satellites are preferably received at the GNSS receiver and reference station; however, the mobile receiver and reference station may receive satellite signals from any satellite. The satellite signals may include satellite codes, satellite pseudoranges, carrier phases, and / or any other suitable data. Receive satellite observations S100 may include transmitting the satellite observations to a computing system and / or a mobile receiver, monitoring the satellite observations (e.g., for predetermined events, for failures, for outliers, etc.), and / or any other suitable steps.
[0069] Determine GNSS corrections S200 functions to determine a set of GNSS corrections that can be used to estimate a receiver position and / or correct a set of satellite observations. The GNSS corrections are preferably determined by a computing system (e.g., a correction generator, a remote computing system), but may be determined by any suitable component. The corrections are preferably determined based on satellite observations received at (e.g., observed by) one or more reference stations, but may be based on any suitable data set. The satellite observations preferably correspond to one or more satellite positioning constellations (e.g., a 2-satellite constellation, a 3-satellite constellation, a 4-satellite constellation, etc.), but may correspond to one or more auxiliary satellite constellations and / or any satellite. Determining GNSS corrections may include determining local corrections, determining global corrections, determining continuous corrections, determining discrete corrections, and / or any other steps.
[0070] GNSS corrections can be based on (e.g. Figure 5A ) penetration point, (as shown in Figure 5A In some variations, the atmosphere may be divided into one or more thin layers (e.g., 2 thin layers, 3 thin layers, 5 thin layers, as in Figure 5B etc.), where each layer can be modeled to determine the correction (dependent or independent of other layers).
[0071] In a first specific example, at least one of an ionospheric effect or a tropospheric effect may be modeled as a function of at least one of a penetration point or a penetration angle of a satellite ray (e.g., a line-of-sight vector between a receiver, such as a mobile receiver, a reference station, and each satellite) for each satellite in the set of satellites. In a first variation of the first specific example, the ionospheric effect for each satellite in the set of satellites may be modeled as a function of a penetration point and a penetration angle for a line of sight between the mobile receiver and each satellite in the set of satellites. In a second variation of the first specific example, the tropospheric effect for each satellite in the set of satellites may be modeled as a function of a penetration point (e.g., where a static correction for the penetration angle for the line of sight between the mobile receiver and each satellite in the set of satellites may be used).
[0072] In a second specific example, at least one of an ionospheric effect or a tropospheric effect can be modeled using a Gaussian process (e.g., using undifferenced satellite observations, using single-differenced satellite observations, using double-differenced satellite observations, etc., such as when the Gaussian process does not include differenced satellite observations). In a variation of the second specific example, a covariance function associated with a first penetration point associated with the first satellite observation and a second penetration point associated with the second satellite observation includes a squared exponential function. However, any suitable covariance function can be used.
[0073] In a third specific example, one may refer to U.S. patent application Ser. No. 16 / 983,706, filed on August 3, 2020, entitled “SYSTEM AND METHOD FOR GAUSSIAN PROCESS ENHANCED GNSS CORRECTIONS GENERATION,” U.S. patent application Ser. No. 16 / 817,196, filed on March 12, 2020, entitled “SYSTEMS AND METHODS FOR REAL TIME KINEMATIC SATELLITE POSITIONING,” U.S. patent application Ser. No. 16 / 865,077, filed on May 1, 2020, entitled “SYSTEMS AND METHODS FOR HIGH-INTEGRITY SATELLITE POSITIONING,” and / or U.S. patent application Ser. No. 16 / 836,964, filed on October 1, 2019, entitled “SYSTEMS AND METHODS FOR DISTRIBUTED DENSE NETWORK PROCESSING OF SATELLITE POSITIONING.” DATA”, each of which is hereby incorporated by reference in its entirety, or GNSS corrections may be determined or verified in other ways. The first, second, and third specific examples may be combined in any manner (e.g., penetration points and / or penetration angles may be used as inputs to the Gaussian process) and / or used individually.
[0074] S200 may include validating the GNSS corrections. However, the GNSS corrections may be individually validated, unvalidated, and / or have any suitable validity. For example, the GNSS corrections may be validated by comparing corrections generated using a first set of satellite observations and a second set of satellite observations (e.g., where each set of satellite observations may be independently used to determine a satellite correction, and the satellite corrections are compared to validate the GNSS corrections). However, the GNSS corrections may be validated based on a model (e.g., the validity of the model), a comparison to other data (e.g., a comparison to weather data, a receiver position determined based on the corrections, etc.), and / or otherwise.
[0075] GNSS corrections are preferably determined (e.g., independently) for a tile (e.g., a plurality of spatial regions covering a geographic area such as a city, county, parish, state, country, continent, ocean, sea, lake, etc.), but GNSS corrections may be determined over a geographic region, at a reference point, at a reference line, and / or may be determined for any region. Determining GNSS corrections for a tile may include fitting the modeled GNSS corrections to a fitting function, determining residuals for the fit function, determining model values at discrete locations (e.g., grid points), and / or any suitable steps. However, the set of GNSS corrections may be modeled within each tile and / or generated in other ways. For example, the set of GNSS corrections may be fit using nonlinear curve fitting (e.g., nonlinear least squares, nonlinear absolute value, etc.), linear curve fitting, algebraic fitting, geometric fitting, and / or any suitable fitting method.
[0076] Determine receiver location S300 acts to determine an approximate receiver position. The receiver location is preferably within approximately 100 km of the actual receiver location (e.g., within or less than 0.1 km, 1 km, 10 km, 100 km, etc.), but may be greater than 100 km from the actual receiver location. The receiver location may be: a coordinate, a tile identifier, a grid point identifier (and / or the nearest grid point), or other identifier. The receiver location may be determined by a receiver, a computing system (e.g., a local computing system, a remote computing system, etc.), and / or by any component. Determining the receiver location may additionally or alternatively include determining receiver kinematics (such as, receiver velocity, receiver attitude, etc.), wherein receiver kinematics may be used in addition to or in place of the receiver location, and / or determining the receiver location may additionally or alternatively include any suitable steps.
[0077] A receiver location may uniquely correspond to or be associated with a tile, and / or may correspond to or be associated with multiple tiles. The receiver location may be determined according to (or based on) the nearest cellular tower, cellular tower trilateration, a WIFI signal, a last known receiver position, a satellite connection (e.g., a satellite network), computer vision (e.g., to identify objects in the receiver environment), user input, a reference station signal (e.g., the nearest reference station), a transponder signal, a previous receiver position (e.g., a previous receiver position determined according to a previous iteration of the method, a receiver position calculated from satellite observations that did not converge, a receiver position calculated from satellite observations that was not verified, a receiver position calculated from satellite observations (such as by using pseudoranges to calculate an approximate receiver position), a receiver position determined before an interruption, etc.), based on or using inertial navigation (e.g., dead reckoning). The receiver location may be determined by estimating the receiver position based on or using navigation (e.g., reckoning), estimating the receiver position based on or using pilotage, estimating the receiver position based on or using celestial navigation, estimating the receiver position based on or using inertial navigation (e.g., dead reckoning), estimating the receiver position based on or using radio navigation (e.g., LORAN-C, Omega, Tacan, U.S. Army Position Location and Reporting System, etc.), and / or the receiver location may be determined in other ways.
[0078] In a first variation, the receiver locations are transmitted to a computing system (eg, a computing system hosting the correction generator).
[0079] In a second variant, the receiver location is used to determine one or more receiver tiles corresponding to the receiver location. The receiver tiles can be transmitted to a computing system. The receiver tiles preferably correspond to a transmission area, but can correspond to a validity area, a tile and / or any suitable tile. The receiver tiles can be determined using (e.g., based on) the overlap of the receiver location and the tile area (e.g., when the overlap between the receiver location and the tile area meets or exceeds a threshold), using an equation, using a lookup table, using machine learning, and / or can be determined in other ways. The receiver location can correspond to a single tile (e.g., a transmission area), multiple tiles (e.g., 2 tiles, 3 tiles, 4 tiles, etc.) and / or not correspond to a tile (e.g., in an error state, when the receiver location is outside the coverage area, etc.). In a first specific example, the receiver tiles are determined based solely on the receiver location. In a second specific example, the receiver tiles can be determined based on the receiver location and receiver kinematic data (e.g., speed, trajectory, rate, acceleration, etc.).
[0080] However, the receiver tiles may be determined in any manner.
[0081] Transmit GNSS corrections S400 functions to transmit GNSS corrections to the receiver. Preferably, only GNSS corrections corresponding to or associated with a receiver tile are transmitted. However, in addition or alternatively, GNSS corrections corresponding to tiles adjacent to a receiver tile may be transmitted (e.g., to act as a buffer in the event of a loss of connection or high transmission delay between the receiver and the computing system) and / or any corrections may be transmitted. GNSS corrections are preferably transmitted from the computing system to the receiver, but may be transmitted between any two endpoints. All or a subset of the GNSS corrections corresponding to each receiver tile may be transmitted.
[0082] GNSS corrections can be transmitted automatically (e.g., on a schedule), semi-automatically (e.g., in response to a trigger such as an update to a correction, an update to a correction within a receiver tile, a change to a receiver tile, etc.), in response to a correction reception request, or manually (e.g., in response to user input). GNSS corrections can be transmitted at a predetermined time (e.g., every 1 second, 2 seconds, 5 seconds, 10 seconds, 20 seconds, 30 seconds, 45 seconds, 60 seconds, 2 minutes, 3 minutes, 5 minutes, 10 minutes, 20 minutes, 30 minutes, 45 minutes, 60 minutes, etc.), based on receiver location (e.g., when the receiver location crosses a boundary between receiver tiles, when the receiver location changes by at least a threshold distance, etc.), when a correction is updated (e.g., when a new correction has been determined), when the satellite group changes (e.g., when a new satellite enters the receiver's line of sight, when a new satellite is in the reference station's line of sight, when a satellite leaves the receiver's line of sight, when a satellite leaves the reference station's line of sight, etc.), based on receiver kinematics (e.g., the predicted time the receiver will cross into a different tile, to select which tiles to transmit, etc.), and / or at any timing and / or based on any information.
[0083] In variations, such as when a receiver tile corresponds to multiple tiles, each GNSS correction in the multiple tiles, the GNSS correction corresponding to the previous tile in which the receiver is located, the GNSS correction corresponding to the new tile in which the receiver is located, the most recent (e.g., most recently updated) GNSS correction, an interpolated GNSS correction (e.g., interpolated between all or a subset of the multiple tiles), and / or any suitable GNSS correction may be transmitted.
[0084] In some variants, transmitting the GNSS corrections may include determining a receiver tile.Determining the receiver tile at the computing system may be performed in the same or different manner as determining the receiver tile at the receiver (eg, as described above).
[0085] Determine Receiver Position S500 functions to determine receiver position with high accuracy (e.g., receiver position is known with high accuracy within 1 mm, 2 mm, 5 mm, 1 cm, 2 cm, 5 cm, 1 dm, 2 dm, 5 dm, 1 m, 2 m, 5 m, 10 m, etc.) and / or with high integrity (e.g., total integrity risk ≤ 1 x 10 -4 / hr, ≤1x10 -5 / hr, ≤1x10 -6 / hr, ≤1x10 -7 / hr, ≤1x10 -8 / hr, etc.) to determine the GNSS receiver position. The receiver position is preferably determined by the receiver (e.g., its computing system, positioning engine, etc.), but can be determined by the computing system and / or any component. Determining the receiver position may include: determining carrier phase ambiguities (e.g., floating point carrier phase ambiguities, integer carrier phase ambiguities, etc.), calculating the receiver position based on the carrier phase ambiguities, determining a baseline vector between the receiver and a reference station, determining an absolute receiver position (e.g., by applying the baseline vector to the reference station position), and / or any steps. An estimator and / or any suitable method can be used to determine the receiver position. Exemplary estimators include: a Kalman filter (e.g., an unscented Kalman filter, an extended Kalman filter, a recursive Kalman filter, etc.), a particle filter, a Monte Carlo simulation method, a least squares solution (e.g., an iterative snapshot least squares method), a Gaussian process, and / or any suitable estimator can be used.
[0086] Determining the receiver position may include correcting a set of satellite observations (observed by the receiver) based on the GNSS corrections, which may act to reduce and / or eliminate the effects of errors on the satellite observations. Correcting the set of satellite observations may include subtracting the GNSS corrections from the satellite observations, adding the GNSS corrections to the satellite observations, transforming the satellite observations based on the GNSS corrections, inputting the GNSS corrections into an estimator (e.g., where a model of a Kalman filter may use the GNSS corrections to process and / or correct the satellite observations), and / or otherwise correcting the set of satellite observations using the GNSS corrections.
[0087] In variations, the receiver position and / or protection level may be transmitted to an external system, stored (e.g., cached), used to operate and / or control the external system, used to generate operating instructions for the external system (e.g., using a GNSS receiver computing system, an external system computing system, etc.), and / or may be used in any manner.
[0088] In a specific example, such as Figure 3As shown, a method for determining a receiver position using corrections may include: receiving satellite observations corresponding to one or more satellites at one or more reference stations; transmitting the satellite observations to a computing system; determining a receiver location at a receiver; transmitting the receiver location to the computing system; determining GNSS corrections, wherein the GNSS corrections correspond to multiple tiles, and wherein the corrections include global corrections and local corrections; transmitting GNSS corrections corresponding to the tiles associated with the receiver location to the receiver; and determining the receiver position using the GNSS corrections. In a related example, only GNSS corrections corresponding to the tile where the receiver is located may be transmitted. However, GNSS corrections for tiles adjacent to the tile where the receiver is located may be transmitted, and / or any GNSS corrections may be transmitted to the receiver.
[0089] In the second specific example, as Figure 6 As shown, a method for generating satellite corrections may include: receiving satellite observations associated with a set of satellites; modeling atmospheric effects as a function of at least one of a penetration point or a penetration angle of a satellite ray for each satellite in the set of satellites; fitting the atmospheric effects to a plurality of polynomial functions; determining a set of grid points comprising residuals of the polynomial fits to the atmospheric effect models; determining a location of a GNSS receiver; and determining satellite corrections based on: a polynomial function of the plurality of polynomial functions associated with a geographic region matching the location of the GNSS receiver; and interpolated residuals determined from grid points near the location of the GNSS receiver.
[0090] However, the systems and / or methods may be implemented in other ways.
[0091] The methods of the preferred embodiments and variations thereof may be at least partially embodied and / or implemented as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions are preferably executed by a computer-executable component integrated with a system for GNSS PVT generation. The computer-readable medium may be stored on any suitable computer-readable medium, such as RAM, ROM, flash memory, EEPROM, optical devices (CD or DVD), hard drives, floppy drives, or any other suitable device. The computer-executable component is preferably a general-purpose or special-purpose processor, but any suitable special-purpose hardware or hardware / firmware combination device may alternatively or additionally execute the instructions.
[0092] Embodiments of the systems and / or methods may include every combination and permutation of the various system components and the various method processes, wherein one or more instances of the methods and / or processes described herein may be performed asynchronously (e.g., sequentially), simultaneously (e.g., in parallel), or in any other suitable order by and / or using one or more instances of the systems, elements, and / or entities described herein.
[0093] As those skilled in the art will recognize from the previous detailed description and from the accompanying drawings and claims, modifications and changes may be made to the preferred embodiments of the invention without departing from the scope of the invention as defined in the appended claims.
Claims
1. A method for generating satellite corrections, comprising: a) receiving satellite observations associated with a set of satellites at a reference station; b) modeling at least one of an ionospheric effect or a tropospheric effect as a function of at least one of a penetration point or a penetration angle of a satellite ray for each satellite in the set of satellites; c) fitting at least one of the ionospheric effect or the tropospheric effect to a plurality of polynomial functions, wherein each polynomial function is valid within a unique geographic region, wherein adjacent unique geographic regions overlap; d) determining a set of grid points comprising residuals of a polynomial fit to at least one of an ionospheric effects model or a tropospheric effects model; e) determine the location of the GNSS receiver; and f) determining said satellite corrections based on: • a polynomial function of the plurality of polynomial functions associated with a geographic region matching a location of the GNSS receiver; as well as • Interpolation residuals determined from a grid of points near the location of the GNSS receiver.
2. The method according to claim 1, wherein Adjacent unique geographic areas overlap by at least 1° of latitude or 1° of longitude.
3. The method according to claim 1, wherein Each unique geographic region comprises a geographic area of 5° latitude by 5° longitude.
4. The method according to claim 3, wherein: Each unique geographic area is associated with 25 grid points.
5. The method according to claim 1, wherein At least one of the ionospheric effects or tropospheric effects is modeled using a Gaussian process.
6. The method according to claim 1, wherein Steps a) to d) are performed at a cloud computing server, wherein only the polynomial functions of the plurality of polynomial functions associated with the geographical area matching the location of the GNSS receiver are transmitted from the cloud computing server to the GNSS receiver. 7 . The method of claim 1 , further comprising utilizing the satellite corrections to correct satellite observations used to determine a position of the GNSS receiver. 8 . The method of claim 7 , further comprising determining operating instructions for a vehicle to which the GNSS receiver is mounted.
9. A method for generating GNSS corrections, comprising: a) receiving satellite observations associated with a set of satellites at a reference station; b) determining an atmospheric correction, wherein the atmospheric correction comprises: ● a set of fitting functions, where each fitting function is valid within a unique geographic region, where adjacent unique geographic regions overlap by at least 0.1° latitude or 0.1° longitude; and ● a set of grid points comprising residual corrections to the set of fitting functions; c) determine the location of the GNSS receiver; and d) determining the GNSS corrections based on: a fitting function from the set of fitting functions that is associated with a geographic region matching the location of the GNSS receiver, wherein the fitting function is provided to the GNSS receiver only if the location of the GNSS receiver is within a transmission area of an associated unique geographic region; and • Residuals determined from residual corrections associated with a grid of points near the location of the GNSS receiver.
10. The method according to claim 9, wherein: Each unique geographic region is a 5° latitude by 5° longitude geographic region.
11. The method according to claim 10, wherein: The transmission area of the unique geographic region is a geographic region of 3° latitude by 3° longitude.
12. The method according to claim 9, wherein Transmission areas for adjacent unique geographic areas do not overlap.
13. The method according to claim 9, wherein: Each unique geographic area is associated with at most 25 grid points.
14. The method according to claim 9, wherein Determining the atmospheric correction includes: a) modeling atmospheric effects as a function of at least one of a penetration point or a penetration angle of a satellite ray for each satellite in the set of satellites; b) fitting the atmospheric effects model using the set of fitting functions; and c) determining the residuals of the atmospheric effects model fit.
15. The method according to claim 14, wherein Each fitting function in the set of fitting functions is a bivariate polynomial function of at most quadratic.
16. The method according to claim 14, wherein The atmospheric effects are modeled using Gaussian processes.
17. The method according to claim 9, wherein The residual is determined by interpolating the residual correction between 2, 3 or 4 grid points near the location of the receiver.
18. The method of claim 9, further comprising utilizing the GNSS corrections to correct satellite observations used to determine a position of the GNSS receiver.
19. The method of claim 18, further comprising determining operating instructions for a vehicle to which the GNSS receiver is mounted.
20. A system configured to perform the method according to any one of claims 1-19.
Citation Information
Patent Citations
Systems and methods for high-integrity satellite positioning
US10809388B1
Systems and methods for distributed dense network processing of satellite positioning data
US20200041654A1
Systems and methods for real time kinematic satellite positioning
US20200271795A1
System and method for gaussian process enhanced GNSS corrections generation
US20210033735A1
Correction information integrity monitoring in navigation satellite system positioning methods, systems, and devices
EP3627188A1