SLAM method and device under semi-dynamic environment change
By introducing dynamic map update strategy and weight allocation method in the SLAM system, the problem of difficult to identify semi-static objects is solved, and high-precision positioning and robustness in dynamic environments are achieved.
Patent Information
- Application Number
- CN202510731515.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-03
- Publication Date
- 2025-07-04
- Estimated Expiration
- 2045-06-03
AI Technical Summary
The existing SLAM technology lacks continuous motion characteristics in semi-static objects (such as temporarily stacked materials), making it difficult to be effectively identified by dynamic detection mechanisms, resulting in positioning drift or failure, and affects positioning accuracy when environmental changes are large.
A dynamic map update strategy is introduced, and the map is updated dynamically through the combination of local and global matching, giving different weights to the old and new grids, and optimizing the pose using point cloud matching algorithm to ensure that the map reflects environmental changes.
Improve positioning accuracy and robustness to avoid mismatch. The system can update the map in real time to adapt to environmental changes, enhancing positioning accuracy in dynamic environments.
Smart Images

Figure CN120252690A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of positioning and mapping, and in particular, to a SLAM method and device under semi-dynamic environmental changes. Background Art
[0002] With the rapid development of economy and technology, the application demand for mobile robots in various industries has been continuously climbing. As the core challenge of the mobile robot technology system, the Simultaneous Localization and Mapping (SLAM) technology undertakes the key task of solving the real-time localization and map construction of robots in unknown environments. At present, the demand for domestic AGV robots is strong, and the demand fields are relatively concentrated. AGV is increasingly widely used in industries such as manufacturing and logistics. However, when positioning based on a priori maps in a dynamic environment (such as vehicles in a parking lot, stacked materials, temporary sheds, temporary fences, etc.), dynamic objects cause deviations between the current observations and the a priori map, resulting in positioning drift or failure.
[0003] Traditional SLAM positioning methods generally assume a static environment and perform geometric feature matching through lidar or visual sensors to construct a grid map or a feature point cloud map as a spatial reference. Existing dynamic SLAM strategies mostly adopt a single-cycle processing framework: early research established a probability motion model of dynamic objects through Extended Kalman Filter (EKF) or Particle Filter (PF), and used time-series observation data to achieve short-term dynamic interference suppression; the current mainstream improvement solutions improve the system robustness through multi-modal sensor fusion (such as the tight coupling of IMU (Inertial Measurement Unit), which is a device used to measure and report information such as the acceleration, angular velocity, and magnetic field strength of an object) and visual odometry) or semantic segmentation networks based on deep learning (identifying pedestrians, vehicles, etc.). However, such methods face fundamental limitations in long-term operation scenarios. Semi-static objects (such as temporarily stacked materials) are difficult to be effectively identified by existing dynamic detection mechanisms due to the lack of continuous motion features. The existing detection and processing methods for dynamic objects are difficult to handle semi-static objects (such as temporarily parked vehicles, stacked materials, temporary sheds, temporary fences, etc.). In addition, the existing solutions modify the original map, which will affect the accuracy of the original map if the environment changes greatly, and this impact is irreversible and will cause long-term effects. Summary of the Invention
[0004] Object of the Invention: The object of the present invention is to solve the technical problem that semi-static objects (such as temporarily stacked materials) in the prior art are difficult to be effectively identified by existing dynamic detection mechanisms due to the lack of continuous motion features, and the existing detection and processing methods for dynamic objects are difficult to handle, and to provide a method, device, equipment and medium for geometric distortion correction of MRI images.
[0005] One or more embodiments of this specification simultaneously relate to a device for correcting geometric distortion of MRI images, an electronic device, a computer-readable storage medium, and a computer program product to solve the technical defects existing in the prior art.
[0006] Technical solution:
[0007] In a first aspect, the present application proposes a SLAM method under semi-dynamic environmental changes, including the steps of:
[0008] Step 1: Obtain environmental data and construct a prior map based on the environmental data.
[0009] Step 2: When starting positioning, obtain the environmental data currently acquired by the positioning object and perform local matching with the environmental data corresponding to the prior map to determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, proceed to the next step.
[0010] Step 3: Update the dynamic map. Perform global matching between the environmental data currently acquired by the positioning object and the prior map to determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, proceed to the next step.
[0011] Step 4: Perform global matching between the environmental data currently acquired by the positioning object and the updated dynamic map to determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, the positioning fails.
[0012] Preferably, Step 1 includes: using a method of calculating grid probability to remove high-dynamic objects.
[0013] Preferably, the dynamic map update includes:
[0014] When dynamic map update is required, delete, expand, and assign temporary map point weights to the map in sequence to update the grid.
[0015] Preferably, the deletion of the map includes:
[0016] When the number of grids inserted into the system exceeds a preset maximum value, start a deletion strategy to gradually delete the earlier inserted grids. When deleting the grid data, find the corresponding point cloud data through the index of the grid, delete the point cloud data corresponding to the grid and the occupancy probability data of the grid, and remove the corresponding grid data from the dynamic map stack.
[0017] Preferably, the expansion of the map includes:
[0018] Traverse the point cloud data of the current frame laser scan;
[0019] Convert the point cloud data and relative pose to the grid map coordinate system;
[0020] Calculate the index of the grid where the point is located, and determine whether the grid exists. If the grid index already exists, the system directly updates the point cloud data in the grid. If the grid does not exist, the map needs to be extended;
[0021] If the number of point clouds in a single grid exceeds the preset threshold, stop adding new point clouds.
[0022] Preferably, assign temporary map point weights to the newly added point clouds, including:
[0023] Add weights to each point cloud for dynamic map update, and the weights are less than the weights of the corresponding point clouds in the prior map at the corresponding positions.
[0024] Preferably, determine whether the obtained local environment data fails to match the prior map, including:
[0025] Obtain the local environment pose from the local environment data. When it is determined that any one of the pose movement distance exceeding 1 cm, the pose rotation exceeding 1 degree, and the interval between the current time and the previous frame positioning time exceeding 2 seconds is satisfied, it is determined that the obtained local environment data fails to match the prior map.
[0026] Preferably, perform global matching including:
[0027] Combine the currently obtained environmental data with the existing map, including the prior map or the dynamic map. The old grid will obtain a higher weight relative to the new grid;
[0028] Obtain multiple poses of the currently positioned object through the currently obtained environmental data of the positioned object;
[0029] Select the map object to be matched, including the prior map or the dynamic map;
[0030] Use the point cloud matching algorithm to calculate the matching degree between the current observation data and the point clouds in the map. During the matching process, the new grid information will obtain a higher weight than the grid information in the combined map after scoring;
[0031] Calculate the matching score according to the matching result between the current pose candidate and the map;
[0032] When the matching score of the candidate pose exceeds the preset threshold, it is determined that the pose is valid;
[0033] Based on the current candidate valid pose, make a small incremental change to generate multiple sub-candidate poses;
[0034] Calculate the matching degrees of multiple sub-candidate poses with the map, and determine whether to continue optimizing the sub-candidate poses to obtain the most matching pose according to the matching scores.
[0035] Preferably, when the matching scores of the candidate poses are all lower than a preset threshold, the global matching fails; otherwise, the global matching succeeds and the most matching pose is obtained.
[0036] Preferably, then update the pose of the positioning object at the current position, including: updating the pose of the current positioning object through the most matching pose.
[0037] In a second aspect, in some embodiments, a SLAM device under semi-dynamic environmental changes is further provided, including:
[0038] An acquisition unit, configured to acquire environmental data and construct a prior map according to the environmental data;
[0039] A first matching unit, configured to, when starting positioning, perform local matching on the environmental data currently acquired by the positioning object and the environmental data corresponding to the prior map, and determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to successfully position. If the matching fails, proceed to the next step;
[0040] A second matching unit, configured to update the dynamic map and perform global matching on the environmental data currently acquired by the positioning object and the prior map, and determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to successfully position. If the matching fails, proceed to the next step;
[0041] A third matching unit, configured to perform global matching on the environmental data currently acquired by the positioning object and the updated dynamic map, and determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to successfully position. If the matching fails, the positioning fails.
[0042] In a third aspect, an embodiment of the present invention provides an electronic device, including a processor and a memory. Among them, the memory is used to store one or more computer programs; when one or more computer programs stored in the memory are executed by the processor, the electronic device can implement the method of any possible design in the first aspect above.
[0043] In a fourth aspect, the present invention provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the method in any one of the above embodiments is implemented.
[0044] In a fifth aspect, an embodiment of the present invention further provides a computer program product. When the computer program product runs on an electronic device, the electronic device is enabled to execute the method of any possible design in any one of the above aspects.
[0045] Beneficial effects: By introducing a dynamic map update strategy, the present invention can automatically update the map when local matching fails, ensuring that the map can accurately reflect the actual changes in the environment. When the environment changes (such as temporarily stacked goods, parked vehicles, etc.), the traditional prior map cannot adapt to these changes, resulting in a decrease in positioning accuracy. Through dynamic update, the system of the present application can update or expand the map, making the positioning result more accurate. At the same time, these semi-static objects are recognized and processed through the dynamic update strategy, avoiding false matching caused by these objects;
[0046] The matching strategy proposed by the present invention combines the weight assignment of new and old grids and an improved branch and bound method, enhancing the robustness of the system in a dynamic environment. When updating the map, different weights are assigned to new and old grids to ensure that the newly obtained environmental information has a certain gain for positioning, but does not affect the positioning accuracy due to its instability;
[0047] To avoid excessive computational burden during the dynamic map update process, the system controls the number of newly added point clouds to ensure that the number of grids in the map remains within a reasonable range. By deleting outdated grids, the system avoids waste of computational resources and improves the efficiency of map update. Brief Description of the Drawings
[0048] Figure 1 It is a schematic diagram of the method framework provided by the present invention;
[0049] Figure 2 It is a general matching flowchart provided by the present invention;
[0050] Figure 3 It is a schematic diagram of the map update process provided by the present invention;
[0051] Figure 4 It is a schematic diagram of the comparison before and after adding a dynamic map provided by the present invention;
[0052] Figure 5 It is a schematic diagram of the comparison before and after improving the matching strategy provided by the present invention;
[0053] Figure 6 It is a schematic diagram of the structure of the device provided by an embodiment of the present application;
[0054] Figure 7 It is a block diagram of the structure of an electronic device provided by an embodiment of the present application. Detailed Embodiments
[0055] To make the technical solution of the present invention clearer, the following further describes the present invention in detail with reference to specific embodiments of the accompanying drawings.
[0056] Embodiment 1
[0057] To make the objectives, technical solutions, and advantages of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the accompanying drawings of the present invention. Obviously, the described embodiments are some, but not all, of the embodiments of the present invention. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts fall within the scope of protection of the present invention. Unless otherwise defined, the technical terms or scientific terms used herein shall have the ordinary meaning as understood by those of ordinary skill in the art to which the present invention pertains. The words such as "including" used herein are intended to mean that the elements or objects appearing before this word cover the elements or objects listed after this word and their equivalents, without excluding other elements or objects.
[0058] Regarding the problems existing in the prior art, such as Figure 1 and Figure 2 as shown, a SLAM method under a semi-dynamic environment change includes the steps of:
[0059] Step 1: Obtain environmental data and construct a prior map according to the environmental data, including: using a method for calculating grid probabilities to remove high-dynamic objects, obtaining environmental data through sensors such as lidar, IMU, and wheel speed sensors, and constructing an initial static prior map, which is stored in a grid form, and each grid contains point cloud data and occupancy probability;
[0060] Step 2: When starting positioning, obtain the environmental data currently obtained by the positioning object and perform local matching with the corresponding environmental data in the prior map to determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, proceed to the next step. During the positioning process, if local matching fails in a certain frame, start the dynamic map update strategy. If local matching is successful, it indicates that the environment has not changed significantly, and then directly perform the pose of the current position of the positioning object, and then achieve successful positioning;
[0061] Step 3: Update the dynamic map. Locate the environmental data currently acquired by the object and perform a global match with the prior map to determine whether the match is successful. If the match is successful, update the pose of the located object at the current position to achieve successful positioning. If the match fails, proceed to the next step. Update the dynamic map based on the currently acquired environmental data. At this time, the system will adjust and supplement the map according to the new environmental changes, remove outdated data, and integrate the new data into the dynamic map. Then, perform a global match between the environmental data of the current located object and the updated dynamic map. The global match takes into account the changes in the entire map and matches the entire environment rather than a local area. If the global match is successful, it means that the environmental data of the current located object matches the dynamic map, and the pose of the located object at the current position is updated, resulting in successful positioning. If the global match fails, it indicates a large difference between the current environment and the dynamic map, and the positioning fails. The system then enters the next step to further adapt to the environmental changes and make a new attempt, that is, perform a global match through the dynamic map;
[0062] Step 4: Perform a global match between the environmental data currently acquired by the located object and the updated dynamic map to determine whether the match is successful. If the match is successful, update the pose of the located object at the current position to achieve successful positioning. If the match fails, the positioning fails. Perform a global match between the currently acquired environmental data and the updated dynamic map. The global match takes into account the changes in the entire dynamic map and matches the overall structure and features of the current environment and the dynamic map. If the global match is successful, it means that the current environmental data is highly consistent with the updated dynamic map, and the pose of the located object at the current position is updated, resulting in successful positioning. If the global match fails, it means that there is a large difference between the current environmental data and the dynamic map, and the system cannot accurately locate, resulting in positioning failure.
[0063] In some preferred embodiments, such as Figure 3 shown, the dynamic map update includes:
[0064] When the map needs to be dynamically updated, delete, expand, and assign temporary map point weights to the map in sequence to update the grid.
[0065] In some preferred embodiments, the deletion of the map includes:
[0066] When the number of grids inserted into the system exceeds the preset maximum value, start a deletion strategy to gradually delete the earlier inserted grids. Among them, when deleting the grid data, find the corresponding point cloud data through the index of the grid, delete the point cloud data corresponding to the grid and the occupancy probability data of the grid, and remove the corresponding grid data from the dynamic map stack;
[0067] The number of grids in the dynamic map exceeds the preset threshold (for example, 10000);
[0068] Obsolete or invalid raster data needs to be removed to control the map scale;
[0069] Find the earliest inserted raster: Determine the earliest added raster by timestamp or insertion order;
[0070] Delete raster data. Remove the point cloud data of this raster from pointsMap, remove the occupancy probability of this raster from probMap, and remove the index of this raster from the stack of the dynamic map;
[0071] Update the map status: Reduce the number of rasters in the dynamic map to ensure that the map scale is within a reasonable range.
[0072] In some preferred embodiments, the expansion of the map includes:
[0073] Traverse the point cloud data of the current frame laser scan. The current frame laser point cloud data: contains the coordinates of the point cloud in the sensor coordinate system, and the relative pose represents the pose of the sensor relative to the global coordinate system. Traverse each point cloud data in the current frame and perform subsequent projection, raster index calculation, and map update operations on each point cloud;
[0074] Convert the point cloud data and relative pose to the raster map coordinate system, and convert the point cloud from the sensor coordinate system to the global raster map coordinate system for subsequent processing;
[0075] Calculate the index of the raster where the point is located, and determine whether the raster exists. If the raster index already exists, the system directly updates the point cloud data in this raster. If the raster does not exist, the map needs to be expanded to determine the raster to which the point cloud belongs, which is convenient for finding or creating a raster in the map. Calculate the raster index according to the global coordinates and raster size. If the raster exists, directly update the point cloud data in this raster, check whether the number of point clouds in the raster exceeds the threshold (for example, 3 points). If it does not exceed, add a new point cloud. If the raster does not exist, create a new raster, add the point cloud data to this raster, mark this raster as dynamically added (isOld = -1), and assign an initial weight. If the number of point clouds in a single raster exceeds the preset threshold, stop adding new point clouds.
[0076] In some preferred embodiments, assigning temporary map point weights to the newly added point clouds includes:
[0077] Add weights to each point cloud updated for the dynamic map, and the weight is less than the weight of the corresponding point cloud in the prior map at the corresponding position;
[0078] Old point cloud weight: The point cloud existing in the prior map is marked as isOld>0;
[0079] Assign a higher weight (for example, +10 points), indicating its high credibility;
[0080] New point cloud weight: The dynamically added point cloud is marked as isOld=-1;
[0081] Assign a lower weight (e.g., +1 point), indicating lower credibility;
[0082] For the specific implementation of weight assignment, traverse the point clouds in the dynamic map:
[0083] For each newly added point cloud, check the isOld flag of the grid it belongs to.
[0084] Judge the point cloud type:
[0085] If isOld>0: The point cloud exists in the prior map, assign a higher weight (e.g., +10 points).
[0086] If isOld=-1: The point cloud is dynamically added, assign a lower weight (e.g., +1 point);
[0087] Store the weight value: Store the weight value in the point cloud attribute for subsequent matching scoring;
[0088] Update the weight information of the dynamic map to ensure that the weight value is synchronized with the point cloud data. In the branch and bound algorithm, the matching score of the candidate pose is determined by the point cloud weight. When the old point cloud is successfully matched, the score is higher (e.g., +10 points), and when the new point cloud is successfully matched, the score is lower (e.g., +1 point).
[0089] In some preferred embodiments, determining whether the obtained local environment data fails to match the prior map includes:
[0090] Obtain the local environment pose from the local environment data. When it is determined that the pose movement satisfies any one of the conditions that the pose movement distance exceeds 1 centimeter, the pose rotation exceeds 1 degree, and the interval between the current time and the previous frame positioning time exceeds 2 seconds, it is determined that the obtained local environment data fails to match the prior map.
[0091] Obtain the local environment data. The system obtains the environmental data of the current frame and obtains the current environmental information of the positioning object through sensors such as lidar, IMU, and wheel speedometer;
[0092] Calculate the local environment pose. According to the sensor data (e.g., the point cloud scanned by the laser and the IMU data), the system calculates the local environment pose of the positioning object. The local pose usually includes the coordinate position and orientation of the object (i.e., displacement and rotation);
[0093] Judge the pose change condition. Compare the pose of the current frame with the pose of the previous frame to determine whether any of the following conditions are met:
[0094] Displacement exceeds 1 centimeter: If the displacement between the current frame and the previous frame is greater than 1 centimeter, it is considered that there has been a significant change in the pose;
[0095] Rotation exceeds 1 degree: If the rotation angle between the current frame and the previous frame is greater than 1 degree, it is considered that there has been a significant rotation in the pose;
[0096] Time interval exceeds 2 seconds: If the time interval between the current frame and the previous frame exceeds 2 seconds, it means that the positioned object has undergone significant changes during this period;
[0097] Determine that the matching fails: If any of the above conditions is met, the system will determine that the currently acquired local environment data fails to match the prior map. At this time, the system needs to enter the next step to perform dynamic map update and further matching.
[0098] Trigger dynamic map update: In the case of matching failure, the system will trigger the dynamic map update process, recalculate the pose and attempt to update the map to ensure the accuracy and robustness of the positioning.
[0099] In some preferred embodiments, performing global matching includes:
[0100] Combine the currently acquired environmental data with the existing map, including the prior map or the dynamic map, and the old grids will obtain a higher weight relative to the new grids;
[0101] Obtain multiple poses of the currently positioned object through the environmental data currently acquired by the positioned object;
[0102] Select the map object to be matched, including the prior map or the dynamic map. The prior map is preferentially used. If the environmental change is small, the static prior map is preferentially matched to retain the stability of the original map, and the dynamic map is used as a supplement. If environmental changes are detected (such as local matching failure), switch to the dynamic map for secondary matching;
[0103] Use the point cloud matching algorithm to calculate the matching degree between the current observation data and the point cloud in the map. During the matching process, the new grid information will obtain a higher weight in the scoring than the grid information in the combined map, and the new grid information will obtain a higher weight in the scoring, thereby enhancing the influence of the new environment on the global matching;
[0104] Calculate the matching score according to the matching result between the current pose candidate and the map, and perform scoring through the following algorithm:
[0105] ICP (Iterative Closest Point): Optimize the pose by minimizing the point cloud distance error;
[0106] NDT (Normal Distribution Transform): Match the point cloud based on the probability distribution;
[0107] When the matching score of the candidate pose exceeds a preset threshold, it is determined that the pose is valid. The preset matching score threshold (for example, >70% of the point cloud is successfully matched). If the score of the candidate pose exceeds the threshold, it is determined as a valid pose, and the candidate poses with low scores are discarded to avoid introducing errors;
[0108] Based on the current candidate valid pose, make a small incremental change to generate multiple sub-candidate poses. Based on the current valid candidate pose, the system will make a small incremental change (such as fine-tuning the position or rotation angle) to generate multiple sub-candidate poses. These sub-candidate poses may provide more accurate positioning results;
[0109] Calculate the matching degree of multiple sub-candidate poses with the map, and judge whether to continue to optimize the sub-candidate pose to obtain the most matching pose according to the matching score. For each sub-candidate pose, the system calculates its matching degree with the map and generates a matching score. According to the matching score of the sub-candidate pose, the system judges whether to continue to optimize the sub-candidate pose. The goal of optimization is to find the most matching pose, that is, the pose with the highest matching degree with the map.
[0110] In some preferred embodiments, when the matching scores of all candidate poses are lower than the preset threshold, the global matching fails; otherwise, the global matching succeeds, and the most matching pose is obtained.
[0111] In some preferred embodiments, update the pose of the positioning object at the current position, including: updating the pose of the current positioning object through the most matching pose.
[0112] In some preferred embodiments, combined with Figure 4 , the comparison before and after dynamically updating the map is as Figure 4 shown. Figure 5 The left part is the map without dynamic update, that is, the unmodified prior map. When the prior map was established, there were no goods stored in the area on the map, so this area was blank in the prior map. However, with the development of production operations, goods need to be temporarily stored and retrieved in this area, and the environment has changed significantly. Therefore, the unupdated prior map cannot accurately describe these changes, resulting in errors in the positioning and navigation processes. In order to adapt to these environmental changes and improve the positioning accuracy, dynamic map update is introduced;
[0113] Figure 5The right part shows the map after dynamic update. In the updated map, the environment of these areas has been corrected to reflect the real production environment. The red dots in the figure represent the positions in the prior map and the dynamically updated map. It can be seen that the red dots mark the areas where the environment has changed, and the dynamically updated map has successfully filled in the blanks in these areas. The blue dots represent the point clouds that have been successfully matched with the map in the current frame. The updated map can better match the current lidar point cloud, thus providing a more accurate positioning result.
[0114] In some preferred embodiments, in combination with Figure 5 , the comparison effect of the new matching strategy is as Figure 5 shown. Figure 5 The left part shows the matching result before the improved strategy. The blue dots represent the successfully matched point clouds, while the yellow dots represent the point clouds that have not been successfully matched. It can be seen from the figure that the open area in the prior map becomes invalid for matching after the temporary stacking of goods. Figure 5 The right part shows the matching effect obtained after dynamically updating the map. The map reflects the environmental changes in the real scene in real time. In addition, Figure 5 the right part also combines the weights of the new and old grids and introduces the branch and bound method, which significantly improves the matching result. The new strategy can better cope with environmental changes and ensure the accuracy of matching.
[0115] In some embodiments, a SLAM device under semi-dynamic environmental changes is also proposed. In combination with Figure 6 , it includes:
[0116] An acquisition unit 301, configured to acquire environmental data and construct a prior map according to the environmental data;
[0117] A first matching unit 302, configured to, when starting positioning, acquire the environmental data currently acquired by the positioning object and the environmental data corresponding to the prior map for local matching, and determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to successfully position. If the matching fails, proceed to the next step;
[0118] A second matching unit 303, configured to update the dynamic map and perform global matching between the environmental data currently acquired by the positioning object and the prior map, and determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to successfully position. If the matching fails, proceed to the next step;
[0119] A third matching unit 304, configured to perform global matching between the environmental data currently acquired by the positioning object and the updated dynamic map, and determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to successfully position. If the matching fails, the positioning fails.
[0120] All relevant content of each step involved in the above method embodiments can be cited in the function descriptions of the corresponding functional modules, and will not be elaborated here.
[0121] In some other embodiments of the present invention, embodiments of the present invention disclose an electronic device 400, as Figure 7 shown, the electronic device may include: one or more processors 401; a memory 402; a display 403; one or more applications (not shown); and one or more computer programs 404. The above devices may be connected through one or more communication buses 405. Wherein the one or more computer programs 404 are stored in the memory 402 and configured to be executed by the one or more processors 401. The one or more computer programs 404 include instructions, and the above instructions may be used to execute the steps in Figures 1 to 5 and the corresponding embodiments.
[0122] Through the description of the above embodiments, those skilled in the art can clearly understand that for the convenience and simplicity of description, only the above division of each functional module is used as an example. In actual applications, the above functions can be allocated to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. The specific working processes of the systems, devices, and units described above can refer to the corresponding processes in the foregoing method embodiments, and will not be elaborated here.
[0123] In each embodiment of the present invention, each functional unit may be integrated in a processing unit, or each unit may exist physically alone, or two or more units may be integrated in one unit. The above integrated unit may be implemented in the form of hardware or in the form of a software functional unit.
[0124] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiments of the present invention, in essence, or the part that contributes to the prior art, or all or part of the technical solution, may be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the methods described in the embodiments of the present invention. The foregoing storage medium includes: various media such as flash memory, mobile hard disk, read-only memory, random access memory, magnetic disk, or optical disc that can store program codes.
[0125] As described above, it is only the specific implementation manner of the embodiments of the present invention, but the protection scope of the embodiments of the present invention is not limited thereto. Any changes or substitutions within the technical scope disclosed in the embodiments of the present invention should be covered within the protection scope of the embodiments of the present invention. Therefore, the protection scope of the embodiments of the present invention shall be subject to the protection scope of the claims.
Claims
1. A SLAM method under semi-dynamic environmental changes, characterized in that, Including the steps: Step 1: Obtain environmental data and construct a prior map according to the environmental data; Step 2: When starting positioning, obtain the environmental data currently obtained by the positioning object and perform local matching with the corresponding environmental data in the prior map. Determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, proceed to the next step; Step 3: Update the dynamic map. Perform global matching between the environmental data currently obtained by the positioning object and the prior map. Determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, proceed to the next step; Step 4: Perform global matching between the environmental data currently obtained by the positioning object and the updated dynamic map. Determine whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, the positioning fails.
2. The method according to claim 1, wherein Step 1 includes: Using the method of calculating grid probability to remove high-dynamic objects.
3. The method according to claim 1, characterized in that Performing dynamic map update includes: When dynamic map update is required, delete, expand, and assign temporary map point weights to the map in sequence to update the grid.
4. The method according to claim 3, wherein The deletion of the map includes: When the number of grids inserted into the system exceeds the preset maximum value, start a deletion strategy to gradually delete the earlier inserted grids. When deleting the grid data, find the corresponding point cloud data through the index of the grid, delete the point cloud data corresponding to the grid and the occupancy probability data of the grid, and remove the corresponding grid data from the dynamic map stack.
5. The method according to claim 3, characterized in that The expansion of the map includes: Traverse the point cloud data of the current frame laser scan; Convert the point cloud data and relative pose to the grid map coordinate system; Calculate the index of the grid where the point is located and determine whether the grid exists. If the grid index already exists, the system directly updates the point cloud data in the grid. If the grid does not exist, expand the map; If the number of point clouds in a single grid exceeds the preset threshold, stop adding new point clouds.
6. The method according to claim 3, characterized in that, Assigning temporary map point weights to the newly added point clouds includes: Adding weights to each point cloud for dynamic map update, and the weights are less than the weights of the corresponding point clouds in the prior map at the corresponding positions.
7. The method according to claim 1, characterized in that, Determining whether the matching between the obtained local environmental data and the prior map fails includes: Obtain the local environmental pose from the local environmental data. Determine that when any one of the pose movement satisfying that the pose movement distance exceeds 1 cm, the pose rotation exceeds 1 degree, and the interval between the current time and the positioning time of the previous frame exceeds 2 seconds, it is determined that the matching between the obtained local environmental data and the prior map fails.
8. The method according to claim 1, characterized in that, Performing global matching includes: Combine the currently obtained environmental data with the existing map, including the prior map or the dynamic map. The old grids will obtain higher weights relative to the new grids; Obtain multiple poses of the current positioning object through the environmental data currently obtained by the positioning object; Select the map object to be matched, including the prior map or the dynamic map; Use the point cloud matching algorithm to calculate the matching degree between the current observation data and the point clouds in the map. During the matching process, the new grid information will obtain a higher weight in the scoring than the grid information in the combined map; Calculate the matching score according to the matching result between the current pose candidate and the map; When the matching score of the candidate pose exceeds the preset threshold, it is determined that the pose is valid; Generate multiple sub-candidate poses based on a small incremental change of the current valid candidate pose; Calculate the matching degree between multiple sub-candidate poses and the map, and judge whether to continue to optimize the sub-candidate pose to obtain the most matching pose according to the matching score.
9. The method according to claim 1, wherein When the matching scores of all candidate poses are lower than the preset threshold, the global matching fails; otherwise, the global matching succeeds and the most matching pose is obtained.
10. A SLAM device under semi-dynamic environmental changes, characterized in that, including: An acquisition unit for acquiring environmental data and constructing a prior map according to the environmental data; A first matching unit for, when starting positioning, performing local matching on the environmental data currently acquired by the positioning object and the environmental data corresponding to the prior map, judging whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, proceed to the next step; A second matching unit for updating the dynamic map and performing global matching on the environmental data currently acquired by the positioning object and the prior map, judging whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, proceed to the next step; A third matching unit for performing global matching on the environmental data currently acquired by the positioning object and the updated dynamic map, judging whether the matching is successful. If the matching is successful, update the pose of the positioning object at the current position to achieve successful positioning. If the matching fails, the positioning fails.
Citation Information
Patent Citations
Robot positioning method in dynamic environment, robot, device and storage medium
CN114236564A
Autonomous mapping method and system based on deep learning in dynamic environment
CN115307622A
Positioning method and system based on laser dynamic map updating
CN116337046A
Navigation positioning method and device based on pose map updating and medium
CN116929369A
Mapping positioning method and system
CN118261976A