Positioning method and device, electronic equipment, storage medium and program product

By integrating satellite observation data, SLAM algorithms and satellite occlusion data into the RTK positioning method, the accuracy and reliability issues of RTK positioning in complex environments are solved, and high-precision positioning is achieved when satellite signals are blocked or interfered with.

CN120779440APending Publication Date: 2025-10-14SHANGHAI HUACE NAVIGATION TECH
View PDF 0 Cites 3 Cited by

Patent Information

Application Number
CN202510986099.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-16
Publication Date
2025-10-14

AI Technical Summary

Technical Problem

Existing RTK positioning technology has poor positioning performance in complex environments, especially in streets with tall buildings or narrow canyons where satellite visibility is poor, resulting in reduced positioning accuracy and reliability.

Method used

By integrating satellite observation data, SLAM positioning data from the SLAM algorithm, and satellite occlusion data, the RTK algorithm is used to obtain the current RTK positioning data. The positioning accuracy is maintained through the relative positioning information of the SLAM algorithm. At the same time, the absolute positioning data of the RTK algorithm is used to correct the SLAM results. Combined with the satellite occlusion data, different weights are assigned to satellites with different degrees of occlusion, and the observation equation is constructed for RTK positioning solution.

Benefits of technology

When satellite signals are blocked or interfered with, the accuracy and reliability of positioning are improved, ensuring the output of high-precision positioning results in complex scenarios and enhancing the anti-interference ability and adaptability of the positioning system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120779440A_ABST
    Figure CN120779440A_ABST
Patent Text Reader

Abstract

The invention provides a positioning method and device, electronic equipment, a storage medium and a program product, and relates to the technical field of positioning. According to the method, satellite observation data, SLAM positioning data and satellite shielding data are fused, the high-precision absolute positioning capability of an RTK algorithm and the high-precision relative positioning advantage of an SLAM algorithm are fully utilized, and meanwhile, the influence of satellite shielding on RTK positioning precision is considered, so that more accurate and reliable positioning is realized in a complex environment. According to the method, the positioning precision can be maintained by means of the relative positioning information of the SLAM algorithm under the condition that satellite signals are shielded or interfered, the SLAM result is corrected by means of the absolute positioning data of the RTK algorithm, and accumulated errors are effectively reduced. Besides, by considering satellite shielding data, the accuracy and reliability of positioning are further improved, so that the positioning system can stably output high-precision positioning results in various complex scenes.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of positioning, in particular to a positioning method and device, an electronic device, a storage medium and a program product. BACKGROUND

[0002] In the field of modern positioning technology, the demand for high-precision positioning is growing with the increasing complexity of application scenarios, especially in key fields such as intelligent driving, robot navigation, and geographic mapping, the demand for real-time positioning with centimeter-level precision is increasingly urgent. The current mainstream positioning technology such as real-time kinematic (RTK) differential technology, however, this technology faces significant technical bottlenecks in practical applications, limiting its performance in complex environments.

[0003] Among them, taking the RTK technology as an example, the RTK technology works cooperatively with the reference station and the rover station, and can improve the positioning accuracy to centimeter level in ideal environment. It relies on real-time correction of the observation data of the rover station to eliminate most error sources. However, the positioning effect of the RTK technology is easily affected by environmental obstruction, and in severe obstruction cases, its positioning accuracy and reliability will be significantly affected. For example, in streets with high-rise buildings or narrow valley areas, satellite visibility is poor, it is difficult to maintain enough satellite number for accurate calculation, resulting in deviation of positioning results, or even unable to obtain fixed solution. SUMMARY

[0004] The purpose of the embodiments of the present application is to provide a positioning method, device, electronic device, storage medium and program product to improve the poor positioning effect of the existing RTK positioning scheme in complex environments.

[0005] In a first aspect, the embodiments of the present application provide a positioning method, which comprises:

[0006] obtaining current RTK positioning data by using an RTK algorithm according to satellite observation data, SLAM positioning data of a SLAM algorithm, and satellite obstruction data;

[0007] obtaining current SLAM positioning data by using the SLAM algorithm according to sensor data, point cloud data and the current RTK positioning data, wherein the point cloud data refers to point cloud data of the surrounding environment of the device to be positioned;

[0008] determining current positioning data based on the current SLAM positioning data and the current RTK positioning data.

[0009] In the implementation process, the satellite observation data, the SLAM positioning data and the satellite blocking data are fused, the high-precision absolute positioning capability of the RTK algorithm and the high-precision relative positioning advantage of the SLAM algorithm are fully utilized, and the influence of satellite blocking on the RTK positioning accuracy is considered, so that more accurate and reliable positioning is realized in a complex environment. This method can maintain the positioning accuracy by means of the relative positioning information of the SLAM algorithm in the case of satellite signal blocking or interference, and correct the SLAM result by using the absolute positioning data of the RTK algorithm, thereby effectively reducing the cumulative error. In addition, by considering the satellite blocking data, the accuracy and reliability of positioning are further improved, so that the positioning system can stably output high-precision positioning results in various complex scenes.

[0010] In a second aspect, the embodiments of the present application provide an RTK positioning method, which comprises:

[0011] Obtaining satellite observation data, SLAM positioning data of a SLAM algorithm and satellite blocking data;

[0012] According to the satellite blocking data, the weights of each satellite are determined;

[0013] According to the satellite observation data and the SLAM positioning data, an initial observation equation of each satellite is constructed;

[0014] According to the weights and the initial observation equation, an observation equation of each satellite is constructed;

[0015] The observation equation is subjected to RTK positioning calculation to obtain current RTK positioning data.

[0016] In the implementation process, the satellite blocking data, the RTK technology and the SLAM technology are combined to realize positioning. The satellite blocking data considers the influence of satellite signal quality on positioning accuracy, and by assigning different weights to satellites with different blocking degrees, the negative influence of blocked satellites on positioning results is effectively reduced. At the same time, the SLAM positioning data is used as prior information to participate in the construction of the observation equation, which further improves the accuracy of the initial observation equation and maintains the positioning accuracy of RTK through the relative positioning information of the SLAM algorithm. This fusion positioning method fully utilizes the high-precision absolute positioning capability of the RTK algorithm and the high-precision relative positioning advantage of the SLAM algorithm, so that more accurate and reliable positioning is realized in a complex environment.

[0017] In a third aspect, the embodiments of the present application provide a satellite blocking data acquisition method, which comprises:

[0018] Obtaining positioning data of a device to be positioned and point cloud data of the surrounding environment of the device to be positioned;

[0019] generating a point cloud map according to the positioning data and the point cloud data;

[0020] projecting a satellite constellation map into the point cloud map, and obtaining occlusion data of each satellite relative to a location of the device to be positioned.

[0021] In the implementation process described above, the detailed environment model constructed using the point cloud data and the positioning data provides a high-precision basis for satellite occlusion analysis. After projecting the satellite constellation map, the satellite occlusion situation can be determined based on the point cloud map, so that the system can accurately identify the satellite signal blocking situation.

[0022] In a fourth aspect, an electronic device is provided, including a processor and a memory, the memory storing computer readable instructions, when the computer readable instructions are executed by the processor, the steps in the method provided in the first aspect, the second aspect and the third aspect are executed.

[0023] In a fifth aspect, a computer readable storage medium is provided, and the computer readable storage medium stores a computer program, when the computer program is executed by a processor, the steps in the method provided in the first aspect, the second aspect and the third aspect are executed.

[0024] In a sixth aspect, a computer program product is provided, including computer program instructions, when the computer program instructions are read and executed by a processor, the steps in the method provided in the first aspect, the second aspect and the third aspect are executed.

[0025] Other features and advantages of the present application will be described in the following description, and some will become apparent from the description, or will be learned through practice of the application. The purpose and other advantages of the present application can be achieved and obtained by the structure specifically pointed out in the written description, claims, and drawings. BRIEF DESCRIPTION OF DRAWINGS

[0026] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following will briefly introduce the drawings needed to be used in the embodiments of the present application. It should be understood that the following drawings only show some embodiments of the present application, and therefore should not be regarded as limiting the scope, and for those skilled in the art, other related drawings can also be obtained without creative labor on the basis of these drawings.

[0027] Figure 1 A flow chart of a positioning method provided by the embodiments of the present application;

[0028] Figure 2 A flow chart of an RTK algorithm provided by the embodiments of the present application;

[0029] Figure 3 A flowchart of a SLAM algorithm provided for an embodiment of the present application is shown in FIG. 1;

[0030] Figure 4 A schematic diagram of the overall flow of a positioning method provided for an embodiment of the present application is shown in FIG. 2;

[0031] Figure 5 A schematic diagram of performance comparison between a positioning scheme of the present application and a conventional RTK scheme provided for an embodiment of the present application is shown in FIG. 3;

[0032] Figure 6 A flowchart of an RTK positioning method provided for an embodiment of the present application is shown in FIG. 4;

[0033] Figure 7 A schematic diagram of the overall flow of an RTK positioning method provided for an embodiment of the present application is shown in FIG. 5;

[0034] Figure 8 A flowchart of a satellite occlusion data acquisition method provided for an embodiment of the present application is shown in FIG. 6;

[0035] Figure 9 A structural block diagram of a positioning device provided for an embodiment of the present application is shown in FIG. 7;

[0036] Figure 10 A structural diagram of an electronic device for performing a positioning method provided for an embodiment of the present application is shown in FIG. 8. DETAILED DESCRIPTION

[0037] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the accompanying drawings in the embodiments of the present application.

[0038] It should be noted that the terms "system" and "network" in the embodiments of the present application can be used interchangeably. "Multiple" means two or more, and therefore, "multiple" can also be understood as "at least two" in the embodiments of the present application. "And / or" describes the association relationship of the associated objects, which means that there can be three relationships, for example, A and / or B can represent the following three cases: A exists alone, A and B exist together, and B exists alone. In addition, the character " / ", if not specially stated, generally represents an "or" relationship between the associated objects before and after it.

[0039] It should also be noted that all actions of acquiring signals, information or data in the present application are performed under the premise of complying with the corresponding data protection regulations and policies of the country where the device is located, and with the authorization given by the owner of the corresponding device.

[0040] The embodiment of the present application provides a positioning method, which fuses satellite observation data, SLAM positioning data and satellite blocking data, fully utilizes the high-precision absolute positioning capability of the RTK algorithm and the high-precision relative positioning advantage of the SLAM algorithm, and considers the influence of satellite blocking on the RTK positioning accuracy, so that more accurate and reliable positioning is realized in a complex environment. This method can maintain positioning accuracy in the case of satellite signal blocking or interference with the help of the relative positioning information of the SLAM algorithm, and correct the SLAM result by using the absolute positioning data of the RTK algorithm, thereby effectively reducing the cumulative error. In addition, by considering the satellite blocking data, the accuracy and reliability of positioning are further improved, so that the positioning system can stably output high-precision positioning results in various complex scenes.

[0041] Please refer to Figure 1 , Figure 1 A flowchart of a positioning method provided by the embodiment of the present application is shown in the figure, and the method comprises the following steps:

[0042] Step S110: obtaining current RTK positioning data by using the RTK algorithm according to the satellite observation data, the SLAM positioning data of the SLAM algorithm and the satellite blocking data.

[0043] The positioning method of the present solution can be applied to a positioning system in a device to be positioned, and the device to be positioned can be a movable device such as a vehicle, a robot or a terminal. The positioning system can be integrated with a simultaneous localization and mapping (SLAM) algorithm and an RTK algorithm.

[0044] The RTK algorithm is a satellite positioning measurement method, but its positioning effect is easily affected by environmental blocking. The SLAM algorithm can adapt to complex environments and still maintain stable performance in the face of environmental noise, dynamic changes and other uncertain factors, so in order to improve the poor positioning effect of the RTK algorithm in a complex environment, the positioning data of the SLAM algorithm, i.e. the SLAM positioning data, is added to the positioning method using the RTK algorithm.

[0045] In some embodiments, the SLAM positioning data can be the positioning data obtained at the last moment by using the SLAM algorithm. Alternatively, it can also be the SLAM positioning data at the current moment obtained by using a related algorithm (such as a polynomial fitting algorithm or a Kalman filtering algorithm) to predict the SLAM positioning data at the current moment according to the positioning data obtained at the last moment or at multiple historical moments by using the SLAM algorithm, i.e. the SLAM positioning data at this moment can be understood as the SLAM positioning data aligned with the current moment.

[0046] The satellite observation data and the satellite blocking data can refer to data obtained at the current moment. If the satellite blocking data is obtained by relying on a SLAM algorithm (which will be described in subsequent embodiments and will not be described in detail here), the satellite blocking data can refer to satellite blocking data obtained at the previous moment or can be satellite blocking data obtained based on the satellite blocking data obtained at one or more historical moments. When predicting, the motion state of the satellite can be combined, or the motion state of the positioning device can be combined for comprehensive prediction.

[0047] The core idea of the RTK algorithm is to use the known accurate coordinates of the reference station and the satellite observation data to calculate the correction number of the spatial correlation error, and send the correction number to the mobile station (i.e., the positioning device). The mobile station corrects its own satellite observation data according to the correction number, thereby realizing high-precision positioning.

[0048] Therefore, the satellite observation data here can refer to the original observation data of the visible satellite received by the positioning device itself, including carrier phase, pseudorange, navigation message and other data. The subsequent RTK algorithm will use the satellite observation data to realize positioning.

[0049] The satellite blocking data can include the blocking situation of the visible satellite. The satellite blocking data can provide some reference data for the RTK algorithm to realize positioning. For example, the RTK algorithm positioning needs to receive observation data of multiple satellites to ensure positioning accuracy. When there is satellite blocking, through the satellite blocking data, it can be known in advance that some satellite signals may be blocked, so that these satellites can be avoided when selecting stars, and a more optimal satellite combination can be selected for positioning calculation to improve positioning accuracy and reliability. Or the satellite blocking can cause the signal propagation path to change, causing multipath effect and other errors. The satellite blocking data can help the RTK algorithm better estimate and correct these errors, thereby improving the positioning accuracy. For example, when a satellite may be blocked, the observation data of the satellite can be specially processed or given a lower weight to reduce its adverse effect on the positioning result.

[0050] The SLAM positioning data can be used as a constraint condition for the RTK algorithm to help the RTK algorithm more accurately determine the initial position or maintain the positioning accuracy when the signal is blocked. For example, the SLAM positioning data can assist the RTK algorithm in ambiguity resolution. In the RTK algorithm, the relative position information provided by the SLAM positioning data can be used to construct an extended observation model to increase the number of observation equations, thereby improving the reliability of ambiguity resolution. For example, by combining the SLAM positioning data with the carrier phase observation value of the RTK to form a joint observation model, the success rate of ambiguity fixing can be improved.

[0051] Step S120: obtaining current SLAM positioning data by using a SLAM algorithm according to sensor data, point cloud data, and current RTK positioning data.

[0052] The SLAM algorithm can obtain point cloud data by scanning the environment feature through a laser radar, combine the sensor data, construct a local point cloud map in real time, and determine the relative position of the device to be positioned in the local point cloud map.

[0053] However, the SLAM algorithm relies on sensor data and its own motion estimation, and the error may accumulate over time, resulting in a decrease in positioning accuracy. Therefore, in order to improve the positioning accuracy of the SLAM algorithm, the current RTK positioning data, i.e., the current positioning data output by the RTK algorithm, is added to the SLAM algorithm in the present scheme.

[0054] The current RTK positioning data can provide a global positioning reference for the positioning process of the SLAM algorithm, helping the SLAM algorithm to more accurately determine its own position. Or the current RTK positioning data can be used to correct the positioning result of the SLAM algorithm, reducing the influence of cumulative error. Or the current RTK positioning data can be used to assist the pose estimation of the SLAM algorithm to more accurately determine the pose of the device to be positioned and improve the positioning accuracy.

[0055] The sensor data refers to the data collected by an inertial measurement unit (IMU) installed on the device to be positioned. The inertial measurement unit can collect acceleration and angular velocity data of the device to be positioned, which can be input into the positioning system as sensor data.

[0056] The point cloud data refers to the point cloud data of the surrounding environment of the device to be positioned. The point cloud data of the surrounding environment is obtained by scanning through a laser radar installed on the device to be positioned, or can also be obtained by a depth camera. For example, the laser radar emits pulses and receives reflected light, and calculates the distance value in each direction according to the time of flight or phase difference of the reflected light, thereby generating point cloud data. The depth camera generates point cloud data by capturing the depth information of the scene. The collected point cloud data can be transmitted to the positioning system as input for the SLAM algorithm.

[0057] Step S130: determining current positioning data based on the current SLAM positioning data and the current RTK positioning data.

[0058] After obtaining the current SLAM positioning data and the current RTK positioning data, the current positioning can be realized based on the two positioning data, i.e., the two positioning data are fused to output the current positioning information.

[0059] In some embodiments, the current SLAM positioning data and the current RTK positioning data can be fused with weights to determine the current positioning data, wherein the weights in the fusion are determined according to the confidence of the corresponding positioning data.

[0060] It can be understood that the RTK algorithm can output the confidence of the current RTK positioning data synchronously when outputting the current RTK positioning data, and the SLAM algorithm can output the confidence of the current SLAM positioning data synchronously when outputting the current SLAM positioning data. The confidence can be used to evaluate the accuracy of the positioning data, for example, the higher the confidence, the higher the accuracy, and the lower the confidence, the lower the accuracy.

[0061] When the RTK algorithm and the SLAM algorithm output the confidence, they can determine the confidence according to some reference data obtained in the positioning process, for example, the SLAM algorithm can determine the confidence of the positioning data according to the covariance matrix of the estimated state obtained when performing state estimation. The covariance matrix directly quantifies the uncertainty of the estimated state, and a larger variance means that the estimated confidence of the state dimension is lower. The size of the residual reflects the degree of fit between the current estimate and the observation data, and can indirectly reflect the confidence.

[0062] The confidence of the RTK algorithm can be determined according to the positioning result, for example, the confidence of the fixed solution is the highest, the confidence of the float solution is high, and the confidence of the single-point solution is the lowest. Alternatively, the confidence can be determined by the observation residual and the variance-covariance matrix of the state estimation obtained in the ambiguity resolution and position estimation process of the RTK algorithm, for example, smaller observation residual and smaller position estimation variance indicate higher solution quality, and thus higher confidence, and vice versa. Alternatively, the confidence can be determined according to the satellite geometry distribution, for example, a small value of the satellite geometry distribution (PDOP) indicates that the satellite distribution in the sky has a good geometric structure and the positioning accuracy is high, and thus the confidence is high, and a large value of the PDOP indicates that the confidence is low.

[0063] In some other embodiments, the weights herein can also be flexibly set according to actual needs. In determining the current positioning data, the current SLAM positioning data and the current RTK positioning data can be weighted and averaged to obtain the current positioning data.

[0064] Understandably, the positioning system of the present scheme can be real-time positioning, such as obtaining satellite observation data, satellite occlusion data, sensor data and point cloud data at the current time, first using satellite observation data, SLAM positioning data and satellite occlusion data, using RTK algorithm to obtain current RTK positioning data, the execution of SLAM algorithm can wait for the current RTK positioning data to start, at this time, the sensor data, point cloud data and current RTK positioning data can be transmitted to the SLAM algorithm, using the SLAM algorithm to obtain the current SLAM positioning data, combining the current SLAM positioning data and the current RTK positioning data to determine the current positioning data, and outputting the current positioning data, which can be used for position positioning, navigation and the like for the device to be positioned.

[0065] In the above implementation process, by fusing satellite observation data, SLAM positioning data and satellite occlusion data, the high-precision absolute positioning capability of RTK algorithm and the high-precision relative positioning advantage of SLAM algorithm are fully utilized, and the influence of satellite occlusion on RTK positioning accuracy is considered, so that more accurate and reliable positioning is realized in complex environment. This method can maintain the positioning accuracy in the case of satellite signal occlusion or interference by means of the relative positioning information of SLAM algorithm, and correct the SLAM result by using the absolute positioning data of RTK algorithm, effectively reducing the cumulative error. In addition, by considering the satellite occlusion data, the accuracy and reliability of positioning are further improved, so that the positioning system can stably output high-precision positioning results in various complex scenes.

[0066] On the basis of the above embodiment, in the implementation manner of obtaining current RTK positioning data by using RTK algorithm, the weight of each satellite can be determined according to satellite occlusion data, then the initial observation equation of each satellite is constructed according to satellite observation data and SLAM positioning data of SLAM algorithm, and the observation equation of each satellite is constructed according to the weight and the initial observation equation, and the observation equation is solved by RTK positioning to obtain the current RTK positioning data.

[0067] In order to facilitate understanding, the basic implementation process of the conventional RTK algorithm is introduced first.

[0068] The RTK system includes a reference station and a mobile station, the position of the reference station is known, and satellite signals can be received and difference correction numbers can be calculated and sent to the mobile station. The mobile station refers to the device to be positioned, which can receive satellite signals and difference correction numbers sent by the reference station for real-time high-precision positioning.

[0069] The reference station and the rover station both acquire satellite observation data, including carrier phase observation values and pseudo-range observation values. The reference station calculates theoretical geometric distances to each satellite using known coordinates, and then calculates observation value corrections, i.e., pseudo-range corrections and carrier phase corrections, according to the theoretical geometric distances. The reference station sends the observation value corrections to the rover station.

[0070] After the rover station receives the observation value corrections and the satellite observation data, double-difference observation equations are constructed. First, for each common- view satellite between the rover station and the reference station, the difference between the observation values of the same common-view satellite observed by the rover station and the reference station is calculated, including pseudo-range single-difference and carrier phase single-difference. Then, a reference satellite is selected, and for each other common-view satellite, the difference between the single-difference of the other common-view satellite and the single-difference of the reference satellite is calculated, i.e., double-difference observation values, including carrier phase double-difference values and pseudo-range double-difference values. The calculation formula of the carrier phase double-difference values is the carrier phase double-difference observation equation.

[0071] In the double-difference observation equation, the parameters to be solved include the coordinate difference x of the rover station relative to the reference station and the double-difference integer ambiguity N. The core of the RTK algorithm is to solve these two parameters. The double-difference observation equation can be solved using the weighted least squares method or the Kalman filter algorithm to obtain the floating solution of the ambiguity N and the floating solution of the coordinate difference, as well as the variance-covariance matrix Q of the parameter estimation.

[0072] In order to fix the floating solution of the ambiguity as the correct integer solution, common methods such as the LAMBDA method and its variants, such as the integer least squares method, are used. That is, under the integer constraint, an integer vector N that minimizes the objective function is sought. LAMBDA finds a transformation matrix Z (an integer matrix with a determinant of ±1) through integer Gaussian transformation (Z-transform) to transform the ambiguity and its variance-covariance matrix to a new space. In the transformed space, the integer candidate vector is searched and tested to obtain the correctly fixed integer ambiguity N. Of course, if the corresponding test conditions are not met during testing, it is considered that the ambiguity fixing is unreliable, and the floating solution or other strategies may be output.

[0073] Once the ambiguity is successfully fixed as an integer, it is substituted into the double-difference observation equation, and the least squares method or the Kalman filter algorithm is used again to solve the coordinate difference x to obtain the fixed solution of the coordinate difference. The coordinate difference is added to the precise coordinates of the reference station to obtain the coordinates of the rover station, which can be called the double-difference position fixed solution.

[0074] The output of the RTK algorithm can include: position coordinates, positioning solution type (fixed solution, floating solution or single point solution), precision indicators (PDOP (Position Dilution of Precision), HDOP (Horizontal Dilution of Precision), VDOP (Vertical Dilution of Precision), covariance information), and quality indicators (number of satellites participating in the solution, reference satellite ID, etc.).

[0075] It can be understood that when determining the current positioning data, the confidence of the current RTK positioning data needs to be determined, which can be determined based on the precision indicators, such as the smaller the PDOP value, the higher the positioning accuracy, the higher the confidence, the smaller the values of HDOP and VDOP, the higher the confidence, and the smaller the covariance information, the higher the confidence.

[0076] When solving the double-difference observation equation, the double-difference observation method needs to be linearized (Taylor expansion), at which time an initial coordinate is needed. If the error of the initial coordinate is too large, it will lead to linearization failure and iteration divergence. Therefore, before constructing the double-difference observation equation, an initial coordinate can be calculated by a single point positioning (SPP) or real-time differential positioning (RTD) method. SPP refers to single point positioning, which is to use only the pseudorange observation value of the mobile station itself to solve the position by least squares method or Kalman filter algorithm, and RTD is real-time difference, which can use the pseudorange difference correction of the reference station to correct the pseudorange observation value of the mobile station to solve the position, that is, to obtain the initial coordinate. The high-precision initial coordinate can reduce the ambiguity search space and speed up the search process of the LAMBDA algorithm.

[0077] Alternatively, in some embodiments, SLAM positioning data can also be used as an initial coordinate to construct an observation equation, wherein the initial coordinate can be used to construct the geometric distance part of the observation equation.

[0078] It can be understood that if the SLAM positioning data is unreliable, the SPP or RTD algorithm can be used to provide the initial coordinate, and if the SLAM positioning data is reliable, the SLAM positioning data can be used as the initial coordinate.

[0079] The above process is the implementation process of the conventional RTK algorithm. In the present scheme, in order to improve the positioning accuracy of the RTK algorithm, SLAM positioning data and satellite blocking data are added. The SLAM positioning data can be used for abnormal screening of observation data on the one hand, and can be jointly solved with the double difference observation equation of RTK on the other hand, to increase the precision and stability of the float solution, especially when the satellite signal is blocked.

[0080] The satellite blocking data can be used to determine the weight of each satellite. For example, if a satellite is blocked or the blocking degree is high, its weight can be lower, and vice versa. The core idea is to avoid using blocked satellites for positioning in a severely blocked environment to maintain positioning accuracy, and to use as many satellites as possible for positioning in an open environment to maintain a fixed rate.

[0081] It can be understood that when constructing the observation equation of each satellite, the weight of each satellite can be determined according to the available satellite number, satellite elevation angle, etc. to determine an initial weight. The satellite blocking data of the present scheme can be used to adjust the initial weight, or the weight of each satellite can be determined according to the available satellite number, satellite elevation angle and satellite blocking data. That is, the satellite blocking data is added to the weight determination method of the satellite.

[0082] The satellite observation data and SLAM positioning data can be used to construct the initial observation equation of each satellite. Then, according to the weight and the initial observation equation, the observation equation of each satellite can be constructed, that is, the weight of each satellite is added to the initial observation equation to form an observation equation set, which includes the observation equation of each satellite. Then, the observation equation is solved by RTK positioning to obtain the current RTK positioning data. When performing RTK positioning, the weighted least squares method can be used to solve the observation equation to obtain the float solution of the ambiguity, and then the float solution of the ambiguity is searched and tested to obtain the double difference position fixed solution.

[0083] In the above implementation process, this method considers the influence of satellite signal quality on positioning accuracy, and effectively reduces the negative impact of blocked satellites on positioning results by assigning different weights to satellites with different blocking degrees. At the same time, the SLAM positioning data is used as prior information to participate in the construction of the observation equation, which further improves the accuracy of the initial observation equation. This fusion method not only improves the accuracy and reliability of RTK positioning in complex environments, but also enhances the anti-interference ability and adaptability of the positioning system.

[0084] On the basis of the above-mentioned embodiments, when constructing the initial observation equation of each satellite, the SLAM observation equation can be constructed based on the SLAM positioning data of the SLAM algorithm, the carrier phase double difference observation equation of each satellite is constructed based on the satellite observation data, and then the initial observation equation of each satellite is constructed based on the carrier phase double difference observation equation of each satellite and the SLAM observation equation.

[0085] Specifically, two observation equations are constructed here, including the carrier phase double difference observation equation and the SLAM observation equation.

[0086] The carrier phase double difference observation equation is converted into a linearized form: y RTK =A·x+B·N+e rtk , y RTK represents the carrier phase double difference observation vector, A represents a design matrix related to the coordinate difference, B represents a design matrix related to the double difference ambiguity N, x represents the coordinate difference parameter, and e rtk represents the observation noise.

[0087] The SLAM observation equation can be represented as: y SLAM =C·x+e slam , y SLAM represents the SLAM positioning data, C represents a design matrix, and e slam represents the observation noise.

[0088] The carrier phase double difference observation equation and the SLAM observation equation are merged to construct the initial observation equation: which can be simply written as: y=H·x+e. If the weight of each satellite is added, the finally constructed observation equation can be written as: y=W·H·x+e, and W represents the weight of the satellite.

[0089] Then the H in the observation equation can be solved by using the weighted least squares method, so that the float solution of the double difference ambiguity N can be obtained. The subsequent process of searching and checking the float solution of the ambiguity is the same as the process of the conventional RTK algorithm, and is not described here. Finally, the fixed solution of the double difference position can be obtained.

[0090] It can be understood that when the RTK algorithm is solved, the SLAM positioning data can be converted to the coordinate system of the RTK algorithm, so that the SLAM coordinates are aligned with the coordinates of the RTK.

[0091] In some other embodiments, the float value of the ambiguity can be solved by a Kalman filtering algorithm, in the implementation of which, the SLAM positioning data can refer to the predicted SLAM positioning data at the current time, such as the SLAM positioning data at the last time + the product of the velocity (which can be collected by the sensors on the device to be positioned) and time, to obtain the SLAM positioning data at the current time, or can also be predicted in combination with multiple historical SLAM positioning data. Then the SLAM positioning data at the current time is taken as the observation information in the Kalman filtering algorithm, so as to correct the float solution obtained by the RTK algorithm to obtain a more accurate float solution.

[0092] In the above implementation, the high-precision relative positioning information provided by the SLAM algorithm is used to construct the SLAM observation equation, providing a reliable reference framework for positioning; at the same time, the carrier phase double difference observation equation is constructed based on satellite observation data, and the high-precision absolute positioning characteristics of satellite signals are used. By combining the observation equations from the two different sources, the constructed initial observation equation contains both the relative positioning advantages of SLAM and the absolute accuracy of satellite positioning, so that the positioning information can be more accurately reflected in complex environments.

[0093] On the basis of the above embodiments, in order to further improve the positioning accuracy of the RTK algorithm, the carrier phase double difference observation equation of each satellite can also be screened for abnormalities using the SLAM positioning data, to obtain the remaining carrier phase double difference observation equation, and then based on the remaining carrier phase double difference observation equation and the SLAM observation equation, the initial observation equation of each satellite is constructed. This process can be referred to as data pre-test robustness.

[0094] Specifically, the RTK positioning solution can be understood as an iterative process, such as the initial observation equation of each satellite can be constructed based on the carrier phase double difference observation equation of each satellite and the SLAM observation equation, and the solution of the initial observation equation can obtain the ambiguity, which is referred to as the initial ambiguity here.

[0095] In order to further improve its positioning accuracy, the ambiguity can be iteratively solved at this time, one way is to screen the carrier phase double difference observation equation for abnormalities using the SLAM positioning data. For example, the SLAM positioning data (i.e. the coordinate difference obtained by using the SLAM positioning data) can be substituted into the carrier phase double difference observation equation of each satellite, and the ambiguity at this time can refer to the initial ambiguity described above. Then the theoretical carrier phase double difference observation value can be calculated, and in the process of screening for abnormalities, the residual error between the theoretical carrier phase double difference observation value and the actual carrier phase double difference observation value can be calculated, if the absolute value of the residual error is greater than a set threshold, it is considered that the corresponding observation value is an abnormal value, at this time the carrier phase double difference observation equation corresponding to the observation value can be deleted.

[0096] For example, assuming that satellite observation data of 4 satellites is used to construct carrier phase double difference observation equations of the 4 satellites, 4 residuals can be calculated according to the above manner, if the residual corresponding to the carrier phase double difference observation equation 1 (corresponding to satellite 1) is greater than a set threshold, it is considered that the carrier phase observation value of the satellite 1 is abnormal, at this time the carrier phase double difference observation equation 1 can be eliminated, the equation 1 does not participate in the construction of the initial observation equation, but the remaining 3 carrier phase double difference observation equations and the SLAM observation equation are used to construct the initial observation equation, and then the observation equation is constructed combined with the weight, and then the observation equation is solved to obtain the ambiguity.

[0097] It can be understood that here the abnormal observation value can not be directly eliminated, but the weight corresponding thereto can be reduced, for example, the carrier phase double difference observation equation 1 is abnormal, after determining the weight of the satellite 1 according to the satellite blocking data, the weight of the satellite 1 can be reduced again, so that the proportion of the satellite 1 in the subsequent observation equation is small.

[0098] In the above implementation process, by using the SLAM positioning data to perform abnormal screening on the carrier phase double difference observation equations of each satellite, the abnormal observation data caused by factors such as satellite signal blocking, multipath effect or measurement noise is effectively eliminated, so that more reliable and accurate remaining carrier phase double difference observation equations are obtained.

[0099] On the basis of the above embodiment, in order to further improve the RTK positioning accuracy, when performing RTK positioning calculation on the observation equation, the observation equation of each satellite can be solved first to obtain a double difference position float solution, then the observation equation of each satellite is screened based on the SLAM positioning data and the double difference position float solution to obtain the remaining observation equation, and then the remaining observation equation is subjected to RTK positioning calculation to obtain the current RTK positioning data. This process can be referred to as data post-robustness.

[0100] Specifically, when the observation equation of each satellite is solved, it can be the first ambiguity obtained after the above data pre-robustness process, or it can be the initial ambiguity obtained without the data pre-robustness process.

[0101] For the observation equation of each satellite, the SLAM positioning data and the ambiguity (the first ambiguity or the initial ambiguity) can be substituted into the observation equation, and the double difference position float solution and the ambiguity (the first ambiguity or the initial ambiguity) can be substituted into the observation equation, to respectively solve the theoretical observation value such as the carrier phase double difference observation value, and then the residual is calculated with the actual carrier phase double difference observation value, and then the difference between the two residuals is compared, and the abnormal observation value is screened according to the difference.

[0102] For example, for observation equation 1, the SLAM positioning data and the first ambiguity are substituted into it to calculate theoretical carrier phase double difference observation value 1, the double difference position floating point solution and the first ambiguity are substituted into it to calculate theoretical carrier phase double difference observation value 2, the residual 1 between theoretical carrier phase double difference observation value 1 and actual carrier phase double difference observation value is calculated, and the residual 2 between theoretical carrier phase double difference observation value 2 and actual carrier phase double difference observation value is calculated, then the difference between residual 1 and residual 2 is calculated, if the difference is greater than a set difference value, it can be considered that the carrier phase double difference observation value corresponding to observation equation 1 is abnormal, at this time observation equation 1 can be deleted, and then RTK positioning calculation is carried out based on the remaining observation equations.

[0103] Understandably, here the abnormal observation value can also not be directly rejected, but the weight corresponding thereto can be reduced, for example, observation equation 1 (corresponding to satellite 1) is abnormal, then after determining the weight of satellite 1 according to satellite blocking data, the weight of satellite 1 can be reduced again, and then the observation equation is reconstructed so that it accounts for a smaller proportion in the subsequent observation equation.

[0104] In the above implementation process, the SLAM positioning data is used as a reference to evaluate the double difference position floating point solution, to reject abnormal observation equations caused by factors such as satellite blocking, multipath effect or measurement noise, and to retain more reliable data for subsequent calculation. This screening mechanism based on SLAM data can accurately identify and exclude low-quality observation data, reducing its adverse impact on the final positioning result.

[0105] On the basis of the above embodiment, when determining the weight of each satellite according to the satellite blocking data, in principle, the weight of the blocked satellite is lower than that of the unblocked satellite. Specifically, for example, the initial weight of each satellite can be determined according to other parameters of the satellite, such as the number of visible satellites, the elevation angle, the pitch angle, etc. Of course, the initial weight can also be evenly distributed according to the number of satellites (such as 1 / number of satellites), that is, the initial weight of each satellite is the same, and then the initial weight of each satellite is adjusted according to the satellite blocking data.

[0106] For example, if a satellite is blocked, the initial weight of the satellite is reduced, if a satellite is not blocked, the initial weight of the satellite can not be adjusted, or the initial weight of the satellite can be increased.

[0107] In some embodiments, the satellite blocking data can include an environmental blocking level, and the weight adjustment strategy can be determined according to the environmental blocking level, and then the weight of each satellite is determined according to the weight adjustment strategy.

[0108] The environment blocking level can be used to evaluate the degree of blocking of the satellites in the current environment, which can be divided into a serious blocking environment, a normal environment and an open environment, and the weight adjustment strategy can be different under different environment blocking levels. The environment blocking level can be determined according to the blocking situation of the satellites, for example, whether each satellite is blocked can be obtained first, then the proportion of the blocked satellites is counted, and the environment blocking level is determined according to the proportion.

[0109] In some embodiments, if the environment blocking level is serious blocking, the weight adjustment strategy is determined to be reducing the weight of the blocked satellites, and the serious blocking means that the proportion of the blocked satellites is greater than a first set proportion. If the environment blocking level is an open environment, the weight adjustment strategy is determined to be increasing the weight of the unblocked satellites, and the open environment means that the proportion of the blocked satellites is less than a second set proportion.

[0110] Of course, the normal environment can mean that the proportion of the blocked satellites is within a set proportion range, for example, the set proportion range is 40%-60%. The first set proportion and the second set proportion can be flexibly set according to actual needs, for example, the first set proportion is 60% and the second set proportion is 40%.

[0111] If in the serious blocking environment, the initial weight of the blocked satellites can be reduced, if in the open environment, the initial weight of the unblocked satellites can be increased, and in the normal environment, the initial weight can not be adjusted. Here, the specific value of the reduction or increase can be flexibly set according to actual needs, which can be a fixed value.

[0112] When reducing the initial weight, the weight value of the reduction can be determined according to the type of the blocking object of the blocked satellite, for example, if the type of the blocking object of the blocked satellite is a building, the weight value of the reduction is X1, and if the type of the blocking object of the blocked satellite is other, such as a tree, the weight value of the reduction is X2, and X1 can be greater than X2.

[0113] In some other embodiments, the weight value of the reduction can also be determined according to the blocking degree of the blocked satellite, for example, the greater the blocking degree, the greater the weight value of the reduction.

[0114] The implementation of determining the type of the blocking object and the blocking degree of the blocked satellite can refer to the related introduction in the subsequent embodiments, which will not be explained too much here.

[0115] In the implementation process, the weight adjustment strategy is formulated according to the environmental occlusion level, which can accurately allocate appropriate weights to satellites with different occlusion levels. In complex scenarios where satellite signals are easily disturbed, such as urban canyons or dense vegetation areas, this method can significantly reduce the negative impact of occluded satellites on positioning accuracy, while improving the contribution of unoccluded satellites in positioning solution. This dynamic weight adjustment mechanism enhances the adaptability of the positioning system to environmental changes, improving the accuracy and reliability of the positioning results.

[0116] The detailed process of obtaining satellite occlusion data is introduced below.

[0117] First, a point cloud map is generated from the point cloud data, then the satellite constellation map is projected into the point cloud map, and the position and direction of each visible satellite relative to the device to be positioned are determined. Then, according to the information of the clustered point cloud in the position and direction, the occlusion data of the visible satellite in the position and direction is determined.

[0118] Satellite occlusion data can be obtained through a satellite occlusion algorithm. Here, the point cloud data can refer to the point cloud data input into the SLAM algorithm, i.e., the point cloud data collected by the laser radar on the device to be positioned can be simultaneously input into the SLAM algorithm and the satellite occlusion algorithm.

[0119] After obtaining the point cloud data, the satellite occlusion algorithm can first preprocess the point cloud data, such as denoising, filtering, and other preprocessing operations to remove noise points and outliers. Then, point cloud data at different times or different angles can be registered and fused to construct a three-dimensional point cloud map of the environment.

[0120] Specifically, in the method of generating a point cloud map, the point cloud data can be first de-warped to obtain de-warped point cloud data, then the de-warped point cloud data and the previously accumulated point cloud map can be registered and fused according to the positioning data of the device to be positioned to construct a point cloud map.

[0121] The purpose of de-warping is to correct all points in the same frame to the same coordinate at the same time. Therefore, de-warping is to synchronize and correct each point cloud in the point cloud data to the coordinate system at the same timestamp. Here, the angular velocity data provided by the sensor data can be used to calculate the attitude change of the laser radar during scanning, and each point cloud can be rotated to compensate for the attitude change, thereby obtaining de-warped point cloud data.

[0122] The positioning data of the device to be positioned can be the SLAM positioning data of the previous time output by the SLAM algorithm, or it can be the SLAM positioning data of the current time predicted from the SLAM positioning data of the previous time. The SLAM positioning data can provide the position and attitude of the device to be positioned.

[0123] In the registration and fusion of the point cloud data with the previously accumulated point cloud map, a spherical coordinate system can be constructed with the position of the device to be positioned as the origin, and then the coordinates of the point cloud data after the distortion removal processing are converted to the spherical coordinate system, so that the coordinate representation of the point cloud data in the spherical coordinate system is obtained.

[0124] Then, the converted point cloud data can be initially registered with the previously accumulated point cloud map according to the positioning data of the device to be positioned. In the spherical coordinate system, feature points such as edges and corners of the current point cloud data and the accumulated point cloud map are extracted, and feature matching is performed to find the similarity of the two. Then, according to the matching result, the relative pose change between the current point cloud data and the accumulated point cloud map is calculated, including translation and rotation. According to the calculated relative pose, the point cloud data can be converted to the coordinate system of the accumulated point cloud map and fused. The fusion method can use voxelization or rasterization processing to merge the new point cloud data with the point cloud data of the previously accumulated point cloud map, and construct an updated point cloud map.

[0125] With the movement of the device to be positioned, the above steps are repeatedly performed to register and fuse the new distortion-removed point cloud data with the accumulated point cloud map, so as to realize dynamic updating and optimization of the point cloud map.

[0126] After generating the point cloud map, the satellite constellation map can be converted from the satellite coordinate system to the point cloud map coordinate system to determine the position of the satellite in the map. Here, methods such as spherical projection or ray tracing can be used to project the satellite constellation map into the point cloud map.

[0127] The visible satellite can refer to the satellite from which the device to be positioned obtains an observation signal. After projecting the satellite constellation map into the point cloud map, the position and direction of each visible satellite relative to the device to be positioned can be determined.

[0128] For each position and direction, the point cloud is clustered and analyzed to identify point cloud clusters in the position and direction, and the density and distribution of each cluster are calculated. A high-density cluster can represent an occluder. Therefore, a point cloud cluster with a density greater than a set density can be referred to as a cluster point cloud, and the cluster point cloud is used as an occluder. In this way, it can be determined whether there is a cluster point cloud in the position and direction to determine whether the visible satellite is occluded. For example, if there is a cluster point cloud, it is determined that the visible satellite is occluded, and if there is no cluster point cloud, it is determined that the visible satellite is not occluded. The occlusion data can include whether the visible satellite is occluded.

[0129] In the implementation process, the position and direction of the visible satellite and the occlusion situation can be accurately determined by generating a point cloud map and projecting a satellite constellation map. The detailed environment model constructed by the point cloud data provides a high-precision basis for satellite occlusion analysis. After projecting the satellite constellation map, the satellite occlusion degree is determined according to the clustered point cloud information, so that the positioning system can accurately identify the satellite signal blocking situation in real time.

[0130] On the basis of the above embodiment, the information of the clustered point cloud can include the geometric shape and the number of the clustered point cloud, so that the type of the occlusion object of the visible satellite in the position and direction can be determined according to the geometric shape of the clustered point cloud in the position and direction, and the occlusion degree of the visible satellite in the position and direction can be determined according to the number of the clustered point cloud in the position and direction. That is, the satellite occlusion data can include the type of the occluded satellite and the occlusion degree, which can be used to adjust the weight of the satellite.

[0131] The geometric shape of the clustered point cloud can refer to the shape, volume and other distribution shapes of the clustered point cloud. For example, trees usually have a high height and an irregular shape, and buildings have a regular geometric shape and a large volume. Here, a machine learning model can be used to identify the type of the occlusion object, such as extracting the geometric features of the clustered point cloud and inputting them into the trained machine learning model to identify the type of the occlusion object by the machine learning model.

[0132] In addition, the number of the clustered point cloud in each position and direction can be counted, and the occlusion degree of the visible satellite can be determined according to the number of the clustered point cloud. For example, different occlusion degree threshold intervals can be set according to the actual application scenario, such as no occlusion, light occlusion, moderate occlusion and heavy occlusion. For example, if the number is 0, it means no occlusion, if the number is 1-2, it means light occlusion, if the number is 3-4, it means moderate occlusion, and if the number is greater than 4, it means heavy occlusion. Therefore, the occlusion degree of the visible satellite can be determined according to the corresponding occlusion degree of the number of the clustered point cloud.

[0133] In the implementation process, the type of the occlusion object can be accurately identified according to the geometric shape of the clustered point cloud, such as buildings, trees and the like, thereby providing more rich environment information for the positioning system. At the same time, the occlusion degree is determined according to the number of the clustered point cloud, so that the system can quantitatively evaluate the severity of the satellite signal blocking.

[0134] On the basis of the above-mentioned embodiments, in the above-mentioned manner of determining the position direction of each visible satellite relative to the device to be positioned, the point cloud map is constructed with the device to be positioned as the origin in the spherical coordinate system, the point cloud map can be divided into multiple angle sectors with the device to be positioned as the center, then the angle sector in which each visible satellite is located is determined according to the position of each visible satellite in the spherical coordinate system, and then the position direction of each visible satellite relative to the origin is determined according to the angle sector in which each visible satellite is located.

[0135] In the division of the angle sector, the azimuth and the polar angle can be divided, for example, the azimuth range is 0° to 360°, which can be divided into multiple angle sectors with equal intervals, and the polar angle range is 0° to 180°, which can also be divided into multiple angle sectors with equal intervals, so that the entire spherical coordinate system is divided into multiple angle sectors. Then the boundary angles of each sector can be determined, for example, the azimuth is divided into a sector every 10°, and the polar angle is divided into a sector every 5°.

[0136] Then the position of each visible satellite in the spherical coordinate system, including the azimuth and the polar angle, can be obtained. According to the azimuth and the polar angle of the visible satellite, the sector to which the visible satellite belongs is determined. For example, if the azimuth of a visible satellite is 25° and the polar angle is 30°, and the angle sector is divided with an interval of 10° for the azimuth and an interval of 5° for the polar angle, then the visible satellite is located in the sector with an azimuth of 20°-30° and a polar angle of 25°-30°. The angle sector in which each visible satellite is located can be used as the position direction of each visible satellite relative to the origin.

[0137] In the above-mentioned implementation process, by constructing the point cloud map with the device to be positioned as the origin in the spherical coordinate system and dividing it into multiple angle sectors, the position direction of each visible satellite relative to the device to be positioned can be efficiently determined. By determining the angle sector in which the satellite is located, the azimuth of the satellite can be quickly identified, and the visibility and signal quality of the satellite can be accurately evaluated.

[0138] On the basis of the above-mentioned embodiments, in order to improve the information acquisition efficiency of the clustered point cloud, the point cloud data in each angle sector can also be clustered to obtain a clustered point cloud, and then the search range is determined along the position direction with a set step size, and the information of the clustered point cloud in the search range is detected.

[0139] After positioning each visible satellite in a specific angle sector, the point cloud data in the angle sector in which the visible satellite is located can be clustered using a distance-based clustering algorithm or the like. The clustered point cloud is preliminarily analyzed, and the characteristic information of each cluster is calculated, such as the cluster center, the size of the cluster, and the point density.

[0140] Based on the visual satellite position direction (i.e. the direction of the angle sector), the search direction is determined, which can be a radial direction along the angle sector, i.e. extending from the origin to the radial direction of the angle sector. According to the search accuracy requirement, the search step is set. The selection of the step should consider the possible distance of the occlusion and the detection accuracy. For example, if the occlusion is likely to be closer and higher detection accuracy is required, a smaller step can be selected; if the occlusion is likely to be farther away and the detection accuracy requirement is relatively low, a larger step can be selected.

[0141] Starting from the origin, the search range is gradually divided along the specified position direction at the set step. The search range can be gradually expanded according to the search step, for example, the first search range corresponds to a distance range of one step, and the second search range corresponds to a distance range of two steps. Thus, for a large volume of clustered point cloud, it can be searched in a larger search range.

[0142] The clustered point cloud is searched according to the above-mentioned way of gradually expanding the search range, and the information of the clustered point cloud is detected, such as the geometric shape, density of the clustered point cloud, the number of clustered point clouds in the angle sector, etc.

[0143] In the above-mentioned way of judging whether the visual satellite is occluded, one way is to judge whether the angle sector contains clustered point clouds, if so, it is considered that the visual satellite is occluded, otherwise, if there is no clustered point cloud, it is considered that there is no occlusion. Another way is to further combine the information of the clustered point cloud to judge whether there is occlusion and the degree of occlusion, the type of occlusion object, etc. For example, if there are clustered point clouds in the angle sector and the density of the clustered point clouds is greater than the set density, it is considered that the satellite is occluded.

[0144] In the above-mentioned implementation process, the clustering analysis can effectively group the occlusion in the point cloud data, so as to accurately identify the characteristics and positions of different occlusions. By setting the step to search gradually, the related information of the clustered point cloud can be accurately detected.

[0145] The above describes the implementation process of the RTK algorithm, and the overall process can be referred to as shown in FIG. 1. Figure 2 The initial coordinate calculation can be performed using satellite observation data, such as using SPP or RTD algorithm to calculate the initial coordinate, of course, the initial coordinate can also be directly used for predicted SLAM positioning data, then the SLAM positioning data participates in the data pre-robustness, RTK floating point solution calculation and data delay robustness process, the satellite occlusion data can participate in the initial coordinate calculation, data pre-robustness, ambiguity fixed pre-observation star selection (before calculating the fixed solution, the weight determined by the satellite occlusion data can be used to construct the observation equation to calculate the fixed solution), etc. Then the LAMBDA algorithm can be used to calculate the ambiguity, and then the current RTK positioning data is output.

[0146] On the basis of the above embodiments, the current RTK positioning data can be input into the SLAM algorithm for calculation of SLAM positioning data. Specifically, when the SLAM algorithm performs positioning, the point cloud data can be first de-distorted using sensor data to obtain de-distorted point cloud data, then the de-distorted point cloud data is registered with the previously accumulated point cloud map to obtain relative pose constraint information between the de-distorted point cloud data and the point cloud map, the speed information provided by the current RTK positioning data is converted into a coordinate system matching the system in which the SLAM algorithm is located to obtain converted speed information, and then the current SLAM positioning data is predicted using the SLAM algorithm according to the relative pose constraint information and the converted speed information.

[0147] For ease of understanding, the principle of a conventional SLAM algorithm for implementing positioning will be introduced first as follows:

[0148] Point cloud data preprocessing: point cloud data is generated by scanning the surrounding environment of the device to be positioned by a lidar on the device to be positioned, and the point cloud data is de-distorted using sensor data (the specific processing process can refer to the related description in the above embodiments, which will not be described here in detail).

[0149] Define state vector, motion model and observation model: the state vector includes the pose, velocity and IMU bias of the device to be positioned, the motion model is used to describe the motion law of the device to be positioned under the action of the IMU, and is usually obtained by integrating the acceleration and angular velocity measurements of the IMU, and the observation model is used to describe how the lidar observes the environment, for example, the pose transformation obtained by registering the point cloud data.

[0150] Initialization: the state vector is initialized using the point cloud data and IMU data of the lidar at the initial time, and the initial value of the covariance matrix is set.

[0151] Prediction step: the state and covariance matrix at the next time can be predicted using the prediction equation of the Iterated Extended Kalman Filter (IEKF) according to the motion model of the device to be positioned and the IMU data.

[0152] Update step: at the current time, the observation model is constructed using the obtained point cloud data, the residual between the predicted observation value and the actual observation value is calculated, the Kalman gain is calculated according to the residual and the Jacobian matrix of the observation model, and the state vector and the covariance matrix are updated.

[0153] Iterative optimization: an iterative mechanism is introduced in the update step to optimize the estimation result through multiple iterations to improve the positioning accuracy.

[0154] Loop closure detection and global optimization: Detect if the device needs to be positioned back to a previously visited location. Once a loop closure is detected, adjust the map and pose through global optimization to eliminate accumulated errors.

[0155] Map construction: Fuse the estimated pose and environmental feature information to construct an environmental map for subsequent positioning and navigation.

[0156] It can be understood that the above process describes an IEKF-based SLAM algorithm. In actual applications, the IEKF algorithm can also be replaced by an Extended Kalman Filter (EKF) algorithm, an Unscented Kalman Filter (UKF) algorithm, a Particle Filter (PF) algorithm, a nonlinear optimization algorithm (such as Gauss-Newton, Levenberg-Marquardt), a Lidar SLAM algorithm (such as LOAM, Cartographer), etc.

[0157] To improve the positioning accuracy of the SLAM algorithm, RTK positioning data is added to the SLAM algorithm in the present scheme. After the de-distorted point cloud data is registered with the previously accumulated point cloud map, the relative pose constraint information between the de-distorted point cloud data and the point cloud map can be obtained. Specifically, a feature matching algorithm can be used to match the feature points extracted from the point cloud data and the point cloud map to find the corresponding relationship between the two sets of point clouds. According to the matching result, the relative pose change between the de-distorted point cloud data and the accumulated point cloud map, including translation and rotation, can be calculated. Then, an optimization algorithm is used to optimize the relative pose to minimize the matching error between the point cloud data and obtain accurate relative pose constraint information.

[0158] After obtaining the current RTK positioning data, the speed information provided by the current RTK positioning data can be converted to the coordinate system of the SLAM algorithm using a coordinate conversion matrix or conversion formula, to ensure that the speed information is consistent with the coordinate system of the SLAM system.

[0159] The state vector defined in the SLAM algorithm can then be extended to include the speed information as part of the state vector, and the state vector includes position, attitude, and speed. Using the converted speed information and the relative pose constraint information, combined with the motion model and the observation model, the current SLAM positioning data can be predicted. The motion model describes the relationship between the state vector and time, and the observation model describes the relationship between the observation data and the state vector.

[0160] The data fusion algorithm such as the IEKF filtering or the particle filtering is used to fuse the relative position constraint information and the converted speed information, to update the state estimation in the SLAM algorithm, and to obtain more accurate positioning data.

[0161] In the iteration process of the SLAM algorithm, the new relative position constraint information and the speed information are used to optimize the positioning data, until the convergence condition is met or the predetermined number of iterations is reached, and finally the SLAM positioning data at the current time is obtained.

[0162] In the above implementation process, the speed information provided by the RTK is converted to the SLAM system coordinate system, which further enriches the input information of the SLAM algorithm, so that the position of the SLAM algorithm can be more accurately predicted, and the positioning accuracy of the SLAM algorithm is improved.

[0163] On the basis of the above embodiment, if the IEKF algorithm is used in the SLAM algorithm for prediction, the misalignment angle information calculated by the IEKF algorithm is used to convert the speed information provided by the current RTK positioning data to the coordinate system matched with the system in which the SLAM algorithm is located, to obtain the converted speed information, and then the relative position constraint information and the converted speed information are used as the observation data of the IEKF algorithm, and the current SLAM positioning data is obtained by using the IEKF algorithm for prediction.

[0164] The prediction and update steps of the IEKF algorithm are used to update the state vector by using the IMU data and the observation data (such as the current RTK positioning data, the point cloud matching result, etc.), to calculate the misalignment angle information, in the prediction step, the change of the state vector is predicted based on the IMU data and the motion model; in the update step, the observation data is used to correct the prediction result, to obtain more accurate state estimation, including the misalignment angle.

[0165] According to the obtained misalignment angle information, a coordinate conversion matrix can be constructed. The misalignment angle reflects the attitude deviation between two coordinate systems, and the coordinate conversion matrix can be constructed through the deviation. Therefore, the speed information can be converted to the SLAM coordinate system according to the coordinate conversion rotation, to obtain the converted coordinate information.

[0166] The converted speed information and the relative position constraint information obtained from the point cloud data registration are integrated together to form a complete observation vector. These observation data can provide multi-dimensional information about the state of the system, which helps to improve the accuracy of the filtering. The observation model is established to describe the mathematical relationship between the observation data and the state vector, which is used to update the state estimation in the IEKF algorithm.

[0167] In the prediction step of the IEKF, the transformed speed information and the relative pose constraint information are combined, and the motion model is used to predict the value of the state vector at the current time, including position, speed and attitude, etc. Through the update step of the IEKF, the observation data is integrated into the prediction result to correct the predicted value, and more accurate current SLAM positioning data, i.e. the position and attitude estimation at the current time, is obtained.

[0168] In the above implementation process, the transformed speed information and the relative pose constraint information are used as the observation data of the IEKF algorithm, which further optimizes the prediction process of the SLAM positioning data. This fusion method not only makes full use of the high-precision absolute positioning information of RTK and the high-precision relative positioning information of SLAM, but also enhances the adaptability and robustness of the positioning system in complex environments through the dynamic correction mechanism of the IEKF algorithm.

[0169] The implementation process of the SLAM algorithm can be as shown in Figure 3 The input of the algorithm includes current RTK positioning data, point cloud data and sensor data. Before inputting these data into the algorithm, the RTK positioning data can be filtered first, i.e. if the confidence of the current RTK positioning data is not high, it is rejected and not input into the SLAM algorithm. The sensor data can be mechanically arranged, such as time synchronization of data from different sensors, conversion of sensor data to the coordinate system of the SLAM system, interpolation and completion of missing or incomplete sensor data, filtering of abnormal values in the sensor data, etc. The point cloud data can be filtered and sampled to meet the input requirements of the IEKF system.

[0170] The current SLAM positioning data output by the SLAM algorithm can be input into the satellite occlusion algorithm for calculation, and its point cloud data is also input into the satellite occlusion algorithm. The input data of the satellite occlusion algorithm also includes satellite observation data. After obtaining the satellite occlusion data through the satellite occlusion algorithm, it is input into the RTK algorithm. Of course, the input pose of the satellite occlusion algorithm can also be the current positioning data obtained by fusion.

[0171] On the basis of the above embodiment, after obtaining the current RTK positioning data and the current SLAM positioning data, the current positioning data of the device to be positioned can be determined based on the two positioning data, which has the following implementation methods:

[0172] Method 1: The current SLAM positioning data and the current RTK positioning data are fused by weighting to determine the current positioning data, wherein the weight in the weighted fusion is determined according to the confidence of the corresponding positioning data.

[0173] The implementation manner is described in detail in the above embodiment, and reference can be made to the related description in the above embodiment, and excessive details will not be described here. The weighted fusion method can fully consider the advantages and limitations of different positioning technologies, dynamically adjust the weight according to the reliability and accuracy of the data, so that the positioning result is more accurate and reliable.

[0174] Method 2: According to the current SLAM positioning data and the current RTK positioning data, a sliding window-based pose graph optimization algorithm is used to determine the current positioning data.

[0175] By using the sliding window-based pose graph optimization algorithm, the current SLAM positioning data and the current RTK positioning data are comprehensively considered, which can effectively fuse multi-source positioning information, and fully utilize the advantages of high-precision relative positioning of SLAM and high-precision absolute positioning of RTK. The sliding window mechanism not only limits the data amount of optimization calculation, reduces the calculation complexity, but also guarantees the real-time and continuity of the positioning result. The pose graph optimization algorithm further improves the positioning accuracy by minimizing the observation error, and reduces the influence of cumulative error.

[0176] Method 3: According to the sensor data, the current SLAM positioning data and the current RTK positioning data, a sliding window-based pose graph optimization algorithm is used to determine the current positioning data.

[0177] In the specific implementation, the sensor data, the current SLAM positioning data and the current RTK positioning data can be put into the sliding window as the latest frame, and then the data in the sliding window is optimized by the pose graph, to obtain the current positioning data, wherein the edge between two adjacent pose nodes in the pose graph includes sensor motion constraint, RTK absolute position constraint and SLAM relative pose constraint, and the optimization target is represented as a nonlinear optimization algorithm.

[0178] The difference between method 2 and method 3 is that method 3 adds sensor data to further provide more positioning data for comprehensive positioning. For the sliding window-based pose graph optimization algorithm, the implementation manner is similar, except that method 3 additionally adds sensor motion constraint. In the implementation of method 2, the sensor motion constraint is removed.

[0179] The implementation manner of the sliding window-based pose graph optimization algorithm is described below.

[0180] Set the window size: according to the calculation resources and real-time requirements, set the size of the sliding window, for example, including the latest N frames of data.

[0181] Initialize Pose Size: Add the initial pose of the device to be localized (obtained from sensor data, RTK positioning data, and SLAM positioning data) as the first pose node to the sliding window, and initialize the covariance matrix to reflect the uncertainty of the initial state estimate.

[0182] Data Preprocessing and Synchronization: Time-synchronize sensor data, current RTK positioning data, and current SLAM positioning data to ensure they are at the same timestamp. Convert data in different coordinate systems to a unified global coordinate system or the local coordinate system of the device to be localized.

[0183] Sliding Window Update: Add the corresponding pose node to the end of the sliding window whenever new data arrives. For sensor data, downsampling or integration may be needed due to its high sampling frequency. When the sliding window reaches the maximum size N, remove the oldest pose node and its related observation edges from the front of the window.

[0184] Construct Pose Graph: First, create pose nodes, each representing the pose of the device to be localized at a certain time. Then, construct observation edges: sensor motion constraints, RTK absolute position constraints, and SLAM relative pose constraints.

[0185] Among them, sensor data can be used to construct motion constraint edges between adjacent pose nodes. By pre-integrating the acceleration and angular velocity of the sensor data, the relative motion between two adjacent pose nodes, including translation and rotation, can be calculated. RTK position information is used as an absolute position constraint edge, connected to the corresponding pose node. Use the relative pose constraints provided by SLAM positioning data to construct relative position and attitude edges between pose nodes.

[0186] When the robot returns to a previously visited location, construct a loop closure edge connecting the current pose node and the previous pose node to reduce cumulative errors.

[0187] Pose Graph Optimization: Define the objective function of pose graph optimization, which is usually the sum of the errors of all observation edges. The optimization objective can be represented as a nonlinear optimization algorithm, which is used to optimize the pose graph.

[0188] In each iteration, calculate the error vector and Jacobian matrix of the observation edge based on the estimated value of the current pose node, and update the estimated value of the pose node. Iterate until the convergence condition is met, such as the error change being less than a set threshold or reaching the maximum number of iterations.

[0189] Output current positioning data: After pose graph optimization, the updated pose estimation value of each pose node in the sliding window is obtained. According to the optimized pose node estimation value, the fusion position at the current time can be calculated, which can be the weighted average of all pose nodes in the sliding window or the position of the current latest pose node as the fusion position (i.e. current positioning data) output.

[0190] Sliding window update: after completing the pose graph optimization of the current sliding window, the sliding window is slid forward by one step (usually 1 frame), and the new data is processed, and the process of sliding window update, pose graph construction, optimization and fusion position output is repeated.

[0191] In some other embodiments, in the way of obtaining the current positioning data, the misalignment angle information obtained in the SLAM algorithm process can also be added, that is, based on the misalignment angle information, sensor data, current RTK positioning data and current SLAM positioning data, the current positioning data can be obtained based on the sliding window pose graph optimization algorithm. The implementation principle is similar to the above, only the observation edges and pose nodes provided by the misalignment angle information are added in the pose graph, and more accurate positioning can be achieved by combining these information.

[0192] In the above implementation process, the pose graph contains sensor motion constraints, RTK absolute position constraints and SLAM relative pose constraints. This multi-constraint optimization method can fully utilize the advantages of each data source and improve the accuracy and reliability of positioning. The use of nonlinear optimization algorithm further ensures the efficiency and accuracy of the optimization process, which can effectively handle the positioning problem in complex environment.

[0193] The overall flow of the positioning method provided by the scheme can be as shown in Figure 4 The input data of the whole algorithm includes sensor data, satellite observation data and point cloud data. The relative position calculated by SLAM and the satellite occlusion data provided by the satellite occlusion algorithm are integrated in the RTK algorithm. The SLAM positioning data is added to the data pre- and post-robustness, which double-checks the data quality. The LAMBDA algorithm improves the success rate of fixing and enhances the stability of positioning combined with SLAM positioning data. In the SLAM algorithm, the input RTK positioning data provides speed information to join IEKF for optimization. Finally, in the sliding window-based pose graph optimization algorithm, the fusion of various positioning data is realized, the weight of each positioning data is dynamically adjusted, and the global consistent high-precision pose is output.

[0194] On the basis of the above-mentioned embodiments, the scheme further provides a fault-tolerant mechanism. If the current SLAM positioning data is unreliable, the current RTK positioning data is determined as the current positioning data. If the current RTK positioning data is unreliable, the current SLAM positioning data is determined as the current positioning data. If the current SLAM positioning data and the RTK positioning data are both reliable, the current positioning data is determined based on the current SLAM positioning data and the RTK positioning data.

[0195] Wherein whether the current RTK positioning data and the current SLAM positioning data are reliable can be determined by the confidence of the positioning data. The confidence can be obtained in the manner described above with reference to the related description of the embodiments, which will not be repeated here. For example, if the confidence is lower than a set threshold, it is considered unreliable, and vice versa.

[0196] If the current RTK positioning data is unreliable, the SLAM algorithm can rely on the point cloud data and sensor data to achieve continuous positioning at this time, avoiding the problem of being unable to position under the shielding condition. When the device needs to be positioned to move to an open area, the RTK algorithm provides the SLAM positioning data provided by the SLAM algorithm as the initial coordinates at this time, accelerates the whole ambiguity resolution, and realizes fast positioning.

[0197] The SLAM algorithm relies on the spatiotemporal consistency of the point cloud. When the environment changes dynamically (e.g., a large number of pedestrians and vehicles pass by) or the environment is empty and has no ground feature (e.g., desert, airport), the traditional SLAM algorithm will appear positioning drift or failure; At this time, the SLAM algorithm can continue to deduce the continuous trajectory using RTK and IMU data, and simultaneously reinitialize the SLAM initial point cloud map and calculate the attitude. This can be used to resist abnormal situations such as dynamic environment and open environment.

[0198] When the SLAM positioning data is unreliable, the RTK algorithm can be relied on to combine satellite shielding data to achieve continuous positioning. When the SLAM positioning data and the RTK positioning data are both reliable, the final positioning is realized according to the two positioning data.

[0199] In the above implementation process, the reliability of the current SLAM positioning data and the current RTK positioning data is evaluated, and the two are flexibly selected or fused to determine the final current positioning data. This strategy effectively deals with the unreliable situation of a single data source in a specific environment, enhancing the robustness of the positioning system. When either positioning data is unreliable, the system can quickly switch to another reliable data source, ensuring the continuity of the positioning service. When both are reliable, the positioning data is determined based on both, further improving the positioning accuracy.

[0200] The positioning method using the scheme has higher positioning accuracy than the traditional RTK algorithm.

[0201] In the severe sheltering (the surrounding of the positioning device needs to be surrounded by a large amount of shelter, and there is only a small visible area of the sky, and the sheltering rate is 50%-70%), and the heavy sheltering (the surrounding of the positioning device needs to be surrounded by a large amount of shelter, and there is only a small visible area of the sky, and the sheltering rate is greater than 70%) conditions, the performance comparison of the scheme and the traditional RTK scheme using the same antenna and receiver is as follows Figure 5 As shown.

[0202] Through the performance comparison of Figure 5 It can be seen that the scheme realizes:

[0203] (1) High-precision positioning in severe sheltering conditions. In severe sheltering conditions, 90% of the positioning accuracy is within 5cm, and the fly point rate is 0%, which is much better than the positioning effect of the traditional RTK scheme.

[0204] (2) Realize the positioning continuation of heavy sheltering. In the heavy condition, move 10-100m, and when the moving distance is less than 20m, 60% of the positioning accuracy is within 5cm, and the fly point rate is less than 20%, which is much better than the positioning effect of the traditional RTK scheme. And support continuous movement measurement in deep heavy sheltering environment.

[0205] Please refer to Figure 6 , Figure 6 The flowchart of an RTK positioning method provided by the embodiment of the application, comprising the following steps:

[0206] Step S11: Obtain satellite observation data, SLAM positioning data of SLAM algorithm, and satellite sheltering data.

[0207] Step S12: Determine the weight of each satellite according to the satellite sheltering data.

[0208] Step S13: Construct the initial observation equation of each satellite according to the satellite observation data and the SLAM positioning data.

[0209] Step S14: Construct the observation equation of each satellite according to the weight and the initial observation equation.

[0210] Step S15: Perform RTK positioning calculation on the observation equation to obtain the current RTK positioning data.

[0211] It can be understood that the implementation manner is different from the implementation manner of the foregoing positioning method in that the implementation manner does not involve fusion positioning, that is, the SLAM algorithm in the implementation manner can adopt a conventional SLAM algorithm (that is, SLAM positioning data is obtained according to sensor data and point cloud data), or can adopt the SLAM algorithm provided in the foregoing positioning method to output SLAM positioning data by combining RTK positioning data (output by the RTK algorithm), point cloud data, and sensor data, and input the obtained SLAM positioning data into the RTK algorithm to perform RTK positioning.

[0212] In this embodiment, the overall flow of the RTK positioning method can be as shown in Figure 7 The input data of the entire algorithm includes sensor data, satellite observation data, and point cloud data. The RTK algorithm integrates the relative position calculated by the SLAM algorithm and the satellite blocking data provided by the satellite blocking algorithm. The SLAM positioning data is added to the data pre-robustness and data post-robustness, and the double verification guarantees the data quality. The LAMBDA algorithm improves the success rate of fixing, and the SLAM positioning data enhances the positioning stability. In the SLAM algorithm, the RTK positioning data can be input. The input RTK positioning data provides speed information to join the IEKF for optimization, and the output SLAM positioning data is input into the RTK algorithm for positioning calculation.

[0213] In some embodiments, if the current SLAM positioning data is unreliable, the current SLAM positioning data can not be input into the RTK algorithm for calculation, and positioning calculation can be performed according to the satellite blocking data at this time. If the current SLAM positioning data is reliable, the current SLAM positioning data is input into the RTK algorithm for calculation.

[0214] Whether the current SLAM positioning data is reliable can be determined by the confidence of the positioning data. The manner of obtaining the confidence can refer to the related description in the foregoing embodiments, which is not repeated here. For example, if the confidence is lower than a set threshold, it is considered unreliable, and otherwise it is considered reliable.

[0215] When the SLAM positioning data is unreliable, the RTK algorithm can be relied on to realize positioning in combination with the satellite blocking data.

[0216] It can be understood that the detailed implementation manner of each step of the RTK positioning algorithm can refer to the related description in the foregoing embodiments, which is not repeated here.

[0217] Please refer to Figure 8 , Figure 8 a flowchart of a satellite blocking acquisition method provided in the embodiments of the present application. The method includes the following steps:

[0218] Step S21: Obtain the positioning data of the device to be positioned and the point cloud data of the surrounding environment of the device to be positioned.

[0219] In some embodiments, the positioning data of the device to be positioned herein can be obtained by a positioning device of the device to be positioned, such as a Global Positioning System (GPS), a Beidou positioning module, etc., or the positioning data can also be SLAM positioning data output by a SLAM algorithm, which can be combined with point cloud data and sensor data for positioning, or combined with point cloud data, sensor data and RTK positioning data for positioning in the above embodiments, or the positioning data can also be RTK positioning data output by an RTK algorithm, which can be combined with satellite occlusion data and satellite observation data for positioning, or combined with satellite occlusion data, satellite observation data and SLAM positioning data for positioning in the above embodiments, or the positioning data can also be the current positioning data obtained after fusion positioning in the above embodiments, i.e., the positioning data obtained by fusing the current SLAM positioning data and the current RTK positioning data.

[0220] For the acquisition method of the positioning data, please refer to the relevant description in the above embodiments, and the repeated parts will not be described here.

[0221] Step S22: Generate a point cloud map according to the positioning data and the point cloud data.

[0222] Step S23: Project a satellite constellation diagram into the point cloud map and obtain occlusion data of each satellite relative to the position of the device to be positioned.

[0223] For the generation of the point cloud map and the acquisition method of the occlusion data, please refer to the relevant description in the above embodiments, such as first performing distortion removal processing on the point cloud data to obtain the point cloud data after distortion removal processing, then registering and fusing the point cloud data after distortion removal processing with the previously accumulated point cloud map according to the positioning data of the device to be positioned, and constructing the point cloud map. Then, in the point cloud map, the position direction of each satellite relative to the device to be positioned can be determined, and the occlusion data of the satellite in the position direction can be determined according to the information of the clustered point cloud in the position direction.

[0224] It can be understood that the acquisition method of the satellite occlusion data can refer to the relevant description in the above embodiments, and will not be repeated here for the sake of brevity of description.

[0225] After obtaining the satellite blocking data, the satellite blocking data can be used to adjust the weight of each satellite, and the weight of the satellite can be used in the conventional satellite positioning, such as Global Navigation Satellite System (GNSS) positioning, or can also be used in the RTK positioning in the above embodiment, so as to improve the positioning accuracy.

[0226] In the above implementation process, the detailed environment model constructed by using the point cloud data and the positioning data provides a high-precision basis for satellite blocking analysis. After projecting the satellite constellation diagram, the satellite blocking situation can be judged according to the point cloud map, so that the system can accurately identify the satellite signal blocking situation.

[0227] Please refer to Figure 9 , Figure 9 The structure block diagram of a positioning device 200 provided by the embodiment of the application can be a module, a program segment or code on an electronic device. It should be understood that the positioning device 200 corresponds to the above-mentioned Figure 1 method embodiment, and can perform each step involved in the Figure 1 method embodiment. The specific functions of the positioning device 200 can be referred to the description in the above text. To avoid repetition, the detailed description is appropriately omitted here.

[0228] Optionally, the positioning device 200 comprises:

[0229] The RTK positioning module 210 is configured to obtain current RTK positioning data by using an RTK algorithm according to satellite observation data, SLAM positioning data of a SLAM algorithm and satellite blocking data.

[0230] The SLAM positioning module 220 is configured to obtain current SLAM positioning data by using the SLAM algorithm according to sensor data, point cloud data and the current RTK positioning data, wherein the point cloud data refers to point cloud data of the surrounding environment of the device to be positioned.

[0231] The fusion positioning module 230 is configured to determine current positioning data based on the current SLAM positioning data and the current RTK positioning data.

[0232] Optionally, the RTK positioning module 210 is configured to determine the weight of each satellite according to the satellite blocking data, construct an initial observation equation of each satellite according to the satellite observation data and the SLAM positioning data of the SLAM algorithm, construct an observation equation of each satellite according to the weight and the initial observation equation, and perform RTK positioning calculation on the observation equation to obtain the current RTK positioning data.

[0233] Optionally, the RTK positioning module 210 is configured to construct a SLAM observation equation based on the SLAM positioning data; construct a carrier phase double difference observation equation of each satellite based on satellite observation data; and construct an initial observation equation of each satellite based on the carrier phase double difference observation equation of each satellite and the SLAM observation equation.

[0234] Optionally, the RTK positioning module 210 is configured to perform abnormal screening on the carrier phase double difference observation equation of each satellite by using the SLAM positioning data to obtain a remaining carrier phase double difference observation equation; and construct an initial observation equation of each satellite based on the remaining carrier phase double difference observation equation and the SLAM observation equation.

[0235] Optionally, the RTK positioning module 210 is configured to solve the observation equation of each satellite to obtain a double difference position floating point solution; perform abnormal screening on the observation equation of each satellite based on the SLAM positioning data and the double difference position floating point solution to obtain a remaining observation equation; and perform RTK positioning calculation on the remaining observation equation to obtain current RTK positioning data.

[0236] Optionally, the satellite blocking data includes an environmental blocking level, and the RTK positioning module 210 is configured to determine a weight adjustment strategy according to the environmental blocking level; and determine the weight of each satellite according to the weight adjustment strategy.

[0237] Optionally, the RTK positioning module 210 is configured to determine that the weight adjustment strategy is to reduce the weight of a blocked satellite if the environmental blocking level is a serious blocking, the serious blocking referring to a proportion of blocked satellites being greater than a first set proportion; and determine that the weight adjustment strategy is to increase the weight of an unblocked satellite if the environmental blocking level is an open environment, the open environment referring to a proportion of blocked satellites being less than a second set proportion.

[0238] Optionally, the RTK positioning module 210 is configured to generate a point cloud map according to the point cloud data; project a satellite constellation diagram into the point cloud map and determine a position direction of each visible satellite relative to the position of the device to be positioned; and determine blocking data of the visible satellite in the position direction according to information of clustered point clouds in the position direction.

[0239] Optionally, the RTK positioning module 210 is configured to determine a kind of blocking object of the visible satellite in the position direction according to a geometric shape of the clustered point clouds in the position direction; and determine a blocking degree of the visible satellite in the position direction according to a number of the clustered point clouds in the position direction.

[0240] Optionally, the point cloud map is constructed with the device to be positioned as the origin in a spherical coordinate system, and the RTK positioning module 210 is configured to divide the point cloud map into a plurality of angle sectors with the device to be positioned as the center; determine an angle sector in which each visible satellite is located according to the position of each visible satellite in the spherical coordinate system; and determine a position direction of each visible satellite relative to the origin according to the angle sector in which each visible satellite is located.

[0241] Optionally, the RTK positioning module 210 is configured to cluster point cloud data in each angle sector to obtain clustered point cloud data; and determine a search range along the position direction with a set step length and detect information of the clustered point cloud data in the search range.

[0242] Optionally, the SLAM positioning module 220 is configured to perform distortion correction on the point cloud data using sensor data to obtain distortion-corrected point cloud data; register the distortion-corrected point cloud data with a previously accumulated point cloud map to obtain relative pose constraint information between the distortion-corrected point cloud data and the point cloud map; convert speed information provided by the current RTK positioning data into a coordinate system matching a system in which the SLAM algorithm is located to obtain converted speed information; and predict current SLAM positioning data using the SLAM algorithm according to the relative pose constraint information and the converted speed information.

[0243] Optionally, the SLAM positioning module 220 is configured to convert speed information provided by the current RTK positioning data into a coordinate system matching a system in which the SLAM algorithm is located using misalignment angle information calculated by an iterative extended Kalman filter algorithm to obtain converted speed information; use the relative pose constraint information and the converted speed information as observation data of the iterative extended Kalman filter algorithm, and predict current SLAM positioning data using the iterative extended Kalman filter algorithm.

[0244] Optionally, the fusion positioning module 230 is configured to perform weighted fusion on the current SLAM positioning data and the current RTK positioning data to determine current positioning data, wherein a weight in the weighted fusion is determined according to a confidence level of corresponding positioning data.

[0245] Optionally, the fusion positioning module 230 is configured to determine current positioning data based on a sliding window pose graph optimization algorithm according to the current SLAM positioning data and the current RTK positioning data.

[0246] Optionally, the fusion positioning module 230 is configured to determine the current positioning data based on a sliding window pose graph optimization algorithm according to the sensor data, the current SLAM positioning data and the current RTK positioning data.

[0247] Optionally, the fusion positioning module 230 is configured to put the sensor data, the current SLAM positioning data and the current RTK positioning data into a sliding window as a latest frame, perform pose graph optimization on data in the sliding window to obtain the current positioning data, wherein an edge between two adjacent pose nodes in the pose graph includes a sensor motion constraint, an RTK absolute position constraint and a SLAM relative pose constraint, and an optimization target is represented as a nonlinear optimization algorithm.

[0248] Optionally, the fusion positioning module 230 is configured to determine the current RTK positioning data as the current positioning data if the current SLAM positioning data is unreliable, determine the current SLAM positioning data as the current positioning data if the current RTK positioning data is unreliable, and determine the current positioning data based on the current SLAM positioning data and the current RTK positioning data if both the current SLAM positioning data and the current RTK positioning data are reliable.

[0249] The embodiment of the present application further provides an RTK positioning device, which comprises:

[0250] a multi-source data acquisition module configured to acquire satellite observation data, SLAM positioning data of a SLAM algorithm and satellite occlusion data;

[0251] a weight determination module configured to determine weights of the satellites according to the satellite occlusion data;

[0252] an initial observation equation construction module configured to construct initial observation equations of the satellites according to the satellite observation data and the SLAM positioning data;

[0253] an observation equation construction module configured to construct observation equations of the satellites according to the weights and the initial observation equations;

[0254] an RTK positioning module configured to perform RTK positioning calculation on the observation equations to obtain current RTK positioning data.

[0255] The embodiment of the present application further provides a satellite occlusion data acquisition device, which comprises:

[0256] a data acquisition module configured to acquire positioning data of a device to be positioned and point cloud data of a surrounding environment of the device to be positioned;

[0257] a map generation module configured to generate a point cloud map according to the positioning data and the point cloud data;

[0258] an occlusion module configured to project a satellite constellation diagram into the point cloud map and obtain occlusion data of each satellite relative to a location of the device to be positioned.

[0259] It should be noted that, for the convenience and brevity of description, the specific working process of the apparatus described above can refer to the corresponding process in the foregoing method embodiments, which will not be described herein.

[0260] Please refer to Figure 10 , Figure 10 A structural schematic diagram of an electronic device for performing a positioning method is provided in the embodiments of the present application. The electronic device is the device to be positioned or the positioning apparatus in the device to be positioned as described above. The electronic device can include at least one processor 310, such as a CPU, at least one communication interface 320, at least one memory 330, and at least one communication bus 340. The communication bus 340 is used to realize the connection and communication between the components. The communication interface 320 of the device in the embodiments of the present application is used to perform signaling or data communication with other node devices. The memory 330 can be a high-speed RAM memory or a non-volatile memory, such as at least one disk memory. The memory 330 can also be at least one storage device located away from the aforementioned processor. The memory 330 stores computer readable instructions. When the computer readable instructions are executed by the processor 310, the electronic device performs the method process described above.

[0261] It can be understood that Figure 10 The structure shown is only schematic. The electronic device can include more or fewer components than those shown in the drawings or have a different configuration from that shown in the drawings. Figure 10 The components shown in the drawings can be realized in hardware, software, or a combination thereof. Figure 10 Figure 10 The components shown in the drawings can be realized in hardware, software, or a combination thereof.

[0262] The embodiments of the present application provide a computer readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the method process performed by the electronic device in the method embodiments described above is executed.

[0263] The embodiments of the present application disclose a computer program product, which includes a computer program stored on a non-transitory computer readable storage medium. The computer program includes program instructions. When the program instructions are executed by a computer, the computer can execute the method provided by each of the method embodiments described above, for example, including: ​

[0264] According to the satellite observation data, the SLAM positioning data of the SLAM algorithm, and the satellite shielding data, current RTK positioning data is obtained by using an RTK algorithm;

[0265] According to the sensor data, the point cloud data of the surrounding environment of the device to be positioned, and the current RTK positioning data, current SLAM positioning data is obtained by using the SLAM algorithm;

[0266] Based on the current SLAM positioning data and the current RTK positioning data, current positioning data is determined.

[0267] In summary, the embodiments of the present application provide a positioning method, device, electronic device, storage medium and program product, which fuses satellite observation data, SLAM positioning data and satellite shielding data, fully utilizes the high-precision absolute positioning capability of the RTK algorithm and the high-precision relative positioning advantage of the SLAM algorithm, and considers the influence of satellite shielding on RTK positioning accuracy, thereby realizing more accurate and reliable positioning in a complex environment. This method can maintain positioning accuracy with the help of relative positioning information of the SLAM algorithm in the case of satellite signal shielding or interference, and corrects the SLAM result by using the absolute positioning data of the RTK algorithm, effectively reducing the cumulative error. In addition, by considering the satellite shielding data, the accuracy and reliability of positioning are further improved, so that the positioning system can stably output high-precision positioning results in various complex scenarios.

[0268] In the embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division, and there can be another division manner in actual implementation. For example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units shown or discussed can be indirect coupling or communication connection through some communication interfaces, devices or units, and can be electrical, mechanical or other forms.

[0269] In addition, the units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e. they can be located in one place, or distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the embodiments of the present application.

[0270] Further, each functional module in each embodiment of the present application can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.

[0271] In this document, relational terms such as first and second and the like can be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions.

[0272] The above description is merely illustrative of the application, and not in limitation of the principles of the application. Any modification and change of the application, which can be made by those skilled in the art without departing from the spirit and principle of the application, shall be included in the scope of the application.

Claims

1. A positioning method, characterized in that: The method comprises: Based on satellite observation data, SLAM positioning data from the SLAM algorithm, and satellite occlusion data, the RTK algorithm is used to obtain the current RTK positioning data. Obtaining current SLAM positioning data using the SLAM algorithm based on the sensor data, the point cloud data, and the current RTK positioning data, wherein the point cloud data refers to point cloud data of the surrounding environment of the device to be positioned; Current positioning data is determined based on the current SLAM positioning data and the current RTK positioning data.

2. The method according to claim 1, characterized in that The method of obtaining current RTK positioning data using an RTK algorithm based on satellite observation data, SLAM positioning data of a SLAM algorithm, and satellite occlusion data includes: Determine the weight of each satellite based on satellite occlusion data; Construct the initial observation equation of each satellite based on the satellite observation data and the SLAM positioning data of the SLAM algorithm; constructing an observation equation for each satellite according to the weight and the initial observation equation; Perform RTK positioning solution on the observation equation to obtain current RTK positioning data.

3. The method according to claim 2, characterized in that The initial observation equations of each satellite are constructed based on the satellite observation data and the SLAM positioning data of the SLAM algorithm, including: Construct SLAM observation equation based on SLAM positioning data of SLAM algorithm; Construct the carrier phase double-difference observation equation of each satellite based on satellite observation data; Based on the carrier phase double-difference observation equation of each satellite and the SLAM observation equation, an initial observation equation of each satellite is constructed.

4. The method according to claim 3, characterized in that The initial observation equations of each satellite are constructed based on the carrier phase double-difference observation equations of each satellite and the SLAM observation equations, including: Using the SLAM positioning data, the carrier phase double-difference observation equations of each satellite are screened for abnormalities to obtain the remaining carrier phase double-difference observation equations; Based on the remaining carrier phase double-difference observation equation and the SLAM observation equation, an initial observation equation for each satellite is constructed.

5. The method according to claim 2, characterized in that The performing RTK positioning solution on the observation equation to obtain current RTK positioning data includes: Solve the observation equations of each satellite to obtain the double-difference position floating-point solution; Performing abnormal screening on the observation equations of each satellite based on the SLAM positioning data and the double-difference position floating-point solution to obtain the remaining observation equations; Perform RTK positioning solution on the remaining observation equations to obtain current RTK positioning data.

6. The method according to claim 2, characterized in that The satellite occlusion data includes an ambient occlusion level, and determining the weight of each satellite according to the satellite occlusion data includes: Determining a weight adjustment strategy according to the ambient occlusion level; According to the weight adjustment strategy, the weight of each satellite is determined.

7. The method according to claim 6, characterized in that Determining a weight adjustment strategy according to the ambient occlusion level includes: If the environmental occlusion level is severe occlusion, determining the weight adjustment strategy is to reduce the weight of the obscured satellites, wherein the severe occlusion refers to that the proportion of obscured satellites is greater than a first set proportion; If the environmental occlusion level is an open environment, the weight adjustment strategy is determined to increase the weight of unobstructed satellites, and the open environment refers to a situation where the proportion of obstructed satellites is less than a second set proportion.

8. The method according to claim 2, characterized in that The satellite occlusion data is obtained by: generating a point cloud map according to the point cloud data; Projecting a satellite constellation map onto the point cloud map and determining the direction of each visible satellite relative to the location of the device to be positioned; The occlusion data of the visible satellites in the direction of the position is determined according to the information of the clustered point cloud in the direction of the position.

9. The method according to claim 8, characterized in that The determining, based on the information of the clustered point cloud in the position direction, the occlusion data of the visible satellite in the position direction includes: Determining the type of obstructing objects of visible satellites in the direction of the position according to the geometric form of the clustered point cloud in the direction of the position; The degree of obstruction of visible satellites in the direction of the position is determined according to the number of clustered point clouds in the direction of the position.

10. The method according to claim 8, characterized in that The point cloud map is constructed in a spherical coordinate system with the device to be positioned as the origin, and determining the position direction of each visible satellite relative to the device to be positioned includes: Dividing the point cloud map into a plurality of angular sectors with the device to be positioned as the center; Determine the angular sector where each visible satellite is located according to the position of each visible satellite in the spherical coordinate system; The position direction of each visible satellite relative to the origin is determined according to the angular sector where each visible satellite is located.

11. The method according to claim 10, characterized in that Get the information of the clustered point cloud at the position direction by: Cluster the point cloud data in each angle sector to obtain clustered point cloud; A search range is determined along the position direction with a set step size, and information of the clustered point cloud within the search range is detected.

12. The method according to claim 1, characterized in that The method of obtaining current SLAM positioning data by using the SLAM algorithm according to the sensor data, the point cloud data and the current RTK positioning data includes: Dedistorting the point cloud data using the sensor data to obtain dedistorted point cloud data; Registering the dedistorted point cloud data with a previously accumulated point cloud map to obtain relative pose constraint information between the dedistorted point cloud data and the point cloud map; Converting the speed information provided by the current RTK positioning data into a coordinate system that matches the system where the SLAM algorithm is located to obtain the converted speed information; According to the relative posture constraint information and the converted speed information, the current SLAM positioning data is predicted using the SLAM algorithm.

13. The method according to claim 12, characterized in that The process of converting the speed information provided by the current RTK positioning data into a coordinate system matching the system where the SLAM algorithm is located to obtain the converted speed information comprises: Using the misalignment angle information calculated by the iterative extended Kalman filter algorithm, the velocity information provided by the current RTK positioning data is converted into a coordinate system that matches the system where the SLAM algorithm is located to obtain the converted velocity information; The method of predicting and obtaining current SLAM positioning data using the SLAM algorithm according to the relative posture constraint information and the converted speed information includes: The relative pose constraint information and the converted speed information are used as observation data of the iterative extended Kalman filter algorithm, and the iterative extended Kalman filter algorithm is used to predict the current SLAM positioning data.

14. The method according to claim 1, wherein The determining of current positioning data based on the current SLAM positioning data and the current RTK positioning data includes: The current SLAM positioning data and the current RTK positioning data are weightedly fused to determine the current positioning data, wherein the weight during weighted fusion is determined according to the confidence of the corresponding positioning data.

15. The method according to claim 1, wherein The determining of current positioning data based on the current SLAM positioning data and the current RTK positioning data includes: According to the current SLAM positioning data and the current RTK positioning data, the current positioning data is determined based on a sliding window pose graph optimization algorithm.

16. The method according to claim 15, characterized in that The method of determining the current positioning data based on the current SLAM positioning data and the current RTK positioning data and the pose graph optimization algorithm based on the sliding window includes: The current positioning data is determined based on the sensor data, the current SLAM positioning data and the current RTK positioning data, using a sliding window pose graph optimization algorithm.

17. The method according to claim 16, characterized in that The method of determining the current positioning data based on the sensor data, the current SLAM positioning data, and the current RTK positioning data using a sliding window pose graph optimization algorithm comprises: The sensor data, the current SLAM positioning data, and the current RTK positioning data are placed in a sliding window as the latest frames, and the data in the sliding window are subjected to pose graph optimization to obtain current positioning data, wherein the edge between two adjacent pose nodes in the pose graph includes: sensor motion constraints, RTK absolute position constraints, and SLAM relative pose constraints, and the optimization target is expressed as a nonlinear optimization algorithm.

18. The method according to any one of claims 1 to 17, characterized in that: The determining of current positioning data based on the current SLAM positioning data and the current RTK positioning data includes: If the current SLAM positioning data is unreliable, the current RTK positioning data is determined as the current positioning data; If the current RTK positioning data is unreliable, the current SLAM positioning data is determined as the current positioning data; If both the current SLAM positioning data and the current RTK positioning data are reliable, current positioning data is determined based on the current SLAM positioning data and the current RTK positioning data.

19. An RTK positioning method, characterized in that: The method comprises: Obtain satellite observation data, SLAM positioning data of the SLAM algorithm, and satellite occlusion data; Determining the weight of each satellite according to the satellite occlusion data; Constructing an initial observation equation for each satellite based on the satellite observation data and the SLAM positioning data; constructing an observation equation for each satellite according to the weight and the initial observation equation; Perform RTK positioning solution on the observation equation to obtain current RTK positioning data.

20. A method for acquiring satellite occlusion data, characterized in that: The method comprises: Acquire positioning data of the device to be positioned and point cloud data of the surrounding environment of the device to be positioned; generating a point cloud map according to the positioning data and the point cloud data; The satellite constellation map is projected onto the point cloud map, and the occlusion data of each satellite relative to the location of the device to be positioned is obtained.

21. A positioning device, characterized in that: The device comprises: RTK positioning module, used to obtain current RTK positioning data using RTK algorithm based on satellite observation data, SLAM positioning data of SLAM algorithm and satellite occlusion data; A SLAM positioning module, configured to obtain current SLAM positioning data using the SLAM algorithm based on sensor data, point cloud data, and the current RTK positioning data, wherein the point cloud data refers to point cloud data of the surrounding environment of the device to be positioned; The fusion positioning module is used to determine current positioning data based on the current SLAM positioning data and the current RTK positioning data.

22. An electronic device, characterized in that: The method comprises a processor and a memory, wherein the memory stores computer-readable instructions. When the computer-readable instructions are executed by the processor, the method according to any one of claims 1 to 20 is executed.

23. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 20 is executed.

24. A computer program product, characterized in that The method comprises computer program instructions, and when the computer program instructions are read and executed by a processor, the method according to any one of claims 1 to 20 is executed.

Citation Information

Cited By

  • Real-time data processing method and system for Beidou satellite positioning error correction

    CN121454572A

  • Real-time data processing method and system for BeiDou satellite positioning error correction

    CN121454572B

  • Train attitude measurement method based on multi-constellation satellite navigation, medium and equipment

    CN121657087A