A Method, System, Device and Medium for Dynamically Updating a Robot Map
By generating and managing local submaps, establishing grid maps and deleting duplicate submaps, the problem of low map update efficiency in traditional SLAM methods is solved, and efficient and real-time global map updates are achieved to adapt to complex environmental changes in industrial scenarios.
Patent Information
- Application Number
- CN202311253576.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-26
- Publication Date
- 2025-07-22
- Estimated Expiration
- 2043-09-26
AI Technical Summary
Traditional SLAM methods are inefficient when updating maps and consume a lot of computing resources and memory, which cannot meet the needs of complex and changeable environments in industrial scenarios.
By obtaining the initial local submap and point cloud data, multiple local submap are generated, grid maps are created, and duplicate or time-first submap can be deleted, dynamic update of the global map is realized, memory consumption is reduced, and update efficiency is improved.
Real-time dynamic update of global maps is achieved, reducing computing resource consumption, avoiding robots from losing positioning during work, and adapting to complex and changeable indoor environments.
Smart Images

Figure CN117288179B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of robots, and particularly to a method, a system, a device and a storage medium for dynamically updating a robot map. Background Art
[0002] Simultaneous Localization and Mapping (SLAM) is a technology for simultaneously performing autonomous localization and map construction in an unknown environment. In an industrial scenario, an indoor mobile robot can rely on SLAM to first construct a map, and on this basis, start the SLAM localization mode to perform position estimation to achieve the positioning and navigation of the robot.
[0003] However, after the traditional SLAM method constructs a map, the map remains fixed. If you want to update the map, you need to use the SLAM method again to construct the map, which not only consumes more computing resources but also consumes more time. Due to the complex and changeable industrial scenario, higher requirements are put forward for the robot's positioning technology. Therefore, a high-efficiency technology for dynamically updating the map is needed to cope with the changing environment. Summary of the Invention
[0004] In view of this, the present invention provides a method, a system, a device and a storage medium for dynamically updating a robot map to solve the problem of low map update efficiency in the prior art.
[0005] In a first aspect, the present invention provides a method for dynamically updating a robot map, including:
[0006] Obtain an initial local submap and the point cloud data continuously collected by a mobile robot, where the initial local submap is the submap corresponding to the global map generated last time;
[0007] Use the point cloud data to generate multiple local submaps in sequence;
[0008] Based on the initial local submap and the generated local submaps, establish a grid map, where each time a newly generated local submap is obtained, the grid map is updated once, and the initial local submap and the sequentially generated local submaps all carry the establishment time of the submap;
[0009] Determine the number of submaps corresponding to each grid in the grid map;
[0010] In the case where there is more than one submap corresponding to a grid, delete the local submap with an earlier establishment time corresponding to the grid so that each grid corresponds to only one local submap;
[0011] Generate the latest global map based on all the updated local submaps.
[0012] The positioning module in the mobile robot in this application realizes positioning and navigation on an existing map. After the positioning is enabled, it will continuously generate local submaps of the latest environment. The entire system can continuously generate local submaps based on the existing map, and at the same time start a map update thread to achieve the effect of the robot updating all local submaps while positioning, thereby realizing the update of the global map. While updating the global map, it reduces memory consumption. When there are significant changes in the indoor environment, it can update the global map in a timely manner to avoid the situation where the robot loses its position during operation. By using the robot map dynamic update method provided in this embodiment, not only can the function of real-time dynamic updating of the global map be realized, but also the update efficiency is high, it does not consume a large amount of computing resources, and it also saves memory space.
[0013] In an alternative embodiment, before sequentially generating multiple local submaps using the point cloud data, it further includes:
[0014] Obtain the pose of the mobile robot determined last time, use the global map generated last time as the positioning map, and use the pose of the mobile robot determined last time as the initial pose;
[0015] Obtain the point cloud data corresponding to the initial pose;
[0016] Determine an angular search window and a linear search window. The angular search window is used for the pose matching of the mobile robot, and the linear search window is used for the position matching of the mobile robot;
[0017] Based on the point cloud data corresponding to the initial pose, according to the angular search window and the linear search window, generate a set of estimated poses. The set of estimated poses includes multiple estimated poses and the point cloud data corresponding to each estimated pose;
[0018] Calculate the matching degree between the point cloud data corresponding to each estimated pose and the positioning map, and determine the estimated pose with the highest matching degree;
[0019] Use the offset between the estimated pose with the highest matching degree and the initial pose to correct the initial pose to obtain the optimal pose.
[0020] According to the initial pose of the mobile robot, continuously perform scan matching to determine the optimal pose of the mobile robot, so that the newly created local submap in the positioning mode will coincide with the corresponding position of the positioning map after scan matching, which is convenient for subsequent updating of the local submap data and improves the accuracy of the global map creation.
[0021] In an alternative embodiment, based on the initial local submap and the generated local submap, establish a grid map, including:
[0022] Obtain the pixel coordinate system corresponding to the initialized grid and the coordinate range of the pixel coordinate system. The initialized grid is the initialized grid when the local submap starts to be established;
[0023] Determine the physical coordinates of the starting point of each local submap in the map coordinate system. The starting point of the local submap is the pose of the first inserted local submap;
[0024] Based on the physical coordinates, the coordinate range, and the coordinate resolution of the map coordinate system, determine the maximum coordinates of the grid map;
[0025] Among them, for each determined starting point of a local submap, a maximum coordinate will be determined.
[0026] The grid map will be reconstructed and updated for all optimized local submaps saved in the backend, and then the reconstructed grid map will be used to judge and delete duplicate and early-time local submaps to achieve the update of local submaps, which can not only improve the update efficiency of the global map but also reduce the consumption of memory space.
[0027] In an optional implementation manner, based on the initial local submap and the generated local submap, establish a grid map, including:
[0028] Traverse the physical coordinates of all submap grids in the local submap in the local map coordinate system. The local map coordinate system is the coordinate system under local SLAM;
[0029] Convert the physical coordinates of the submap grid in the local map coordinate system to the physical coordinates of the submap grid in the global map coordinate system. The global map coordinate system is the coordinate system under global SLAM;
[0030] Use the physical coordinates of the submap grids in the local submap in the global map coordinate system to establish a grid map.
[0031] In an optional implementation manner, convert the physical coordinates in the local map coordinate system to the physical coordinates in the global map coordinate system through the following formula:
[0032] P local =(P max .x() - 0.05 * (cell.y() + 0.5), P max .y() - 0.05 * (cell.x() + 0.5), 0)
[0033]
[0034] P global =R gl *P local
[0035] Among them, Plocal is the physical coordinate of the sub - map grid in the local map coordinate system, P global is the physical coordinate of the sub - map grid in the global map coordinate system, R gl is the coordinate transformation from the global map coordinate system to the local map coordinate system, P max is the maximum coordinate, P gs is the coordinate of the starting point of the local sub - map in the global map coordinate system, is the inverse of the starting point of the local sub - map in the local map coordinate system, 0.05 is the map resolution, and cell is the pixel coordinate on the local sub - map.
[0036] In an alternative implementation, a grid map is established using the physical coordinates of the sub - map grids in the local sub - maps in the global map coordinate system, including:
[0037] Obtain the grid offset information of the local sub - map, where the grid offset information is the maximum coordinate corresponding to the local sub - map;
[0038] Based on the grid offset information, the physical coordinates of the sub - map grids in the global map coordinate system, and the map resolution, determine the pixel coordinates of each sub - map grid on the grid map;
[0039] Each grid in each grid map stores the sub - map index, creation time, and pixel coordinates of the sub - map grids in the corresponding local sub - map.
[0040] In an alternative implementation, based on all the updated local sub - maps, a latest global map is generated, including:
[0041] Obtain all the updated local sub - maps at preset time intervals, where each local sub - map corresponds to a sub - map index;
[0042] According to the sub - map index, extract the grid data corresponding to the local sub - Figure 1 map;
[0043] Load the grid data into the canvas and convert it into a visual raster map, and use the visual raster map as the global map.
[0044] In a second aspect, the present invention provides a robot map dynamic update system, the system includes:
[0045] A positioning module, configured to obtain an initial local sub - map and point cloud data continuously collected by a mobile robot, where the initial local sub - map is the sub - map corresponding to the previous generated global map; and is also configured to sequentially generate multiple local sub - maps using the point cloud data;
[0046] A map data update module, configured to establish a grid map based on an initial local sub-map and a generated local sub-map, wherein each time a newly generated local sub-map is obtained, the grid map is updated once, and both the initial local sub-map and the successively generated local sub-maps carry the establishment time of the sub-maps; configured to determine the number of sub-maps corresponding to each grid in the grid map; and further configured to, when there is more than one sub-map corresponding to a grid, delete the local sub-map with an earlier establishment time corresponding to the grid, so that each grid corresponds to only one local sub-map.
[0047] A map file update module, configured to generate an up-to-date global map based on all the updated local sub-maps.
[0048] In a third aspect, the present invention provides a computer device, including: a memory and a processor, which are communicatively connected to each other, the memory stores computer instructions, and the processor executes the computer instructions to execute the robot map dynamic update method according to the first aspect or any corresponding embodiment thereof.
[0049] In a fourth aspect, the present invention provides a computer-readable storage medium storing computer instructions for causing a computer to execute the robot map dynamic update method according to the first aspect or any corresponding embodiment thereof. BRIEF DESCRIPTION OF THE DRAWINGS
[0050] In order to more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the following will briefly introduce the drawings required for the description of the specific embodiments or the prior art. Obviously, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0051] Figure 1 is a flowchart of a robot map dynamic update method according to an embodiment of the present invention;
[0052] Figure 2 is a schematic diagram of a grid map according to an embodiment of the present invention;
[0053] Figure 3 is a schematic diagram of multiple sub-maps corresponding to a grid in a grid map according to an embodiment of the present invention;
[0054] Figure 4 is a schematic diagram of the processing of local sub-maps in a traditional positioning mode according to an embodiment of the present invention;
[0055] Figure 5 is a flowchart of determining an optimal pose according to an embodiment of the present invention;
[0056] Figure 6 It is a schematic diagram of the splicing of local sub - graphs according to an embodiment of the present invention;
[0057] Figure 7 It is a schematic diagram of a linear search window and an angular search window according to an embodiment of the present invention;
[0058] Figure 8 It is a schematic flowchart of updating a grid map according to an embodiment of the present invention;
[0059] Figure 9 It is a schematic diagram of a pose graph according to an embodiment of the present invention;
[0060] Figure 10 It is a schematic diagram of the map before update according to an embodiment of the present invention;
[0061] Figure 11 It is a schematic diagram of the map after update according to an embodiment of the present invention;
[0062] Figure 12 It is a structural block diagram of a robot map dynamic update system according to an embodiment of the present invention;
[0063] Figure 13 It is an algorithm block diagram of each module in the system according to an embodiment of the present invention;
[0064] Figure 14 It is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. Detailed implementation manners
[0065] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are some, but not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts fall within the protection scope of the present invention.
[0066] SLAM is generally used for the positioning of indoor mobile robots. When first used in a new environment, the mapping mode of SLAM is usually enabled first to construct an environmental map. When using the robot later, the positioning mode of SLAM will be turned on to perform positioning on this map. SLAM is divided into local SLAM and global SLAM. Local SLAM is also called the front - end, and its main work is to perform local optimization and local mapping; global SLAM is also called the back - end, and its main work is to perform global optimization and global mapping.
[0067] After traditional SLAM methods create a map, the map will not change. Other algorithms need to be used for dynamic updates. However, there are some problems in some dynamic map update methods:
[0068] In a dynamic environment, map updates need to maintain consistency, that is, the original map information and new observation data should be seamlessly integrated. However, map updates in traditional methods may lead to inconsistencies, such as map misalignment and ghosting;
[0069] In addition, dynamic map updates need to be carried out under real-time requirements, process a large amount of sensor data under limited computing resources, and occupy a large amount of memory. Some algorithms and optimization techniques in traditional SLAM methods may not meet the real-time requirements, or require a large amount of hardware resources, limiting the efficiency and feasibility of dynamic map updates.
[0070] Therefore, this application proposes a method for dynamically updating a robot map, which is based on real-time dynamic 2D-SLAM map updating of a mobile robot. Positioning and navigation are performed on the positioning map, and multiple local submaps are generated simultaneously. The initial scan matching will perfectly overlap the newly generated local submap with the corresponding position on the positioning map (the previously generated global map). The newly created local submap and the positioning map are disassembled and reconstructed into a new grid map. The reconstructed grid map is used to judge and delete duplicates and establish local submaps with earlier timestamps, completing the update of all local submap data. The map update thread will periodically obtain the local submap data that has been updated at the backend to redraw the global map.
[0071] In view of this, according to an embodiment of the present invention, an embodiment of a method for dynamically updating a robot map is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions, and although the logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in a different order than here.
[0072] In this embodiment, a method for dynamically updating a robot map is provided, which can be used in control systems, terminal devices, servers, etc. on mobile robots, Figure 1 is a flowchart of a method for dynamically updating a robot map according to an embodiment of the present invention, as Figure 1 shown, the process includes the following steps:
[0073] Step S101, obtain an initial local submap and point cloud data continuously collected by the mobile robot. The initial local submap is the submap corresponding to the previously generated global map.
[0074] When SLAM is used for the first time in a new environment, the mapping mode of SLAM is usually enabled first to construct an environmental map. When the robot is used later, the positioning mode of SLAM is turned on to perform positioning on this global map. However, if there is already a map of the current environment in SLAM and the robot is in a real-time positioning state, the previously generated global map is obtained. Then, the initial local sub-map obtained here can be the sub-map corresponding to the global map established when first used in the new environment, or the sub-map corresponding to the previously generated global map when already in a real-time positioning state.
[0075] In this embodiment, a lidar sensor for collecting point cloud data can be installed on the mobile robot. When the lidar sensor scans for one cycle, a frame of point cloud data can be obtained, and each frame of point cloud data corresponds to a robot pose. During the movement of the mobile robot, every preset time, a frame of point cloud data is collected. For example, a frame of point cloud data can be collected every 100 ms.
[0076] Step S102: Generate multiple local sub-maps in sequence using the point cloud data. That is, use one or more frames of collected point cloud data to generate a local sub-map. Several frames of point cloud data can be used to generate several local sub-maps, and the global map is composed of countless local sub-maps. Among them, the local sub-map is established by local SLAM, that is, the front end, and the entire SLAM, that is, the back end, is used for constraint calculation and global optimization.
[0077] Step S103: Based on the initial local sub-map and the generated local sub-maps, establish a grid map. Among them, every time a newly generated local sub-map is obtained, the grid map is updated once, and the initial local sub-map and the sequentially generated local sub-maps all carry the establishment time of the sub-map.
[0078] In this embodiment, the initial local sub-map in the previously generated global map can be broken up and constructed with the newly generated local sub- Figure 1 maps to form a new grid map, and this grid map does not occupy specific memory. The grid map can be referred to Figure 2 as shown, Figure 2 which is a schematic diagram of the grid map corresponding to when there is only one local sub-map. It should be noted that the grid map in this embodiment is not equivalent to the global map. This grid map is only used to judge duplicate and time-advanced local sub-maps, so as to update all local sub-map data, and then regenerate the global map to update the existing global map.
[0079] In the case where a local submap is composed of several frames of point cloud data, when the front end obtains each frame of point cloud data, it will match with the current local submap to find the optimal pose (node) of the robot corresponding to this frame of point cloud data. After successful matching, the current node and point cloud data are inserted into the local submap to participate in the construction of the local submap. It can be that after inserting 180 nodes, the creation of the next local submap starts. Then the establishment time of the local submap can be the time corresponding to the latest inserted submap node, that is, the time corresponding to the insertion of the last frame of point cloud data.
[0080] Obtain the constraints within the local submap completed by the backend calculation (the coordinate transformation from the node to the origin of the submap, and this node belongs to the interior of the submap), and find the maximum node ID corresponding to each local submap (the node ID of the last inserted node of this submap). Record the local submap ID as submap_ID, the corresponding maximum node ID as node_ID, and save the submap and the node in submap_time.
[0081] Traverse the saved local submaps submap_time. If the corresponding submap is not found in the previously obtained local submaps submap_data, it means that this submap is in the process of being newly created, and skip it without calculating its establishment time. If found, it means that this submap is already in a completed state, and use the timestamp of the node_ID corresponding to this submap_ID as the establishment time of this local submap. After obtaining the establishment time of each local submap, duplicate submaps can be selectively deleted based on this time later.
[0082] Step S104, determine the number of submaps corresponding to each grid in the grid map.
[0083] It can be referred to Figure 3 As shown, there are three submaps O1, O2, and O3. Assume that O1 is established first, followed by O2, and finally O3. O1, O2, and O3 together form the grid map M0. Then Figure 3 the number of submaps corresponding to the grids in the common part of the three submaps (the gray area) is more than one.
[0084] Step S105, in the case where the number of submaps corresponding to a grid is more than one, delete the local submap with an earlier establishment time corresponding to the grid so that each grid corresponds to only one local submap.
[0085] Traverse all the grids in the grid map M0 in sequence, and determine whether the number of sub-map IDs saved in the grid is greater than 1. If it is greater than 1, it means that there is more than 1 local sub-map belonging to this grid. In fact, at most only one grid is allowed to belong to 1 local sub-map. Sort all the local sub-maps belonging to this grid in ascending order according to the time when the local sub-maps are established, and delete the local sub-map IDs with earlier times until only 1 local sub-map ID belongs to this grid. At the same time, record the number of grids in the grid map M0 covered by each local sub-map in each loop.
[0086] If the number of grids in the grid map M0 covered by a local sub-map is less than 2, it means that this sub-map is incomplete, and such local sub-map IDs also need to be deleted. Find out all the local sub-maps that need to be deleted in sequence. Delete the specified local sub-map IDs and delete the relevant constraints and nodes.
[0087] Refer to Figure 3 As shown, since there are overlapping areas among the three sub-maps, that is, there is a grid covered by 3 local sub-maps. In this case, two local sub-maps O1 and O2 will be deleted, and O3 will be retained so that each grid corresponds to only one local sub-map, thus completing the update of the sub-map data. In the whole process of updating the local sub-map data, a separate map update thread will be opened at the back end and continuously loop executed in the robot navigation, which can greatly save memory space.
[0088] In this embodiment, only three sub-maps are used as examples. In actual applications, the number of local sub-maps is very large, and each grid basically covers N sub-maps. Therefore, the situation of map loss will not occur.
[0089] The deletion steps of a local sub-map are as follows:
[0090] Step1: Delete the constraints related to the specified submapID;
[0091] Step2: Delete the constraints related to all nodes in the submapID;
[0092] Step3: Delete the pointer of this local sub-map;
[0093] Step4: Delete this local sub-map saved in the back-end optimization problem.
[0094] Step5: Find the nodes that belong to the inside of the local sub-map and are not in other local sub-maps, and these nodes need to be deleted.
[0095] So far, after finding and deleting the unqualified local sub-maps in the local sub-maps saved at the back end, the update of the local sub-map data is completed.
[0096] In addition, it is also necessary to introduce traditional SLAM positioning and navigation here. In traditional SLAM positioning and navigation, in order to ensure the real-time performance of positioning, only a local map m is newly created under the positioning trajectory, that is, only the latest 3 submaps generated are maintained throughout the positioning and navigation process. The previously created submaps will be automatically deleted after global optimization to avoid memory consumption. Since the positioning map M remains unchanged all the time, when the environment changes greatly, positioning problems (drift or loss of positioning) will occur. As follows Figure 4 Describes the processing of local submaps in the traditional positioning mode. The gray loop represents the trajectory 0 of the map M, and the black line represents the trajectory 1 of the local map m (also known as the positioning trajectory).
[0097] The map M is composed of 10 submaps from submap1 to submap10 when it is established. The positioning mode is enabled at the position of submap3 of M. The initialization positioning will make submap1 under the positioning trajectory 1 completely coincide with submap3 of the trajectory 0. Continuing to drive along the dark black trajectory line, submaps of trajectory 1 will be continuously newly created during the whole process. Since the newly created submaps will occupy memory, the previously created submaps (submap1~submap3) need to be deleted after global optimization at the back end, and only the current latest 3 submaps (submap4~submap6) are retained.
[0098] In this embodiment, for the processing of newly created submaps under the positioning trajectory in the proposed map update, there are different solutions. Instead of simply deleting the previously generated submaps in sequence, selectively delete the duplicate and earlier-created submaps to update all the submap data saved at the back end. Then use the updated submaps to regenerate the positioning map required for positioning.
[0099] Since the map is composed of countless submaps, and the initial positioning can perfectly coincide the newly created local map with the corresponding position of the positioning map. When the environment changes, the newly created submaps can be used to replace the submaps in the positioning map to continuously update the map dynamically.
[0100] When the back end executes global optimization, obtain the submap data submap_data that is in the completed state and has been optimized at the back end. Judge whether the difference between the number of submaps and the number of submaps obtained last time is greater than 1. If it is greater than 1, it means that a new submap has been created, and start to search downwards to delete the duplicate and earlier-created submaps.
[0101] Step S106, generate the latest global map based on all the updated local submaps.
[0102] In this embodiment, all the updated local submaps will be written into a pbstream file (the pbstream file refers to the Protocol Buffer Stream file, which is a file format for serializing and storing Protocol Buffer data. Protocol Buffer is an open-source technology for serializing structured data. It can convert structured data into a binary format to achieve cross-platform and cross-language data exchange), and then the generated pbstream file will be drawn into the final visualized raster map (pgm format), that is, the global map, using the Cairo library (Cairo is an open-source 2D graphics rendering engine library that supports various output devices including X-Windows, Win32, images, and pdf). All the updated local submaps will periodically regenerate a new global map and replace the original localization map.
[0103] In this embodiment, local SLAM, that is, the front end, transmits the generated local submaps to the back end for constraint calculation and global optimization. After each optimization, all the optimized local submaps saved by the back end will be reconstructed and updated for the grid map, and then the reconstructed grid map will be used to judge and delete duplicate and early-time local submaps to achieve the update of local submaps. Finally, based on all the updated local submaps, the latest visualized global map will be generated. The positioning module in the mobile robot in this application realizes positioning and navigation on the existing map. After the positioning is enabled, local submaps of the latest environment will be continuously generated. The whole system can continuously generate local submaps on the basis of the existing map, and at the same time start a map update thread to achieve the effect of the robot updating all local submaps while positioning, so as to achieve the update of the global map. While updating the global map, the memory consumption is reduced. When there are significant changes in the indoor environment, the global map can be updated in a timely manner to avoid the situation of the robot losing its position during operation. By using the robot map dynamic update method provided in this embodiment, not only can the function of real-time dynamic updating of the global map be realized, but also the update efficiency is high, it does not consume a large amount of computing resources, and it also saves memory space.
[0104] Refer to Figure 5 As shown, in some alternative embodiments, before successively generating multiple local submaps using the point cloud data, it further includes:
[0105] Step S1011, obtain the pose of the mobile robot determined last time, use the global map generated last time as the positioning map, and use the pose of the mobile robot determined last time as the initial pose.
[0106] In this embodiment, while obtaining the global map generated last time, it is also necessary to obtain the pose of the mobile robot determined last time as the initial pose for scan matching.
[0107] The localization map M file includes the binary file XXX.pbstream and XXX.pgm for visual display. When the localization module is enabled, the localization map will be loaded first for initial localization, and at the same time, the map update thread will be started.
[0108] The localization map M is composed of submaps stitched together. Each submap internally stores the pose of the robot in the map coordinate system and the laser point cloud data (scan) at each pose. Refer to Figure 6 As shown, it describes the data composition of the localization map M and the stitching diagram of local submaps, and one localization map M corresponds to one trajectory. If the localization map corresponds to trajectory 0, the newly created local submap for localization corresponds to trajectory 1.
[0109] After the localization is enabled, the previously recorded localization data is first obtained at a fixed path as the initial pose for scan matching, and the data of the loaded localization map (pbstream file) is used for initial scan matching.
[0110] Step S1012: Obtain the point cloud data corresponding to the initial pose.
[0111] This initial pose is often calculated according to the pose estimator at the front end, and the pose estimator depends on the odometer installed on the robot. The odometer is mainly used to estimate the relative position of the moving target at different times, and there is an accumulated error in the odometer, resulting in inaccurate estimation of the robot's pose. Therefore, it is necessary to correct the local pose, that is, the initial pose determined at the front end.
[0112] Step S1013: Determine the angular search window and the linear search window. The angular search window is used for the pose matching of the mobile robot, and the linear search window is used for the position matching of the mobile robot.
[0113] Refer to Figure 7 As shown, the pentagon represents the robot, the circle represents the laser data, the square in gray represents the linear search window (the area to be traversed), and the square in black represents the obstacle. The angular search window can be from -20° to 20°. At the initial pose, the optimal pose is searched according to the linear search window and the angular search window.
[0114] Step S1014: Based on the point cloud data corresponding to the initial pose, generate a set of estimated poses according to the angular search window and the linear search window. The set of estimated poses includes multiple estimated poses and the point cloud data corresponding to each estimated pose.
[0115] After determining the linear search window and the angular search window, different pose point sets are generated according to the angular search window. According to the linear search window, each frame of point cloud data in the set is translated into the vehicle body coordinate system to generate all estimated poses.
[0116] Suppose the side length of the grid in the linear search window is 0.05 m. If the linear search window is set to 0.1 m, then there are 2×2, that is, 4 grids. Suppose the angular resolution of the angular search window is 1. In the angular range from -20° to 20°, there are 41 rotation angles. The linear search window has 4 values, and the angular search window has 41 values. Then there are a total of 4×41 estimated poses. Each estimated pose corresponds to simulated point cloud data.
[0117] Step S1015: Calculate the matching degree between the point cloud data corresponding to each estimated pose and the positioning map, and determine the estimated pose with the highest matching degree.
[0118] As described above, after obtaining the previous positioning map, when each estimated pose is calculated and the point cloud data corresponding to each estimated pose is determined, it is necessary to determine which estimated pose is the optimal pose.
[0119] Specifically, the matching degree can be determined by calculating the score of the point cloud data falling on the positioning map. Suppose the resolution of the lidar is 0.6, then one frame of point cloud data will have 360 / 0.6 = 600 data points. If the point cloud data corresponding to the estimated pose falls on the positioning map, it gets 1 point. Finally, the estimated pose with the highest score is determined, which is also the estimated pose with the highest matching degree.
[0120] Step S1016: Use the offset between the estimated pose with the highest matching degree and the initial pose to correct the initial pose to obtain the optimal pose.
[0121] After determining the estimated pose with the highest matching degree, the offset between this estimated pose and the initial pose can be determined, and then the initial pose can be corrected to determine the optimal pose.
[0122] In this embodiment, according to the initial pose of the mobile robot, continuous scan matching is performed to determine the optimal pose of the mobile robot, so that the newly created local submap in the positioning mode will coincide with the corresponding position of the positioning map M after scan matching, which is convenient for subsequent updating of local submap data and improves the accuracy of global map creation.
[0123] After the positioning initialization is successful, the front end continuously matches the newly created submaps, and the back end calculates the constraints between the current robot pose and the submaps (divided into intra-submap constraints and inter-submap constraints, which refer to the coordinate transformation between the node (robot pose) and the origin of the submap. The difference between intra-submap constraints and inter-submap constraints is whether the node is within the submap), and performs global optimization to establish a connection between the newly created local submap and the positioning map M (the inter-submap constraint refers to the coordinate transformation between the local submap in the positioning map and the current trajectory node, also known as loop detection). The overall task of the positioning module is to complete the functions of both positioning and mapping on the basis of the existing positioning map.
[0124] Referring to Figure 8 As shown, in some alternative embodiments, based on the initial local submap and the generated local submaps, a grid map is established, including:
[0125] Step S1021, obtain the pixel coordinate system corresponding to the initialized grid and the coordinate range of the pixel coordinate system. The initialized grid is the grid initialized when the local submap starts to be established;
[0126] Step S1022, determine the physical coordinates of the starting point of each local submap in the map coordinate system. The starting point of the local submap is the pose inserted into the local submap for the first time;
[0127] Step S1023, based on the physical coordinates, the coordinate range, and the coordinate resolution of the map coordinate system, determine the maximum coordinates of the grid map; among them, for each determined starting point of the local submap, a maximum coordinate will be determined.
[0128] In this embodiment, it can be referred to Figure 2 As shown, when the local submap is newly created at the beginning, it will be initialized as a 100×100 grid (cell), that is, the pixel coordinate system is determined, that is, the range of pixel coordinates is 0×0 to 100×100. The physical coordinate system is determined by the starting point (the robot pose inserted into the local submap for the first time) and the maximum coordinate (corresponding to the origin of the pixel coordinate system) P max to determine. The map resolution (the ratio of the physical coordinate system to the pixel coordinate system, that is, how many meters a pixel represents, and the default resolution is set to 0.05 meters, that is, the side length of each grid) is 0.05m. Then the calculation method of the maximum coordinate in the upper left corner of the physical coordinate system is:
[0129]
[0130] where P max represents the maximum coordinate of the physical coordinate system ( Figure 2 the physical coordinate corresponding to the minimum pixel coordinate in the upper left corner in Represents the physical coordinates of the starting point of the local submap coordinates in the map coordinate system. Eigen::Vector2d::Ones() is a two-dimensional unit vector in the Eigen (Eigen is a C++ template library for linear algebra and numerical calculations) library.
[0131] For ease of understanding, the above process can be understood as the process of constructing a grid map based on the first local submap. The initialized grid map has a grid map with the same map range as the first local submap. When the second local submap is generated, the starting point of the local submap is then determined. and the maximum coordinate P max , as the maximum coordinate P max is updated, the grid map is also continuously updated, and then based on the sequentially generated local submaps, the grid map is continuously updated.
[0132] In this embodiment, all optimized local submaps saved in the backend will be used for reconstructing and updating the grid map, and then the reconstructed grid map is used to judge and delete duplicate and early local submaps to achieve the update of local submaps, which can not only improve the update efficiency of the global map but also reduce the consumption of memory space.
[0133] In some alternative embodiments, based on the initial local submap and the sequentially generated local submaps, a grid map is established, including:
[0134] Traverse the physical coordinates of all submap grids in the local submap in the local map coordinate system, where the local map coordinate system is the coordinate system under local SLAM;
[0135] Convert the physical coordinates of the submap grids in the local map coordinate system to the physical coordinates of the submap grids in the global map coordinate system, where the global map coordinate system is the coordinate system under global SLAM;
[0136] Use the physical coordinates of the submap grids in the local submap in the global map coordinate system to establish a grid map.
[0137] As described above, the local submaps are established by the front end, and the back end is used for constraint calculation and global optimization.
[0138] For the front end, the optimization section mainly includes brute-force search matching based on CSM (correlative scan matching) and fine matching based on ceres (Ceres Solver is an open-source C++ library for modeling and solving large and complex optimization problems. It can be used to solve nonlinear least squares problems with boundary constraints and general unconstrained optimization problems). The optimized optimal pose of the current robot will participate in the construction of the local submap and output the mapping result of the front end.
[0139] For the backend, every time the front end writes a frame of point cloud data to the local submap, this frame of point cloud data and the corresponding robot pose are passed to the backend for constraint calculation. The backend accumulates 90 frames of point cloud data. After the constraint calculation is completed, global optimization starts, and finally a high-precision global map and the optimized robot pose are output.
[0140] In the present invention, the update of the local submap data is all based on the backend. To ensure global consistency, in this embodiment, the physical coordinates of all submap grids in the local submap in the local map coordinate system are converted into the physical coordinates of the submap grids in the global map coordinate system.
[0141] In some optional embodiments, the physical coordinates in the local map coordinate system are converted into the physical coordinates in the global map coordinate system through the following formula:
[0142] P local =(P max .x() - 0.05 * (cell.y() + 0.5), P max .y() - 0.05 * (cell.x() + 0.5), 0)
[0143]
[0144] P global =R gl *P local
[0145] where P local is the physical coordinate of the submap grid in the local map coordinate system, P global is the physical coordinate of the submap grid in the global map coordinate system, R gl is the coordinate transformation from the global map coordinate system to the local map coordinate system, P max is the maximum coordinate, P gs is the coordinate of the starting point of the local submap in the global map coordinate system, is the inverse of the starting point of the local submap in the local map coordinate system, 0.05 is the map resolution, and cell is the pixel coordinate on the local submap.
[0146] Traverse all the obtained local submaps in sequence. If the creation time of the local submap exists and the local submap is in a completed state, continue to execute; otherwise, skip this local submap. Obtain the grid offset information offset (the physical coordinate of the upper left corner of the grid in the map coordinate system, i.e., the maximum coordinate) and the grid size (the number of grids num) of this local submap. If the grid size num of the local submap is zero, output a warning message and skip this submap.
[0147] Traverse all sub - graph grids of this local sub - graph, and calculate the coordinates P of each sub - graph grid in the local map coordinate system local , and convert the local coordinates to the global map coordinates P global . It should be noted that in this embodiment, both the local and global map coordinate systems are map coordinate systems. The difference is that the coordinates in the global coordinate system are the coordinates after global optimization.
[0148] In some alternative embodiments, a grid map is established using the physical coordinates of the sub - graph grids in the local sub - graph in the global map coordinate system, including:
[0149] Obtain the grid offset information of the local sub - graph, where the grid offset information is the maximum coordinate corresponding to the local sub - graph;
[0150] Based on the grid offset information, the physical coordinates of the sub - graph grids in the global map coordinate system, and the map resolution, determine the pixel coordinates of each sub - graph grid on the grid map;
[0151] The calculation method of the pixel coordinate cell_id of the cell in the grid map M0 is as follows:
[0152] cell_id((offset(x)-P global .x) / 0.05,(offset(y)-P global .y) / 0.05)
[0153] That is, subtract the physical coordinates corresponding to the sub - graph grid in the global map coordinate system from the offset offset, and then divide by the resolution 0.05.
[0154] After knowing the coordinates of each sub - graph grid in the global map coordinate system, add them to the grid map M0. Continuously loop to add all the sub - graph grids in the current local sub - graph to the grid map M0.
[0155] Each grid in each grid map stores the sub - graph index of the corresponding local sub - graph, the establishment time, and the pixel coordinates of the sub - graph grid in the corresponding local sub - graph to complete the reconstruction of the entire grid map M0. Among them, the sub - graph index can be the sorting of the establishment of the local sub - graph.
[0156] In some alternative embodiments, based on all updated local sub - graphs, a latest global map is generated, including:
[0157] Obtain all updated local sub - graphs once every preset time, where each local sub - graph corresponds to a sub - graph index.
[0158] According to the sub - graph index, extract the grid data corresponding to the local sub Figure 1 - graph one by one;
[0159] Load the grid data into the canvas and convert it into a visual raster map, which is used as the global map.
[0160] After the positioning module is initialized, a map file update thread (XXX.pbstream and XXX.pgm) will be started simultaneously until the positioning module is stopped or the positioning system is shut down. The Pbstream file is generated from all the updated local sub-map data at the backend, and the raster map in pgm format is generated from the pbstream file. First, check whether the positioning module is successfully initialized. If it is successfully initialized, enter the main thread loop.
[0161] Obtain all the updated local sub-map data and various status information at the backend and write them in proto format (Proto format refers to Protocol Buffers developed by Google, abbreviated as ProtoBuf), which is a binary format for serializing structured data and aims to achieve efficient, scalable, and cross-platform data communication). Then compress the data and write it into the pbstream file in the corresponding path. Regenerate the probability raster map (pgm format) based on the saved pbstream file. Replace the map data in the message pool (the module for saving data) with the newly generated probability raster map. The visualization display module will periodically obtain the map data from the message pool.
[0162] In this embodiment, the global map can be updated periodically. A timer can be added after the pgm is generated, so that the global map update service is executed once every preset time (which can be 20 minutes).
[0163] The specific steps for generating the pbstream file are as follows:
[0164] Step1: Write the backend pose graph in proto format, which can be referred to Figure 9 As shown, the pose graph is a graph structure where nodes represent poses (robot pose m and sub-map pose x), and edges represent the coordinate transformation between the poses of two nodes;
[0165] Step2: Write all the parameter configurations under the positioning trajectory 1 corresponding to the newly created local sub-map in proto format;
[0166] Step3: Write all the local sub-map data (submap) in proto format;
[0167] Step4: Write the radar data, odometry (odom) data, the robot pose saved at the front and back ends, and the timestamp in proto format;
[0168] Step5. Compress all the proto-format data;
[0169] Step6. Write the compressed data into the pbstream file under the corresponding path.
[0170] The steps to generate the probability grid map are as follows:
[0171] Step1. Obtain the submap index from the pbstream;
[0172] Step2. Retrieve the grid data of the submap according to the submap index;
[0173] Step3. Draw the grid data on the canvas to generate an image in cairo format;
[0174] Step4. Convert the map in the canvas into a grid map (generate a map in pgm format from the cairo image).
[0175] The update of the entire global map file is as described above. The required data is sourced from all the updated local submap data at the backend. All the local submap data at the backend will be updated once after each execution of the global optimization. In the map update thread, the updated submap data will be periodically fetched from the backend to regenerate the entire map file, ultimately completing the dynamic update of the map. The update will not affect the overall structure of the original positioning map, enabling iterative updates from the local map to the global map, allowing the robot to easily handle complex and changing scenarios.
[0176] In this embodiment, the positioning is performed for navigation on the existing map. After the positioning is enabled, submaps of the latest environment will be continuously newly generated. Using the newly generated submaps and the positioning sub- Figure 1 reconstruct a grid map, and use the grid map to judge and delete duplicate and earlier submaps to achieve the dynamic update of the entire global map.
[0177] The entire system can continuously update the local map on the basis of the existing map, thereby achieving the effect of updating the entire map. While updating the map, it reduces the memory consumption. When there are significant changes in the indoor environment, it can update the map in a timely manner to avoid the situation where the robot loses its positioning during operation.
[0178] Refer to Figure 10 and Figure 11 As shown, a comparison chart of the map update effect is provided. Among them, as Figure 10 shown, the entire map is the map established in the mapping mode. On this map, the positioning mode is enabled to perform the positioning and navigation of the mobile robot. Among them, 1 represents the mobile robot; 2 represents the running trajectory of the mobile robot; 3 represents the cardboard box obstacle in the mapping mode.
[0179] In the positioning mode, move the cardboard box obstacle at position 3 to position 4 to simulate the change of the environment. After the mobile robot runs along the predetermined trajectory for a period of time, it can be seen that there is no cardboard box at position 3 now, so there is no obstacle at this position on the updated map, as Figure 11 shown. Since a cardboard box is placed at position 4, the outline of the obstacle will be displayed on the updated map. Therefore, the dynamic map update method for the robot provided by the present invention can help the mobile robot easily cope with the dynamically changing scenarios without problems such as errors and ghost images. At the same time, the operation process is smooth without freezing, fully meeting the requirements of positioning real-time performance.
[0180] In this embodiment, a dynamic map update system for a robot is further provided. This system is used to implement the above-mentioned embodiments and preferred implementation manners, and those that have been described will not be repeated. As used hereinafter, the term "module" can be a combination of software and / or hardware that can achieve a predetermined function. Although the systems described in the following embodiments are preferably implemented in software, implementation in hardware, or a combination of software and hardware is also possible and contemplated.
[0181] This embodiment provides a dynamic map update system for a robot, as Figure 12 shown, including:
[0182] A positioning module 201, configured to obtain an initial local sub-map and point cloud data continuously collected by the mobile robot, where the initial local sub-map is the sub-map corresponding to the global map generated last time; and is further configured to sequentially generate a plurality of the local sub-maps by using the point cloud data;
[0183] A map data update module 202, configured to establish a grid map based on the initial local sub-map and the generated local sub-maps. Wherein, each time a newly generated local sub-map is obtained, the grid map is updated once, and both the initial local sub-map and the sequentially generated local sub-maps carry the establishment time of the sub-map; configured to determine the number of sub-maps corresponding to each grid in the grid map; and is further configured to delete the local sub-map with an earlier establishment time corresponding to the grid in the case where the number of sub-maps corresponding to the grid is more than one, so that each grid corresponds to only one local sub-map;
[0184] A map file update module 203, configured to generate the latest global map based on all the updated local sub-maps.
[0185] In this embodiment, the algorithm framework diagram for the overall global map update is as Figure 13 shown. For the function description corresponding to each module, please refer to the above method embodiment.
[0186] The robot map dynamic update system in this embodiment is presented in the form of functional units. Here, the unit refers to an ASIC circuit, a processor and a memory that execute one or more software or fixed programs, and / or other devices that can provide the above functions.
[0187] The further functional descriptions of the above-mentioned modules and units are the same as those in the corresponding embodiments above, and will not be elaborated here.
[0188] The embodiment of the present invention also provides a computer device having the above Figure 12 shown robot map dynamic update system.
[0189] Please refer to Figure 14 , Figure 14 which is a schematic structural diagram of a computer device provided by an alternative embodiment of the present invention. As shown in Figure 14 , the computer device includes: one or more processors 10, a memory 20, and an interface for connecting each component, including a high-speed interface and a low-speed interface. Each component communicates with each other using different buses and can be installed on a common motherboard or installed in other ways as needed. The processor can process instructions executed within the computer device, including instructions stored in the memory or on the memory to display graphical information of the GUI on an external input / output device (such as a display device coupled to the interface). In some alternative embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple computer devices can be connected, and each device provides some necessary operations (such as an array of servers, a set of blade servers, or a multi-processor system). Figure 14 One processor 10 is taken as an example in
[0190] The processor 10 can be a central processing unit, a network processor, or a combination thereof. Among them, the processor 10 can further include a hardware chip. The above hardware chip can be an application-specific integrated circuit, a programmable logic device, or a combination thereof. The above programmable logic device can be a complex programmable logic device, a field programmable gate array, a general array logic, or any combination thereof.
[0191] Among them, the memory 20 stores instructions executable by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiments.
[0192] The memory 20 may include a program storage area and a data storage area. Among them, the program storage area can store an operating system and application programs required for at least one function; the data storage area can store data created according to the use of a computer device for the display of a kind of mini-program landing page, etc. In addition, the memory 20 may include high-speed random access memory, and may also include non-transitory memory, such as at least one magnetic disk storage device, a flash memory device, or other non-transitory solid-state storage devices. In some alternative embodiments, the memory 20 may optionally include a memory remotely disposed relative to the processor 10, and these remote memories can be connected to the computer device through a network. Examples of the above-mentioned network include but are not limited to the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0193] The memory 20 may include volatile memory, for example, random access memory; the memory may also include non-volatile memory, for example, flash memory, a hard disk, or a solid-state drive; the memory 20 may further include a combination of the above-mentioned types of memory.
[0194] The computer device further includes a communication interface 30 for the computer device to communicate with other devices or a communication network.
[0195] The embodiments of the present invention further provide a computer-readable storage medium. The methods according to the embodiments of the present invention can be implemented in hardware, firmware, or be implemented as computer code that can be recorded on a storage medium, or be implemented by downloading through a network. The computer code is originally stored in a remote storage medium or a non-transitory machine-readable storage medium and will be stored in a local storage medium, so that the methods described herein can be stored as such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only memory, a random access memory, a flash memory, a hard disk, or a solid-state drive, etc.; further, the storage medium may also include a combination of the above-mentioned types of memory. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by the computer, the processor, or the hardware, the methods shown in the above embodiments are implemented.
[0196] Although the embodiments of the present invention are described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations all fall within the scope defined by the appended claims.
Claims
1. A method for dynamically updating a robot map, characterized in that The method includes: Obtaining an initial local submap and point cloud data continuously collected by a mobile robot, where the initial local submap is the submap corresponding to the globally generated map in the previous time; Successively generating a plurality of the local submaps by using the point cloud data; Based on the initial local submap and the generated local submaps, establishing a grid map, where each time a newly generated local submap is obtained, the grid map is updated once, and the initial local submap and the successively generated local submaps all carry the establishment time of the submap; Determining the number of submaps corresponding to each grid in the grid map; In the case where the number of submaps corresponding to the grid is more than one, deleting the local submap with an earlier establishment time corresponding to the grid, so that each grid only corresponds to one local submap; Generating a latest globally generated map based on all the updated local submaps.
2. The method according to claim 1, characterized in that, Before successively generating a plurality of the local submaps by using the point cloud data, it further includes: Obtaining the pose of the mobile robot determined in the previous time, using the globally generated map in the previous time as a positioning map, and using the pose of the mobile robot determined in the previous time as an initial pose; Obtaining the point cloud data corresponding to the initial pose; Determining an angular search window and a linear search window, where the angular search window is used for pose matching of the mobile robot, and the linear search window is used for position matching of the mobile robot; Based on the point cloud data corresponding to the initial pose, generating a set of estimated poses according to the angular search window and the linear search window, where the set of estimated poses includes a plurality of the estimated poses and the point cloud data corresponding to each estimated pose; Calculating the matching degree between the point cloud data corresponding to each estimated pose and the positioning map, and determining the estimated pose with the highest matching degree; Correcting the initial pose by using the offset between the estimated pose with the highest matching degree and the initial pose to obtain an optimal pose.
3. The method according to claim 1, characterized in that, The establishing a grid map based on the initial local submap and the generated local submaps includes: Obtaining the pixel coordinate system corresponding to the initialized grid and the coordinate range of the pixel coordinate system, where the initialized grid is the initialized grid when the local submap starts to be established; Determining the physical coordinates of the starting point of each local submap in the map coordinate system, where the starting point of the local submap is the pose inserted first into the local submap; Based on the physical coordinates, the coordinate range, and the coordinate resolution of the map coordinate system, determining the maximum coordinates of the grid map; Wherein, each time the starting point of a local submap is determined, a maximum coordinate is determined.
4. The method according to claim 3, characterized in that The establishing a grid map based on the initial local submap and the generated local submaps includes: Traversing the physical coordinates of all submap grids in the local submap in the local map coordinate system, where the local map coordinate system is the coordinate system in local SLAM; Convert the physical coordinates of the sub-map grid in the local map coordinate system into the physical coordinates of the sub-map grid in the global map coordinate system, where the global map coordinate system is the coordinate system under global SLAM; Use the physical coordinates of the sub-map grid in the local sub-map in the global map coordinate system to establish the grid map.
5. The method according to claim 4, wherein Convert the physical coordinates in the local map coordinate system into the physical coordinates in the global map coordinate system through the following formula: P local = (P max .x() - 0.05 * (cell.y() + 0.5), P max .y() - 0.05 * (cell.x() + 0.5), 0) P global = R gl * P local Among them, P local is the physical coordinate of the sub-map grid in the local map coordinate system, P global is the physical coordinate of the sub-map grid in the global map coordinate system, R gl is the coordinate transformation from the global map coordinate system to the local map coordinate system, P max is the maximum coordinate, P gs is the coordinate of the starting point of the local sub-map in the global map coordinate system, is the inverse of the starting point of the local sub-map in the local map coordinate system, 0.05 is the map resolution, and cell is the pixel coordinate on the local sub-map.
6. The method according to claim 4, wherein The establishing of the grid map by using the physical coordinates of the sub-map grid in the local sub-map in the global map coordinate system includes: Obtain the grid offset information of the local sub-map, where the grid offset information is the maximum coordinate corresponding to the local sub-map; Based on the grid offset information, the physical coordinates of the sub-map grid in the global map coordinate system, and the map resolution, determine the pixel coordinates of each sub-map grid on the grid map; Each grid in each grid map stores the sub-map index of the corresponding local sub-map, the establishment time, and the pixel coordinates of the sub-map grid in the corresponding local sub-map.
7. The method according to claim 6, characterized in that, The generating of the latest global map based on all the updated local sub-maps includes: Obtain all the updated local sub-maps once every preset time, where each local sub-map corresponds to a sub-map index; Extract the grid data corresponding one-to-one to the local sub-maps according to the sub-map index; Load the grid data into the canvas and convert it into a visual raster map, and use the visual raster map as the global map.
8. A robot map dynamic update system, characterized in that, The system includes: A positioning module, configured to obtain an initial local sub-map and the point cloud data continuously collected by a mobile robot, where the initial local sub-map is the sub-map corresponding to the global map generated last time; and is further configured to generate a plurality of local sub-maps in sequence by using the point cloud data; A map data update module, configured to establish a grid map based on the initial local sub-map and the generated local sub-maps, where each time a newly generated local sub-map is obtained, the grid map is updated once, and the initial local sub-map and the sequentially generated local sub-maps all carry the establishment time of the sub-map; is configured to determine the number of sub-maps corresponding to each grid in the grid map; and is further configured to delete the local sub-map with the earlier establishment time corresponding to the grid in the case where the number of sub-maps corresponding to the grid is more than one, so that each grid only corresponds to one local sub-map; A map file update module, configured to generate the latest global map based on all the updated local sub-maps.
9. A computer device, characterized in that, Including: A memory and a processor, which are communicatively connected to each other, the memory stores computer instructions, and the processor executes the computer instructions to execute the robot map dynamic update method according to any one of claims 1-7.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions, and the computer instructions are used to cause the computer to execute the robot map dynamic update method according to any one of claims 1-7.
Citation Information
Patent Citations
Static map generation method and device, computer equipment and storage medium
CN112799095A
Parking map updating method and device and electronic equipment
CN116499452A