Loop Detection Method, Device, Medium and Electronic Device for Point Cloud Map

By identifying and matching the submap of the historical point cloud map and the current point cloud map, the matching success rate and accuracy of the point cloud map in a location-free environment is solved, and more efficient loop detection is achieved.

CN113568993BActive Publication Date: 2025-07-04TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202110048926.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-01-14
Publication Date
2025-07-04
Estimated Expiration
2041-01-14

AI Technical Summary

Technical Problem

In the prior art, point cloud maps are difficult to match successfully in environments where the positioning signal is poor or the positioning signal is not possible, and the accuracy of the loopback detection results is low.

Method used

By obtaining the historical point cloud map and current location information of the target object, identifying the sub-map to be detected, and based on the matching degree between the current point cloud map and the sub-map to be detected, it is determined that the condition for successful loop detection is that the number of point cloud maps with continuous matching degree greater than or equal to the first threshold reaches the first predetermined number.

Benefits of technology

It improves the matching success rate of the map, ensures the accuracy of loopback detection results, and reduces the situation of false detection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113568993B_ABST
    Figure CN113568993B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a loop detection method, device, medium and electronic device for a point cloud map. The method includes: obtaining a historical point cloud map constructed by a target object, the historical point cloud map including at least one sub-map; according to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the current position information, identifying the sub-map as a sub-map to be detected; determining a matching degree between the current point cloud map of the target object and the sub-map to be detected; if the number of consecutive current point cloud maps with the matching degree greater than or equal to a first threshold reaches a first predetermined number, determining that the loop detection is successful. The technical solution of the embodiments of the present application can improve the matching success rate of the point cloud map and ensure the accuracy of the loop detection result.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of map construction, and more particularly, to a loop detection method, apparatus, medium, and electronic device for a point cloud map. Background Art

[0002] With the rapid development of computer technology, Simultaneous Localization And Mapping (SLAM) technology has been widely used in the field of mapping technology. Among them, when the detection vehicle passes through the mapped area again, the current map needs to be matched with the previous map to form a closed loop. In the current technical solutions, the similarity between the current point cloud map and the historical point cloud map is directly matched, which requires a high accuracy of the initial position of the detection vehicle. In an environment with poor positioning signals or no positioning signals, it is difficult to successfully match the maps and the accuracy of the loop detection result is low. Therefore, how to improve the matching success rate of the map and ensure the accuracy of the loop detection result has become an urgent technical problem to be solved. Summary of the Invention

[0003] Embodiments of the present application provide a loop detection method, apparatus, medium, and electronic device for a point cloud map, which can at least to some extent improve the matching success rate of the map and ensure the accuracy of the loop detection result.

[0004] Other features and advantages of the present application will become apparent from the following detailed description, or be learned in part from the practice of the present application.

[0005] According to one aspect of the embodiments of the present application, a loop detection method for a point cloud map is provided, the method comprising:

[0006] Obtaining a historical point cloud map constructed by a target object, the historical point cloud map including at least one sub-map;

[0007] According to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the current position information, identifying the sub-map as a sub-map to be detected;

[0008] Determining a matching degree between the current point cloud map of the target object and the sub-map to be detected;

[0009] If the number of current point cloud maps with consecutive matching degrees greater than or equal to a first threshold reaches a first predetermined number, determining that the loop detection is successful.

[0010] According to one aspect of the embodiments of the present application, a loop detection apparatus for a point cloud map is provided, the apparatus comprising:

[0011] An acquisition module, configured to acquire a historical point cloud map constructed by a target object, where the historical point cloud map includes at least one sub-map;

[0012] A search module, configured to, according to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the current position information, identify the sub-map as a sub-map to be detected;

[0013] A determination module, configured to determine a matching degree between the current point cloud map and the sub-map to be detected according to the current point cloud map of the target object and the sub-map to be detected;

[0014] A processing module, configured to determine that the loop detection is successful if the number of current point cloud maps with consecutive matching degrees greater than or equal to a first threshold reaches a first predetermined number.

[0015] In some embodiments of the present application, based on the foregoing solution, the determination module is configured to: acquire a historical movement trajectory of the target object corresponding to the sub-map to be detected, and a current movement trajectory of the target object corresponding to the current point cloud map; determine a trajectory similarity between the historical movement trajectory and the current movement trajectory according to the historical movement trajectory and the current movement trajectory; determine a point cloud similarity between the current point cloud map and the sub-map to be detected according to the current point cloud map and the sub-map to be detected; and determine a matching degree between the current point cloud map and the sub-map to be detected according to the trajectory similarity and the point cloud similarity.

[0016] In some embodiments of the present application, based on the foregoing solution, the historical movement trajectory and the current movement trajectory include coordinate information and rotation angles of the target object; the determination module is configured to: determine a linear movement amount difference between the historical movement trajectory and the current movement trajectory according to the coordinate information included in the historical movement trajectory and the coordinate information included in the current movement trajectory; determine a rotation angle difference between the historical movement trajectory and the current movement trajectory according to the rotation angle included in the historical movement trajectory and the rotation angle included in the current movement trajectory; and determine a trajectory similarity between the historical movement trajectory and the current movement trajectory according to the linear movement amount difference and the rotation angle difference.

[0017] In some embodiments of the present application, based on the foregoing solution, the determination module is configured to: obtain the historical positioning information of the target object corresponding to the sub-map to be detected, and the current positioning information of the target object corresponding to the current point cloud map; determine the historical movement trajectory of the target object according to the historical positioning information, and determine the current movement trajectory of the target object according to the current positioning information.

[0018] In some embodiments of the present application, based on the foregoing solution, the determination module is configured to: identify the points with corresponding coordinate information in the current point cloud map and the sub-map to be detected as matching points according to the coordinate information of the points included in the current point cloud map and the coordinate information of the points included in the sub-map to be detected; determine the point cloud similarity between the current point cloud map and the sub-map to be detected according to the number of the matching points and the number of the points included in the current point cloud map.

[0019] In some embodiments of the present application, based on the foregoing solution, the processing module is configured to: arrange the current point cloud maps with the matching degree greater than or equal to the first threshold in descending order of the matching degree, and identify the current point cloud maps arranged before the second predetermined number as the point cloud maps to be matched; if, after the point cloud maps to be matched, the number of consecutive current point cloud maps with the matching degree greater than or equal to the first threshold reaches the first predetermined number, determine that the loop detection of the point cloud maps to be matched is successful.

[0020] In some embodiments of the present application, based on the foregoing solution, the processing module is configured to: determine the matching position between the point cloud map to be matched and the sub-map to be detected according to the point cloud map to be matched and the corresponding sub-map to be detected; correct the current movement trajectory of the target object corresponding to the point cloud map to be matched according to the matching position; determine the trajectory similarity between the historical movement trajectory and the corrected current movement trajectory according to the historical movement trajectory of the target object corresponding to the sub-map to be detected and the corrected current movement trajectory; if, after the point cloud maps to be matched, the number of consecutive current point cloud maps with the matching degree greater than or equal to the first threshold reaches the first predetermined number, and the trajectory similarity is greater than or equal to the second threshold, determine that the loop detection of the point cloud maps to be matched is successful.

[0021] In some embodiments of the present application, based on the foregoing solution, the search module is further configured to: if there is at least one sub-map within the search range of the position information of the sub-map to be detected, identify the sub-map as the sub-map to be detected.

[0022] In some embodiments of the present application, based on the foregoing solution, the determination module is further configured to: determine a matching position between the current point cloud map and the sub-map to be detected according to the current point cloud map and the sub-map to be detected corresponding thereto; determine a distance between the matching position corresponding to the current point cloud map and the matching position corresponding to the point cloud map with the previous matching degree greater than or equal to the first threshold; and perform a deduction process on the matching degree corresponding to the current point cloud map according to the distance.

[0023] In some embodiments of the present application, based on the foregoing solution, the search module is further configured to: determine a travel error of the target object between the sub-maps according to a moving distance of the target object between the sub-maps and a preset error ratio; and determine a search range according to the travel error of the target object between the sub-maps.

[0024] In some embodiments of the present application, based on the foregoing solution, the search module is further configured to: clear the travel error before the current point cloud map where the loop detection is successful, and update the search range.

[0025] According to one aspect of the embodiments of the present application, there is provided a computer-readable medium, on which a computer program is stored, and when the computer program is executed by a processor, the loop detection method of the point cloud map as described in the above embodiments is implemented.

[0026] According to one aspect of the embodiments of the present application, there is provided an electronic device, including: one or more processors; a storage device for storing one or more programs, and when the one or more programs are executed by the one or more processors, the one or more processors implement the loop detection method of the point cloud map as described in the above embodiments.

[0027] In the technical solution provided by some embodiments of the present application, by obtaining a historical point cloud map constructed by a target object, the historical point cloud map includes at least one sub-map, according to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the current position information, the sub-map is identified as a sub-map to be detected, and according to the current point cloud map of the target object and the sub-map to be detected, the matching degree between the current point cloud map and the sub-map to be detected is determined. If the number of consecutive sub-maps to be detected with a matching degree greater than or equal to the first threshold reaches the first predetermined number, it is determined that the loop detection is successful. Thus, identifying the sub-maps within the search range of the current position information of the target object as sub-maps to be detected can improve the matching success rate of the map, and determining whether the loop detection is successful according to the matching degrees corresponding to the consecutive sub-maps to be detected can ensure the accuracy of the loop detection result.

[0028] It should be understood that the above general description and the following detailed description are merely exemplary and explanatory, and do not limit this application. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] The drawings herein are incorporated into and constitute a part of this specification, showing embodiments consistent with this application, and are used together with the specification to explain the principles of this application. Obviously, the drawings in the following description are only some embodiments of this application, and those of ordinary skill in the art can obtain other drawings based on these drawings without creative efforts. In the drawings:

[0030] Figure 1 A schematic diagram showing an exemplary system architecture to which the technical solution of the embodiment of this application can be applied.

[0031] Figure 2 A schematic flowchart showing the loop detection method of the point cloud map according to an embodiment of this application.

[0032] Figure 3 Showing according to an embodiment of this application Figure 2 A schematic flowchart of step S230 in the loop detection method of the point cloud map.

[0033] Figure 4 Showing according to an embodiment of this application Figure 3 A schematic flowchart of step S320 in the loop detection method of the point cloud map.

[0034] Figure 5 Showing another embodiment of this application Figure 3 A schematic flowchart of step S320 in the loop detection method of the point cloud map.

[0035] Figure 6 Showing according to an embodiment of this application Figure 3 A schematic flowchart of step S330 in the loop detection method of the point cloud map.

[0036] Figure 7 Showing according to an embodiment of this application Figure 2 A schematic flowchart of step S240 in the loop detection method of the point cloud map.

[0037] Figure 8 Showing according to an embodiment of this application Figure 7 A schematic flowchart of step S720 in the loop detection method of the point cloud map.

[0038] Figure 9The flowchart showing the process of deducting points from the matching degree, which is also included in the loop detection method of the point cloud map according to an embodiment of the present application.

[0039] Figure 10 The flowchart showing the process of determining the search range, which is also included in the loop detection method of the point cloud map according to an embodiment of the present application.

[0040] Figure 11a and Figure 11b The schematic diagram showing the calculation of the search range in the loop detection method of the point cloud map according to an embodiment of the present application.

[0041] Figure 12 The flowchart showing the loop detection method of the point cloud map according to an embodiment of the present application.

[0042] Figure 13 The schematic diagram showing the output of the loop detection result of the point cloud map according to an embodiment of the present application.

[0043] Figure 14 The schematic diagram showing the structure of the computer system of the electronic device suitable for implementing the embodiments of the present application. Detailed implementation manners

[0044] Now, example embodiments will be described more fully with reference to the accompanying drawings. However, the example embodiments can be implemented in various forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this application will be more complete and comprehensive, and will fully convey the concept of the example embodiments to those skilled in the art.

[0045] In addition, the described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of the embodiments of the present application. However, those skilled in the art will realize that the technical solutions of the present application can be practiced without one or more of the specific details, or other methods, components, devices, steps, etc. can be adopted. In other cases, well-known methods, devices, implementations, or operations are not shown or described in detail to avoid obscuring aspects of the present application.

[0046] The block diagrams shown in the drawings are only functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities can be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.

[0047] The flowcharts shown in the accompanying drawings are merely illustrative and not necessarily include all the content and operations / steps, nor are they necessarily executed in the described order. For example, some operations / steps can be decomposed, while some operations / steps can be combined or partially combined. Therefore, the actual execution order may change according to the actual situation.

[0048] Figure 1 The schematic diagram shows an exemplary system architecture to which the technical solution of the embodiment of the present application can be applied.

[0049] As Figure 1 shown, the system architecture may include an in-vehicle terminal 110, a network 120, and a server 130. The network 120 is used to provide a medium for a communication link between the in-vehicle terminal 110 and the server 130. The network 120 may include various connection types, such as wired communication links, wireless communication links, and so on.

[0050] It should be understood that Figure 1 the numbers of the in-vehicle terminal 110, the network 120, and the server 130 in

[0051] are merely illustrative. According to the implementation requirements, there can be any number of in-vehicle terminals 110, networks 120, and servers 130. For example, the server 130 can be a server cluster composed of multiple servers, etc.

[0052] In an exemplary embodiment of the present application, the in-vehicle terminal 110 can be configured with a high-precision lidar. The in-vehicle terminal 110 can process the data fed back by the lidar to obtain a point cloud map of the current environment. The in-vehicle terminal 110 can send the processed point cloud map to the server 130 through the network 120.

[0053] It should be noted that the loop detection method for the point cloud map provided by the embodiments of the present application is generally executed by the server 130. Correspondingly, the loop detection device for the point cloud map is generally set in the server 130. However, in other embodiments of the present application, the terminal device may also have a similar function to the server, so as to execute the solution of the loop detection method for the point cloud map provided by the embodiments of the present application. The terminal device may include one or more of a smart phone, a tablet computer, a portable computer, or a desktop computer.

[0054] The implementation details of the technical solutions of the embodiments of the present application are elaborated in detail below:

[0055] Figure 2 The flowchart of the loop detection method for the point cloud map according to an embodiment of the present application is shown. Refer to Figure 2 As shown, the loop detection method for the point cloud map includes at least steps S210 to S240, which are introduced in detail as follows:

[0056] In step S210, a historical point cloud map constructed by a target object is obtained, and the point cloud map includes at least one sub-map.

[0057] Among them, the target object may be a device for collecting lidar data to construct a point cloud map, which may be a detection device such as a detection vehicle or a mobile robot with lidar detection and map construction functions.

[0058] The historical point cloud map may be a point cloud map previously constructed by the target object. During the movement of the target object, the lidar device configured can be used to obtain the point cloud data of the environment where the target object is located to form a point cloud map. According to the moving distance of the target object, the point cloud map can be divided into at least one sub-map. For example, the target object can form a sub-map every 50 meters of movement, or every 100 meters of movement, and so on. The above numbers are only exemplary examples, and the present application does not make special limitations on this.

[0059] It should be understood that the at least one described in the present application may be one or any number more than one, such as two, three, etc. Therefore, the historical point cloud map may include one sub-map or multiple sub-maps, such as two, three, etc.

[0060] In an exemplary embodiment of the present application, the in-vehicle terminal can send the constructed point cloud map to the server in real time, and the server can store the received point cloud map for subsequent viewing or loop detection. The server can obtain the historical point cloud map constructed by the target object from its own storage location, and the historical point cloud map may include at least one sub-map.

[0061] In another exemplary embodiment of the present application, the server may send a request for obtaining a historical point cloud map to the vehicle-mounted terminal. According to the obtaining request, the vehicle-mounted terminal sends the previously constructed historical point cloud map to the server for the server to obtain.

[0062] In step S220, according to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the current position information, the sub-map is identified as a sub-map to be detected.

[0063] Among them, the search range may be information set in advance to limit the matching range of the historical point cloud map. In one example, the search range can be represented by a search radius. For example, the search range can be a circular range with a radius of 25m, etc.

[0064] The current position information of the target object may be the coordinate information of its location. In one example, the current position information may be provided by a radar odometer configured by the target object.

[0065] The position information of the sub-map may be the coordinate information of the points included in the sub-map. It should be understood that according to the coordinate information of the points included in each sub-map, the range of the sub-map can be determined. In one example, the average value can be taken according to the coordinate information of the points included in the sub-map to determine the center point position of the sub-map, so as to determine the position information of the sub-map according to the center point position.

[0066] In an exemplary embodiment of the present application, the server may search for the existence of a sub-map within the search range with the current position information of the target object as the center according to the current position information of the target object and the position information of the sub-map. Specifically, when the server searches, it can determine the coordinate range corresponding to the search range according to the current position information of the target object and the search range. Thus, the coordinate range can be compared with the coordinate information of the points included in each sub-map to determine whether the coordinate information of the points included in each sub-map is within the coordinate range, so as to determine the sub-map to be detected.

[0067] In one example, determining whether there is a sub-map within the search range of the current position information may be detecting whether there are points included in the sub-map within the search range. If there is at least one point included in the sub-map within the search range, the sub-map is identified as a sub-map to be detected.

[0068] In another example, determining whether there is a sub-map within the search range of the current position information may be detecting whether the search range includes all the points included in the sub-map. If all the points included in a certain sub-map are within the search range, the sub-map is identified as a sub-map to be detected.

[0069] In another example, to determine whether there is a sub-map within the search range of the current location information, it can also be to detect whether the number of points of a certain sub-map within the search range reaches a predetermined proportion of the points included in the sub-map. For example, if the predetermined proportion is 80%, then the number of points of the sub-map within the search range should account for 80% or more of the total number of points included in the sub-map, and then the sub-map is identified as the sub-map to be detected. Those skilled in the art can select the corresponding search method according to actual implementation needs, and this application does not make special limitations in this regard.

[0070] It should be noted that if there are multiple sub-maps within the search range of the current location information, that is, two or more, then multiple sub-maps can be identified as sub-maps to be detected for subsequent detection. In another example, the server can also select the sub-map with the largest number of points within the search range from the multiple sub-maps as the sub-map to be detected. For example, if there are sub-map A and sub-map B within the search range, where the number of points of sub-map A within the search range is 500 and the number of points of sub-map B within the search range is 600, then the server can identify sub-map B as the sub-map to be detected, and so on. Thus, it can be ensured that the sub-map to be detected is the sub-map with the largest number of points within the search range, ensuring the accuracy of determining the sub-map to be detected.

[0071] Please continue to refer to Figure 2 , in step S230, according to the current point cloud map of the target object and the sub-map to be detected, determine the matching degree between the current point cloud map and the sub-map to be detected.

[0072] Among them, the matching degree can be information used to describe the difference between the current point cloud map and the sub-map to be detected. It should be understood that the higher the matching degree, the lower the difference between the current point cloud map and the sub-map to be detected; conversely, the higher the difference between the current point cloud map and the sub-map to be detected. It should be understood that the matching degree can be expressed in the form of a proportion, that is, the value of the matching degree ranges from 0 to 1, and the larger the value, the higher the matching degree. The matching degree can also be expressed in the form of a score, and then the value range can be between 0 and 100, and the larger the value, the higher the matching degree. Those skilled in the art can select the corresponding representation form according to implementation needs, and this application does not make special limitations in this regard.

[0073] In an exemplary embodiment of the present application, the server may calculate the matching degree between the current point cloud map and the sub-map to be detected according to the coordinate information of the points included in the current point cloud map and the coordinate information of the points included in the sub-map to be detected. For example, the server may determine the plane formed by the points of the current point cloud map and determine whether there is a corresponding plane in the sub-map to be detected to determine the matching degree therebetween. It should be understood that the above correspondence may be a plane of the same position and the same size, etc. The server may also determine whether there are corresponding feature points among the points included in the sub-map to be detected according to the feature points (such as the point with the smallest abscissa, the point with the largest abscissa, the point with the smallest ordinate, and the point with the largest ordinate, etc.) included in the current point cloud map. The correspondence may be a point with the same abscissa and ordinate or a point within the allowable error range of the abscissa and ordinate to determine the matching degree between the current point cloud map and the sub-map to be detected.

[0074] It should be noted that the above current point cloud map may be a sub-map formed by the target object. That is, after each new sub-map is formed by the target object, the server may search whether there is a previously constructed sub-map corresponding to the newly formed sub-map in the historical point cloud map. The above current point cloud map may also be a point cloud map frame formed by the target object. That is, after each new point cloud map frame is obtained by the target object, the server may search whether there is a corresponding part in the sub-maps included in the historical point cloud map for this point cloud map frame.

[0075] It should be understood that when the current point cloud map is a newly formed point cloud map frame, the search frequency of the server is higher than the frequency of searching after forming a sub-map, so as to improve the matching speed between the maps. Correspondingly, matching based on the point cloud map frame can also ensure the accuracy of the matched sub-map.

[0076] In step S240, if the number of consecutive current point cloud maps with the matching degree greater than or equal to the first threshold reaches the first predetermined number, it is determined that the loop detection is successful.

[0077] Wherein, the first threshold may be numerical information for determining the lower limit of the matching degree between the matching point cloud maps. It should be understood that when the matching degree between the point cloud maps is greater than or equal to the first threshold, it means that there is a greater possibility that the two are truly matching point cloud maps. On the contrary, it means that there is a smaller possibility that the two are truly matching point cloud maps. Those skilled in the art can set the corresponding first threshold according to prior experience. For example, the first threshold may be 80%, 90% or 80, 90, etc. The above are only exemplary examples, and the present application does not make special limitations thereto.

[0078] In an exemplary embodiment of the present application, after obtaining the matching degree between the current point cloud map and the sub-map to be detected, the server may compare the matching degree with a preset first threshold. If the matching degree is greater than or equal to the first threshold, it indicates that the matching degree between the current point cloud map and the sub-map to be detected is relatively high, and the sub-map to be detected is very likely to be the truly matched point cloud map. If the matching degree is less than the first threshold, it indicates that the matching degree between the current point cloud map and the sub-map to be detected is relatively low, and the sub-map to be detected is less likely to be the truly matched point cloud map, so it can be ignored.

[0079] After the server determines that the matching degree corresponding to the current point cloud map is greater than or equal to the first threshold, it can determine whether the number of current point cloud maps with consecutive matching degrees greater than or equal to the first threshold reaches a first predetermined number according to the subsequent recognition result, so as to determine whether the loop detection is successful. For example, after the server calculates the matching degree between the point cloud map frame a and the sub-map to be detected A and determines that the matching degree is greater than or equal to the first threshold, the server can determine whether the loop detection is successful according to the matching degrees of the point cloud map frames after the point cloud map frame a.

[0080] If there are consecutive corresponding numbers of point cloud map frames with matching degrees greater than or equal to the first threshold after the point cloud map frame a, it indicates that the loop detection is successful. On the contrary, if there are no consecutive corresponding numbers of point cloud map frames with matching degrees greater than or equal to the first threshold after the point cloud map frame a, it indicates that the current point cloud map may only partially correspond to the historical point cloud map, that is, the surrounding environment is partially similar, etc., so it is determined that the loop detection is not successful.

[0081] It should be understood that if the current point cloud map is a point cloud map frame, consecutive point cloud map frames may be matched with the same sub-map or different sub-maps. If the current point cloud map is a newly formed sub-map, consecutive current point cloud maps are more likely to be matched with different sub-maps in the historical point cloud map, and in the case of a large deviation, consecutive current point cloud maps may also be matched with the same sub-map in the historical point cloud map.

[0082] It should be noted that the above first predetermined number can be preset by those skilled in the art according to prior experience. For example, the first predetermined number can be 5, 10, or 15, etc. The above are only exemplary examples, and the present application does not make special limitations in this regard. For example, if the matching degree between the point cloud map frame a and the sub-map to be detected is greater than or equal to the first threshold, and there are consecutive first predetermined numbers of point cloud map frames with matching degrees greater than or equal to the first threshold after the point cloud map frame a (including the point cloud map frame a), it is determined that the loop detection is successful.

[0083] Thus, by setting the first threshold and the first predetermined quantity, it is possible to avoid false detection caused by the fact that the current environment where the target object is located is partially similar to the previous environment, thereby improving the accuracy of loop detection.

[0084] Based on Figure 2 the embodiments shown, Figure 3 shows a Figure 2 flow schematic diagram of step S230 in the loop detection method of the point cloud map according to an embodiment of the present application. Referring to Figure 3 shown, step S230 at least includes steps S310 to S340, which are introduced in detail as follows:

[0085] In step S310, obtain the historical movement trajectory of the target object corresponding to the sub-map to be detected, and the current movement trajectory of the target object corresponding to the current point cloud map.

[0086] In an exemplary embodiment of the present application, the movement trajectory of the target object can be provided by a radar odometer configured on the target object. During the movement of the target object, the radar odometer can determine the historical movement trajectory of the target object according to the movement direction and movement length of the target object. Specifically, during the movement of the target object, the radar odometer can generate coordinate information of the target object at a predetermined time interval, so as to generate the movement trajectory of the target object according to the generated coordinate information.

[0087] In one example, the target object can upload the generated movement trajectory to the server for storage, and the server can store the historical point cloud map and the movement trajectory in correspondence according to the generation time and identification information (such as map number, etc.) of the historical point cloud map, so that the historical movement trajectory corresponding to a certain sub-map included in the historical point cloud map can be found.

[0088] In another example, the server can also send a request for obtaining the movement trajectory to the target object, and the request for obtaining can include the identification information (such as number, etc.) of the sub-map to be detected. The target object can send the historical movement trajectory corresponding to the identification information to the server according to the identification information of the sub-map to be detected. The server does not need to store the movement trajectory to save storage resources.

[0089] In step S320, according to the historical movement trajectory and the current movement trajectory, determine the trajectory similarity between the historical movement trajectory and the current movement trajectory.

[0090] Among them, the trajectory similarity can be information used to describe the difference between moving trajectories. The higher the trajectory similarity, the lower the difference between the two moving trajectories, that is, the higher the similarity of the routes and positions passed by the target object in the two moving trajectories. Conversely, the lower the trajectory similarity, the higher the difference between the two moving trajectories, that is, the lower the similarity of the routes and positions passed by the target object in the two moving trajectories.

[0091] It should be understood that if the target object passes through an area that has been mapped before, the current moving trajectory of the target object should correspond to the prior historical moving trajectory, that is, the trajectory similarity between the current moving trajectory and the historical moving trajectory should reach a certain threshold.

[0092] In an exemplary embodiment of the present application, the server can compare the coordinate information included in the current moving trajectory and the historical moving trajectory, so as to determine the trajectory similarity between the current moving trajectory and the historical moving trajectory. Specifically, the server can compare the coordinate information of the recording points included in the current moving trajectory and the coordinate information of the recording points included in the historical moving trajectory. It should be noted that the radar odometer can generate a set of coordinate information at each predetermined time interval, which is the above-mentioned recording point. Connecting multiple recording points in chronological order forms the moving trajectory of the target object.

[0093] Based on the coordinate information of the recording points included in the current moving trajectory and the coordinate information of the recording points included in the historical moving trajectory, the server can calculate the coordinate difference between the corresponding recording points, so as to determine the trajectory similarity between the current moving trajectory and the historical moving trajectory. For example, the coordinate differences between each group of corresponding recording points can be added up to obtain the total coordinate difference. The total coordinate difference is negatively correlated with the trajectory similarity, that is, the larger the total coordinate difference, the smaller the trajectory similarity, and the smaller the total coordinate difference, the larger the trajectory similarity.

[0094] In another exemplary embodiment of the present application, the server can also perform image processing on the current moving trajectory and the historical moving trajectory, that is, use image analysis technology to compare the lines formed by the current moving trajectory and the lines formed by the historical moving trajectory, and determine the graphic similarity between the two as the trajectory similarity. Those skilled in the art can use existing image analysis technologies such as the hash algorithm to determine the graphic similarity between the current moving trajectory and the historical moving trajectory. The present application does not make special limitations on this.

[0095] Please continue to refer to Figure 3 , in step S330, according to the current point cloud map and the sub-map to be detected, determine the point cloud similarity between the current point cloud map and the sub-map to be detected.

[0096] Among them, the point cloud similarity can be information used to describe the difference between the points included in two point cloud maps respectively. The greater the point cloud similarity, the lower the difference between the points included in the current point cloud map and the points included in the sub-map to be detected. Conversely, the higher the difference between the points included in the current point cloud map and the points included in the sub-map to be detected.

[0097] In an exemplary embodiment of the present application, the server can select feature points for comparison based on the coordinate information of the points included in the current point cloud map and the coordinate information of the points included in the sub-map to be detected. For example, the feature point can be the point with the smallest abscissa, the point with the smallest ordinate, etc. Thus, it is determined whether there are corresponding feature points between the current point cloud map and the sub-map to be detected. Among them, "corresponding" can be points with the same coordinate information or points within a certain allowable error range. For example, if the allowable error range is ±1, then if the coordinate information of a certain point in the current point cloud map is (x, y), and if there is a point within the range of (x±1, y±1) in the sub-map to be detected, it means that the two points correspond.

[0098] Those skilled in the art can preset the corresponding allowable error range according to the actual needs, so as to improve the matching success rate between the current point cloud map and the sub-map to be detected while ensuring the accuracy of the matching degree.

[0099] In another exemplary embodiment of the present application, the server can also determine the planes, edges, or angles formed by the points in the current point cloud map based on the coordinate information of the points included in the current point cloud map and the coordinate information of the points included in the sub-map to be detected, and detect whether there are corresponding planes, edges, or angles in the sub-map to be detected, thereby determining the point cloud similarity between the current point cloud map and the sub-map to be detected.

[0100] In step S340, according to the trajectory similarity and the point cloud similarity, determine the matching degree between the current point cloud map and the sub-map to be detected.

[0101] In an exemplary embodiment of the present application, those skilled in the art can preset the weights corresponding to the trajectory similarity and the point cloud similarity respectively. It should be understood that the weights corresponding to the two can be the same (for example, both are 0.5), or different (for example, the weight corresponding to the point cloud similarity is 0.7, and the weight corresponding to the trajectory similarity is 0.3, etc.). The server can perform weighted sum processing on the calculated trajectory similarity and point cloud similarity according to the corresponding weights of the two, so as to obtain the matching degree between the current point cloud map and the sub-map to be detected.

[0102] In another exemplary embodiment of the present application, the server can also directly add the calculated point cloud similarity and the trajectory similarity to obtain the matching degree between the current point cloud map and the sub-map to be detected.

[0103] Thus, in Figure 3 the illustrated embodiment, by calculating the trajectory similarity and the point cloud similarity, and comprehensively considering the differences between the movement trajectories of the target objects and the differences between the point cloud maps, the accuracy of calculating the matching degree can be ensured.

[0104] Based on Figure 2 and Figure 3 the illustrated embodiments, Figure 4 shows a schematic flowchart of step S320 in the loop detection method of the point cloud map according to an embodiment of the present application. Please refer to Figure 3 In Figure 4 , the historical movement trajectory and the current movement trajectory include the coordinate information and the rotation angle of the target object. Step S320 includes at least step S410 to step S430, which are introduced in detail as follows:

[0105] In step S410, according to the coordinate information included in the historical movement trajectory and the coordinate information included in the current movement trajectory, determine the linear movement amount difference between the historical movement trajectory and the current movement trajectory.

[0106] Among them, the linear movement amount can be the distance that the target object moves in the movement trajectory. In one example, the server can calculate the distance between adjacent two recorded points according to the coordinate information of the recorded points included in the movement trajectory, and add the distances between each adjacent two recorded points to obtain the distance that the target object moves in the movement trajectory.

[0107] In an exemplary embodiment of the present application, the server can calculate the distances that the target object moves in the historical movement trajectory and the current movement trajectory respectively according to the coordinate information included in the historical movement trajectory and the coordinate information included in the current movement trajectory, and subtract the two to obtain the linear movement amount difference between the historical movement trajectory and the current movement trajectory.

[0108] In step S420, according to the rotation angle included in the historical movement trajectory and the rotation angle included in the current movement trajectory, determine the rotation angle difference between the historical movement trajectory and the current movement trajectory.

[0109] Among them, the rotation angle can be the included angle between the orientation of the target object and a predetermined direction. For example, the predetermined direction can be the positive direction of the X-axis in the coordinate system, etc. It should be understood that during the movement of the target object, not only the length of the moving distance changes, but also its orientation changes. Therefore, when determining the trajectory similarity between two moving trajectories, the changes in both the moving distance and the rotation angle should be considered simultaneously to ensure the accuracy of the trajectory similarity.

[0110] In an exemplary embodiment of the present application, when the radar odometer generates the coordinate information of the recording point, it can correspondingly generate the current rotation angle of the target object. For example, the information generated by the radar odometer can be (x, y, ξ), where x and y respectively represent the horizontal and vertical coordinate values of the target object, and ξ represents the rotation angle of the target object.

[0111] The server can calculate the total rotation angle corresponding to the current moving trajectory and the total rotation angle corresponding to the historical moving trajectory respectively according to the rotation angles included in each recording point in the current moving trajectory and the historical moving trajectory, and subtract the two total rotation angles to obtain the rotation angle difference between the historical moving trajectory and the current moving trajectory.

[0112] In step S430, according to the linear motion amount difference and the rotation angle difference, determine the trajectory similarity between the historical moving trajectory and the current moving trajectory.

[0113] In an exemplary embodiment of the present application, the linear motion amount difference, the rotation angle difference and the trajectory similarity are negatively correlated, that is, the larger the linear motion amount difference and the rotation angle difference are, the smaller the corresponding trajectory similarity is, and vice versa, the larger the corresponding trajectory similarity is. The server can calculate the trajectory similarity between the historical moving trajectory and the current moving trajectory according to the calculated linear motion amount difference and rotation angle difference according to a predetermined calculation formula.

[0114] In Figure 4 In the shown embodiment, when calculating the trajectory similarity between the historical moving trajectory and the current moving trajectory, the linear motion amount difference and the rotation angle difference of the target object are considered in combination, thus ensuring the accuracy of the calculated trajectory similarity.

[0115] Based on Figure 3 the shown embodiment, Figure 5 shows the flow schematic diagram of step S320 in the loop detection method of the point cloud map of another embodiment of the present application. Referring to Figure 3 shown, step S320 at least includes steps S510 to S520, which are introduced in detail as follows: Figure 5 shown, step S320 at least includes steps S510 to S520, which are introduced in detail as follows:

[0116] In step S510, obtain the historical positioning information of the target object corresponding to the sub-map to be detected, and the current positioning information of the target object corresponding to the current point cloud map.

[0117] Among them, the positioning information can be generated by a positioning system such as the Global Positioning System (GPS) or the Beidou satellite navigation system. A corresponding positioning device can be configured on the target object, and the positioning device can generate coordinate information of the position where the target object is located at a predetermined interval.

[0118] In an exemplary embodiment of the present application, the server can obtain the historical positioning information of the target object corresponding to the sub-map to be detected and the current positioning information corresponding to the current point cloud map. The historical positioning information and the current positioning information include the coordinate information of the recorded points during the movement of the target object, so that the corresponding movement trajectory can be generated according to the coordinate information subsequently.

[0119] In step S520, determine the historical movement trajectory of the target object according to the historical positioning information, and determine the current movement trajectory of the target object according to the current positioning information.

[0120] In an exemplary embodiment of the present application, the server can arrange and connect the current positioning information and the historical positioning information in chronological order according to the current positioning information of the target object corresponding to the current point cloud map and the historical positioning information corresponding to the historical point cloud map, so as to obtain the corresponding current movement trajectory and historical movement trajectory.

[0121] In Figure 5 the shown embodiment, by obtaining the positioning information generated by the positioning system for the target object, the accuracy of the determined movement trajectory can be guaranteed, and thus the accuracy of the subsequent trajectory similarity calculation is guaranteed.

[0122] Based on Figure 2 and Figure 3 the shown embodiments, Figure 6 shows a Figure 3 flow schematic diagram of step S330 in the loop detection method of the point cloud map according to an embodiment of the present application. Referring to Figure 6 shown, step S330 at least includes steps S610 to S620, which are introduced in detail as follows:

[0123] In step S610, according to the coordinate information of the points included in the current point cloud map and the coordinate information of the points included in the sub-map to be detected, identify the points with corresponding coordinate information in the current point cloud map and the sub-map to be detected as matching points.

[0124] In an exemplary embodiment of the present application, the server may compare the coordinate information of the points included in the current point cloud map with the coordinate information of the points included in the sub-map to be detected one by one according to the coordinate information of the points included in the current point cloud map and the coordinate information of the points included in the sub-map to be detected. If there is a point in the points included in the sub-map to be detected that corresponds to the coordinate information of the point included in the current point cloud map, that is, the coordinate information is the same or within the allowable error range, then the point is identified as a matching point.

[0125] In step S620, according to the number of the matching points and the number of the points included in the current point cloud map, determine the point cloud similarity between the current point cloud map and the sub-map to be detected.

[0126] In an exemplary embodiment of the present application, after determining the matching points, the server may divide the number of the matching points by the number of the points included in the current point cloud map to obtain the proportion of the matching points in the number of the points included in the current point cloud map, and use this proportion as the point cloud similarity between the current point cloud map and the sub-map to be detected.

[0127] In Figure 6 In the shown embodiment, by calculating the matching points between the points included in the current point cloud map and the points included in the sub-map to be detected, the point cloud similarity is determined according to the number of the matching points and the number of the points included in the current point cloud map. Calculating the point cloud similarity according to the correspondence between the points included in the current point cloud map and the points included in the sub-map to be detected can ensure the accuracy of the point cloud similarity calculation.

[0128] Based on Figure 2 the shown embodiment, Figure 7 shows the flowchart of step S240 in the loop detection method of the point cloud map according to an embodiment of the present application. Referring to Figure 2 shown, step S240 at least includes step S710 to step S720, which are introduced in detail as follows: Figure 7 shown, step S240 at least includes step S710 to step S720, which are introduced in detail as follows:

[0129] In step S710, arrange the current point cloud maps with a matching degree greater than or equal to the first threshold in descending order of the matching degree, and identify the current point cloud maps arranged before the second predetermined number as the point cloud maps to be matched.

[0130] In an exemplary embodiment of the present application, after calculating the matching degree each time, the server may, according to the previous matching degree calculation result, arrange the current point cloud maps with a matching degree greater than or equal to the first threshold in descending order of the matching degree, and identify the current point cloud maps ranked before the second predetermined number as the point cloud maps to be matched. For example, if the second predetermined number is 5, then the current point cloud maps ranked from the first to the fifth are selected as the point cloud maps to be matched, and so on. It should be understood that the current point cloud maps ranked before the second predetermined number are the current point cloud maps with the largest matching degree, and are also the most likely point cloud maps to be truly matched with the historical point cloud map.

[0131] In another exemplary embodiment of the present application, the server may also, after not finding the sub-map to be detected, according to the previous matching degree calculation result, arrange the current point cloud maps with a matching degree greater than or equal to the first threshold in descending order, and identify the current point cloud maps ranked before the second predetermined number as the point cloud maps to be matched.

[0132] In step S720, if, after the point cloud map to be matched, the number of consecutive current point cloud maps with a matching degree greater than or equal to the first threshold reaches the first predetermined number, it is determined that the loop detection of the point cloud map to be matched is successful.

[0133] In an exemplary embodiment of the present application, after the server determines the point cloud map to be matched, it may, according to the matching degree calculation result after the point cloud map to be matched, determine whether there is a number of consecutive current point cloud maps with a matching degree greater than or equal to the first threshold reaching the first predetermined number, so as to determine whether the loop detection of the point cloud map to be matched is successful. It should be understood that if the point cloud map to be matched is a point cloud map that is truly matched with the historical point cloud map, then its matching result should last for a period of time, that is, after the point cloud map to be matched, there should be a first predetermined number of consecutive current point cloud maps with a matching degree greater than or equal to the first threshold.

[0134] Thus, in Figure 7 the embodiment shown, according to the matching degree calculation result, the current point cloud maps are arranged in descending order of the matching degree, and the current point cloud maps ranked before the second predetermined number are selected as the point cloud maps to be matched. And it is detected whether there is a first predetermined number of consecutive current point cloud maps with a matching degree greater than or equal to the first threshold after the point cloud map to be matched, so as to determine whether the loop detection of the point cloud map to be matched is successful. Thus, using whether the matching result of the point cloud map to be matched can last for a certain period of time as the criterion for determining whether the loop detection is successful can ensure the accuracy of the loop detection result and avoid false detection due to partial similarity of the environment where the target object is located.

[0135] Based on Figure 2 andFigure 7 The illustrated embodiment Figure 8 shows a Figure 7 flow schematic diagram of step S720 in the loop detection method of the point cloud map according to an embodiment of the present application. Refer to Figure 8 As shown, step S720 at least includes steps S810 to S840, which are introduced in detail as follows:

[0136] In step S810, according to the to-be-matched point cloud map and the to-be-detected sub-map corresponding thereto, the matching position between the to-be-matched point cloud map and the to-be-detected sub-map is determined.

[0137] In an exemplary embodiment of the present application, the server may adopt a branch and bound algorithm to calculate the matching position between the to-be-matched point cloud map and the to-be-detected sub-map. It should be understood that during the movement of the target object, due to a certain error between the current movement trajectory of the target object and the previous historical movement trajectory, there is also a certain error between the coordinate information of the established point cloud map and the previously constructed historical point cloud map. Therefore, the server can adopt a branch and bound algorithm to calculate the best matching position between the to-be-matched point cloud map and the to-be-detected sub-map according to the to-be-matched point cloud map and the to-be-detected sub-map, so that the to-be-matched point cloud map and the to-be-detected sub-map can be better connected, avoiding seams or ghosts.

[0138] According to this best matching position, the server can determine how to adjust the to-be-matched point cloud map so that the to-be-matched point cloud map and the to-be-detected map can be better connected. In one example, the adjustment of the to-be-matched point cloud map may be a horizontal translation and / or a vertical translation of the to-be-matched point cloud map.

[0139] In step S820, according to the matching position, the current movement trajectory of the target object corresponding to the to-be-matched point cloud map is corrected.

[0140] In an exemplary embodiment of the present application, it should be understood that according to this best matching position, if the to-be-matched point cloud map needs to be horizontally translated and / or vertically translated, then correspondingly, the current movement trajectory corresponding to the to-be-matched point cloud map also needs to be adjusted, so that the current movement trajectory can match the adjusted to-be-matched point cloud map. For example, if the to-be-matched point cloud map needs to be translated 5 unit lengths in the positive direction of the X axis, then the coordinate information included in the current movement trajectory also corresponds to a translation of 5 unit lengths in the positive direction of the X axis (that is, the x coordinate value of each recording point is increased by 5), etc. The corrected current movement trajectory is closer to the real movement trajectory of the target object and has a smaller deviation.

[0141] In step S830, according to the historical movement trajectory of the target object corresponding to the sub-map to be detected and the corrected current movement trajectory, the trajectory similarity between the historical movement trajectory and the corrected current movement trajectory is determined.

[0142] In an exemplary embodiment of the present application, the deviation of the corrected current movement trajectory is smaller than that of the current movement trajectory before correction. Therefore, calculating the trajectory similarity between the historical movement trajectory and the corrected current movement trajectory, the reliability of this trajectory similarity is higher. Among them, the method for calculating the trajectory similarity can refer to the above description, and is calculated according to the coordinate information included in the historical movement trajectory and the coordinate information included in the corrected current movement trajectory, which will not be elaborated here.

[0143] In step S840, if after the point cloud map to be matched, the number of consecutive current point cloud maps with a matching degree greater than or equal to the first threshold reaches a first predetermined number, and the trajectory similarity is greater than or equal to the second threshold, it is determined that the loop detection of the point cloud map to be matched is successful.

[0144] In an exemplary embodiment of the present application, in order to ensure the accuracy of the loop detection result, not only the matching result of the point cloud map to be matched needs to be maintained for a period of time, but also the trajectory similarity between the current movement trajectory of the target object and the historical movement trajectory needs to reach a certain threshold, that is, greater than or equal to the second threshold. Among them, the second threshold can be set by those skilled in the art according to prior experience. It should be understood that when the trajectory similarity is greater than or equal to the second threshold, it can be considered that the two movement trajectories are the same.

[0145] Thus, by considering whether the matching result corresponding to the point cloud map to be matched can be maintained for a period of time and whether the current movement trajectory of the target object is consistent with the historical movement trajectory, the success of the loop detection is determined, ensuring the accuracy of the loop detection result.

[0146] Based on Figure 2 the embodiments shown, in an exemplary embodiment of the present application, after identifying the sub-map as the sub-map to be detected according to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the position information of the sub-map to be detected, the method further includes:

[0147] If there is at least one sub-map within the search range of the position information of the sub-map to be detected, the sub-map is identified as the sub-map to be detected.

[0148] In this embodiment, after the server searches within the search range centered on the current position information of the target object, if there is at least one sub-map included in the historical point cloud map within this search range, the sub-map is identified as the sub-map to be detected. Considering the possible deviation of the target object during movement, the server can continue to search within the search range of the determined sub-map to be detected to determine whether there are other sub-maps. If so, the sub-map is also identified as the sub-map to be detected for subsequent identification. For example, if the search radius is 15m, the server can identify the sub-maps existing within the range of a radius of 15m centered on the current position information of the target object as the sub-maps to be detected. At the same time, the server can also identify the sub-maps existing within the range of a radius of 15m centered on the central position of each sub-map to be detected, etc.

[0149] It should be noted that those skilled in the art can preset the number of searches according to prior experience. For example, perform a secondary search or a tertiary search, etc. Among them, the secondary search can be a first search centered on the current position information of the target object, and a second search centered on the sub-map to be detected generated by the result of the first search. The tertiary search and so on can be inferred by analogy. Thus, by reasonably planning the number of searches, the comprehensiveness of the search can be ensured, and at the same time, excessive searches can be avoided, resulting in the generation of many unnecessary sub-maps to be detected.

[0150] Thus, by searching within the search range of the sub-map to be detected to determine whether there are new sub-maps to be detected, the search range can be expanded to improve the matching success rate of the point cloud map, and at the same time, blindly expanding the search range can be avoided, resulting in the generation of many unnecessary sub-maps to be detected.

[0151] Based on Figure 2 the embodiment shown, Figure 9 FIG. shows a schematic flowchart of the process of reducing the matching degree in the loop detection method of the point cloud map according to an embodiment of the present application. Referring to Figure 9 shown, the process of reducing the matching degree includes at least steps S910 to S930, which are introduced in detail as follows:

[0152] In step S910, according to the current point cloud map and the sub-map to be detected corresponding thereto, determine the matching position between the current point cloud map and the sub-map to be detected.

[0153] In an exemplary embodiment of the present application, after the server calculates the matching degree between the current point cloud map and the sub-map to be detected each time, it can use the branch and bound algorithm to calculate the matching position between the current point cloud map and the sub-map to be detected. In one example, the matching position can be represented by the coordinate information of the center point of the adjusted current point cloud map; in another example, the matching position can also be represented by the position information connecting the adjusted current point cloud map and the sub-map to be detected.

[0154] In step S920, according to the matching position corresponding to the current point cloud map and the matching position corresponding to the point cloud map whose previous matching degree is greater than or equal to the first threshold, the distance between the two is determined.

[0155] In an exemplary embodiment of the present application, since the server calculates the matching position between the current point cloud map and its corresponding sub-map to be detected after calculating the matching degree between the current point cloud map and the map to be detected, the server can obtain the calculation result of the matching position from its own storage location, and compare the matching position corresponding to the current point cloud map with the matching position corresponding to the point cloud map whose previous matching degree is greater than or equal to the first threshold, so as to obtain the distance between the two matching positions.

[0156] It should be understood that if the current point cloud map is a truly matched point cloud map, the matching results should be continuous. Not only should the matching degree be continuously greater than or equal to the first threshold, but also the matching positions of the point cloud maps should be continuous. If the distance between the matching positions of two adjacent point cloud maps whose matching degrees are greater than or equal to the first threshold is far, it means that the two point cloud maps are not continuous and there is a gap. Therefore, a penalty should be imposed on the matching degree corresponding to the subsequent current point cloud map to ensure the accuracy of the matching degree.

[0157] In step S930, according to the distance, a penalty is imposed on the matching degree corresponding to the current point cloud map.

[0158] In an exemplary embodiment of the present application, those skilled in the art can preset a penalty strategy. It should be understood that the farther the distance between the two matching positions, the higher the score to be deducted; conversely, the closer the distance between the two matching positions, the lower the score to be deducted.

[0159] Those skilled in the art can preset a penalty ratio. For example, for every full predetermined length of the distance between two matching positions, a penalty of 5 is imposed on the matching degree corresponding to the subsequent current point cloud map. If the predetermined length is 5 meters and the distance between the two matching positions is 10 meters, then the matching degree corresponding to the subsequent current point cloud map should be reduced by 10 (i.e., 10 / 5*5), and so on.

[0160] Thus, in Figure 9 In the illustrated embodiment, by determining the distance between two matching positions based on the matching position corresponding to the current point cloud map and the matching position corresponding to the previous point cloud map with a matching degree greater than or equal to the first threshold, and reducing the matching degree corresponding to the subsequent current point cloud map according to this distance, the matching degree corresponding to the current point cloud map can be corrected, thereby ensuring the accuracy of the matching degree.

[0161] Based on Figure 2 the illustrated embodiment, Figure 10 shows a schematic flowchart of determining a search range further included in the loop closure detection method of the point cloud map according to an embodiment of the present application. Referring to Figure 10 as shown, determining the search range includes at least steps S1010 to S1020, which are introduced in detail as follows:

[0162] In step S1010, according to the moving distance of the target object between the sub-maps and a preset error ratio, determine the travel error of the target object between the sub-maps.

[0163] Among them, the error ratio can be pre-set by those skilled in the art in advance, and is ratio information used to determine the error generated by the target object during movement. According to this error ratio and the moving distance of the target object, the server can determine the travel error generated by the target object during this moving distance. For example, the error ratio is 5%. If the moving distance of the target object is 100 meters, the travel error generated during this moving distance is 5 meters (i.e., 100 * 5%), and so on.

[0164] In an exemplary embodiment of the present application, the server can calculate the possible error of the target object between two adjacent sub-maps in the historical point cloud map according to the moving distance and the error ratio of the target object between two adjacent sub-maps. For example, the error ratio is 5%. The historical point cloud map contains three sub-maps, namely sub-map A, sub-map B, and sub-map C. Among them, the moving distance between sub-map A and sub-map B is 50 meters, and the moving distance between sub-map B and sub-map C is 50 meters. Then the server can calculate that the travel error of the target object corresponding to sub-map A and sub-map B is 50 * 5% = 2.5 meters, and the travel error of the target object corresponding to sub-map B and sub-map C is 50 * 5% = 2.5 meters, and so on.

[0165] In step S1020, determine the search range according to the travel error of the target object between the sub-maps.

[0166] In an exemplary embodiment of the present application, when the server performs a search based on the current location information of the target object, it may determine its search range according to the moving distance of the target object before the current location information. For example, as Figure 11a shown, the target object has successively established sub-map A, sub-map B, sub-map C, and sub-map D. When the target object is in sub-map B, its search range may be the travel error d1 between the target object corresponding to sub-map A and sub-map B. If the target object is in sub-map C, its search range may be the sum of the travel error d1 between the target object in sub-map A and sub-map B and the travel error d2 between the target object in sub-map B and sub-map C, that is, d1 + d2. And so on. Then the search range of the target object in sub-map C may be d1 + d2 + d3, where d3 is the travel error between the target object in sub-map B and sub-map C, and so on.

[0167] Thus, according to the prior driving distance of the target object, its search range is determined, so that the search range combines the possible travel errors during the driving process of the target object, and further makes the search range match the moving distance of the target object, ensuring the rationality of the determination of the search range and reducing the false detection rate of the sub-map to be detected.

[0168] Based on Figure 2 and Figure 10 the embodiments shown, in an exemplary embodiment of the present application, after determining the success of loop detection, it further includes:

[0169] Clearing the travel error before the current point cloud map where the loop detection is successful, and updating the search range.

[0170] In this embodiment, after determining the success of loop detection, the server may use the branch and bound algorithm to optimize the previously established point cloud maps, so that the previously established point cloud maps can be better connected. Thus, the travel errors generated during the movement of the target object can be eliminated. Therefore, the server can clear the travel error before the current point cloud map where the loop detection is successful and update the search range.

[0171] For example, as Figure 11bAs shown, the target object successively establishes sub-map A, sub-map B, sub-map C, sub-map D, and sub-map E. If the loop detection is successful when the target object is in sub-map D, then when the target object is in sub-map E, the search range is the travel error d4 between sub-map D and sub-map E corresponding to the target object, without considering the previous travel errors. Thus, by updating the search range in real time according to the loop detection result, it can ensure that the search range matches the loop detection result, reduce the occurrence of false detections, not only ensure the accuracy of subsequent loop detection results, but also avoid misidentifying the sub-map to be detected, improving the processing efficiency.

[0172] Based on the technical solution of the above embodiment, the following introduces a specific application scenario of the embodiment of the present application:

[0173] Figure 12 The flowchart of the loop detection method for the point cloud map according to an embodiment of the present application is shown.

[0174] Refer to Figure 12 As shown, the loop detection method for the point cloud map includes an input 1210, an algorithm 1220, and an output 1230. Among them, the input 1210 may include the current point cloud map established by the target object (taking the detection vehicle as an example), the vehicle movement trajectory (including the current movement trajectory and the historical movement trajectory), and the historical point cloud map (including at least one sub-map).

[0175] In the algorithm 1220, the server can determine the search range according to the travel error of the target object. If the sub-map included in the historical point cloud map is within the search range of the current position information of the target object, the sub-map is identified as the sub-map to be detected. The server can calculate the matching degree between the sub-map to be detected and the current point cloud map, and use the branch and bound algorithm to determine the matching position between the current point cloud map and the sub-map to be detected to obtain the matching result, which may include the matching position and the matching degree. For example, the matching result may be (h, p), where h is the matching position and p is the matching degree.

[0176] The server can store the matching results obtained historically as a hypothesis respectively, and during the movement of the target object, multiple hypotheses may be generated. In the output 1230, the server can determine the loop detection based on the multiple hypotheses generated previously, and determine whether the matching result can last for a certain period of time, so as to determine whether the loop detection is successful. For example, it is determined whether the loop detection is successful according to whether there are a predetermined number of consecutive hypotheses with a matching degree greater than or equal to the first threshold, and the loop detection result is output accordingly.

[0177] Thus, by reasonably defining the search range and using whether the matching result can last for a certain period of time as the judgment basis for the loop detection result, the matching success rate of the point cloud map can be guaranteed, and at the same time, the false detection rate of the point cloud map can be reduced, ensuring the accuracy of the loop detection result.

[0178] Figure 13 FIG. shows an output schematic diagram of the loop detection result of the point cloud map according to an embodiment of the present application. As Figure 13 shown, even when mapping is performed in a large range, there are no obvious seams or ghosts, meeting the requirements for constructing the point cloud map.

[0179] The following introduces the device embodiments of the present application, which can be used to execute the loop detection method of the point cloud map in the above embodiments of the present application. For the details not disclosed in the device embodiments of the present application, please refer to the embodiments of the loop detection method of the point cloud map above.

[0180] Figure 13 FIG. shows a block diagram of the loop detection device of the point cloud map according to an embodiment of the present application.

[0181] Referring to Figure 13 shown, the loop detection device of the point cloud map according to an embodiment of the present application includes:

[0182] An acquisition module 1310, configured to acquire a historical point cloud map constructed by a target object, where the historical point cloud map includes at least one sub-map;

[0183] A search module 1320, configured to, according to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the current position information, identify the sub-map as a sub-map to be detected;

[0184] A determination module 1330, configured to determine the matching degree between the current point cloud map and the sub-map to be detected according to the current point cloud map of the target object and the sub-map to be detected;

[0185] A processing module 1340, configured to determine that the loop detection is successful if the number of consecutive current point cloud maps with the matching degree greater than or equal to a first threshold reaches a first predetermined number.

[0186] In some embodiments of the present application, based on the foregoing solution, the determination module 1330 is configured to: obtain the historical movement trajectory of the target object corresponding to the sub-map to be detected, and the current movement trajectory of the target object corresponding to the current point cloud map; determine the trajectory similarity between the historical movement trajectory and the current movement trajectory according to the historical movement trajectory and the current movement trajectory; determine the point cloud similarity between the current point cloud map and the sub-map to be detected according to the current point cloud map and the sub-map to be detected; and determine the matching degree between the current point cloud map and the sub-map to be detected according to the trajectory similarity and the point cloud similarity.

[0187] In some embodiments of the present application, based on the foregoing solution, the historical movement trajectory and the current movement trajectory include the coordinate information and rotation angle of the target object; the determination module 1330 is configured to: determine the linear movement amount difference between the historical movement trajectory and the current movement trajectory according to the coordinate information included in the historical movement trajectory and the coordinate information included in the current movement trajectory; determine the rotation angle difference between the historical movement trajectory and the current movement trajectory according to the rotation angle included in the historical movement trajectory and the rotation angle included in the current movement trajectory; and determine the trajectory similarity between the historical movement trajectory and the current movement trajectory according to the linear movement amount difference and the rotation angle difference.

[0188] In some embodiments of the present application, based on the foregoing solution, the determination module 1330 is configured to: obtain the historical positioning information of the target object corresponding to the sub-map to be detected, and the current positioning information of the target object corresponding to the current point cloud map; determine the historical movement trajectory of the target object according to the historical positioning information, and determine the current movement trajectory of the target object according to the current positioning information.

[0189] In some embodiments of the present application, based on the foregoing solution, the determination module 1330 is configured to: identify the points with corresponding coordinate information in the current point cloud map and the sub-map to be detected as matching points according to the coordinate information of the points included in the current point cloud map and the coordinate information of the points included in the sub-map to be detected; and determine the point cloud similarity between the current point cloud map and the sub-map to be detected according to the number of the matching points and the number of the points included in the current point cloud map.

[0190] In some embodiments of the present application, based on the foregoing solution, the processing module 1340 is configured to: arrange the current point cloud maps with the matching degree greater than or equal to the first threshold in descending order of the matching degree, and identify the current point cloud maps arranged before the second predetermined number as the point cloud maps to be matched; if after the point cloud maps to be matched, the number of consecutive current point cloud maps with the matching degree greater than or equal to the first threshold reaches the first predetermined number, determine that the loop detection of the point cloud maps to be matched is successful.

[0191] In some embodiments of the present application, based on the foregoing solution, the processing module 1340 is configured to: determine the matching position between the point cloud map to be matched and the sub-map to be detected according to the point cloud map to be matched and the corresponding sub-map to be detected; correct the current movement trajectory of the target object corresponding to the point cloud map to be matched according to the matching position; determine the trajectory similarity between the historical movement trajectory of the target object corresponding to the sub-map to be detected and the corrected current movement trajectory according to the historical movement trajectory of the target object corresponding to the sub-map to be detected and the corrected current movement trajectory; if after the point cloud map to be matched, the number of consecutive current point cloud maps with the matching degree greater than or equal to the first threshold reaches the first predetermined number, and the trajectory similarity is greater than or equal to the second threshold, determine that the loop detection of the point cloud map to be matched is successful.

[0192] In some embodiments of the present application, based on the foregoing solution, the search module 1320 is further configured to: if there is at least one sub-map within the search range of the position information of the sub-map to be detected, identify the sub-map as the sub-map to be detected.

[0193] In some embodiments of the present application, based on the foregoing solution, the determination module 1330 is further configured to: determine the matching position between the current point cloud map and the sub-map to be detected according to the current point cloud map and the corresponding sub-map to be detected; determine the distance between the two according to the matching position corresponding to the current point cloud map and the matching position corresponding to the previous point cloud map with the matching degree greater than or equal to the first threshold; perform a point deduction process on the matching degree corresponding to the current point cloud map according to the distance.

[0194] In some embodiments of the present application, based on the foregoing solution, the search module 1320 is further configured to: determine the travel error of the target object between the sub-maps according to the moving distance of the target object between the sub-maps and a preset error ratio; determine the search range according to the travel error of the target object between the sub-maps.

[0195] In some embodiments of the present application, based on the foregoing solution, the search module 1320 is further configured to: clear the travel error before the current point cloud map where the loop detection is successful, and update the search range.

[0196] Figure 14 FIG. shows a schematic structural diagram of a computer system of an electronic device suitable for implementing the embodiments of the present application.

[0197] It should be noted that Figure 14 the computer system of the electronic device shown is only an example and should not impose any limitations on the functions and usage scope of the embodiments of the present application.

[0198] As Figure 14 shown, the computer system includes a central processing unit (CPU) 1401, which can perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 1402 or the program loaded from the storage section 1408 into the random access memory (RAM) 1403, such as executing the method described in the above embodiments. In the RAM 1403, various programs and data required for system operation are also stored. The CPU 1401, ROM 1402, and RAM 1403 are connected to each other via a bus 1404. The input / output (I / O) interface 1405 is also connected to the bus 1404.

[0199] The following components are connected to the I / O interface 1405: an input section 1406 including a keyboard, a mouse, etc.; an output section 1407 including, for example, a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 1408 including a hard disk, etc.; and a communication section 1409 including a network interface card such as a LAN (Local Area Network) card, a modem, etc. The communication section 1409 performs communication processing via a network such as the Internet. A drive 1410 is also connected to the I / O interface 1405 as needed. A removable medium 1411, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 1410 as needed so that the computer program read from it can be installed into the storage section 1408 as needed.

[0200] In particular, according to an embodiment of the present application, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present application includes a computer program product that includes a computer program carried on a computer-readable medium, and the computer program includes a computer program for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network through the communication part 1409 and / or installed from the removable medium 1411. When the computer program is executed by the central processing unit (CPU) 1401, various functions defined in the system of the present application are executed.

[0201] It should be noted that the computer-readable medium shown in the embodiments of the present application can be a computer-readable signal medium or a computer-readable storage medium or any combination of the two. The computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples of the computer-readable storage medium can include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, the computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In the present application, the computer-readable signal medium can include a data signal propagated in a baseband or as part of a carrier wave, which carries a computer-readable computer program. Such a propagated data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer-readable signal medium can also be any computer-readable medium other than the computer-readable storage medium, which can send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device. The computer program included on the computer-readable medium can be transmitted by any suitable medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.

[0202] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present application. Among them, each block in the flowchart or block diagram may represent a module, a program segment, or a part of code, and the above-mentioned module, program segment, or part of code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than that marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram or flowchart, as well as the combination of blocks in the block diagram or flowchart, can be implemented by a dedicated hardware-based system that performs the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.

[0203] The units involved in the embodiments described in the present application can be implemented in software or in hardware, and the described units can also be provided in a processor. Among them, the names of these units do not constitute a limitation on the units themselves in some cases.

[0204] As another aspect, the present application also provides a computer-readable medium, which may be included in the electronic device described in the above embodiments; or may exist separately without being assembled into the electronic device. The above computer-readable medium carries one or more programs, and when the above one or more programs are executed by an electronic device, the electronic device is caused to implement the methods described in the above embodiments.

[0205] It should be noted that although several modules or units of devices for action execution are mentioned in the above detailed description, such a division is not mandatory. In fact, according to the embodiments of the present application, the features and functions of the two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.

[0206] Through the description of the above embodiments, those skilled in the art can easily understand that the example embodiments described herein can be implemented by software or by a combination of software and necessary hardware. Therefore, the technical solutions according to the embodiments of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, a server, a touch terminal, or a network device, etc.) to execute the methods according to the embodiments of the present application.

[0207] Other embodiments of the present application will be readily contemplated by those skilled in the art after considering the specification and practicing the embodiments disclosed herein. The present application is intended to cover any variations, uses, or adaptations of the present application, which follow the general principles of the present application and include known common knowledge or conventional technical means in the technical field not disclosed in the present application.

[0208] It should be understood that the present application is not limited to the exact structures described above and shown in the drawings, and various modifications and changes can be made without departing from its scope. The scope of the present application is only limited by the appended claims.

Claims

1. A loop detection method for a point cloud map, characterized in that Including: Obtain a historical point cloud map constructed by a target object, where the historical point cloud map includes at least one sub-map; According to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the current position information, identify the sub-map as a sub-map to be detected; Determine the matching degree between the current point cloud map and the sub-map to be detected according to the current point cloud map of the target object and the sub-map to be detected; Arrange the current point cloud maps with the matching degree greater than or equal to the first threshold in descending order of the matching degree, and identify the current point cloud maps arranged before the second predetermined number as point cloud maps to be matched; Determine the matching position between the point cloud map to be matched and the sub-map to be detected according to the point cloud map to be matched and the corresponding sub-map to be detected; Correct the current movement trajectory of the target object corresponding to the point cloud map to be matched according to the matching position; Determine the trajectory similarity between the historical movement trajectory and the corrected current movement trajectory according to the historical movement trajectory of the target object corresponding to the sub-map to be detected and the corrected current movement trajectory; If, after the point cloud map to be matched, the number of consecutive current point cloud maps with the matching degree greater than or equal to the first threshold reaches the first predetermined number, and the trajectory similarity is greater than or equal to the second threshold, determine that the loop detection of the point cloud map to be matched is successful.

2. The method according to claim 1, wherein The determining the matching degree between the current point cloud map and the sub-map to be detected according to the current point cloud map of the target object and the sub-map to be detected includes: Obtain the historical movement trajectory of the target object corresponding to the sub-map to be detected and the current movement trajectory of the target object corresponding to the current point cloud map; Determine the trajectory similarity between the historical movement trajectory and the current movement trajectory according to the historical movement trajectory and the current movement trajectory; Determine the point cloud similarity between the current point cloud map and the sub-map to be detected according to the current point cloud map and the sub-map to be detected; Determine the matching degree between the current point cloud map and the sub-map to be detected according to the trajectory similarity and the point cloud similarity.

3. The method according to claim 2, characterized in that, The historical movement trajectory and the current movement trajectory include the coordinate information and rotation angle of the target object; The determining the trajectory similarity between the historical movement trajectory and the current movement trajectory according to the historical movement trajectory and the current movement trajectory includes: Determine the linear movement amount difference between the historical movement trajectory and the current movement trajectory according to the coordinate information included in the historical movement trajectory and the coordinate information included in the current movement trajectory; Determine the rotation angle difference between the historical movement trajectory and the current movement trajectory according to the rotation angle included in the historical movement trajectory and the rotation angle included in the current movement trajectory; Determine the trajectory similarity between the historical movement trajectory and the current movement trajectory according to the linear movement amount difference and the rotation angle difference.

4. The method according to claim 2, characterized in that, The obtaining of the historical movement trajectory of the target object corresponding to the sub-map to be detected and the current movement trajectory of the target object corresponding to the current point cloud map includes: Obtain the historical positioning information of the target object corresponding to the sub-map to be detected and the current positioning information of the target object corresponding to the current point cloud map; Determine the historical movement trajectory of the target object according to the historical positioning information, and determine the current movement trajectory of the target object according to the current positioning information.

5. The method according to claim 2, wherein The determining of the point cloud similarity between the current point cloud map and the sub-map to be detected according to the current point cloud map and the sub-map to be detected includes: According to the coordinate information of the points included in the current point cloud map and the coordinate information of the points included in the sub-map to be detected, identify the points with corresponding coordinate information in the current point cloud map and the sub-map to be detected as matching points; Determine the point cloud similarity between the current point cloud map and the sub-map to be detected according to the number of the matching points and the number of the points included in the current point cloud map.

6. The method according to claim 1, wherein After identifying the sub-map as the sub-map to be detected if there is at least one sub-map within the search range of the current position information according to the current position information of the target object and the position information of the sub-map, it further includes: If there is at least one sub-map within the search range of the position information of the sub-map to be detected, identify the sub-map as the sub-map to be detected.

7. The method according to claim 1, wherein After determining the matching position between the point cloud map to be matched and the corresponding sub-map to be detected according to the point cloud map to be matched and the corresponding sub-map to be detected, it further includes: Determine the distance between the matching position corresponding to the current point cloud map and the matching position corresponding to the point cloud map with the previous matching degree greater than or equal to the first threshold; Perform a deduction process on the matching degree corresponding to the current point cloud map according to the distance.

8. The method according to claim 1, characterized in that Before identifying the sub-map as the sub-map to be detected if there is at least one sub-map within the predetermined range of the current position information according to the current position information of the target object and the position information of the sub-map, it further includes: Determine the travel error of the target object between the sub-maps according to the moving distance of the target object between the sub-maps and a preset error ratio; Determine the search range according to the travel error of the target object between the sub-maps.

9. The method according to claim 8, wherein After determining the success of loop detection, it further includes: Clear the travel error before the current point cloud map where the loop detection is successful, and update the search range.

10. A loop detection device for a point cloud map, characterized in that, It includes: An acquisition module, configured to acquire a historical point cloud map constructed by a target object, where the historical point cloud map includes at least one sub-map; A search module, configured to, according to the current position information of the target object and the position information of the sub-map, if there is at least one sub-map within the search range of the current position information, identify the sub-map as a sub-map to be detected; A determination module, configured to determine the matching degree between the current point cloud map of the target object and the sub-map to be detected according to the current point cloud map of the target object and the sub-map to be detected; A processing module, configured to arrange the current point cloud maps with the matching degree greater than or equal to the first threshold in descending order of the matching degree, and identify the current point cloud maps arranged before the second predetermined number as point cloud maps to be matched; determine the matching position between the point cloud map to be matched and the sub-map to be detected according to the point cloud map to be matched and the corresponding sub-map to be detected; correct the current movement trajectory of the target object corresponding to the point cloud map to be matched according to the matching position; determine the trajectory similarity between the historical movement trajectory of the target object corresponding to the sub-map to be detected and the corrected current movement trajectory according to the historical movement trajectory of the target object corresponding to the sub-map to be detected and the corrected current movement trajectory; If, after the point cloud map to be matched, the number of consecutive current point cloud maps with the matching degree greater than or equal to the first threshold reaches the first predetermined number, and the trajectory similarity is greater than or equal to the second threshold, determine that the loop detection of the point cloud map to be matched is successful.

11. A computer-readable medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the loop detection method of the point cloud map according to any one of claims 1 to 9.

12. An electronic device, characterized in that, Including: One or more processors; A storage device, configured to store one or more programs, when the one or more programs are executed by the one or more processors, enable the one or more processors to implement the loop detection method of the point cloud map according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • A loop detection method based on point cloud segment matching constraint and trajectory drift optimization

    CN109522832A