Map updating method and apparatus, and autonomous moving apparatus and storage medium

By regularly building local maps and performing small-scale updates to the global maps, and combining semantic maps to mark static and dynamic areas, the problems of low map update efficiency and poor consistency in autonomous navigation technology are solved, and more efficient and accurate map updates are achieved.

WO2025050384A1PCT designated stage expired Publication Date: 2025-03-13KUKA ROBOTICS GUANGDONG CO LTD +2

Patent Information

Application Number
PCT/CN2023/117743
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-08
Publication Date
2025-03-13

AI Technical Summary

Technical Problem

The existing autonomous navigation technology is difficult to effectively update maps in complex industrial scenarios, resulting in reduced positioning accuracy and poor map consistency.

Method used

By obtaining the position and sensor data of pre-built global maps, semantic maps and autonomous mobile devices, local maps are regularly built to limit their coverage, and small-scale updates to the global maps, and static and dynamic areas are marked with semantic maps to improve the accuracy of updates.

Benefits of technology

It has achieved improved efficiency and accuracy of map updates, ensured the consistency and quality of the global map, and effectively alleviated the problem of deteriorating map quality caused by map updates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023117743_13032025_PF_FP_ABST
    Figure CN2023117743_13032025_PF_FP_ABST
Patent Text Reader

Abstract

A map updating method and apparatus, and an autonomous moving apparatus and a storage medium, which relate to the technical field of autonomous navigation. The method comprises: acquiring a pre-constructed global map, a semantic map, the pose of an autonomous moving apparatus, and sensor data, wherein a static region and a dynamic region in the global map are labeled in the semantic map (S110); on the basis of the pose and the sensor data, periodically constructing a local map, so as to define the coverage range of the local map (S120); aligning the global map with the local map, so as to obtain a target local map aligned with the global map (S130); and on the basis of the global map, the semantic map and the target local map, updating the global map (S140). The consistency of a global map can be ensured, the quality of the global map is improved, and the efficiency and accuracy of updating a map are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Map updating method and device, autonomous mobile device, and storage medium Technical Field

[0001] The embodiments of the present application relate to the field of autonomous navigation technology, and more specifically, to a map updating method and device, an autonomous mobile device, and a storage medium. Background Art

[0002] Simultaneous Localization and Mapping (SLAM) technology is one of the key technologies for realizing autonomous navigation of autonomous mobile devices, and its purpose is to solve the problems of positioning and mapping. SLAM refers to a mobile device equipped with specific sensors (such as lidar, inertial measurement unit, camera), which builds a model of the environment during movement without prior information about the environment, and estimates its own position, posture, motion trajectory and other states. The model that describes the environment is the map, which can be divided into metric maps and topological maps. Metric maps, such as raster maps, point cloud maps, and QR code maps, emphasize the positional relationship of objects in the map and are often used for positioning and small-scale route planning. Topological maps emphasize the relationship between map elements and ignore the actual physical size, and are often used for large-scale path planning.

[0003] One of the current challenges of autonomous navigation technology is that the complex industrial environments in which autonomous mobile devices operate are not static and unchanging. The prevalence of dynamic objects can cause changes in the local environment. Because positioning systems match sensor data with a global map to obtain their position within the global map, changes in the local environment can cause the map used by the positioning system to be inconsistent with the actual working environment, reducing positioning position reliability. Environmental changes can be categorized as short-term transient changes and long-term gradual changes based on the time period (scale) over which they occur. Short-term transient changes can include, but are not limited to, vehicles and personnel moving in a mixed environment. Short-term transient changes only affect positioning accuracy when they enter the coverage area of ​​the autonomous mobile device's sensors. Long-term gradual changes can include, but are not limited to, shelf movement and layout changes. Unlike short-term transient changes, long-term gradual changes typically do not occur during the operation time or coverage area of ​​the autonomous mobile device.

[0004] Related technologies use a method of periodically remapping the entire environment to update the global map. This method can only update the state of dynamic objects at the time of mapping, and dynamic objects in the environment have different change cycles. If the update cycle is long, dynamic objects with short change cycles may not be updated in the map in a timely manner. If the map update cycle is shortened, operating costs will increase and the normal work of other units will be affected. Mapping efficiency is too low, and mapping a large area takes too long. In other words, current map update methods suffer from low map update efficiency and poor consistency.

[0005] Summary of the Invention

[0006] The embodiments of the present application provide a map updating method and device, an autonomous mobile device, and a storage medium to improve the above-mentioned problems.

[0007] In a first aspect, an embodiment of the present application provides a map updating method, which includes: obtaining a pre-constructed global map, a semantic map, a position and posture of an autonomous mobile device, and sensor data, wherein the semantic map marks static areas and dynamic areas in the global map; periodically constructing a local map based on the position and the sensor data to limit the coverage of the local map; aligning the global map and the local map to obtain a target local map aligned with the global map; and updating the global map based on the global map, the semantic map, and the target local map.

[0008] In a second aspect, an embodiment of the present application provides a map updating device, which includes: a data acquisition module, which acquires a pre-constructed global map, a semantic map, the position and posture of an autonomous mobile device, and sensor data, wherein the semantic map marks the static areas and dynamic areas in the global map; a map construction module, which periodically constructs a local map based on the position and the sensor data to limit the coverage of the local map; a map alignment module, which aligns the global map and the local map to obtain a target local map aligned with the global map; and a map update module, which updates the global map based on the global map, the semantic map, and the target local map.

[0009] In a third aspect, an embodiment of the present application provides an autonomous mobile device, which includes: a memory and a processor, wherein an application is stored in the memory, and the application is used to execute the method provided by the embodiment of the present application when called by the processor.

[0010] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium having program code stored thereon, and the program code is used to enable the processor to execute the method provided by the embodiment of the present application when called by the processor.

[0011] The map updating method and device, autonomous mobile device, and storage medium provided in the embodiments of the present application can periodically construct a local map based on the position and sensor data of the autonomous mobile device to limit the coverage of the local map, align the local map to obtain a target local map aligned with the global map, and update the global map based on the global map, the semantic map, and the target local map. The global map can be updated in a small range each time to avoid large-scale global updates of the global map, thereby ensuring the consistency of the global map, improving the quality of the global map, and improving the efficiency and accuracy of map updates. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] To more clearly illustrate the technical solutions in the embodiments of this application, the following briefly introduces the drawings required for describing the embodiments. Obviously, the drawings described below are only some embodiments of this application, not all embodiments. All other embodiments and drawings obtained by ordinary technicians in this field based on the embodiments of this application without creative work are within the scope of protection of this application.

[0013] FIG1 is a structural block diagram of an autonomous mobile device provided in one embodiment of the present application;

[0014] FIG2 is a flowchart of a map updating method provided by an embodiment of the present application;

[0015] FIG3 is a flowchart of a map updating method provided by another embodiment of the present application;

[0016] FIG4 is a schematic diagram of a semantic map provided by an exemplary embodiment of the present application;

[0017] FIG5 is a flowchart of step S120 in FIG3 provided in one embodiment of the present application;

[0018] FIG6 is a schematic diagram of a pose graph provided by an exemplary embodiment of the present application;

[0019] FIG7 is a schematic diagram of a global map provided by an exemplary embodiment of the present application;

[0020] FIG8 is a partial flowchart of local mapping provided by an exemplary embodiment of the present application;

[0021] FIG9 is a partial flowchart of local mapping provided by another exemplary embodiment of the present application;

[0022] FIG10 is a partial flowchart of local mapping provided by another exemplary embodiment of the present application;

[0023] FIG11 is a partial flowchart of local mapping provided by another exemplary embodiment of the present application;

[0024] FIG12 is a flowchart of local mapping and map alignment provided by an exemplary embodiment of the present application;

[0025] FIG13 is a flowchart of step S140 in FIG3 provided in one embodiment of the present application;

[0026] FIG14 is a schematic diagram of a global map provided by another exemplary embodiment of the present application;

[0027] FIG15 is a schematic diagram of a global map provided by yet another exemplary embodiment of the present application;

[0028] FIG16 is a partial flow chart of a map updating method provided in another embodiment of the present application;

[0029] FIG17 is a flowchart of a map updating method provided by an exemplary embodiment of the present application;

[0030] FIG18 is a structural block diagram of a map updating device provided by an embodiment of the present application; and

[0031] FIG19 is a structural block diagram of an autonomous mobile device provided in another embodiment of the present application. DETAILED DESCRIPTION

[0032] Figure 1 is a block diagram of an autonomous mobile device according to one embodiment of the present application. Autonomous mobile device 100 may include, but is not limited to, an autonomous mobile robot (AMR) or an automated guided vehicle (AGV). Autonomous mobile device 100 may include a local mapping module 110, a map alignment module 120, a map update module 130, and a map management module 140.

[0033] As shown in Figure 2, Figure 2 is a flow chart of a map updating method provided by an embodiment of the present application. The local mapping module 110 is used to construct a local map based on the data output by the laser radar (LAdar), the inertial measurement unit (IMU), the wheel odometry, the camera, and the posture output by the positioning system of the autonomous mobile device 100. The local mapping module 110 can send the local map to the map alignment module 120 through the second-generation Robot Operating System (ROS) communication method or the remote procedure call (RPC) method, wherein the RPC can be a Google Remote Procedure Call (gRPC). The map alignment module 120 is used to align the local map with the global map. The map update module 130 is used to update the global map based on the local map aligned with the global map. The map management module 140 is used to manage the historical global map and the updated global map, and output the updated global map to the vehicle's positioning system so that the positioning system can locate the position of the autonomous mobile device 100 according to the updated global map.

[0034] In the embodiment of the present application, the local mapping module 110 is used to execute steps S110 to S120 below. The map alignment module 120 is used to execute step S130 below. The map update module is used to execute step S140 below. The map management module 140 is used to execute steps S210 to S230 below.

[0035] FIG3 is a flowchart of a map updating method provided by another embodiment of the present application. The map updating method can be applied to an autonomous mobile device or a map updating device. The map updating method may include the following steps S110 to S140.

[0036] Step S110: obtaining a pre-built global map, a semantic map, a position and posture of the autonomous mobile device, and sensor data, wherein the semantic map marks static areas and dynamic areas in the global map.

[0037] Typically, before an autonomous mobile device begins operating, it uses SLAM (Simultaneous Localization and Mapping) to comprehensively map the actual operating scenario. This creates a global map, which is then used for autonomous navigation. This global map can include obstacles present in the actual operating scenario during SLAM, such as walls, corridors, and shelves.

[0038] In this embodiment of the present application, the semantic map annotates static and dynamic areas in the global map. Dynamic areas are areas containing dynamic objects with low-cycle changes (e.g., shelves and pallets), while static areas include static map elements with distinct features in the global map (e.g., corridors, walls, and concrete pillars). For example, see the semantic map shown in Figure 4, where the area within the bold rectangle indicated by the arrow is the dynamic area.

[0039] To ensure the detection of low-period dynamic objects as much as possible, filter out moving objects from the map, and ensure the integrity of key map features to improve the accuracy of map updates, an embodiment of the present application employs at least two dynamic region determination methods to determine at least two preliminary dynamic regions from the global map, one for each dynamic region determination method; calculates the intersection of the at least two preliminary dynamic regions as the dynamic region; and constructs a semantic map based on the dynamic regions. The at least two dynamic region determination methods may include, but are not limited to, manual labeling, static obstacle filtering, map database analysis, and map likelihood difference methods.

[0040] The method for determining preliminary dynamic areas by manual labeling is as follows: outputting a global map so that relevant personnel can manually label dynamic areas on the global map, and obtaining the manually labeled areas on the global map as preliminary dynamic areas.

[0041] The method for determining preliminary dynamic areas using static obstacle filtering is as follows: Output a global map so that relevant personnel can process the global map. Only stable obstacles (e.g., corridors, walls, concrete pillars) in the actual operation scene of the autonomous mobile device are retained in the global map, and other areas that may change are erased. For example, relevant personnel can determine the static areas in the global map based on architectural drawings of the actual operation scene of the autonomous mobile device, and can determine the areas where shelf movement occurs based on the mission planning of the autonomous mobile device. The global map that only includes stable obstacles is used as a filter to filter out stable obstacles in the global map. Obtain a global map after manual processing. The areas in the global map other than stable obstacles are determined as preliminary dynamic areas.

[0042] The method for determining preliminary dynamic areas using a map database analysis method is as follows: multiple historical global maps are obtained from a map database. For the same grid in the multiple historical global maps, a change curve for the grid is generated. The grid change curve is modeled using a hidden Markov model (HMM). The curvature of the change curve is calculated, and the area corresponding to the grid with a curvature greater than a specified curvature is determined as the preliminary dynamic area. The specified curvature can be determined based on the actual accuracy requirements and the actual operating scenario of the autonomous mobile device, and is not specifically limited here. Generally, the larger the specified curvature, the greater the degree of change in the regional environment corresponding to the grid.

[0043] The map likelihood difference method is used to determine preliminary dynamic regions as follows: A likelihood algorithm is used to calculate the likelihood of the same grid in the local map and the global map. The regions corresponding to grids with likelihood values ​​greater than a specified likelihood value are identified as preliminary dynamic regions. The specified likelihood value can be determined based on actual accuracy requirements and the actual operating scenario of the autonomous mobile device, and is not specifically limited here. Generally, a larger specified likelihood value indicates a greater degree of environmental change in the region corresponding to the grid.

[0044] In an embodiment of the present application, the posture of the autonomous mobile device can be the posture output by the laser radar odometer or the posture output by the positioning system. The laser radar odometer uses the data output by the laser radar, inertial measurement unit, wheel speed odometer and camera, and is continuously constructed by a filtering method. The filtering method can adopt an existing filtering method and is not limited here. The posture output by the laser radar odometer is calculated based on the data output by the laser radar, inertial measurement unit, wheel speed odometer and camera, and there is a certain cumulative error. As time accumulates, the error will become larger and larger.

[0045] The autonomous mobile device is equipped with sensors for sensing the surrounding environment of the autonomous mobile device. The data detected by the sensors is called sensor data. The specific content of the sensor data is determined by the sensors actually installed in the autonomous mobile device. In the embodiment of the present application, the sensor data includes at least laser scanning data.

[0046] Step S120: Periodically construct a local map based on the position and sensor data of the autonomous mobile device to limit the coverage of the local map.

[0047] During the movement of the autonomous mobile device, a pose graph can be constructed based on the pose and sensor data output by the lidar odometry. When the pre-set conditions for periodic local map release are met, a local map is periodically constructed and released based on the pose graph. In the embodiment of the present application, the coverage of the periodically released local map is limited by constructing the local map based on the pose graph and limiting the number of nodes in the pose graph, thereby reducing the cumulative error and improving the accuracy of map updates.

[0048] Specifically, during the movement of the autonomous mobile device, as long as the conditions for periodic release of local maps are met, a local map will be constructed and released once. In the embodiment of the present application, each release of a local map and the steps before it form a method for constructing a round of local maps. The method for constructing a round of local maps is described below.

[0049] 5 , the method for constructing a round of local maps in step S120 may include steps S121 to S123 .

[0050] Step S121: Whenever a posture of an autonomous mobile device and a frame of sensor data are obtained, a posture graph is constructed in real time based on the obtained posture and sensor data.

[0051] For each posture, a motion filtering method can be used to detect whether the current posture meets the preset conditions. Specifically, whether the current posture meets the preset conditions can be determined based on the relative motion between the current moment and the previous moment. For example, the posture at the previous moment can be obtained, and the distance difference and angle difference between the current posture and the posture at the previous moment can be calculated. It is determined whether the distance difference between the current posture and the posture at the previous moment is greater than a preset distance. It is determined whether the angle difference between the current posture and the posture at the previous moment is greater than a preset angle difference. If the distance difference is greater than the preset distance or the angle difference is greater than the preset angle difference, it is determined that the current posture meets the preset conditions. If the distance difference is less than or equal to the preset distance and the angle difference is less than or equal to the preset angle difference, it is determined that the current posture does not meet the preset conditions. If the current posture meets the preset conditions, the current posture is added to the posture graph as a node. When the posture is added as a node to the posture graph, a frame of laser scanning data acquired at the same moment as the posture is added to the node corresponding to the posture. The postures acquired at the same moment (i.e., nodes in the posture graph) and the laser scanning data have a corresponding relationship. If the current pose does not meet the preset conditions, the current pose is skipped and the pose graph is not constructed based on the current pose. Motion filtering can filter out redundant poses in the pose, avoiding the addition of redundant nodes to the pose graph, thereby improving the efficiency of map construction and preventing problems such as non-convergence or poor optimization results when subsequently optimizing the pose graph.

[0052] In some embodiments, for each frame of sensor data, it is possible to detect whether the current sensor data includes preset reference object information. The preset reference object refers to a reference object that is pre-set and placed in the actual operating scene of the autonomous mobile device to assist in map alignment and map update. The preset reference object is independent of the environment and is not affected by environmental changes. The preset reference object may include but is not limited to a QR code and a reflector. The preset reference object information may include the pose of the preset reference object. If the current sensor data includes preset reference object information, the pose of the preset reference object is added as a node to the pose graph. By introducing the pose of the preset reference object into the pose graph, the constraint relationship between the nodes in the pose graph can be increased, the mapping quality can be improved when the environment changes drastically, and the robustness of local mapping can be improved.

[0053] For each new node in the pose graph, the corresponding constraint relationships are obtained, and the edges of the pose graph are constructed based on these constraints. The constraints for each node are the "calculated observation constraints" calculated by the lidar odometry based on data from the wheel odometer, inertial measurement unit, camera, and lidar output. As an example, referring to Figure 6, points 0, 1, 2, 3, ..., i, j, and m are nodes in the pose graph. The unbold single arrows represent edges connecting the nodes (i.e., edges in the pose graph). An edge in the pose graph constrains the two connected nodes and is the "calculated observation constraint" output by the lidar odometry. As the autonomous mobile device moves through the scene, the cumulative error in the "calculated observation constraint" increases, deviating from the "actual observation constraint" output by the lidar. As shown in Figure 6, point I is the actual pose of point i, point J is the actual pose of point j, and point M is the actual pose of point m. To eliminate cumulative errors, when an autonomous mobile device passes through a previously explored area, a closed-loop module can be used to calculate the constraints between the current pose and certain historical poses. For example, the bold double arrows in Figure 6 represent closed-loop constraints, and the current pose is corrected based on these constraints. Certain poses in the pose graph have a high degree of similarity to the image frames corresponding to the current pose. Closed-loop constraints can be calculated from poses with high image frame similarity. For example, if the image frame corresponding to point 3 in Figure 6 is highly similar to the image frame corresponding to point i, a closed-loop constraint can be calculated for point 3 and point i.

[0054] In the embodiment of the present application, a sliding window method is used to construct a pose graph. That is, the pose graph in the embodiment of the present application includes at least one window, and the size of each window can be measured according to the maximum number of nodes that can be included in the window. The maximum number of nodes that can be included in each window can be pre-set according to the environmental changes in the actual operation scene. If the environmental changes in an area are large, the maximum number of nodes that can be included in the window corresponding to the area is larger. If the environmental changes in an area are small, the maximum number of nodes that can be included in the window corresponding to the area is smaller.

[0055] In some embodiments, the window size can be dynamically adjusted according to the area division situation. For example, the window size corresponding to each area (i.e., the maximum number of nodes that the window can include) can be pre-set according to the environmental changes in each area in the actual operation scene of the autonomous mobile device. During the process of the autonomous mobile device moving and mapping in real time, the window size corresponding to the current area corresponding to the current window of the autonomous mobile device can be obtained, and the size of the current window can be adjusted according to the obtained window size so that the size of the current window is the same as the window size corresponding to the current area. In this embodiment, by dynamically adjusting the window size in real time according to environmental changes, the precision and accuracy of local mapping can be improved, thereby improving the accuracy of global map updates.

[0056] In other embodiments, while the autonomous mobile device is moving and mapping in real time, the current location of the autonomous mobile device can be obtained, the actual rate of environmental change of the dynamic area in the global map can be calculated, and the window size corresponding to the current location can be dynamically adjusted in real time based on the actual rate of environmental change. In this embodiment, by dynamically adjusting the window size in real time based on environmental changes, the precision and accuracy of local mapping can be improved, thereby improving the accuracy of global map updates.

[0057] For each window in the pose graph, when the number of nodes included in the current window reaches a first preset number, the nodes in the current window are optimized to obtain optimized nodes, thereby forming a locally optimized pose graph. The first preset number corresponding to each window may be different, and the first preset number corresponding to each window may be the maximum number of nodes that the window can include. For example, when constructing the current window, constraint relationships between the nodes in the current window are constructed to form a pose graph within the current window (the pose graph within the current window may be referred to as a batch). The actual constraint relationships between the nodes in the pose graph within the current window are the "actual observation constraints" in the laser scanning data corresponding to the nodes. Based on the poses of the nodes within the current window, "calculated observation constraints" can be calculated. The residual between the "actual observation constraints" and the "calculated observation constraints" for each node within the current window is calculated. The residuals corresponding to all nodes within the current window are summed up, and the least squares method is used to determine the poses of all nodes within the current window when the overall residual of all nodes within the current window is minimized. That is, the poses of all nodes within the current window that minimize the overall residual are the optimized poses.

[0058] In order to alleviate the phenomenon of map breakage caused by excessive error in odometer data, in an embodiment of the present application, for each newly added node in the pose graph, a scan matching method is used to correct the pose of the nodes in the pose graph. Specifically, after optimizing the nodes in the above-mentioned current window, the laser scanning data corresponding to the optimized nodes can be obtained from the sensor data, and a matching map corresponding to the current window is generated based on the laser scanning data corresponding to the optimized nodes. For example, the laser scanning data contained in all nodes in the current window can be converted to the global map coordinate system based on the pose of the optimized node and each frame of laser scanning data contained in the node, and each laser beam is traced. According to the probability of the laser hitting the grid in the global map, the occupancy probability corresponding to the grid is calculated to form a matching map, and each grid in the matching map stores the occupancy probability of the grid. Usually, the occupancy probability of the grid hit by the laser is large, and the occupancy probability of the grid passed by the laser is small. In combination with the actual scene, if the laser hits an obstacle, the occupancy probability of the grid corresponding to the obstacle in the global map is large.

[0059] After optimizing the nodes in the current window, the next window is constructed. The first node of the next window is the last node of the current window. The matching map corresponding to the current window is used to correct the nodes in the next window.

[0060] Specifically, for each new node added in the next window, the matching map corresponding to the current window is used to correct the pose of the newly added node. For example, for each newly added node in the next window, multiple candidate points corresponding to the current node are obtained within a specified area centered on the current node, according to the pose sampling interval. The pose sampling interval includes a position sampling interval and an angle sampling interval. The pose sampling interval and the specified area can be pre-set based on actual needs and are not specifically limited here. For each of the multiple candidate points, the matching value of each candidate point is calculated as follows: laser scan data corresponding to the current candidate point is obtained from sensor data; the grid hit by the laser scan data corresponding to the current candidate point in the matching map is determined as the target grid; the probability of the target grid being hit by the laser scan data corresponding to the current candidate point is calculated as a first occupancy probability; the occupancy probability of the target grid stored in the matching map is obtained as a second occupancy probability; and the difference between the first occupancy probability and the second occupancy probability is calculated as the matching value between the current candidate point and the matching map. When the matching values ​​corresponding to the multiple candidate points are calculated, the candidate point with the highest matching value among the multiple candidate points is selected and the current node is corrected.

[0061] Step S122: When the pre-set conditions for periodically publishing the local map are met, the pose graph is globally optimized to obtain a globally optimized pose graph.

[0062] The conditions for regularly publishing local maps can be pre-set based on the environment in the actual operating scenario of the autonomous mobile device, the moving speed of the autonomous mobile device, and the relative motion constraint relationship of the nodes in the pose graph (for example, the distance between two adjacent nodes must be greater than or equal to 50 cm).

[0063] For example, the pre-set conditions for periodically publishing a local map may include: the number of nodes in the pose graph reaches a second preset number, or the movement distance of the autonomous mobile device reaches a preset distance, or the duration from the time the pose graph is constructed to the current moment reaches a preset duration. The second preset number is greater than the first preset number, and the second preset number can be set according to the window size. For example, the second preset number can be the maximum number of nodes that can be included in three windows. The preset distance and preset duration can be set according to actual needs. For example, the preset duration can be 5 minutes.

[0064] Globally optimizing the pose graph involves optimizing all nodes in the current pose graph. The method for global pose graph optimization is similar to the method for optimizing nodes within a window, differing only in the number of nodes involved in the optimization. For example, the "actual observation constraints" for each node in the current pose graph are obtained, the "calculated observation constraints" for each node in the current pose graph are calculated, and the residual between the "actual observation constraints" and the "calculated observation constraints" for each node in the current pose graph is calculated. These residuals for all nodes in the current pose graph are summed up, and the least squares method is used to find the pose of all nodes in the current pose graph when the overall residual for all nodes in the current pose graph is minimized. That is, the pose of all nodes in the current pose graph that minimizes the overall residual is the optimized pose. Globally optimizing the pose graph before publishing a local map can improve map consistency.

[0065] Step S123: Construct a local map based on the globally optimized pose graph.

[0066] A local map with the same size as the globally optimized pose graph can be constructed based on the globally optimized pose graph. For example, the laser scanning data contained in all nodes in the globally optimized pose graph can be converted to the global map coordinate system based on the poses of the nodes in the globally optimized pose graph and the laser scanning data of each frame contained in the nodes, and ray tracing is performed on each laser beam. According to the probability of the laser hitting the grid in the local map, the occupancy probability corresponding to the grid is calculated to form a local map, and each grid in the local map stores the occupancy probability of the grid. In an embodiment of the present application, a local map is constructed based on the poses of the nodes in the globally optimized pose graph and the laser scanning data of each frame contained in the nodes, and ghosts (such as the circled part in Figure 7) and artifacts caused by insufficient observation caused by moving objects in the actual working scene (for example, walking people and other moving autonomous mobile devices) in the local map can be filtered out.

[0067] After publishing the local map, a specified number of nodes in the pose graph can be deleted in sequence according to the time sequence in which the nodes were added to the pose graph to control the size of the pose graph and the size of the local map constructed in the next round, thereby reducing the cumulative error by controlling the coverage of the local map. The specified number can be set according to actual needs. For example, the specified number can be half of the number of all nodes included in the pose graph after global optimization. After deleting the specified number of nodes, the method of steps S121 to S123 can be repeated to continue the next round of local map construction until the autonomous mobile device finishes moving.

[0068] For ease of understanding, an example is provided here to illustrate the local map construction process from steps S121 to S123. See Figures 8 to 11. Points 1-15 are nodes in the pose graph. The maximum number of nodes that can be included in the first window A is 5, and points 1-5 are nodes within the first window A. The maximum number of nodes that can be included in the second window B is 6, and points 5-10 are nodes within the second window B. The maximum number of nodes that can be included in the third window C is 6, and points 10-15 are nodes within the third window C. For each acquired pose and frame of sensor data, the nodes in the pose graph are determined based on that pose and frame of sensor data.

[0069] Windows AC are constructed one by one. As shown in Figure 9, when the number of nodes included in the first window A reaches the maximum number of nodes that can be included in the window, 5 (time t1), all nodes 1-5 in the first window A are optimized, and the matching map a corresponding to the first window A is constructed based on the optimized nodes.

[0070] As shown in Figure 10, at time t2 (t2>t1), the second window B is constructed. The first node of the second window B is point 5. The scan matching method is used to correct the pose of the nodes added to the second window B according to the matching map corresponding to the first window A. When the number of nodes included in the second window B reaches the maximum number of nodes that the window can include, 6, all nodes 5-10 in the second window B are optimized, and the matching map b corresponding to the second window B is constructed based on the optimized nodes.

[0071] As shown in Figure 11, at time t3 (t3>t2), the third window C is constructed. The first node of the third window C is point 10. The scan matching method is used to correct the pose of the nodes added to the third window C according to the matching map b corresponding to the second window B. When the number of nodes included in the third window C reaches the maximum number of nodes that the window can include, 6, all nodes 10-15 in the third window C are optimized, and the matching map c corresponding to the third window C is constructed based on the optimized nodes. At the same time, the number of nodes included in the three windows AC reaches the number of regularly released local maps, 15. The nodes 1-15 included in the three windows AC are globally optimized to obtain the globally optimized pose graph, and a local map (as shown in the local map d in Figure 8) is constructed based on the globally optimized pose graph.

[0072] In some embodiments, the aforementioned preset reference object information may also be published when publishing a local map to assist in subsequent map alignment.

[0073] Step S130: aligning the global map and the local map to obtain a target local map aligned with the global map.

[0074] Map alignment uses image feature point matching and point cloud matching techniques. Its primary purpose is to calculate the spatial relationship between local maps and the global map for updating the global map. Because local maps inevitably have cumulative errors, map alignment requires matching each local map with the global map to eliminate these accumulated errors and achieve global map consistency. The aligned local maps are then used to accurately update the global map in real time.

[0075] After obtaining the local map, a global submap is determined in the global map according to the center and size of the local map. The center of the global submap coincides with the center of the local map, and the size of the global submap is the same as that of the local map.

[0076] The Oriented Fast and Rotated Brief (ORB) algorithm is used to extract ORB features from the local map as the first feature and ORB features from the global submap as the second feature. The ORB algorithm can be used to quickly create feature vectors for keypoints in the local and global maps. These feature vectors can be used to identify objects in the local and global maps. The Fast part of the ORB algorithm refers to feature detection, while the Brief part refers to vector creation. The feature detection algorithm in the ORB algorithm first searches for keypoints in the local and global maps. Keypoints are small, prominent areas in the image, such as corners or points with a sharp change in pixel value from light to dark. The vector creation algorithm in the ORB algorithm is used to calculate a corresponding feature vector for each keypoint, resulting in an ORB feature. The feature vectors created by the ORB algorithm contain only 1s and 0s and are called binary feature vectors. The order of 1s and 0s varies depending on the specific keypoint and the surrounding pixel area. Feature vectors represent the intensity pattern around a keypoint, so multiple feature vectors can be used to identify larger areas or even specific objects in the local and global maps. The ORB algorithm is very fast in calculation and is not affected by noise and image transformations (such as rotation and scaling) to a certain extent.

[0077] After obtaining the first feature of the local map and the second feature of the global submap, the global map and the local map are aligned according to the first feature and the second feature to obtain the local map aligned with the global map.

[0078] Specifically, the image coordinates of the first feature in the local map are obtained to obtain a first point cloud corresponding to the first feature. The image coordinates of the second feature in the global submap are obtained to obtain a second point cloud corresponding to the second feature. Based on the first feature, the first point cloud, the second feature, and the second point cloud, an initial map alignment value is determined. For example, the ORB feature matching algorithm in OpenCV is used to perform feature matching on the first feature and the second feature to obtain an initial correspondence between the first feature and the second feature. A discrete point removal algorithm is used to remove outliers from the initial correspondence, and the transformation relationship between the first point cloud and the second point cloud is calculated to obtain a correct correspondence between the first feature and the second feature and a transformation relationship between the first point cloud and the second point cloud. The discrete point removal algorithm may include, but is not limited to, a Graph Reliability Outlier Removal (GROR) algorithm, a Median Absolute Deviation (MAD) algorithm, a standard deviation algorithm, and a percentile algorithm. If the number of correct correspondences is greater than a preset number, the transformation relationship between the first point cloud and the second point cloud is determined as the initial map alignment value. If the number of correct correspondences is less than or equal to a preset number, the local map is determined as the initial map alignment value. The preset number is set based on the scene characteristics of the actual operation scene (such as the complexity and degree of variability of the scene). For example, the preset number can be 50.

[0079] According to the map alignment initial value, the point cloud alignment algorithm is used to align the global map and the local map to obtain a local map aligned with the global map. The point cloud alignment algorithm can be but is not limited to the iterative closest point (ICP) algorithm. For example, the point cloud alignment algorithm is used to align the map alignment initial value to obtain an alignment result and a residual, wherein the alignment result is the transformation relationship between the local map coordinate system and the global map coordinate system, that is, the transformation relationship of the alignment of the local map and the global map. If the residual is less than the preset residual (determined according to the actual operation scenario), it is determined that the alignment is successful. Based on the alignment result, the coordinate transformation is performed on the local map to obtain the target local map aligned with the global map. If the residual is greater than or equal to the preset residual, it is determined that the alignment has failed, and the local map is ignored to avoid the local map from mismatching with the global map, which leads to subsequent global map update errors.

[0080] In some embodiments, if preset reference object information is received, the preset reference object information may be added when aligning the initial map alignment value using the point cloud alignment algorithm to assist in map alignment and improve alignment accuracy.

[0081] For example, referring to FIG12, step S130 may include the process shown in FIG12. After local mapping is performed based on the laser scanning data, the position and posture output by the laser radar odometer, and the preset reference object information, a local map is obtained; the global map and the local map are thresholded; a global submap is determined in the global map based on the local map, the ORB features of the local map and the global submap are extracted, the ORB features of the local map and the global submap are matched to obtain an initial correspondence, and the GROR algorithm is used to eliminate the outliers in the initial correspondence to obtain the correct correspondence; it is determined whether the number of correct correspondences is greater than the preset number. If the number of correct correspondences is greater than the preset number, the local map and the global submap are matched. The point cloud of the ORB features of the sub-map is used as the initial value for map alignment. If the number of correct correspondences is not greater than a preset number, the local map is determined as the initial value for map alignment. The initial value for map alignment is aligned using the ICP algorithm to obtain the transformation relationship and residual of the alignment between the local map and the global map. It is determined whether the residual is less than the preset residual. If the residual is less than the preset residual, the alignment is successful, and the transformation relationship of the alignment between the local map and the global map is stored in the alignment buffer. The transformation relationship of the alignment between the local map and the global map is sent to the map update module so that the map update module can update the global map based on the local map aligned with the global map.

[0082] Step S140: updating the global map according to the global map, the semantic map and the target local map.

[0083] In some embodiments, referring to FIG. 13 , step S140 may include steps S141 to S143 .

[0084] Step S141: Determine the changed area based on the target local map, the global map, and the semantic map.

[0085] Calculate the intersection of the target local map and the global map as the overlapping area of ​​the target local map and the global map. Under normal circumstances, there will be overlapping areas between the target local map and the global map, unless the autonomous mobile device moves across the boundary relative to the global map, that is, the movement range of the autonomous mobile device exceeds the coverage of the global map. For example, when the autonomous mobile device passes by a door when building a global map, this door is closed, and there is no information about the area inside this door in the global map. When the autonomous mobile device passes by this door for the second time, this door is opened and the autonomous mobile device enters the area inside the door, then there will be no overlapping areas between the area inside the door and the global map.

[0086] After determining the overlapping area, the changed area can be determined based on the grids and semantic maps in the overlapping area. For example, it can be detected whether the grids in the overlapping area are in the static area or the dynamic area marked in the semantic map. If it is detected that the grids in the overlapping area are in the dynamic area marked in the semantic map, it means that the area corresponding to the grid will change, and the grids in the dynamic area marked in the semantic map in the overlapping area are determined as the changed area. If it is detected that the grids in the overlapping area are in the static area marked in the semantic map, it means that the area corresponding to the grid will not change, and the state of the corresponding grid in the global map can be maintained unchanged, and other grids in the overlapping area can continue to be traversed. Through semantic map filtering, the problem of map quality deterioration caused by long-term map updates can be effectively alleviated, and repeated updates of static objects can be avoided, which can prevent ghosting in the global map (such as the circled part in Figure 14).

[0087] Step S142: determining an update area in the changed area according to the distances between the grids in the changed area in the target local map and the global map respectively.

[0088] Obtain the distance between the grid within the changed area and the nearest obstacle in the target local map to obtain a first distance of the grid within the changed area. For example, a distance map corresponding to the target local map can be obtained, where each grid in the distance map stores the distance between the grid and the nearest obstacle. The distance between the grid within the changed area and the nearest obstacle in the target local map is obtained based on the distance map.

[0089] The distance between the grid within the change area and the nearest obstacle in the global map is obtained to obtain the second distance of the grid within the change area. For example, a distance map corresponding to the global map can be obtained, in which each grid in the distance map stores the distance between the grid and the nearest obstacle. The distance between the grid within the change area and the nearest obstacle in the global map is obtained based on the distance map.

[0090] Based on the first distance and the second distance of the grid in the change area, the update area is determined in the change area. Specifically, a likelihood algorithm is used to calculate the likelihood value of the current grid changing based on the first distance and the second distance corresponding to the current grid for each grid in the change area. The area corresponding to the grid in the change area whose likelihood value is greater than the specified likelihood value is determined as the update area. For example, the following expression can be used to calculate the likelihood value of each grid changing (the likelihood value ranges from 0 to 1):

[0091] Among them, d mea Indicates the first distance; d exp Represents the second distance; σ is the control parameter of the likelihood function. By adjusting the parameter σ, the strictness of dividing the update area can be controlled.

[0092] After determining the update region, moving objects can be filtered out from the target local map by adjusting the distance map parameter. For example, the distance map parameter can be a threshold value used for comparison with the likelihood value calculated by the above expression. Moving objects corresponding to cells in the target local map with a likelihood value greater than or equal to the distance map parameter are filtered out.

[0093] By using the likelihood algorithm to identify the update area, we can ensure that the update area is complete, update the global map in a timely manner, and prevent the repeated update of static areas.

[0094] Step S143: Using the update area in the target local map, update the update area in the global map.

[0095] Obtain the preset unknown probability and the occupancy probability of the grids in the update area stored in the target local map. For each grid in the update area, calculate the difference between the occupancy probability of the current grid and the preset unknown probability. For example, the following expression can be used to calculate the difference between the occupancy probability of the current grid and the preset unknown probability:

[0096] Among them, m a (i, j) represents the updated map; m s (i, j) represents the global map; m l (i, j) represents a local map; (i, j) represents a grid position; α represents a preset unknown probability, for example, 0.5 or -1; ε represents a specified tolerance value, which can be set according to the actual requirements for map update accuracy.

[0097] If the absolute value of the difference corresponding to the current grid is less than the specified tolerance value, it means that the grid state of the current grid is uncertain, and the occupancy state of the current grid can be determined to be unknown; if the absolute value of the difference corresponding to the current grid is greater than or equal to the specified tolerance value, it means that the state of the current grid is known, and the occupancy state of the current grid is determined to be known.

[0098] Obtain the occupancy status of the grids in the update area in the target local map, where the occupancy status includes known status and unknown status; determine the grids in the update area with known occupancy status as grids to be updated, and determine the grids in the update area with unknown occupancy status as unchanged grids; use the grids in the local map corresponding to the grids to be updated to update the grids in the global map; and keep the grids in the global map corresponding to the unchanged grids unchanged.

[0099] From step S141 to step S143, the changed area is determined by combining the target local map, the global map, and the semantic map that marks the static area and dynamic area in the global map; the update area is determined in the changed area based on the distance saved between the grids in the target local map and the global map; the update area in the global map is updated using the update area in the target local map, and the semantic map that marks the static and dynamic areas is used. At the same time, the update area is determined based on multiple dynamic area identifications. This can detect dynamic objects with low change cycles and effectively filter out moving objects in the global map, ensuring the integrity of key features in the global map and avoiding repeated updates of static objects. This can avoid ghosts (such as the circled part in Figure 7) and double images (such as the circled part in Figure 14) in the global map, improve the authenticity and consistency of the global map, and effectively alleviate the problem of map quality deterioration caused by long-term updates of the global map. The global map is locally updated using the update area in the local map. The update range is small and the memory usage is small. In addition, the spatial relationship between the local map and the global map is fully considered. Even if the local update goes wrong, it will not cause a significant deviation in some areas of the global map (the two white areas shown in Figure 15 are the areas before and after the deviation). This can ensure the consistency, reliability and accuracy of the updated global map.

[0100] The map update method provided in the embodiment of the present application can periodically construct a local map based on the position and sensor data of the autonomous mobile device to limit the coverage of the local map, align the local map to obtain a target local map aligned with the global map, and update the global map based on the global map, the semantic map, and the target local map. The global map can be updated in a small range each time to avoid large-scale global updates of the global map, thereby ensuring the consistency of the global map, improving the quality of the global map, and improving the efficiency and accuracy of map updates. In addition, by using a semantic map with marked static and dynamic areas and determining the update area based on multiple dynamic area identifications, dynamic objects with low change cycles can be detected, and moving objects in the global map can be effectively filtered out, ensuring the integrity of key features in the global map and avoiding repeated updates of static objects, thereby avoiding ghosting and double images in the global map, improving the authenticity and consistency of the global map, and effectively alleviating the problem of map quality deterioration caused by long-term updates of the global map. The global map is locally updated using the updated area in the target local map. The update range is small and the memory usage is small. In addition, the spatial relationship between the local map and the global map is fully considered. Even if the local update goes wrong, it will not cause significant deviations in some areas of the global map, thus ensuring the consistency, reliability and accuracy of the updated global map.

[0101] In some embodiments, referring to FIG. 16 , after step S140 , the map updating method may further include steps S210 to S230 of managing the updated global map.

[0102] Step S210: Save the updated global map in the map database, and construct or update the map database.

[0103] Step S220: Determine or update the dynamic area in the semantic map based on the map database.

[0104] Based on step S220, the semantic map can be maintained in real time according to the updated map to assist the above-mentioned map alignment process and map update process. For a detailed description of step S220, please refer to the relevant part of the above-mentioned map database analysis method.

[0105] Step S230: When an error occurs during the map update process, the global map is restored to the historical global map last saved in the map database.

[0106] Among them, errors occurring during the map update process refer to obvious errors rather than minor errors. For example, obvious errors may include but are not limited to the low map matching level mentioned above and the obvious decrease in the positioning reliability of the autonomous mobile device.

[0107] Based on steps S210 to S230, when obvious errors occur in mapping or positioning, the normal process can be restored by map rollback, thereby improving the robustness of map updates.

[0108] In some embodiments, after step S140, the map updating method may further include a map sharing step, that is, sharing the updated map with other autonomous mobile devices, and obtaining the updated map sent by other autonomous mobile devices, thereby reducing the risk of positioning failure of a single autonomous mobile device and improving the reliability of map updates.

[0109] For example, see Figure 17, which is a flow chart of a map updating method provided by an exemplary embodiment of the present application. The map updating method includes four parts, namely, local mapping, map alignment, map updating, and map management.

[0110] The input data for local mapping can include the pose output by the lidar odometry, the pose output by the positioning system, preset reference object information, and laser scanning data. The local mapping portion may include: performing motion filtering based on the pose output by the lidar odometry and the pose output by the positioning system to eliminate poses that do not meet the requirements; adding nodes and edges to the pose graph based on poses that meet the requirements and preset reference object information; modifying nodes using scan matching methods based on laser scanning data; generating a matching map based on the pose graph within each window in the pose graph when the size of the pose graph reaches a certain size; using the matching map to assist in node modification; and outputting the matching map constructed based on the pose graph and preset reference object information to the map alignment module when the conditions for regular local map release are met.

[0111] The map alignment part may include: clipping the global submap in the global map according to the local map; calculating the transformation relationship between the local map and the global submap; eliminating outliers in the transformation relationship and aligning the transformation relationship after eliminating the outliers; judging whether the local map and the global map are aligned, and if so, outputting the target local map aligned with the global map to the map update module; if not, ignoring the local map.

[0112] The map update part may include: map merging, that is, determining the update area based on the target local map and the global map; using the update area in the target local map to update the update area in the global map; and publishing the updated map to the positioning system and map management module.

[0113] The map management part includes: building a map database, storing global maps and semantic maps, and sending the global map to the map alignment module upon receiving a global map acquisition request from the map alignment module; sending the semantic map and global map to the map update module upon receiving a global map and semantic map acquisition request from the map update module; and at the same time, it is responsible for rolling back the map data when obvious errors occur during the map update process to restore the normal process.

[0114] FIG18 is a block diagram of a map updating device according to an embodiment of the present invention. The map updating device 200 can be applied to an autonomous mobile device. The map updating device 200 includes a data acquisition module 210 , a map construction module 220 , a map alignment module 230 , and a map updating module 240 .

[0115] Data acquisition module 210 is used to acquire a pre-built global map, a semantic map, the position and posture of the autonomous mobile device, and sensor data. The semantic map annotates static and dynamic areas within the global map. The detailed operation of data acquisition module 210 is described in step S110 above and will not be repeated here.

[0116] The map construction module 220 is used to periodically construct a local map based on the position and the sensor data to limit the coverage of the local map. The specific working process of the map construction module 220 is shown in the above step S120 and will not be repeated here.

[0117] The map alignment module 230 is used to align the global map and the local map to obtain a target local map aligned with the global map. The specific working process of the map alignment module 230 is shown in the above step S130 and will not be repeated here.

[0118] The map updating module 240 is used to update the global map according to the global map, the semantic map and the target local map. The specific working process of the map updating module 240 is shown in the above step S140 and will not be repeated here.

[0119] In some embodiments, the map updating device 200 further includes a map management module. After updating the global map, the map management module is configured to save the updated global map in a map database and construct or update the map database; determine or update dynamic areas in the semantic map based on the map database; and, if an error occurs during the map update process, restore the global map to the last historical global map saved in the map database. The detailed operation of the map management module is described in steps S210 to S230 above and will not be further described here.

[0120] Those skilled in the art will clearly understand that the map updating device provided in the embodiments of the present application can implement the map updating method provided in the embodiments of the present application. The specific working process of the above-described device and modules can refer to the corresponding process of the method in the embodiments of the present application, which will not be repeated here.

[0121] In the embodiments provided in the present application, the coupling, direct coupling or communication connection between the modules shown or discussed may be an indirect coupling or communication coupling through some interfaces, devices or modules, and may be electrical, mechanical or other forms, and the embodiments of the present application do not impose specific limitations on this.

[0122] In addition, the functional modules in the embodiments of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into a single module. The above-mentioned integrated modules may be implemented in the form of hardware or in the form of software functional modules.

[0123] Figure 19 is a block diagram of an autonomous mobile device according to another embodiment of the present invention. The autonomous mobile device 300 may include a memory 310 and a processor 320. The memory 310 stores an application program configured to execute the method according to an embodiment of the present invention when invoked by the processor 320.

[0124] The processor 320 may include one or more processing cores. The processor 320 utilizes various interfaces and circuits to connect various components within the autonomous mobile device 300. It is used to run or execute instructions, programs, code sets, or instruction sets stored in the memory 310, as well as to call and execute data stored in the memory 310, thereby executing various functions and processing data within the autonomous mobile device 300. The processor 320 may be implemented using at least one of the following hardware forms: a digital signal processing (DSP), a field-programmable gate array (FPGA), or a programmable logic array (PLA). The processor 320 may integrate one or a combination of a central processing unit (CPU), a graphics processing unit (GPU), and a modem. The CPU primarily processes the operating system, user interface, and application programs; the GPU is responsible for rendering and drawing display content; and the modem handles wireless communications. It is understood that the modem may not be integrated into the processor 320 but may be implemented separately via a communication chip.

[0125] The memory 310 may include random access memory (RAM) or read-only memory (ROM). The memory 310 may be used to store instructions, programs, codes, code sets, or instruction sets. The memory 310 may include a program storage area and a data storage area. The program storage area may store instructions for implementing an operating system, instructions for implementing at least one function, instructions for implementing the various method embodiments described above, and the like. The data storage area may store data created by the autonomous mobile device 300 during use.

[0126] The present application embodiment also provides a computer-readable storage medium, on which program code is stored, and the program code is configured to execute the method provided by the present application embodiment when called by a processor. The computer-readable storage medium can be an electronic memory such as a flash memory, an electrically erasable and editable read-only memory (Electrically-Erasable Programmable Read-Only Memory, referred to as EEPROM), an erasable and editable read-only memory (Erasable Programmable Read-Only Memory, referred to as EPROM), a hard disk or a ROM. In some embodiments, the computer-readable storage medium includes a non-volatile computer-readable medium (Non-Transitory Computer-Readable Storage Medium, referred to as Non-TCRSM). The computer-readable storage medium has storage space for the program code of any method step in the above method. These program codes can be read from one or more computer program products or written into one or more computer program products. The program code can be compressed in an appropriate form.

[0127] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A map updating method, characterized in that: include: Obtaining a pre-built global map, a semantic map, a position and posture of the autonomous mobile device, and sensor data, wherein the semantic map marks static areas and dynamic areas in the global map; Periodically constructing a local map based on the pose and the sensor data to limit the coverage of the local map; Aligning the global map and the local map to obtain a target local map aligned with the global map; and The global map is updated according to the global map, the semantic map and the target local map.

2. The method according to claim 1, characterized in that The step of periodically constructing a local map according to the position and the sensor data comprises: Each time a posture and a frame of sensor data are acquired, a posture graph is constructed in real time according to the acquired posture and sensor data; When a preset condition for periodically publishing a local map is met, globally optimizing the pose graph to obtain a globally optimized pose graph; and Construct a local map based on the globally optimized pose graph.

3. The method according to claim 2, characterized in that The step of constructing a pose graph in real time according to the acquired pose and sensor data comprises: Constructing a pose graph in real time according to the pose and the sensor data, the pose graph comprising at least one window; and For each window in the pose graph, when the number of nodes included in the current window reaches a first preset number, the nodes in the current window are optimized to obtain optimized nodes, thereby forming a locally optimized pose graph.

4. The method according to claim 3, characterized in that The sensor data includes laser scanning data. After the step of optimizing the nodes in the current window for each window in the pose graph when the number of nodes included in the current window reaches a preset number to obtain optimized nodes and form a locally optimized pose graph, the method further includes: Obtaining laser scanning data corresponding to the optimized node from the sensor data; Generate a matching map corresponding to the current window based on the laser scanning data corresponding to the optimized node; and Use the matching map corresponding to the current window to correct the nodes in the next window.

5. The method according to claim 4, characterized in that The step of using the matching map corresponding to the current window to correct the nodes in the next window includes: For each node in the next window, obtain multiple candidate points corresponding to the current node according to the pose sampling interval; For each candidate point among the multiple candidate points, the matching value of each candidate point is calculated in the following manner: the laser scanning data corresponding to the current candidate point is obtained from the sensor data; the grid hit by the laser scanning data corresponding to the current candidate point in the matching map is determined as the target grid; the probability that the target grid is hit by the laser scanning data corresponding to the current candidate point is calculated as the first occupancy probability; the occupancy probability stored in the target grid in the matching map is obtained as the second occupancy probability, and the occupancy probability stored in each grid in the matching map is calculated according to the laser scanning data corresponding to the optimized node; the difference between the first occupancy probability and the second occupancy probability is calculated as the matching value between the current candidate point and the matching map; and A candidate point with the highest matching value among the multiple candidate points is selected to correct the current node.

6. The method according to any one of claims 3 to 5, characterized in that: The step of constructing a pose graph in real time according to the pose and the sensor data comprises: For each of the postures and each frame of sensor data, detecting whether the current posture meets a preset condition, and detecting whether the current sensor data includes preset reference object information; If the current posture meets the preset conditions, the current posture is added as a node to the posture graph; if the current sensor data includes preset reference object information, the posture of the preset reference object is added as a node to the posture graph; and Obtain constraint relationships corresponding to nodes in the pose graph, and construct edges of the pose graph according to the constraint relationships.

7. The method according to claim 6, characterized in that The step of detecting whether the current posture meets the preset conditions includes: Get the posture of the previous moment; Calculate the distance difference and angle difference between the current pose and the pose at the previous moment; and If the distance difference is greater than the preset distance or the angle difference is greater than the preset angle difference, it is determined that the current posture meets the preset condition.

8. The method according to any one of claims 2 to 7, characterized in that: After the step of constructing a local map according to the globally optimized pose graph, the method further comprises: According to the time sequence of the nodes joining the pose graph, a specified number of partial nodes in the pose graph are deleted in sequence to control the size of the pose graph and the size of the local map constructed in the next round.

9. The method according to any one of claims 2 to 8, characterized in that: The pre-set conditions for regularly publishing local maps include: The number of nodes in the pose graph reaches a second preset number; or The moving distance of the autonomous moving device reaches a preset distance; or The duration from when the pose graph is constructed to the current moment reaches a preset duration.

10. The method according to any one of claims 1 to 9, characterized in that: The step of aligning the global map and the local map to obtain the local map aligned with the global map comprises: A global submap is determined in the global map, the center of the global submap coincides with the center of the local map, and the size of the global submap is the same as the size of the local map; Extracting the ORB feature of the local map as the first feature; extracting the ORB feature of the global submap as the second feature; and The global map and the local map are aligned according to the first feature and the second feature to obtain the local map aligned with the global map.

11. The method according to claim 10, characterized in that The step of aligning the global map and the local map according to the first feature and the second feature to obtain the local map aligned with the global map comprises: Obtain the image coordinates of the first feature in the local map to obtain a first point cloud corresponding to the first feature; obtain the image coordinates of the second feature in the global submap to obtain a second point cloud corresponding to the second feature; Determining an initial map alignment value according to the first feature, the first point cloud, the second feature, and the second point cloud; and According to the initial map alignment value, the point cloud alignment algorithm is used to align the global map and the local map to obtain the local map aligned with the global map.

12. The method according to claim 11, characterized in that The step of determining the initial value of map alignment according to the first feature, the first point cloud, the second feature, and the second point cloud comprises: Performing feature matching on the first feature and the second feature to obtain an initial corresponding relationship between the first feature and the second feature; The algorithm for eliminating discrete points is used to eliminate outliers in the initial correspondence relationship, and the transformation relationship between the first point cloud and the second point cloud is calculated to obtain the correct correspondence relationship between the first feature and the second feature and the transformation relationship between the first point cloud and the second point cloud; If the number of correct corresponding relationships is greater than a preset number, determining the transformation relationship between the first point cloud and the second point cloud as an initial value of map alignment; and If the number of correct correspondences is less than or equal to the preset number, the local map is determined as the initial value of the map alignment.

13. The method according to claim 11 or 12, characterized in that: The step of aligning the global map and the local map according to the initial map alignment value and using the point cloud alignment algorithm to obtain the local map aligned with the global map comprises: Use the point cloud alignment algorithm to align the map alignment initial value and obtain the alignment result and residual; If the residual is less than the preset residual, the alignment is determined to be successful; and Based on the alignment result, the coordinates of the local map are transformed to obtain the local map aligned with the global map.

14. The method according to any one of claims 1 to 13, characterized in that: The step of updating the global map according to the global map, the semantic map and the target local map comprises: Determine the change area based on the target local map, global map and semantic map; Determine an update region in the change region according to the distances between the grids in the change region in the target local map and the global map respectively; and The updated region in the target local map is used to update the updated region in the global map.

15. The method according to claim 14, characterized in that The step of determining the update area in the changed area according to the distances between the grids in the changed area in the target local map and the global map respectively comprises: Obtain the distance between the grid in the change area and the nearest obstacle in the target local map to obtain the first distance of the grid in the change area; Obtaining the distance between the grid in the change area and the nearest obstacle in the global map to obtain a second distance of the grid in the change area; and An update region is determined in the change region according to the first distance and the second distance of the grid in the change region.

16. The method according to claim 15, characterized in that The step of determining the update area in the change area according to the first distance and the second distance of the grid in the change area comprises: For each grid in the change area, calculating the likelihood value of the change in the current grid according to the first distance and the second distance corresponding to the current grid; and The area corresponding to the grid whose likelihood value in the change area is greater than the specified likelihood value is determined as the update area.

17. The method according to any one of claims 14 to 16, characterized in that: The step of determining the change area according to the target local map, the global map and the semantic map comprises: Calculate the intersection of the target local map and the global map as the overlap area of ​​the target local map and the global map; and The changed area is determined according to the grids and the semantic map in the overlapped area.

18. The method according to claim 17, characterized in that The step of determining the changed area according to the grid and the semantic map in the overlapped area comprises: Detecting that the cells in the overlapped area are in the static area or the dynamic area marked in the semantic map; and If it is detected that the grids in the overlapped area are in the dynamic area marked in the semantic map, the grids in the overlapped area that are in the dynamic area marked in the semantic map are determined as the changed area.

19. The method according to any one of claims 14 to 18, characterized in that: The step of using the update area in the target local map to update the update area in the global map comprises: Obtain the occupancy status of the grids in the update area in the target local map, the occupancy status includes known status and unknown status; Determine the grids whose occupation states are known in the update region as grids to be updated, and determine the grids whose occupation states are unknown in the update region as unchanged grids; Using the grid corresponding to the grid to be updated in the target local map, updating the grid corresponding to the grid to be updated in the global map; and Keep the grids in the global map that correspond to the unchanged grid unchanged.

20. The method according to claim 19, characterized in that Each grid in the target local map also stores the occupancy probability corresponding to the grid. Before the step of obtaining the occupancy status of the grids in the update area in the target local map, the method further includes: Obtaining the preset unknown probability and the occupancy probability of the grid in the update area stored in the target local map; and For each grid in the update area, calculate the difference between the occupancy probability of the current grid and the preset unknown probability; if the absolute value of the difference corresponding to the current grid is less than the specified tolerance value, determine that the occupancy state of the current grid is an unknown state; if the absolute value of the difference corresponding to the current grid is greater than or equal to the specified tolerance value, determine that the occupancy state of the current grid is a known state.

21. The method according to any one of claims 1 to 20, characterized in that: After the step of obtaining the pre-built global map and before the step of obtaining the semantic map, the method further includes: Using at least two dynamic area determination methods, at least two preliminary dynamic areas are determined from the global map, each dynamic area determination method corresponds to one preliminary dynamic area; Calculate the intersection of at least two preliminary dynamic regions as the dynamic region; and Build a semantic map based on dynamic areas.

22. The method according to claim 21, characterized in that One of the at least two dynamic area determination methods comprises: Output a global map; and Obtain preliminary dynamic regions manually annotated for the global map.

23. The method according to claim 21 or 22, characterized in that One of the at least two dynamic area determination methods further includes: Output global map; Obtaining a manually processed global map, wherein the manually processed global map is annotated with stable and unchanging obstacles; and The area in the global map except for the stable and unchanging obstacles is determined as a preliminary dynamic area.

24. The method according to any one of claims 21 to 23, characterized in that: One of the at least two dynamic area determination methods further includes: Obtain multiple historical global maps from a map database; For the same grid in multiple historical global maps, generating a change curve of the grid and calculating the curvature of the change curve; and The area corresponding to the grid whose curvature is greater than the specified curvature is determined as the preliminary dynamic area.

25. The method according to any one of claims 21 to 24, characterized in that: One of the at least two dynamic area determination methods further includes: Using a likelihood algorithm, calculate the likelihood value of the same grid in the local map and the global map; and The area corresponding to the grid whose likelihood value is greater than the specified likelihood value is determined as the preliminary dynamic area.

26. The method according to any one of claims 1 to 25, characterized in that After the step of updating the global map according to the global map, the semantic map and the target local map, the method further includes: The updated global map is saved in a map database, and the map database is constructed or updated; Determining or updating dynamic areas in a semantic map based on a map database; and When an error occurs during the map update process, the global map is restored to the historical global map last saved in the map database.

27. A map updating device, characterized in that: include: A data acquisition module, which acquires a pre-built global map, a semantic map, the position and posture of the autonomous mobile device, and sensor data, wherein the semantic map marks static areas and dynamic areas in the global map; A map construction module, which periodically constructs a local map according to the position and the sensor data to limit the coverage of the local map; A map alignment module aligns the global map and the local map to obtain a target local map aligned with the global map; and The map update module updates the global map according to the global map, semantic map and target local map.

28. An autonomous mobile device, characterized in that: include: A memory and a processor, wherein an application is stored in the memory, and the application is configured to execute the method according to any one of claims 1 to 26 when called by the processor.

29. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores program code, and the program code is configured to execute the method according to any one of claims 1 to 26 when called by a processor.

Citation Information

Patent Citations

  • Visual SLAM method based on optical flow and semantic segmentation

    CN111797688A

  • Local map adjustment method, device and equipment and computer readable medium

    CN112348029A

  • Laser map updating method based on grid detection, terminal and computer equipment

    CN112380312A

  • AMCL positioning method adaptive to dynamic environment change

    CN113447026A

  • Map updating method, device and system, electronic equipment and storage medium

    CN113932790A

Cited By

  • Plant high-definition map construction method based on edge-fog-cloud cooperation

    CN120259581A

  • A method for constructing high-definition factory maps based on edge-fog-cloud collaboration

    CN120259581B

  • Cleaning path planning method and cleaning device

    CN120578174A

  • Robot-assisted navigation device and method based on artificial intelligence

    CN120668140A

  • Method and system for constructing occupied grid map based on dynamic environment

    CN120702454A