GNSS (Global Navigation Satellite System) positioning method and system based on fusion of edge gateway and Internet of Things terminal
By integrating acceleration and geomagnetic sensor data on the IoT terminal side and combining the dynamic load balancing and dual communication mode of the edge gateway, the data transmission delay and cloud dependence problems in traditional GNSS positioning technology are solved, and efficient collaborative positioning capabilities and stability are achieved.
Patent Information
- Application Number
- CN202510909363.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-02
- Publication Date
- 2025-09-12
AI Technical Summary
Traditional GNSS positioning technology has problems such as high data transmission latency, strong dependence on cloud computing resources, and insufficient collaborative positioning capabilities of IoT terminals, making it difficult to meet the rapid response requirements of highly dynamic scenarios.
By fusing acceleration and geomagnetic sensor data on the IoT terminal side to determine the positioning method, and adopting a dynamic load balancing mechanism and dual communication mode on the edge gateway side, combined with cloud collaboration or local solution, the amount of data uploaded can be reduced and the collaborative positioning capability can be improved.
It reduces dependence on the cloud, improves real-time performance and reliability, and ensures stable positioning when the network is unstable or cloud resources are insufficient, making it suitable for large-scale applications.
Smart Images

Figure CN120630274A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of satellite communication technology, and in particular to a GNSS positioning method and system based on the integration of an edge gateway and an Internet of Things terminal. Background Art
[0002] With the rapid development of Global Navigation Satellite System (GNSS) technology, its applications in the Internet of Things (IoT) are becoming increasingly widespread, such as in intelligent transportation, logistics tracking, and smart agriculture. Traditional GNSS positioning technology typically uploads raw observation data directly to cloud servers for processing, relying on centralized computing resources to achieve high-precision positioning solutions. However, this approach has the following main problems: (1) High data transmission delay: The amount of raw GNSS observation data (such as pseudorange, carrier phase, etc.) is large. Uploading it directly to the cloud will increase the network load and reduce the real-time performance, making it difficult to meet the rapid response requirements of high-dynamic scenarios (such as autonomous driving and drone navigation); (2) Strong dependence on cloud computing resources: Existing solutions usually rely on cloud servers for RTK (real-time kinematic differential) or PPP (precision point positioning) solutions. When the network is unstable or the cloud computing resources are tight, the positioning accuracy and stability will be greatly reduced; (3) Insufficient collaborative capabilities of IoT devices: Traditional GNSS positioning technology often lacks an efficient data fusion mechanism with IoT terminals (such as sensors and actuators), resulting in insufficient collaborative positioning capabilities.
[0003] Therefore, based on the above-mentioned shortcomings, how to provide a GNSS positioning method based on the integration of edge gateways and IoT terminals with low data transmission latency, reduced cloud dependence, and the ability to work in collaboration with IoT terminals has become an urgent problem to be solved. Summary of the Invention
[0004] The technical problem to be solved by the present invention is the problem of satellite positioning. The purpose is to provide a GNSS positioning method and system based on the integration of edge gateway and Internet of Things terminal, which solves the problems of high data transmission delay in traditional technologies, strong dependence on cloud computing resources, resulting in a significant decrease in positioning accuracy and stability when the network signal is poor or cloud computing resources are tight, and insufficient collaborative positioning capabilities.
[0005] The present invention is achieved through the following technical solutions: In the first aspect, a GNSS positioning method based on the integration of an edge gateway and an IoT terminal is provided, comprising: The IoT terminal receives the initial GNSS observation data sent by the GNSS receiver and determines a positioning mode based on the terminal operation data, wherein the positioning mode includes a single point positioning mode or a differential positioning mode, and the terminal operation data includes acceleration data and geomagnetic sensor data of the IoT terminal; The IoT terminal generates GNSS observation data based on the positioning method and initial GNSS observation data and sends it to the edge gateway; After receiving the GNSS observation data, the edge gateway determines the RTT time between it and the IoT terminal; The edge gateway determines whether the RTT time is less than a preset threshold; If yes, the edge gateway processes the GNSS observation data in a cloud-based collaborative manner to obtain positioning data; otherwise, the edge gateway performs local calculations on the GNSS observation data to obtain positioning data; The edge gateway determines a communication distance with the IoT terminal, and determines a communication mode based on the communication distance, wherein the communication mode includes an improved LoRaWAN communication mode or a network slicing communication mode; The edge gateway transmits the positioning data to the IoT terminal based on the communication method to complete the positioning of the IoT terminal.
[0006] Based on the above disclosure, after receiving the initial GNSS observation data transmitted by the GNSS receiver, the IoT terminal in the present invention will determine the positioning method based on its own operating data (such as acceleration data and geomagnetic sensor data), and then generate GNSS observation data based on the positioning method and the initial GNSS observation data. In this way, the present invention is equivalent to fusing the data of the acceleration sensor and geomagnetic sensor in the IoT terminal, and using this to determine the single point positioning or differential positioning method, thereby obtaining the final GNSS observation data; based on this, data fusion with the terminal can improve the collaborative positioning capability; then, the present invention is provided with a dynamic load balancing mechanism on the edge gateway side, that is, according to the RTT time between the gateway and the IoT terminal, different data processing methods are selected, wherein, when the RTT time is less than a preset threshold, the cloud collaborative method is used to solve the GNSS observation data to obtain positioning data, and when the RTT time is less than the preset threshold, the GNSS observation data is solved locally on the gateway to obtain positioning data; in this way, the upload amount of original GNSS data can be reduced, thereby reducing transmission delay; finally, when transmitting data, the improved LoRa is used through different communication distances. WAN communication or network slicing communication is used to transmit positioning data. This ensures the most stable communication when data is transmitted over different distances, thereby reducing the impact of network instability. Based on the dynamic load balancing mechanism and dual-mode communication mechanism, dependence on the cloud can be reduced, and stable positioning can be maintained even when the network is unstable or cloud resources are insufficient.
[0007] Through the above design, the present invention determines the positioning method through acceleration and geomagnetic sensor data on the IoT terminal side, and processes the initial GNSS data to obtain the GNSS data finally used for positioning. Based on this, the present invention realizes data fusion with the sensors in the IoT terminal, which can improve the collaborative positioning capability; at the same time, by setting a dynamic load balancing mechanism, the GNSS observation data is solved by cloud collaboration or gateway local processing. In this way, the upload amount of original GNSS data can be reduced, thereby reducing the transmission delay; in addition, when transmitting positioning data, a dual communication mode is provided, that is, different communication modes are selected according to the communication distance. Based on this, combined with the aforementioned dynamic load balancing mechanism, the dependence on the cloud can be reduced, and stable positioning can be maintained when the network is unstable or cloud resources are insufficient; thus, the present invention reduces the dependence on the cloud, improves real-time performance and reliability, and at the same time realizes collaborative positioning with the IoT terminal, and is therefore very suitable for large-scale application and promotion.
[0008] In one possible design, the IoT terminal determines the positioning method based on the terminal operation data, including: Obtain a target ionospheric disturbance index, a target signal strength, and terminal power, wherein the target ionospheric disturbance index is the ionospheric disturbance index of the area where the IoT terminal is located, and the target signal strength is the signal strength of the base station signal received by the IoT terminal; If the target signal strength is greater than or equal to the strength threshold, determining whether the terminal power level is greater than a preset power level; If so, determining whether the target ionospheric disturbance index is greater than an index threshold, and / or determining whether the Internet of Things terminal is in motion based on the acceleration data and the geomagnetic sensor data; If yes, differential positioning is used; otherwise, single-point positioning is used.
[0009] In one possible design, the GNSS observation data includes: a pseudorange data sequence and a carrier phase sequence, and the edge gateway is deployed in an edge network; The edge gateway performs calculations on the GNSS observation data locally to obtain positioning data, including: Obtaining a local resource occupancy rate and a resource occupancy rate of each remaining edge gateway in the edge network, wherein the local resource occupancy rate is the resource occupancy rate of the edge gateway; Determine whether the local resource utilization rate is less than the resource utilization rates of other edge gateways in the edge network; If yes, filtering the pseudorange data sequence to obtain a filtered pseudorange data sequence, and performing cycle slip detection on the carrier phase sequence to obtain cycle slip detection data; Based on the Kalman filter algorithm, the positioning data is obtained by calculating the filtered pseudorange data sequence and the cycle slip detection data.
[0010] In one possible design, filtering the pseudorange data sequence to obtain a filtered pseudorange data sequence includes: Determining the length of the filter window at the t-th sliding, wherein the initial value of t is 1, and when t is 1, the length of the filter window at the t-th sliding is the first initial value; Taking the target data in the pseudorange data sequence as a starting point, determining the pseudorange data in the filter window at the t-th sliding from the pseudorange data sequence as the pseudorange data in the current window, wherein the target data is the pseudorange data next to the last pseudorange data in the filter window at the t-1-th sliding; Filtering the pseudorange data in the current window to obtain filtered pseudorange data; Increment t by 1 and re-determine the length of the filter window at the t-th sliding time until the pseudo-range data sequence is polled and a plurality of filtered pseudo-range data are obtained; The filtered pseudorange data sequence is generated by using a plurality of filtered pseudorange data.
[0011] In a possible design, determining the length of the filter window at the t-th sliding step includes: Get the filtering window at the t-1th sliding time, and use the filtering window at the t-1th sliding time as the initial window; Taking the target data as a starting point, determining the pseudorange data within the initial window from the pseudorange data sequence; Calculating the data noise at the t-th filtering time based on the pseudorange data in the initial window and the pseudorange data in the filtering window at the t-1-th sliding time; Determining a random disturbance factor based on the data noise; The length of the filter window during the t-th sliding is calculated according to the random disturbance factor and the data noise.
[0012] In one possible design, performing cycle slip detection processing on the carrier phase sequence to obtain cycle slip detection data includes: Determining the length of the n-th sliding window, wherein an initial value of n is 1, and when n is 1, the length of the n-th sliding window is the second initial value; Taking designated data in the carrier phase sequence as a starting point, determining carrier phase data in the n-th sliding window from the carrier phase sequence, wherein the designated data is the next carrier phase data of the last carrier phase data in the n-1-th sliding window; Performing coarse cycle slip detection on the carrier phase data within the n-th sliding window to obtain candidate cycle slip data; Incrementing n by 1 and re-determining the length of the sliding window for the nth time until the carrier phase sequence is polled, thereby obtaining a plurality of candidate cycle slip data, and forming a candidate cycle slip sequence using the plurality of candidate cycle slip data; Performing detailed cycle slip detection on the candidate cycle slip sequence to obtain an initial cycle slip sequence; A carrier phase weight of the initial cycle slip sequence is determined, and a cycle slip repair process is performed on the initial cycle slip sequence using the carrier phase weight, so as to obtain the cycle slip detection data after the cycle slip repair process.
[0013] In one possible design, the edge gateway transmits the positioning data to the IoT terminal based on the communication method, including: Classifying the positioning data to obtain multiple types of positioning sub-data; Calculate the transmission priority of various types of positioning sub-data; According to the order of transmission priority from high to low, and using the improved LoRaWAN communication method or network slicing communication method, various types of positioning sub-data are transmitted to the IoT terminal.
[0014] In one possible design, various types of positioning sub-data are transmitted to the IoT terminal in descending order of transmission priority using an improved LoRaWAN communication method, including: For any type of positioning sub-data, obtain a joining request sent by an IoT terminal, and calculate a spreading factor based on the joining request; determining a transmission rate according to the spreading factor; Dividing any type of positioning sub-data into a plurality of data blocks, wherein any data block includes multiple frames of positioning sub-data; Transmitting the bth data block to the IoT terminal at the transmission rate; Determine whether the confirmation reply information fed back by the IoT terminal has been received; If not, calculate the backoff duration and determine the new spreading factor; After waiting for the backoff period, determining a new transmission rate using the new spreading factor, and retransmitting the b-th data block based on the new transmission rate until receiving the confirmation reply information; Increment b by 1, update the transmission rate to the new transmission rate, and transmit the bth data block to the IoT terminal again according to the transmission rate until b is equal to B, thereby completing the transmission of any type of positioning sub-data, where the initial value of b is 1 and B is the total number of data blocks.
[0015] In one possible design, the edge gateway is deployed in an edge network, wherein when the edge gateway receives multiple GNSS observation data, the method further includes: Determine a parallel processing gateway from the remaining edge gateways in the edge network, wherein the number of the parallel processing gateways is the same as the number of GNSS observation data, and each parallel processing gateway corresponds to a piece of GNSS observation data; Obtaining a master key and generating a periodic key based on the master key, wherein the periodic key is stored in the TrustZone security zone of the edge gateway; Generate a session key corresponding to each GNSS observation data based on the periodic key; Using the session key corresponding to each piece of GNSS observation data, each piece of GNSS observation data is encrypted to obtain a number of encrypted data; Each piece of encrypted data is sent to the corresponding parallel processing gateway, so that each parallel processing gateway decrypts the received encrypted data to obtain decrypted GNSS data, and performs spoofing detection on the decrypted GNSS data to identify whether the received decrypted GNSS data is real data. When the received decrypted GNSS data is identified as real data, the data detection result is sent to the edge gateway, so that the edge gateway uses the data detection result to screen out the GNSS observation data belonging to the real data, so as to use the GNSS observation data belonging to the real data to obtain the positioning data corresponding to the GNSS observation data belonging to the real data.
[0016] In the second aspect, a GNSS positioning system based on the integration of an edge gateway and an IoT terminal is provided, including: an edge gateway, an IoT terminal, and a GNSS receiver. The edge gateway includes a radio frequency front end, an FPGA unit, and an ARM unit: An IoT terminal, configured to receive initial GNSS observation data sent by a GNSS receiver and determine a positioning mode based on terminal operation data, wherein the positioning mode includes a single-point positioning mode or a differential positioning mode, and the terminal operation data includes acceleration data and geomagnetic sensor data of the IoT terminal; The IoT terminal is further configured to generate GNSS observation data based on the positioning method and the initial GNSS observation data and send the data to the RF front end in the edge gateway; A radio frequency front end, configured to receive the GNSS observation data and transmit the GNSS observation data to the FPGA unit; The FPGA unit is configured to determine the RTT time between the GNSS observation data and the IoT terminal after receiving the GNSS observation data; An FPGA unit is used to determine whether the RTT time is less than a preset threshold; The FPGA unit is further configured to, when it is determined that the RTT time is less than a preset threshold, process the GNSS observation data in a cloud-based collaborative manner to obtain positioning data; otherwise, perform calculations on the GNSS observation data locally on the gateway to obtain the positioning data; An ARM unit, configured to determine a communication distance with the IoT terminal and determine a communication mode based on the communication distance, wherein the communication mode includes an improved LoRaWAN communication mode or a network slicing communication mode; The ARM unit is also used to transmit the positioning data to the Internet of Things terminal based on the communication method to complete the positioning of the Internet of Things terminal.
[0017] In the third aspect, an electronic device is provided as an example, comprising a memory, a processor and a transceiver that are communicatively connected in sequence, wherein the memory is used to store computer programs, the transceiver is used to send and receive messages, and the processor is used to read the computer program and execute the GNSS positioning method based on the integration of edge gateway and Internet of Things terminal as described in the first aspect or any possible design of the first aspect.
[0018] In a fourth aspect, a storage medium is provided, on which instructions are stored. When the instructions are run on a computer, the GNSS positioning method based on the integration of the edge gateway and the Internet of Things terminal as described in the first aspect or any possible design of the first aspect is executed.
[0019] In a fifth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, causes the computer to execute the GNSS positioning method based on the fusion of an edge gateway and an IoT terminal as described in the first aspect or any possible design of the first aspect.
[0020] Compared with the prior art, the present invention has the following advantages and beneficial effects: (1) The present invention determines the positioning method on the IoT terminal side through acceleration and geomagnetic sensor data, and processes the initial GNSS data to obtain the GNSS data finally used for positioning. Based on this, the present invention realizes data fusion with the sensors in the IoT terminal, which can improve the collaborative positioning capability; at the same time, by setting a dynamic load balancing mechanism, the GNSS observation data is solved by cloud collaboration or gateway local processing, so that the upload amount of original GNSS data can be reduced, thereby reducing the transmission delay; in addition, when transmitting positioning data, a dual communication mode is set, that is, different communication modes are selected according to the communication distance. Based on this, combined with the above-mentioned dynamic load balancing mechanism, it can reduce the dependence on the cloud, and thus maintain stable positioning when the network is unstable or the cloud resources are insufficient; thus, the present invention reduces the dependence on the cloud, improves the real-time performance and reliability, and at the same time realizes collaborative positioning with the IoT terminal, so it is very suitable for large-scale application and promotion.
[0021] (2) The present invention can effectively eliminate abnormal data through adaptive window filtering and adaptive window + double cycle jump detection, thereby ensuring the accuracy of positioning.
[0022] (3) The present invention performs priority classification when transmitting positioning data, thereby ensuring that key positioning data is uploaded first, thereby reducing bandwidth occupancy and being very suitable for application in large-scale IoT terminal deployment scenarios.
[0023] (4) The present invention is provided with a parallel processing mode, that is, when an edge gateway receives multiple GNSS observation data, it sends the data to other edge gateways, so that the parallel processing of multiple observation data deception detection can be realized, thereby improving the processing efficiency; at the same time, when the observation data is transmitted, the data is encrypted, and the periodic key is stored in the TrustZone area. Based on this, a trusted execution environment is established, which can effectively resist forgery attacks, thereby improving the security and reliability of positioning. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] In order to more clearly illustrate the technical solutions of the exemplary embodiments of the present invention, the following briefly introduces the drawings required for use in the examples. It should be understood that the following drawings only illustrate certain embodiments of the present invention and should not be considered as limiting the scope. A person of ordinary skill in the art can also derive other relevant drawings based on these drawings without inventive effort. In the drawings: Figure 1 A schematic diagram of the steps of a GNSS positioning method based on the integration of an edge gateway and an IoT terminal provided in an embodiment of the present invention; Figure 2 A schematic diagram of the architecture of a positioning system based on the integration of edge gateways and IoT terminals provided by an embodiment of the present invention; Figure 3 A schematic structural diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0025] To make the objectives, technical solutions, and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the following examples and accompanying drawings. The exemplary embodiments of the present invention and their descriptions are intended only to explain the present invention and are not intended to limit the present invention. It should be understood that although the terms "first," "second," and so on may be used herein to describe various elements, these elements should not be limited by these terms. These terms are merely used to distinguish one element from another. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element without departing from the scope of the exemplary embodiments of the present invention.
[0026] Example: See also Figure 2As shown, before explaining the GNSS positioning method provided by this embodiment, a positioning system is provided for this method, which may include but is not limited to: a base station, an edge gateway, an Internet of Things terminal, a GNSS receiver (the GNSS receiver is set on the Internet of Things terminal), and a cloud server, wherein a plurality of edge gateways are provided, and the plurality of edge gateways communicate with each other to form an edge network, and each edge gateway is respectively connected to the Internet of Things terminal and the cloud server in communication; at the same time, since the edge gateways communicate with each other, a data verification mechanism based on blockchain can be used to carry out data communication between edge gateways, thereby ensuring the credibility of data during collaborative positioning of multiple devices.
[0027] Specifically, the GNSS receiver communicates with the satellite to obtain satellite signals (i.e., initial GNSS observation data). Then, the IoT terminal determines the positioning method (i.e., single-point positioning method or differential positioning method) through the data of its own sensors, and generates the final GNSS observation data used for positioning based on the positioning method and the aforementioned initial GNSS observation data, which is then uploaded to the edge gateway. The edge gateway uses the method provided in this embodiment to locally resolve the GNSS observation data, or uses a cloud-based collaborative method (i.e., with a cloud server) to resolve the GNSS observation data and obtain positioning data. Finally, the positioning data is transmitted based on the dual communication mode.
[0028] In specific applications, for example, IoT terminals can manage power consumption based on their own operating data. That is, they can detect whether they are in a stationary state based on the acceleration and geomagnetic sensor data in the terminal operating data. If it is detected that they are in a stationary state, the carrier phase processing circuit is turned off, that is, they directly switch to a single-point positioning mode, thereby reducing their own power consumption and achieving the purpose of improving battery life.
[0029] In this way, the positioning system based on the integration of the aforementioned edge gateway and IoT terminals can reduce dependence on the cloud, improve real-time performance and reliability, and at the same time achieve collaborative positioning with IoT terminals.
[0030] Optional, see Figure 1 As shown, the aforementioned GNSS positioning method based on the integration of edge gateway and IoT terminal can be executed on, but not limited to, the edge gateway, IoT terminal and cloud server side, wherein the operation steps of the method can be, but not limited to, as shown in the following steps S1 to S7.
[0031] S1. The IoT terminal receives initial GNSS observation data from a GNSS receiver and determines a positioning method based on the terminal's operating data. The positioning method may include single-point positioning or differential positioning, and the terminal's operating data may include acceleration data and geomagnetic sensor data from the IoT terminal.
[0032] In this embodiment, the GNSS receiver communicates with the satellite to obtain initial GNSS observation data, wherein the initial GNSS observation data mainly includes an initial pseudorange data sequence, an initial carrier phase sequence, satellite data, and satellite frequency band, etc.; then, the IoT terminal can generate the GNSS observation data ultimately used for positioning based on its own sensor data and in combination with the initial GNSS observation data transmitted by the GNSS receiver; wherein, this embodiment first determines the positioning method, and then, based on the positioning method and the initial GNSS observation data, obtains the GNSS observation data ultimately used for positioning; in this way, data fusion between the GNSS receiver and the IoT terminal can be achieved.
[0033] Optionally, the process of determining the positioning method is shown in the following steps S11 to S14.
[0034] S11. The IoT terminal obtains a target ionospheric disturbance index, a target signal strength, and a terminal power level. The target ionospheric disturbance index is the ionospheric disturbance index of the region where the IoT terminal is located, and the target signal strength is the signal strength of the base station signal received by the IoT terminal. In specific applications, the target ionospheric disturbance index is a numerical indicator used to describe and quantify the degree of ionospheric disturbance in the region where the terminal is located. The ionospheric disturbance index can be calculated by calculating the relative change in ionospheric TEC and then calculating the ionospheric disturbance index based on the relative change in ionospheric TEC. In this embodiment, the aforementioned method is a commonly used method for calculating the ionospheric disturbance index, and its calculation process is not further described. At the same time, the base station signal strength can be obtained by reading the RSRP (Received Signal Reference Power) value of the signal on the terminal. Thus, after obtaining the aforementioned target ionospheric disturbance index, target signal strength, and terminal power level, a positioning method can be selected, and the process is shown in the following steps S12 to S14.
[0035] S12. If the target signal strength is greater than or equal to the strength threshold, determine whether the terminal battery level is greater than a preset battery level. In this embodiment, if the base station signal strength is greater than or equal to the strength threshold, it indicates that the base station signal is good and can be used for high-precision positioning. Then, determine whether the terminal meets the power consumption requirements for high-precision positioning, that is, determine whether its battery level is greater than a preset battery level. When the terminal battery level is less than a preset battery level (such as 30%), it is insufficient to support high-precision differential positioning. In this case, it is necessary to directly switch to a single-point positioning mode. Of course, if the target signal strength is lower than the strength threshold, it will also directly switch to a single-point positioning mode. When the target signal strength is greater than or equal to the strength threshold and the terminal battery level is higher than the preset battery level, terminal motion state detection is required, and the process is shown in the following step S13.
[0036] S13. If so, determine whether the target ionospheric disturbance index is greater than an index threshold, and / or determine whether the IoT terminal is in motion based on the acceleration data and the geomagnetic sensor data. In this embodiment, if the terminal is in motion (i.e., when the acceleration and geomagnetic sensor data are greater than set values, it is determined that it is in motion), and / or the target ionospheric disturbance index is greater than an index threshold (indicating a high level of ionospheric activity, which significantly interferes with signal transmission and, therefore, requires high-precision positioning to ensure positioning accuracy), differential positioning is used. Conversely, if the IoT terminal is stationary and the target ionospheric disturbance index is less than the index threshold, single-point positioning is used, as shown in step S14 below.
[0037] S14. If yes, then use differential positioning; otherwise, use single-point positioning.
[0038] In this way, through the aforementioned steps S11 to S14, the positioning method can be determined in combination with the sensor data, and then it can be fused with the data received by the GNSS receiver to obtain the final GNSS observation data used for positioning. The process is shown in the following step S2.
[0039] S2. The IoT terminal generates GNSS observation data based on the positioning method and the initial GNSS observation data and sends it to the edge gateway. In specific applications, if the positioning method is single-point positioning, the IoT terminal directly sends the initial GNSS observation data as GNSS observation data to the edge gateway, that is, it uses its own GNSS observation data for positioning. If the positioning method is differential positioning, the IoT terminal needs to receive the observation correction number transmitted by the GNSS receiver on the base station. Then, the IoT terminal corrects the initial GNSS observation data based on the observation correction number to obtain the corrected observation data. Finally, the corrected observation data is uploaded to the edge gateway as the GNSS observation data. In this way, the GNSS observation data actually also includes the pseudorange data sequence, carrier phase sequence, satellite data, and satellite frequency band.
[0040] In this embodiment, differential positioning involves installing a GNSS receiver at a base station. The base station calculates the distance correction from the base station to the satellite based on its own known position coordinates, and then transmits this correction to the user receiver (i.e., the IoT terminal), allowing the user receiver to correct its own observation data to improve positioning accuracy. Of course, differential positioning is a commonly used technology for GNSS positioning, and its correction process will not be repeated here.
[0041] In this way, through the aforementioned steps S1 and S2, this embodiment realizes the fusion of data on the GNSS receiver and sensor data in the IoT terminal, based on which the collaborative positioning capability can be improved.
[0042] In specific implementation, after receiving the GNSS observation data, the edge gateway can perform the calculation of the GNSS observation data, thereby completing the positioning of the terminal; wherein, this embodiment is provided with a dynamic load balancing mechanism to select different processing methods for data calculation, thereby reducing the amount of data transmitted, and the process is shown in the following steps S3 to S5.
[0043] S3. After receiving the GNSS observation data, the edge gateway determines the RTT time between itself and the IoT terminal. In this embodiment, the edge gateway is equipped with three processing units: a radio frequency front end (RFF), an FPGA unit, and an ARM unit. The RF front end is used to receive GNSS observation data, the FPGA unit is used to preprocess the GNSS observation data, and the ARM unit is used to resolve the preprocessed observation data, prioritize the resolved positioning data, and transmit the positioning data.
[0044] Optionally, the RTT time is the round-trip time, that is, the time it takes for data to be transmitted from the edge gateway to the IoT terminal and then returned to the edge gateway, and is obtained after the edge gateway sends test data to the IoT terminal, that is, the round-trip transmission time of the test data is recorded to obtain the RTT time; of course, the RTT time can be updated at preset time intervals to ensure the real-time nature of the RTT time; of course, different communication methods can also be selected according to the distance between the edge gateway and the IoT terminal, so as to determine the RTT time corresponding to the most suitable communication method at different distances.
[0045] After obtaining the RTT time, different processing methods can be selected according to the RTT time, that is, using the dynamic load balancing mechanism to choose to solve the GNSS observation data locally or in a cloud-based collaborative manner. The operation process corresponding to the dynamic load balancing mechanism is shown in the following steps S4 and S5.
[0046] S4. The edge gateway determines whether the RTT time is less than a preset threshold. In this embodiment, the preset threshold can be, but is not limited to, 50 ms. When the RTT time is less than 50 ms, the cloud-based collaborative solution is enabled. Otherwise, the GNSS observation data is calculated locally on the gateway, as shown in step S5 below.
[0047] S5. If yes, the edge gateway processes the GNSS observation data in a cloud-based collaborative manner to obtain positioning data. Otherwise, the GNSS observation data is processed locally on the gateway to obtain the positioning data.
[0048] In this embodiment, the processing process of the cloud coordination method is as follows: data preprocessing is performed locally at the gateway; then, the preprocessed GNSS observation data is transmitted to the cloud server for resolution, that is, first, the pseudorange data sequence is filtered locally at the gateway to obtain a filtered pseudorange data sequence, and the carrier phase sequence is subjected to cycle slip detection processing to obtain cycle slip detection data; then, the filtered pseudorange data sequence and the cycle slip detection data are transmitted to the cloud server, so that the cloud server calculates the positioning data based on the filtered pseudorange data sequence and the cycle slip detection data, and transmits the positioning data to the edge gateway; finally, the edge gateway receives the positioning data transmitted by the cloud server to complete the cloud-based collaborative processing of the GNSS observation data.
[0049] Similarly, when the RTT time is greater than 50ms, the entire solution processing process is performed locally at the gateway, as shown in the following steps S51 to S54.
[0050] S51. Obtain the local resource occupancy rate and the resource occupancy rates of the remaining edge gateways in the edge network, wherein the local resource occupancy rate is the resource occupancy rate of the edge gateway. In this embodiment, as described above, the edge gateway is deployed in the edge network and communicates with the remaining edge gateways in the network. Therefore, the remaining edge gateways send their own resource occupancy rates to the edge gateway. The edge gateway can then compare its own resource occupancy rate (i.e., the aforementioned local resource occupancy rate) with the resource occupancy rates of the remaining edge gateways, thereby selecting the edge gateway corresponding to the minimum resource occupancy rate, and then performing data solution locally at the edge gateway with the minimum resource occupancy rate. The process is shown in the following steps S52 to S54.
[0051] S52. Determine whether the local resource utilization rate is less than the resource utilization rates of the remaining edge gateways in the edge network. In a specific application, if the local resource utilization rate is less than the resource utilization rates of all the remaining edge gateways, it indicates that the current edge gateway is the optimal gateway and has the fastest processing speed. Therefore, data can be directly solved locally on the current edge gateway, as shown in steps S53 and S54 below.
[0052] On the contrary, if the local resource occupancy rate is greater than the resource occupancy rate of any of the other edge gateways, it means that the resource available amount of the current edge gateway is not the largest. Therefore, it is necessary to select the edge gateway corresponding to the smallest resource occupancy rate and use it as the optimal gateway; then, the GNSS observation data is transmitted to the optimal gateway, and the optimal gateway performs the GNSS observation data solution locally; among them, since the solution process is the same, this embodiment uses the current edge gateway as the optimal gateway to explain the data solution process, as shown in the following steps S53 and S54.
[0053] S53. If so, filtering the pseudorange data sequence to obtain a filtered pseudorange data sequence, and performing cycle slip detection on the carrier phase sequence to obtain cycle slip detection data. In a specific application, pseudorange filtering and cycle slip detection are performed in the FPGA unit of the edge gateway. This embodiment provides an adaptive window pseudorange filtering algorithm to improve filtering effects, as shown in steps S53a to S53e below.
[0054] S53a. Determine the length of the filter window at the t-th sliding, where the initial value of t is 1, and when t is 1, the length of the filter window at the t-th sliding is the first initial value. In a specific application, the filter window is moved to filter the pseudorange data sequence. However, to ensure the filtering effect, this embodiment requires re-determining the window length based on data noise before each movement of the filter window. The filter window length calculation process can be, but is not limited to, as shown in the following steps S53a1 to S53a5.
[0055] S53a1. Obtain the filtering window at the t-1th sliding time, and use the filtering window at the t-1th sliding time as the initial window. In this embodiment, this is equivalent to obtaining the window length at the last filtering time, and then intercepting the data using the window length at the last filtering time. The process is shown in the following step S53a2. Of course, when t is 1, the length of the filtering window at the first sliding time directly uses the first initial value, and no calculation is required.
[0056] S53a2. Using the target data as a starting point, determine the pseudorange data within the initial window from the pseudorange data sequence. In this embodiment, assuming that the window length during the previous filtering is 4, and the last pseudorange data in the window during the previous filtering is the fourth data in the pseudorange data sequence, then the target data is the fifth data in the pseudorange data sequence. Thus, the fifth to eighth data in the sequence are used as the pseudorange data within the initial window.
[0057] After obtaining the pseudorange data in the initial window, the data noise during this filtering can be calculated by combining the data in the filtering window during the previous sliding. The process is shown in the following step S53a3.
[0058] S53a3. Calculate the data noise during the t-th filtering based on the pseudorange data in the initial window and the pseudorange data in the filtering window during the t-1-th sliding. In a specific application, calculate the difference between each pseudorange data in the initial window and each pseudorange data in the filtering window during the t-1-th sliding to obtain a plurality of pseudorange differences. Then, calculate the variance of the plurality of pseudorange differences and use the variance as the data noise.
[0059] As explained on the basis of the above example, the pseudorange data in the filtering window at the t-1th sliding time are the first to fourth data in the pseudorange data sequence, and the pseudorange data in the initial window are the fifth to eighth data in the sequence. Then, the difference between the first and fifth data, the difference between the second and sixth data, the difference between the third and seventh data, and the difference between the fourth and eighth data are calculated; finally, the variance of the four differences is calculated to obtain the data noise at the second filtering; of course, when t is other values, the calculation process of the data noise is the same and will not be repeated here.
[0060] After the data noise is obtained, the random disturbance factor can be determined, and the process is shown in the following step S53a4.
[0061] S53a4. According to the data noise, a random perturbation factor is determined; in the specific implementation, a random number conforming to a normal distribution is generated based on the data noise, thereby using the random number as a random perturbation factor; specifically, assuming that the random perturbation factor is ,So, ,in, represents the data noise, represents a constant, Represents a normal distribution.
[0062] In this way, after obtaining the random disturbance factor, the length of the filter window at the t-th sliding can be calculated in combination with the aforementioned data noise. The process is shown in the following step S53a5.
[0063] S53a5. Calculate the length of the filter window at the t-th sliding according to the random disturbance factor and the data noise; in a specific implementation, first determine whether the data noise is greater than the noise threshold; if so, obtain the window adjustment step and the minimum window length, and calculate the length of the filter window at the t-th sliding according to the random disturbance factor, the window adjustment step and the minimum window length; otherwise, obtain the window adjustment step and the maximum window length, and calculate the length of the filter window at the t-th sliding according to the random disturbance factor, the window adjustment step and the maximum window length.
[0064] Optionally, when the data noise is greater than the noise threshold, the following formula (1) is used to calculate the length of the filter window at the t-th sliding.
[0065] (1) In the above formula (1), Indicates the length of the filter window at the t-th sliding, represents the minimum window length, Indicates the length of the filter window at the t-1th sliding time, represents the window adjustment step size, represents the random perturbation factor, represents the disturbance intensity coefficient, where ,and represents the data noise, represents a constant, represents a normal distribution; in this embodiment, 、 、 and All are preset values.
[0066] Similarly, when the data noise is less than or equal to the noise threshold, the following formula (2) is used to calculate the length of the filter window at the t-th sliding.
[0067] (2) In the above formula (2), Indicates the maximum window length.
[0068] Therefore, through the aforementioned steps S53a1 to S53a5, the length of the filter window at the t-th sliding can be calculated, and then the window can be slid using the window length, and the process is shown in the following step S53b.
[0069] S53b. Taking the target data in the pseudorange data sequence as a starting point, determine the pseudorange data within the filtering window at the t-th sliding time from the pseudorange data sequence as the pseudorange data within the current window, wherein the target data is the pseudorange data next to the last pseudorange data in the filtering window at the t-1-th sliding time. In a specific implementation, assuming that the length of the filtering window at the t-th sliding time is 5, and the last pseudorange data in the filtering window at the t-1-th sliding time is the fourth data in the pseudorange data sequence, then the target data is the fifth data in the pseudorange data sequence. Therefore, the pseudorange data in the current window are the fifth to ninth data in the sequence. Of course, when the target data and the length of the filtering window at the t-th sliding time are different, the process of determining the pseudorange data in the current window is the same as in the above example and is not further described here.
[0070] After obtaining the pseudorange data in the current window, data filtering may be performed, the process of which is shown in the following step S53c.
[0071] S53c. Filtering the pseudorange data in the current window to obtain filtered pseudorange data. In a specific implementation, the median and standard deviation of the pseudorange data in the current window are first calculated. Then, based on the median and standard deviation of the pseudorange data in the current window, filter weights for each pseudorange data in the current window are calculated. Finally, based on the filter weights for each pseudorange data in the current window, filtered pseudorange data are calculated.
[0072] Optionally, for any pseudorange data in the current window, the filtering weight of the pseudorange data may be calculated by, for example but not limited to, using the following formula (3).
[0073] (3) In the above formula (3), represents the filtering weight of any pseudorange data, represents any pseudorange data, represents the median value of the pseudorange data in the current window, Indicates the standard deviation of the pseudorange data in the current window, Indicates the filtering adjustment factor, which is set to 1 in this embodiment.
[0074] Thus, based on the aforementioned formula (3), the filtering weights of the various pseudorange data in the current window can be obtained; then, filtering processing can be performed to obtain the filtered pseudorange data; wherein, any pseudorange data is taken as an example for explanation; optionally, the following formula (4) can be used as an example but is not limited to obtain the filtered any pseudorange data.
[0075] (4) In the above formula (4), represents any of the pseudorange data after filtering, represents the filter weight of the jth pseudorange data in the current window, Indicates the total number of pseudorange data in the current window.
[0076] Thus, the filtering processing of the pseudo-range data in the current window can be completed by the above formulas (3) and (4); then, this embodiment also needs to perform filtering verification, and the process is as follows: (1) judging whether the filtered pseudo-range data meets the preset conditions, wherein the preset conditions are that the absolute value of the difference between each pseudo-range data after filtering and each pseudo-range data in the current window is greater than 3 times the standard deviation of all pseudo-range data in the current window; (2) if not, then updating the length of the filtering window at the t-th sliding to the first initial value, and re-taking the target data in the pseudo-range data sequence as the starting point, determining the filtering window at the t-th sliding from the pseudo-range data sequence. The pseudorange data in the current window is obtained by filtering the pseudorange data in the current window to obtain filtered pseudorange data. In this way, when the filtered pseudorange data obtained in the aforementioned step S53c does not meet the preset conditions, the length of the filtering window during the current sliding is set to the first initial value, and filtering is performed again to obtain filtered pseudorange data. Then, the window can be moved, that is, the length of the window during the next sliding is re-determined, and the aforementioned process is repeated until all pseudorange data sequences are polled, and the filtered pseudorange data corresponding to each sliding window can be obtained. The window sliding filtering process is shown in the following step S53d.
[0077] S53d. Increment t by 1 and re-determine the length of the filter window at the t-th sliding time until the pseudorange data sequence is polled and a plurality of filtered pseudorange data are obtained.
[0078] After obtaining a number of filtered pseudorange data, a filtered pseudorange data sequence may be generated based on the data, and the process is shown in the following step S53e.
[0079] S53e. Generate the filtered pseudorange data sequence using the plurality of filtered pseudorange data.
[0080] Therefore, through the aforementioned steps S53a to S53e, the adaptive sliding window can be used to implement filtering of the pseudorange data sequence; then, cycle slip detection of the carrier phase sequence can be performed, and the process is shown in the following steps S53f to S53k.
[0081] S53f. Determine the length of the n-th sliding window, where the initial value of n is 1, and when n is 1, the length of the n-th sliding window is the second initial value. In a specific application, the process of determining the length of the n-th sliding window is the same as that of the filtering window, that is, obtaining the n-1-th sliding window, then using the n-1-th sliding window as the target window, and using specified data in the carrier phase sequence (which is the next carrier phase data of the last carrier phase data in the n-1-th sliding window) as the starting point to determine the carrier phase data in the carrier phase sequence that is within the target window. Then, calculate the standard deviation of the carrier phase data within the target window. Finally, calculate the length of the n-th sliding window based on the standard deviation of the carrier phase data within the target window.
[0082] Optionally, the length of the n-th sliding window is calculated as follows: (5) In formula (5), Indicates the length of the n-th sliding window, represents the second initial value, represents the standard deviation of the carrier phase data within the target window, represents the phase noise threshold, Represent the minimum sliding window length and the maximum sliding window length respectively.
[0083] In this way, after calculating the length of the n-th sliding window based on the above formula (5), the data in the carrier phase sequence that is within the n-th sliding window can be determined. The process is shown in the following step S53g.
[0084] S53g. Taking the designated data in the carrier phase sequence as a starting point, determine the carrier phase data within the n-th sliding window from the carrier phase sequence, wherein the designated data is the next carrier phase data of the last carrier phase data in the n-1-th sliding window. In this embodiment, the process of determining the carrier phase data within the n-th sliding window can be referred to the aforementioned step S53b and will not be repeated here.
[0085] After obtaining the carrier phase data within the n-th sliding window, a coarse cycle slip detection process can be performed, and the process is shown in the following step S53h.
[0086] S53h. Perform coarse cycle slip detection on the carrier phase data within the n-th sliding window to obtain candidate cycle slip data. In this embodiment, the coarse cycle slip detection can be completed by, for example but not limited to, the following steps S53h1 to S53h4.
[0087] S53h1. Determine the median and standard deviation of the carrier phase data within the n-th sliding window, and calculate a cycle slip detection threshold based on the standard deviation. In this embodiment, the cycle slip detection threshold is obtained by multiplying the standard deviation of the carrier phase data within the n-th sliding window by a threshold coefficient. The threshold coefficient can be, for example, but is not limited to, set to 3.
[0088] After the cycle slip detection threshold is obtained, the cycle slip coarse detection of each carrier phase within the n-th sliding window can be performed, and the process is shown in the following step S53h2.
[0089] S53h2. For any carrier phase data in the n-th sliding window, calculate the absolute value of the difference between the carrier phase data and the median to serve as a cycle slip detection value. In a specific implementation, after obtaining the cycle slip detection value, compare it with the cycle slip detection threshold to determine whether the carrier phase data can be used as candidate cycle slip data. This process is shown in steps S53h3 and S54h4 below.
[0090] S53h3. Determine whether the cycle slip detection value is greater than the cycle slip detection threshold.
[0091] S53h4. If yes, any carrier phase data is used as a candidate cycle slip data; in this embodiment, when the cycle slip detection value is less than or equal to the cycle slip detection threshold, any carrier phase data is discarded.
[0092] In this way, through the aforementioned steps S53h1 to S53h4, the coarse cycle slip detection processing of the carrier phase data in the sliding window for the nth time can be completed; then, the length of the next sliding window can be determined in the same way, and the coarse cycle slip detection can be re-performed until the carrier phase sequence is polled, and a number of candidate cycle slip data can be obtained; among which, the coarse cycle slip detection process of the sliding window is shown in the following step S53i.
[0093] S53i. n is incremented by 1, and the length of the n-th sliding window is re-determined until the carrier phase sequence is polled. A number of candidate cycle slip data are obtained, and a candidate cycle slip sequence is formed using the candidate cycle slip data. In a specific application, after the candidate cycle slip sequence is obtained, detailed cycle slip detection processing can be performed, and the process is shown in the following step S53j.
[0094] S53j. Perform detailed cycle slip detection on the candidate cycle slip sequence to obtain an initial cycle slip sequence. In this embodiment, for any candidate cycle slip data in the candidate cycle slip sequence, the method may be, but is not limited to, starting from the candidate cycle slip data and obtaining a plurality of consecutive candidate cycle slip data (e.g., selecting L pieces) subsequent to the starting point as adjacent cycle slip data. Then, a difference value and a standard deviation of the adjacent cycle slip data are calculated. Next, a determination is made as to whether the difference value is greater than k times the standard deviation (for example, k is 2.5). If so, the candidate cycle slip data is used as an initial cycle slip data; otherwise, the candidate cycle slip data is discarded. After all candidate cycle slip data are polled, a plurality of initial cycle slip data are obtained, and the initial cycle slip sequence is formed using the plurality of initial cycle slip data.
[0095] Optionally, in this embodiment, when performing detailed cycle slip detection processing on each candidate cycle slip data in the candidate cycle slip sequence in turn, if the number of candidate cycle slip data following the candidate cycle slip data currently being processed is less than L, then, starting from the candidate cycle slip data currently being processed, Lu candidate cycle slip data are selected forward, and the candidate cycle slip data selected forward and the candidate cycle slip data following the candidate cycle slip data currently being processed are used as adjacent cycle slip data, where u represents the difference between L and the candidate cycle slip data following the candidate cycle slip data currently being processed.
[0096] For example, assuming that the total length of the candidate cycle slip sequence is 10, L is 4, and the candidate cycle slip data currently being processed is the eighth candidate cycle slip data, then the sixth and seventh candidate cycle slip data, as well as the ninth and tenth candidate cycle slip data, are used as adjacent cycle slip data of the eighth candidate cycle slip data.
[0097] In addition, the difference value of adjacent cycle slip data refers to the difference between two adjacent cycle slip data. Thus, assuming there are four adjacent cycle slip data, there are three difference values. Then, if all three difference values are greater than 2.5 times the standard deviation, any candidate cycle slip data is used as an initial cycle slip data. In this way, after all candidate cycle slip data are polled according to the aforementioned method, an initial cycle slip sequence can be generated. Then, cycle slip repair can be performed, and the process is shown in the following step S53k.
[0098] S53k. Determine the carrier phase weight of the initial cycle slip sequence, and perform cycle slip repair processing on the initial cycle slip sequence using the carrier phase weight, so as to obtain the cycle slip detection data after the cycle slip repair processing.
[0099] In specific implementation, it is possible but not limited to first obtaining the satellite elevation angle of the satellite corresponding to the GNSS observation data, as well as the signal-to-noise ratio and carrier wavelength of the GNSS observation data, and then calculating the carrier phase weight based on the satellite elevation angle, the signal-to-noise ratio and the carrier wavelength.
[0100] Optionally, the carrier phase weight may be calculated by, for example but not limited to, using the following formula (6).
[0101] (6) In the above formula (6), represents the carrier phase weight, Indicates the carrier wavelength (i.e., the carrier wavelength of GNSS observation data in the L1 band), represents the signal-to-noise ratio, represents the satellite elevation angle, are all constants.
[0102] In this way, after obtaining the carrier phase weight, cycle slip repair can be performed; wherein, for any initial cycle slip data in the initial cycle slip sequence, cycle slip repair processing can be performed on the any initial cycle slip data based on, but not limited to, the carrier phase weight and the following formula (7) to obtain cycle slip repair data corresponding to the any initial cycle slip data, and after all initial cycle slip data are polled, the cycle slip repair data corresponding to each initial cycle slip data is used to form the cycle slip detection data.
[0103] (7) In the above formula (7), represents any of the initial cycle slip data, represents the cycle slip repair data corresponding to any of the initial cycle slip data, represents the initial cycle slip sequence, represents the median function, Represents the rounding function.
[0104] In this way, by using the above formulas (6) and (7), the cycle slip repair of the initial cycle slip sequence can be completed to obtain the cycle slip detection data. Then, the standard deviation of the cycle slip detection data can be detected to see whether it is less than the phase noise threshold. If the above conditions are not met, it is necessary to re-perform the cycle slip detection, that is, adjust the initial value of the sliding window to re-execute the above steps S53f to S53k until the above conditions are met.
[0105] Therefore, through the aforementioned steps S53f to S53k, the cycle slip detection of the carrier phase sequence can be completed, thereby maintaining the continuity of phase observation and ensuring high-precision positioning to adapt to dynamic environments.
[0106] After the preprocessing of the pseudorange data sequence and the carrier phase sequence is completed based on the aforementioned step S53 and its sub-steps, positioning data can be obtained based on this, and the process is shown in the following step S54.
[0107] S54. Based on a Kalman filter algorithm, the positioning data is calculated using the filtered pseudorange data sequence and the cycle slip detection data. In this embodiment, the processed GNSS observation data is calculated based on a Kalman filter algorithm, which is a common method for position positioning and its principles are not further described. The positioning data may include, for example, but is not limited to: latitude and longitude, altitude, time, number of satellites, and satellite frequency band. Of course, the position calculation is performed in the ARM unit.
[0108] In addition, in the aforementioned step S52, if the current edge gateway is not the optimal gateway and the GNSS observation data needs to be transmitted to the edge gateway with the lowest resource occupancy rate, the processing method is the same and will not be repeated here.
[0109] In this way, through the aforementioned steps S51 to S54, pseudorange filtering, cycle slip detection and Kalman filter solution can be completed locally at the gateway. Based on this, the amount of raw GNSS data uploaded can be reduced, thereby significantly reducing transmission delay; at the same time, the setting of the dynamic load balancing mechanism also makes the solution of GNSS observation data not completely dependent on the cloud server, thereby reducing dependence on the cloud.
[0110] After the positioning data is obtained, data transmission can be performed, and the process is shown in the following step S6.
[0111] S6. The edge gateway determines a communication distance with the IoT terminal and, based on the communication distance, determines a communication mode, where the communication mode includes a modified LoRaWAN communication mode or a network slicing communication mode. In a specific implementation, a communication distance table between different gateways and IoT terminals may be pre-set. The communication distance between the edge gateway and the IoT terminal may then be queried based on the edge gateway ID and the IoT terminal ID to obtain the communication distance between the two.
[0112] Among them, when the communication distance is less than the distance threshold, the improved LoRa WAN communication method is used for data transmission; when the communication distance is greater than or equal to the distance threshold, the network slicing communication method (i.e., 4G / 5G slicing network) is used for data transmission; in this way, through different communication distances, the improved LoRa WAN communication method or the 4G / 5G slicing network communication method is used to transmit positioning data, which can ensure the most stable communication when data is transmitted at different distances, thereby reducing the impact of network instability.
[0113] Optionally, the data transmission process is shown in the following step S7.
[0114] S7. The edge gateway transmits the positioning data to the IoT terminal based on the communication method to complete the positioning of the IoT terminal. In a specific application, this embodiment first prioritizes the positioning data and then transmits the data based on the priority. The specific transmission process is shown in steps S71 to S73 below.
[0115] S71. Classify the positioning data to obtain multiple categories of positioning sub-data. In this embodiment, the positioning data is classified according to the time dimension, space dimension, frequency dimension, and statistical dimension. That is, the time dimension corresponds to the time in the positioning data, the space dimension corresponds to the latitude, longitude, and altitude in the positioning data, the frequency dimension corresponds to the satellite frequency in the positioning data, and the statistical dimension corresponds to the number of satellites in the positioning data. After the positioning data is classified, the priority of each category of positioning sub-data can be calculated, as shown in step S72 below.
[0116] S72. Calculating the transmission priority of each type of positioning sub-data; In specific implementation, taking any type of positioning sub-data as an example, the calculation process of its transmission priority may be, but is not limited to, as shown in the following steps S72a to S72h.
[0117] S72a. For any type of positioning sub-data, determine a data aging factor based on the data type of the positioning sub-data. In this embodiment, the edge gateway stores data aging factors corresponding to different types of data. Therefore, when used, the corresponding data aging factor can be obtained by matching the data type of the positioning sub-data; for example, the data aging factor corresponding to the time type, the data aging factor corresponding to the space type, and so on.
[0118] After obtaining the data timeliness factor, the service type and target ID can be obtained, and the process is shown in the following step S72b.
[0119] S72b. Obtain the service type and target ID of the service corresponding to the GNSS observation data, where the target ID is the device ID corresponding to the edge gateway. In this embodiment, the service type is dynamically marked by the service layer, that is, when uploading the GNSS observation data, the corresponding service type is marked. In this way, after obtaining the service type, the service priority can be determined, and the process is shown in the following step S72c.
[0120] S72c. Determine the service priority based on the service type; in a specific application, for example, a service priority mapping table is preset in the edge gateway, wherein the mapping table stores service priorities corresponding to different service types. Therefore, after the edge gateway obtains the service type of the service corresponding to the GNSS observation data, it matches the service in the priority mapping table to obtain the corresponding service priority.
[0121] After obtaining the service priority, the service subscription level can be determined, and the process is shown in the following step S72d.
[0122] S72d. Determine a service subscription level based on the target ID. In this embodiment, the edge gateway also stores a subscription mapping table, in which the service subscription levels corresponding to different gateway IDs are stored. Therefore, the service subscription level can be directly obtained by matching the target ID in the subscription mapping table. Then, the transmission priority of any type of positioning sub-data can be calculated based on the current network delay and network load rate. The process is shown in steps S72e and S72f below.
[0123] S72e obtains the current network delay and the current network load rate; in a specific implementation, for example, but not limited to, collecting the network delay every 200ms, and sampling the network load rate every 500ms; and after obtaining the current network delay and the current network load rate, the aforementioned data can be combined to calculate the transmission priority of any type of positioning sub-data, the process can be but not limited to as shown in step S72f below.
[0124] S72f. Calculate the transmission priority of any one type of positioning sub-data based on the service priority, the service subscription level, the current network delay, the current network load rate, and the data timeliness factor. In a specific application, the transmission priority of any one type of positioning sub-data may be calculated using, for example but not limited to, the following formula (8).
[0125] (8) In the above formula (8), Indicates the transmission priority of any type of positioning sub-data, represents the data aging factor, Indicates the current network delay, Indicates the service priority, Indicates the current network load rate, Indicates the service subscription level, Indicates the dynamic coefficient (which can be set according to the network packet loss rate, such as pre-setting different dynamic coefficients corresponding to different packet loss rates).
[0126] After calculating the transmission priority of each type of positioning sub-data through the aforementioned steps S72a to S72f, the positioning sub-data can be transmitted in descending order of priority, as shown in the following step S73.
[0127] S73. Transmit the various types of positioning sub-data to the IoT terminal in descending order of transmission priority using an improved LoRaWAN communication method or a network slicing communication method.
[0128] In this embodiment, the following disclosure adopts an improved LoRaWAN communication method to perform the positioning sub-data transmission process, which can be but is not limited to the following steps S73a to S73h.
[0129] S73a. For any type of positioning sub-data, obtain the joining request sent by the IoT terminal and calculate the spreading factor based on the joining request. In a specific implementation, the joining request sent by the IoT terminal carries the channel signal-to-noise ratio, so the IoT edge gateway can calculate the spreading factor based on this.
[0130] The aforementioned spreading factor can be calculated by, for example but not limited to, the following formula (9).
[0131] (9) In the above formula (9), represents the spreading factor, It represents the channel signal-to-noise ratio number and target signal-to-noise ratio (the value set by the gateway) in the join request respectively.
[0132] Thus, based on the aforementioned formula (9), after the spreading factor is calculated, the transmission rate can be determined, and the process is shown in the following step S73b.
[0133] S73b. Determine a transmission rate based on the spreading factor. In a specific implementation, for example, but not limited to, obtaining the LoRa signal bandwidth and coding rate, and then using the following formula (10) to calculate the transmission rate.
[0134] (10) In the above formula (10), represents the transmission rate, They represent signal bandwidth and coding rate respectively.
[0135] After the transmission rate is obtained, data segmentation can be performed, and the process is shown in the following step S73c.
[0136] S73c. The positioning sub-data of any type is divided into several data blocks, wherein any data block includes multiple frames of positioning sub-data; in this embodiment, the positioning sub-data of any type may be compressed and then divided into blocks so that each database contains multiple frames of positioning sub-data.
[0137] After the data is divided into blocks, data transmission can be performed, and the process is shown in the following steps S73d to S73h.
[0138] S73d. Transmit the bth data block to the IoT terminal at the transmission rate. In this embodiment, the edge gateway transmits the next data block based on the ACK (acknowledgement reply) feedback from the IoT terminal, as shown in steps S73e to S73h below.
[0139] S73e determines whether the confirmation reply information is received from the IoT terminal; in specific applications, if the edge gateway does not receive the ACK information returned by the IoT terminal, then it is necessary to back off and wait, and the process is shown in steps S73f and S73g below.
[0140] S73f. If not, the backoff duration is calculated and a new spreading factor is determined. In a specific implementation, the backoff duration may be calculated based on, but not limited to, obtaining the channel load between the edge gateway and the IoT terminal and then, based on the channel load and the spreading factor.
[0141] Optionally, the backoff duration may be calculated using, for example but not limited to, the following formula (11).
[0142] (11) In the above formula (11), Indicates the backoff duration, represents the channel load.
[0143] After calculating the backoff duration, the spreading factor can be adjusted. For example, but not limited to, a trained recurrent neural network can be used to adjust the spreading factor. The trained recurrent neural network is trained with the historical channel signal-to-noise ratio and historical spreading factor in multiple historical transmission cycles as input and the spreading factor of the next cycle as output. Each transmission of a data block is considered as a transmission cycle. Therefore, the spreading factor in the aforementioned step S73a is input into the trained recurrent neural network to obtain a new spreading factor.
[0144] Then, after waiting for the aforementioned backoff period, data transmission can be performed using the new spreading factor, and the process is shown in the following step S73g.
[0145] S73g. After waiting for the backoff period, the new spreading factor is used to determine a new transmission rate, and the b-th data block is retransmitted based on the new transmission rate until the confirmation reply information is received. In this embodiment, a new transmission rate can be determined based on the new spreading factor, and then the b-th data block is transmitted at the new transmission rate until the edge gateway receives the ACK information from the IoT terminal. At this time, the next data block can be transmitted, and the process is shown in the following step S73h.
[0146] S73h. Increment b by 1, update the transmission rate to the new transmission rate, and retransmit the bth data block to the IoT terminal at the new transmission rate until b equals B, completing the transmission of any type of positioning sub-data. Here, the initial value of b is 1, and B is the total number of data blocks.
[0147] Therefore, through the aforementioned steps S73a to S72h, by continuously adjusting the spreading factor during the transmission process, dynamic adjustment of the transmission speed based on the network quality can be achieved, thereby ensuring the stability of data transmission.
[0148] Furthermore, the 4G / 5G slicing network is used to transmit positioning sub-data, which is a common technology for data communication, and its transmission process will not be described in detail.
[0149] In addition, in this embodiment, the positioning data may be transmitted in a non-priority order, that is, the positioning data may be transmitted as a whole. In this case, this embodiment provides an uplink frame structure, which is as follows: | Preamble (level signal) | PHDR (frame header) | CRC | Payload (compressed positioning data) | .
[0150] The frame structure corresponding to the compressed positioning data includes: Header field, Timestamp field, Lat / Lon Delta field, Altitude field and CRC field in sequence; specifically, the Header field has eight bits, bits 0-1 are the accuracy level (00 is low, 11 is high), bits 2-3 indicate the compression mode, and bits 4-7 are reserved bits.
[0151] Furthermore, the Timestamp field represents a timestamp field, the Lat / Lon Delta field represents a latitude and longitude difference encoding field, and the Altitude field represents an altitude field.
[0152] Among them, the compression method for any positioning data in this embodiment is: calculate the difference between it and the previous positioning data, and then encode the difference, that is, calculate the timestamp difference, longitude and latitude difference, and altitude difference; then, scale the difference to an integer; then, use Huffman coding to perform the above-mentioned difference encoding, so that the compressed frame corresponding to the above-mentioned compressed positioning data can be obtained; based on this, on the terminal side, the compression mode is identified through the Header field, and then the difference is decoded and accumulated to restore the original positioning data.
[0153] In this embodiment, complete positioning data may be sent every 10 frames to prevent cumulative errors. Of course, either the priority transmission mode or the overall transmission mode may be selected.
[0154] Therefore, through the GNSS positioning method based on the integration of edge gateway and IoT terminal described in detail in the aforementioned steps S1 to S7, the present invention reduces dependence on the cloud, improves real-time performance and reliability, and simultaneously achieves collaborative positioning with IoT terminal.
[0155] In one possible design, the second aspect of this embodiment is optimized based on the first aspect of the embodiment to provide an anti-interference data security mechanism, the process of which is shown in the following steps: In this embodiment, the edge gateway is deployed in the edge network, and when the edge gateway receives multiple GNSS observation data, the method further includes: Step 1: Determine a parallel processing gateway from the remaining edge gateways in the edge network, wherein the number of the parallel processing gateways is the same as the number of GNSS observation data, and each parallel processing gateway corresponds to one GNSS observation data. In this embodiment, the remaining edge gateways can be sorted in order of resource occupancy from small to large, and then the top X edge gateways are selected as parallel processing gateways, where X is the total number of GNSS observation data.
[0156] Step 2: Obtain a master key and generate a periodic key based on the master key, wherein the periodic key is stored in the TrustZone security zone of the edge gateway.
[0157] In specific applications, the master key MK is burned into the fuse memory of the hardware security module (HSM) of the current edge gateway and is never exported. It is only used to derive the periodic key. The periodic key SK_t is generated by obtaining the current time hash, and then encrypting it with SM4 and storing it in the TrustZone security zone. Among them, the TrustZone security zone refers to the location information isolation storage area, which is a hardware-level security isolation technology. The specific principle is: an independent trust domain divided in the ARM unit is used to provide a hardware-level isolation mechanism to protect sensitive data and critical operations. In this way, even if the system is attacked, it can ensure that the original location data will not be leaked or tampered with.
[0158] At the same time, the periodic key is generated as follows: SK_t = SM4(MK, HASH(UTC_hour)), where HASH(UTC_hour) represents the hash of the current time.
[0159] At the same time, for example, the security timer in the TrustZone area triggers key updates every hour to ensure the real-time nature of the periodic key.
[0160] After obtaining the periodic key, the session key can be generated. The process is shown in the third step below.
[0161] Step 3: Generate a session key corresponding to each piece of GNSS observation data based on the periodic key. In this embodiment, for example, each piece of data is generated using the periodic key and a random number, that is, DK_t = SM3(SK_t || Nonce), where Nonce represents a random number. In this way, a corresponding session key can be generated for each day of GNSS observation data. Then, data encryption and transmission can be performed, and the process is shown in the following step 4.
[0162] Step 4: Use the session key corresponding to each GNSS observation data to encrypt each GNSS observation data to obtain a number of encrypted data. In this embodiment, the SM4 encryption algorithm can be used for example but not limited to perform data encryption. After the data encryption is completed, data transmission can be performed, as shown in the following step 5.
[0163] Step 5: Send each encrypted data to the corresponding parallel processing gateway, so that each parallel processing gateway decrypts the received encrypted data to obtain decrypted GNSS data, and performs spoofing detection on the decrypted GNSS data to identify whether the received decrypted GNSS data is real data. When the received decrypted GNSS data is identified as real data, the data detection result is sent to the edge gateway, so that the edge gateway uses the data detection result to screen out the GNSS observation data belonging to the real data, so as to use the GNSS observation data belonging to the real data to obtain the positioning data corresponding to the GNSS observation data belonging to the real data.
[0164] In this embodiment, the GNSS observation data deception detection is to identify false signals, that is, to collaboratively analyze signal characteristics in real time to identify and resist forged satellite signals. This is a common method for false identification of GNSS observation data, and its principle will not be repeated here.
[0165] In this way, through the above-mentioned design, parallel processing of GNSS observation data deception detection can be achieved, thereby improving detection efficiency. Through deception detection, false and forged signals can be identified, based on which the reliability of positioning can be guaranteed. At the same time, during data transmission, data encryption is performed, and the periodic key is stored in the TrustZone area and dynamically updated. Therefore, a trusted execution environment is established, which can effectively resist forgery attacks and thus improve the security and reliability of positioning.
[0166] Of course, the process of solving the GNSS observation data that is real data can be found in the first aspect of the aforementioned embodiment, and will not be repeated here.
[0167] Based on the description of the first and second aspects of the foregoing embodiments, the present invention has the following beneficial effects: (1) Through the three-level processing architecture of the edge gateway (RF front-end → FPGA coarse processing → ARM fine processing), pseudo-range filtering, cycle slip detection and Kalman filter solution can be completed locally. This not only reduces the amount of raw GNSS data uploaded and reduces transmission delay, but also reduces dependence on the cloud.
[0168] (2) A dynamic load balancing mechanism (cloud-based collaborative solution is enabled when RTT < 50ms, otherwise local processing) and dual-mode communication (LoRaWAN + 4G / 5G slicing network) are adopted to maintain stable positioning when the network is unstable or cloud resources are insufficient.
[0169] (3) Power consumption management based on motion state detection and hybrid precision positioning mode (single point / differential automatic switching) reduces the power consumption of the terminal by 40% in static or low-dynamic scenarios.
[0170] (4) The sliding window filter of the FPGA unit and the adaptive Kalman filter of the ARM unit can effectively eliminate abnormal observation values, increasing the proportion of valid data to more than 90%; at the same time, combined with priority classification, it can ensure that key positioning data is uploaded first, thereby reducing bandwidth occupancy, making it very suitable for application in large-scale IoT terminal deployment scenarios.
[0171] (5) During data transmission, GNSS spoofing detection + national secret SM4 encryption are used, and a trusted execution environment (TrustZone isolated storage + dynamic key update) is constructed. This can effectively resist signal interference and forgery attacks.
[0172] like Figure 2 As shown, the third aspect of this embodiment provides a hardware system for implementing the GNSS positioning method based on the integration of edge gateway and Internet of Things terminal described in the first aspect of the embodiment, including: an edge gateway, an Internet of Things terminal and a GNSS receiver, and the edge gateway includes a radio frequency front end, an FPGA unit and an ARM unit.
[0173] The Internet of Things terminal is used to receive the initial GNSS observation data sent by the GNSS receiver and determine the positioning method based on the terminal operation data, wherein the positioning method includes a single-point positioning method or a differential positioning method, and the terminal operation data includes the acceleration data and geomagnetic sensor data of the Internet of Things terminal.
[0174] The Internet of Things terminal is further used to generate GNSS observation data according to the positioning method and the initial GNSS observation data and send it to the radio frequency front end in the edge gateway.
[0175] The radio frequency front end is used to receive the GNSS observation data and transmit the GNSS observation data to the FPGA unit.
[0176] The FPGA unit is used to determine the RTT time between the GNSS observation data and the IoT terminal after receiving the GNSS observation data.
[0177] The FPGA unit is used to determine whether the RTT time is less than a preset threshold.
[0178] The FPGA unit is also used to process the GNSS observation data in a cloud-based collaborative manner to obtain positioning data when it is determined that the RTT time is less than a preset threshold; otherwise, the GNSS observation data is solved locally on the gateway to obtain the positioning data; in this embodiment, when performing data solution, the FPGA unit is used to preprocess the pseudorange data sequence and carrier phase sequence in the GNSS observation data, while the ARM unit solves the preprocessed pseudorange data sequence and carrier phase sequence to obtain positioning data.
[0179] The ARM unit is used to determine the communication distance between the IoT terminal and the IoT terminal, and determine the communication mode according to the communication distance, wherein the communication mode includes an improved LoRa WAN communication mode or a network slicing communication mode.
[0180] The ARM unit is also used to transmit the positioning data to the Internet of Things terminal based on the communication method to complete the positioning of the Internet of Things terminal.
[0181] In addition, in this embodiment, the data interaction between FPGA and ARM is based on a dynamic asymmetric double buffer design, that is, the buffer on the FPGA side adopts a ping-pong buffer structure (Ping-Pong Buffer), and the ARM side adopts a ring queue (RingBuffer); the buffer size is dynamically adjustable (for example, FPGA buffer depth = 2×ARM single processing volume), and DMA transmission can be triggered by hardware, that is: the FPGA triggers the ARM DMA controller through GPIO interrupts to trigger data transmission.
[0182] The working process, working details and technical effects of the system provided in this embodiment can be found in the first aspect of the embodiment and will not be described in detail here.
[0183] like Figure 3 As shown, the fourth aspect of this embodiment provides an electronic device, comprising: a memory, a processor and a transceiver that are communicatively connected in sequence, wherein the memory is used to store computer programs, the transceiver is used to send and receive messages, and the processor is used to read the computer program and execute the GNSS positioning method based on the integration of edge gateway and Internet of Things terminal as described in the first and second aspects of the embodiments.
[0184] The working process, working details and technical effects of the electronic device provided in this embodiment can be found in the first and second aspects of the embodiment, and will not be repeated here.
[0185] The fifth aspect of this embodiment provides a storage medium that stores instructions for the GNSS positioning method based on the integration of edge gateway and Internet of Things terminal as described in the first and second aspects of the embodiment, that is, the storage medium stores instructions, and when the instructions are run on a computer, the GNSS positioning method based on the integration of edge gateway and Internet of Things terminal as described in the first and second aspects of the embodiment is executed.
[0186] The storage medium refers to a carrier for storing data, which may include but is not limited to a floppy disk, an optical disk, a hard disk, a flash memory, a USB flash drive and / or a memory stick, and the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
[0187] The working process, working details and technical effects of the storage medium provided in this embodiment can be found in the first aspect of the embodiment and will not be described in detail here.
[0188] A sixth aspect of this embodiment provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the GNSS positioning method based on the fusion of an edge gateway and an Internet of Things terminal as described in the first and second aspects of the embodiment, wherein the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
[0189] The specific implementation methods described above further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above description is only a specific implementation method of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the scope of protection of the present invention.
Claims
1. A GNSS positioning method based on the integration of edge gateway and Internet of Things terminal, characterized in that: include: The IoT terminal receives the initial GNSS observation data sent by the GNSS receiver and determines a positioning mode based on the terminal operation data, wherein the positioning mode includes a single point positioning mode or a differential positioning mode, and the terminal operation data includes acceleration data and geomagnetic sensor data of the IoT terminal; The IoT terminal generates GNSS observation data based on the positioning method and initial GNSS observation data and sends it to the edge gateway; After receiving the GNSS observation data, the edge gateway determines the RTT time between it and the IoT terminal; The edge gateway determines whether the RTT time is less than a preset threshold; If yes, the edge gateway processes the GNSS observation data in a cloud-based collaborative manner to obtain positioning data; otherwise, the edge gateway performs local calculations on the GNSS observation data to obtain positioning data; The edge gateway determines a communication distance with the IoT terminal, and determines a communication mode based on the communication distance, wherein the communication mode includes an improved LoRaWAN communication mode or a network slicing communication mode; The edge gateway transmits the positioning data to the IoT terminal based on the communication method to complete the positioning of the IoT terminal.
2. The method according to claim 1, characterized in that The IoT terminal determines the positioning method based on the terminal operation data, including: Obtain a target ionospheric disturbance index, a target signal strength, and terminal power, wherein the target ionospheric disturbance index is the ionospheric disturbance index of the area where the IoT terminal is located, and the target signal strength is the signal strength of the base station signal received by the IoT terminal; If the target signal strength is greater than or equal to the strength threshold, determining whether the terminal power level is greater than a preset power level; If so, determining whether the target ionospheric disturbance index is greater than an index threshold, and / or determining whether the Internet of Things terminal is in motion based on the acceleration data and the geomagnetic sensor data; If yes, differential positioning is used; otherwise, single-point positioning is used.
3. The method according to claim 1, characterized in that The GNSS observation data includes: a pseudorange data sequence and a carrier phase sequence, and the edge gateway is deployed in an edge network; The edge gateway performs calculations on the GNSS observation data locally to obtain positioning data, including: Obtaining a local resource occupancy rate and a resource occupancy rate of each remaining edge gateway in the edge network, wherein the local resource occupancy rate is the resource occupancy rate of the edge gateway; Determine whether the local resource utilization rate is less than the resource utilization rates of other edge gateways in the edge network; If yes, filtering the pseudorange data sequence to obtain a filtered pseudorange data sequence, and performing cycle slip detection on the carrier phase sequence to obtain cycle slip detection data; Based on the Kalman filter algorithm, the positioning data is obtained by calculating the filtered pseudorange data sequence and the cycle slip detection data.
4. The method according to claim 3, characterized in that Filtering the pseudorange data sequence to obtain a filtered pseudorange data sequence includes: Determining the length of the filter window at the t-th sliding, wherein the initial value of t is 1, and when t is 1, the length of the filter window at the t-th sliding is the first initial value; Taking the target data in the pseudorange data sequence as a starting point, determining the pseudorange data in the filter window at the t-th sliding from the pseudorange data sequence as the pseudorange data in the current window, wherein the target data is the pseudorange data next to the last pseudorange data in the filter window at the t-1-th sliding; Filtering the pseudorange data in the current window to obtain filtered pseudorange data; Increment t by 1 and re-determine the length of the filter window at the t-th sliding time until the pseudo-range data sequence is polled and a plurality of filtered pseudo-range data are obtained; The filtered pseudorange data sequence is generated by using a plurality of filtered pseudorange data.
5. The method according to claim 4, characterized in that Determine the length of the filter window at the t-th sliding, including: Get the filtering window at the t-1th sliding time, and use the filtering window at the t-1th sliding time as the initial window; Taking the target data as a starting point, determining the pseudorange data within the initial window from the pseudorange data sequence; Calculating the data noise at the t-th filtering time based on the pseudorange data in the initial window and the pseudorange data in the filtering window at the t-1-th sliding time; Determining a random disturbance factor based on the data noise; The length of the filter window during the t-th sliding is calculated according to the random disturbance factor and the data noise.
6. The method according to claim 3, characterized in that Performing cycle slip detection processing on the carrier phase sequence to obtain cycle slip detection data includes: Determining the length of the n-th sliding window, wherein an initial value of n is 1, and when n is 1, the length of the n-th sliding window is the second initial value; Taking designated data in the carrier phase sequence as a starting point, determining carrier phase data in the n-th sliding window from the carrier phase sequence, wherein the designated data is the next carrier phase data of the last carrier phase data in the n-1-th sliding window; Performing coarse cycle slip detection on the carrier phase data within the n-th sliding window to obtain candidate cycle slip data; Incrementing n by 1 and re-determining the length of the sliding window for the nth time until the carrier phase sequence is polled, thereby obtaining a plurality of candidate cycle slip data, and forming a candidate cycle slip sequence using the plurality of candidate cycle slip data; Performing detailed cycle slip detection on the candidate cycle slip sequence to obtain an initial cycle slip sequence; A carrier phase weight of the initial cycle slip sequence is determined, and a cycle slip repair process is performed on the initial cycle slip sequence using the carrier phase weight, so as to obtain the cycle slip detection data after the cycle slip repair process.
7. The method according to claim 1, characterized in that The edge gateway transmits the positioning data to the IoT terminal based on the communication method, including: Classifying the positioning data to obtain multiple types of positioning sub-data; Calculate the transmission priority of various types of positioning sub-data; According to the order of transmission priority from high to low, and using the improved LoRaWAN communication method or network slicing communication method, various types of positioning sub-data are transmitted to the IoT terminal.
8. The method according to claim 7, characterized in that In descending order of transmission priority, various types of positioning sub-data are transmitted to the IoT terminal using an improved LoRa WAN communication method, including: For any type of positioning sub-data, obtain a joining request sent by an IoT terminal, and calculate a spreading factor based on the joining request; determining a transmission rate according to the spreading factor; Dividing any type of positioning sub-data into a plurality of data blocks, wherein any data block includes multiple frames of positioning sub-data; Transmitting the bth data block to the IoT terminal at the transmission rate; Determine whether the confirmation reply information fed back by the IoT terminal has been received; If not, calculate the backoff duration and determine the new spreading factor; After waiting for the backoff period, determining a new transmission rate using the new spreading factor, and retransmitting the b-th data block based on the new transmission rate until receiving the confirmation reply information; Increment b by 1, update the transmission rate to the new transmission rate, and transmit the bth data block to the IoT terminal again according to the transmission rate until b is equal to B, thereby completing the transmission of any type of positioning sub-data, where the initial value of b is 1 and B is the total number of data blocks.
9. The method according to claim 1, characterized in that The edge gateway is deployed in an edge network, wherein when the edge gateway receives a plurality of GNSS observation data, the method further includes: Determine a parallel processing gateway from the remaining edge gateways in the edge network, wherein the number of the parallel processing gateways is the same as the number of GNSS observation data, and each parallel processing gateway corresponds to a piece of GNSS observation data; Obtaining a master key and generating a periodic key based on the master key, wherein the periodic key is stored in the TrustZone security zone of the edge gateway; Generate a session key corresponding to each GNSS observation data based on the periodic key; Using the session key corresponding to each piece of GNSS observation data, each piece of GNSS observation data is encrypted to obtain a number of encrypted data; Each piece of encrypted data is sent to the corresponding parallel processing gateway, so that each parallel processing gateway decrypts the received encrypted data to obtain decrypted GNSS data, and performs spoofing detection on the decrypted GNSS data to identify whether the received decrypted GNSS data is real data. When the received decrypted GNSS data is identified as real data, the data detection result is sent to the edge gateway, so that the edge gateway uses the data detection result to screen out the GNSS observation data belonging to the real data, so as to use the GNSS observation data belonging to the real data to obtain the positioning data corresponding to the GNSS observation data belonging to the real data.
10. A GNSS positioning system based on the integration of edge gateway and Internet of Things terminal, characterized in that: include: Edge gateway, IoT terminal and GNSS receiver, where the edge gateway includes RF front-end, FPGA unit and ARM unit; An IoT terminal, configured to receive initial GNSS observation data sent by a GNSS receiver and determine a positioning mode based on terminal operation data, wherein the positioning mode includes a single-point positioning mode or a differential positioning mode, and the terminal operation data includes acceleration data and geomagnetic sensor data of the IoT terminal; The IoT terminal is further configured to generate GNSS observation data based on the positioning method and the initial GNSS observation data and send the data to the RF front end in the edge gateway; A radio frequency front end, configured to receive the GNSS observation data and transmit the GNSS observation data to the FPGA unit; The FPGA unit is configured to determine the RTT time between the GNSS observation data and the IoT terminal after receiving the GNSS observation data; An FPGA unit is used to determine whether the RTT time is less than a preset threshold; The FPGA unit is further configured to, when it is determined that the RTT time is less than a preset threshold, process the GNSS observation data in a cloud-based collaborative manner to obtain positioning data; otherwise, perform calculations on the GNSS observation data locally on the gateway to obtain the positioning data; An ARM unit, configured to determine a communication distance with the IoT terminal and determine a communication mode based on the communication distance, wherein the communication mode includes an improved LoRaWAN communication mode or a network slicing communication mode; The ARM unit is also used to transmit the positioning data to the Internet of Things terminal based on the communication method to complete the positioning of the Internet of Things terminal.