Method, device, equipment and storage medium for updating map data
By adjusting the pose nodes in the map data, the problem of inconsistency of pose nodes when updating the map data is solved, and the quality and accuracy of the map data are improved.
Patent Information
- Application Number
- CN202011487435.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-12-16
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2040-12-16
AI Technical Summary
When updating map data, the prior art is difficult to ensure the consistency of the position nodes between newly collected map data and old map data, resulting in the low quality of the updated map data.
By determining the first set of pose nodes in the first map data and the second set of pose nodes adjacent thereto in the second map data, adjust the second set of pose nodes based on the corresponding distance, and utilize the first set of pose nodes. and the adjusted second set of pose nodes to update the second map data to ensure the consistency between the new pose nodes and the existing pose nodes.
The consistency between the positions and nodes in the updated map data is achieved, the quality of the map data is improved, and the accuracy and reliability of the map data is ensured.
Smart Images

Figure CN112559664B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to the field of maps, and more particularly to a method, apparatus, device, and computer-readable storage medium for updating map data. Background Art
[0002] Map data, especially high-precision point cloud maps, are often used in application scenarios such as object perception and autonomous driving. Map data of a specific geographical area can be collected by laser scanning. For point cloud maps, map data can be represented as a pose graph, which includes a series of pose nodes, each of which indicates position information and pose information. As the geographical environment changes, it may be necessary to update existing map data with newly collected map data to ensure the freshness of the map data, so as to provide a better basis for other upper-level applications, such as positioning and perception applications. Due to the complexity of point clouds, when updating old map data with new map data, it is necessary to ensure the consistency of the pose nodes in the overall map data. Summary of the invention
[0003] According to some embodiments of the present disclosure, a solution for updating map data is provided.
[0004] In a first aspect of the present disclosure, a method for updating map data is provided. The method includes determining a first group of pose nodes in first map data and a second group of pose nodes adjacent to the first group of pose nodes in second map data, each pose node indicating position information and pose information; determining a corresponding distance between the first group of pose nodes and the second group of pose nodes based on the position information indicated by the first group of pose nodes and the second group of pose nodes; adjusting the second group of pose nodes based on the determined corresponding distance to obtain an adjusted second group of pose nodes; and updating the second map data using the first group of pose nodes and the adjusted second group of pose nodes.
[0005] In a second aspect of the present disclosure, a device for updating map data is provided. The device includes: a pose node determination module, configured to determine a first group of pose nodes in the first map data and a second group of pose nodes adjacent to the first group of pose nodes in the second map data, each pose node indicating position information and pose information; a distance determination module, configured to determine the corresponding distance between the first group of pose nodes and the second group of pose nodes based on the position information indicated by the first group of pose nodes and the second group of pose nodes; a pose node adjustment module, configured to adjust the second group of pose nodes based on the determined corresponding distance to obtain the adjusted second group of pose nodes; and a map data update module, configured to update the second map data using the first group of pose nodes and the adjusted second group of pose nodes.
[0006] In a third aspect of the present disclosure, an electronic device is provided, comprising one or more processors and a memory, wherein the memory is used to store computer executable instructions, and the computer executable instructions are executed by the one or more processors to implement the method according to the first aspect of the present disclosure.
[0007] In a fourth aspect of the present disclosure, a computer-readable storage medium is provided, on which computer-executable instructions are stored, wherein the computer-executable instructions implement the method according to the first aspect of the present disclosure when executed by a processor.
[0008] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the present disclosure, nor is it intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The features, advantages and other aspects of the exemplary embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Several embodiments of the present disclosure are shown here in an exemplary and non-limiting manner, in the accompanying drawings:
[0010] Figure 1 A block diagram illustrating an example environment in which embodiments of the present disclosure can be implemented;
[0011] Figure 2 A flowchart showing a process of updating map data according to some embodiments of the present disclosure;
[0012] Figure 3 A flowchart showing a process of clearing overlapping pose nodes according to some embodiments of the present disclosure is shown;
[0013] Figure 4A and Figure 4B shows an example of poses corresponding to example pose nodes according to some embodiments of the present disclosure;
[0014] Figure 5 A flowchart showing a process of adjusting a pose node according to some embodiments of the present disclosure is shown;
[0015] Figure 6 A block diagram showing an apparatus for updating map data according to some embodiments of the present disclosure; and
[0016] Figure 7 A block diagram of an electronic device is shown in which one or more embodiments of the present disclosure may be implemented. DETAILED DESCRIPTION
[0017] Some example embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although some embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.
[0018] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "based at least in part on". The terms "an example embodiment" and "an embodiment" mean "at least one example embodiment". The term "another embodiment" means "at least one additional embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0019] Figure 1 1 shows a block diagram of an example environment 100 in which embodiments of the present disclosure can be implemented. Figure 1 As shown, environment 100 includes a map collection device 110 and a map processing device 120. It should be understood that the structure and function of environment 100 are described for exemplary purposes only, and do not imply any limitation on the scope of the present disclosure. For example, embodiments of the present disclosure may also be applied to environments different from environment 100.
[0020] The map acquisition device 110 can move along a certain track to collect map data. The map acquisition device 110 may include, but is not limited to, a collection vehicle or other equipment for collecting map data. For example, a laser radar may be installed on the map acquisition device 110 to collect data in a specific geographical area. The map acquisition device 110 can move in a specific geographical area during a collection period (e.g., during the day) to collect data for making maps. The data collected by devices such as laser radar is sometimes referred to as "point cloud data." The "point cloud data" described herein refers to the data information of each point on the surface of an object returned when a laser beam is irradiated on the surface of the object, including the coordinate information of each point (e.g., the coordinate value in a three-dimensional coordinate system) and the laser reflection intensity (also called "reflection value").
[0021] The map collection device 110 can generate first map data 115 (also called a "point cloud map" or "high-precision map") about a specific geographic area based on the collected data. Although only a single entity is shown, multiple map collection devices can be used to travel in a specific geographic area to obtain the first map data 115. When obtaining the first map data 115, the map collection device 110 may not traverse the entire geographic area, but traverse some of the geographic ranges.
[0022] The first map data 115, as newly collected map data, can be provided to the map processing device 120 for updating the existing map data for a specific geographical area, such as the second map data 140 stored in the data block 130. When the map data is updated, it is expected that the data portion of the first map data 115 that can reflect the update is merged into the second map data 140. Such an update may be, for example, the appearance or removal of new roads, road signs, ground markings, etc. in the geographical area, or the expansion of the coverage of the second map data 140.
[0023] The first map data 115 and the second map data 140 may be composed of a plurality of pose nodes. Each pose node may indicate corresponding position information and pose information. The position information may include coordinate information of a geospatial point, for example, the longitude, latitude and altitude coordinates of the geospatial point. The pose information is used to indicate the pose of a map acquisition device (for example, the map acquisition device 110 of the first map data 115) when performing corresponding map data acquisition, which may include angle information, such as yaw, pitch and roll, etc.
[0024] In some embodiments, each pose node in the first map data 115 and the second map data 140 is also associated with a corresponding point cloud set, which includes surrounding point cloud data sensed at the position and posture indicated by the pose node. In some examples, each pose node in the first map data 115 and the second map data 140 can also be associated with other information, including speed information, acceleration information, temperature information, etc., which can be sensed by corresponding types of sensors.
[0025] In some embodiments, the first map data 115 and the second map data 140 can be represented as pose graphs, respectively. The pose graph can be obtained by performing the front-end processing of simultaneous localization and mapping (SLAM) on the raw data collected by the map acquisition device. The pose nodes can be considered as the vertices in the pose graph, and different pose nodes can also be connected by corresponding edges, and each edge represents the constraint between the connected pose nodes.
[0026] After the map processing device 120 performs the update, the updated second map data 145 can fully reflect the current state of the specific geographical area. The updated second map data 145 can be provided back to the database 130 for subsequent use, such as in tasks such as positioning and sensing of the specific geographical area.
[0027] In the traditional map data update process, the main consideration is to identify new pose nodes from the newly collected map data for adding to the existing map data, and the pose nodes (including position information and pose information) that need to be retained in the existing map data remain unchanged. However, such addition may cause the added pose nodes to be inconsistent with the existing pose nodes, resulting in low quality of the updated map data.
[0028] An embodiment of the present disclosure proposes a scheme for updating map data. In this scheme, first map data is to be used to update second map data. A second group of pose nodes adjacent to a first group of pose nodes in the first map data is determined from the second map data. The first group of pose nodes are new pose nodes for the second map data, and the second group of pose nodes can be considered as a buffer area in the second map data adjacent to the first group of pose nodes to be used for updating. The second group of pose nodes is adjusted based on the corresponding distances between the first group of pose nodes and the second group of pose nodes to optimize the second group of pose nodes. The second map data is updated using the first group of pose nodes and the adjusted second group of pose nodes.
[0029] According to such a scheme, during the map data update process, in addition to adding the pose nodes to be updated, the pose nodes in the buffer area of the existing map data are also adjusted, so that the consistency between the newly added pose nodes in the updated map data and the existing pose nodes can be guaranteed, thereby ensuring the quality of the updated map data.
[0030] Some example embodiments of the present disclosure will be described below with continued reference to the accompanying drawings.
[0031] Figure 2 FIG. 2 is a schematic diagram of a process 200 for updating map data according to some embodiments of the present disclosure. Figure 1 Let's discuss the process of updating map data. Process 200 can be performed, for example, in Figure 1 The process 200 is executed at the map processing device 120 shown. It should be understood that the process 200 may also include blocks not shown and / or may omit blocks shown. The scope of the present disclosure is not limited in this respect.
[0032] In box 210, the map processing device 120 determines a first group of pose nodes in the first map data 115 and a second group of pose nodes adjacent to the first group of pose nodes in the second map data 140. As mentioned above, the first map data 115 and the second map data 140 can be composed of pose nodes. Each pose node indicates position information and pose information. In some embodiments, the first map data 115 and the second map data 140 can be represented in the form of a pose graph, which includes multiple pose nodes and edge connections between pose nodes. In some embodiments, each pose node can also be associated with a corresponding point cloud set.
[0033] In an embodiment of the present disclosure, the first map data 115 is used to update the second map data 140. In some embodiments, the first map data 115 includes new map data collected in the target geographic area. Figure 1 In an environment of the present invention, the first map data 115 may be new map data collected by the map collection device 110. In some embodiments, the first map data 115 may include new map data collected within at least a portion of the target geographic area covered by the second map data 140, so as to update the ground conditions within the portion. In some embodiments, the first map data 115 may include new map data collected outside the target geographic area covered by the second map data 140, so as to expand the coverage of the second map data 140.
[0034] In some embodiments, if it is determined that the first map data 115 is map data that is more “fresh” than the second map data 140 (e.g., map data collected after the second map data 140), the map processing device 120 may perform data cleaning on the second map data 140 based on the first map data 115. The data cleaning includes deleting pose nodes that overlap with pose nodes in the first map data 115 from the second map data 140 to obtain adjusted second map data 140. The data cleaning performed on the second map data 140 will be referred to below. Figure 3 After performing data cleaning, all pose nodes in the first map data 115 can be considered as newly added pose nodes relative to the adjusted second map data 140, and can be determined as a so-called first group of pose nodes for merging into the adjusted second map data 140. Therefore, the first group of pose nodes can sometimes be referred to as "newly added pose nodes".
[0035] In the second map data 140, or in the embodiment where data cleaning is performed, in the adjusted second map data 140, a second group of pose nodes adjacent to the first group of pose nodes in the first map data 115 can be determined. The second group of pose nodes can be determined based on the distance from the first group of pose nodes, for example, it can include pose nodes whose distance from one or more pose nodes in the first group of pose nodes is less than a predetermined threshold distance. The second group of pose nodes can be considered to be a buffer geographical area located near the area where the map data update occurs. Therefore, the second group of pose nodes can sometimes be referred to as "buffer pose nodes". As will be discussed in detail below, during the map data update process, the second group of pose nodes will be adjusted according to the distance from the first group of pose nodes. Except for the second group of pose nodes, other pose nodes in the second map data 140 or the adjusted second map data 140 obtained in data cleaning may not change, and these pose nodes can be referred to as fixed pose nodes.
[0036] In box 220, the map processing device 120 determines the corresponding distance between the first group of pose nodes and the second group of pose nodes based on the position information indicated by the first group of pose nodes and the second group of pose nodes. For each pose node in the second group of pose nodes, the distance between the pose node and each pose node in the first group of pose nodes can be calculated. In some embodiments, the distance between two pose nodes may include the distance between two points in the three-dimensional space coordinate system of the position information (e.g., longitude, latitude, and altitude) of the two pose nodes. In some cases, the altitude information can also be omitted when determining the distance.
[0037] In block 230, the map processing device 120 adjusts the second set of pose nodes based on the determined corresponding distances to obtain an adjusted second set of pose nodes. For each pose node in the second set of pose nodes, the distance between it and the first set of pose nodes indicates the extent to which the pose node may be affected or constrained by the first set of pose nodes. Based on such distance information, the second set of pose nodes can be adjusted so that the consistency between the second set of pose nodes and the first set of pose nodes is maintained.
[0038] In some embodiments, for each pose node in the second set of pose nodes, the distance between it and the first set of pose nodes can be considered when performing pose constraints. Such embodiments will be referred to below. Figure 5 Further detailed discussion.
[0039] In block 240, the map processing device 120 updates the second map data 140 using the first set of pose nodes and the adjusted second set of pose nodes to obtain updated second map data 145. Since the second set of pose nodes in the second map data 140 has been adjusted with respect to the first set of pose nodes, this avoids the occurrence of pose node consistency deviation, so that the pose nodes in the updated second map data are consistent with each other, thereby improving the quality of the map data.
[0040] In the updated second map data 145, the original second set of pose nodes are replaced by the adjusted second set of pose nodes. In addition, the first set of pose nodes are added to the second map data 140. In some embodiments, during the overall optimization process, the first set of pose nodes may also be optimized accordingly, for example, by performing pose constraints, which will be discussed in more detail below. The adjusted first set of pose nodes may be added to the second map data 140 to form the updated second map data 145.
[0041] As mentioned above, when the second map data 140 is updated using the first map data 115 , the map processing device 120 may perform data cleaning on the second map data 140 based on the first map data 115 to delete pose nodes from the second map data 140 that may overlap with pose nodes in the first map data 115 . Figure 3 A flow chart of a process 300 for clearing overlapping pose nodes is shown, according to some embodiments of the present disclosure.
[0042] At block 310, the map processing device 120 selects a pose node (referred to as a "first pose node" for discussion purposes) in the first map data 115 for comparison with the second map data 140. For each pose node in the first map data 115, the process 300 may be iteratively performed to filter out pose nodes that overlap with the pose node from the second map data 140.
[0043] In block 315, the map processing device 120 determines a set of pose nodes from the second map data 140, the set of pose nodes covering the geographical range in which the selected first pose node falls. Since the number of pose nodes in the first map data 115 and the second map data 140 is relatively large, in order to reduce the complexity of comparing the pose nodes one by one, a set of pose nodes that may intersect with the first pose node is determined from the second map data 140. As will be discussed later, the first pose node is compared with the selected set of pose nodes, rather than with all the pose nodes of the second map data 140 to filter out overlapping pose nodes, which can reduce the overall complexity.
[0044] The pose nodes of the second map data 140 can be divided into multiple groups, each group of pose nodes covering a specific geographical range. In some embodiments, the pose nodes can be aggregated according to the travel length and / or travel direction change degree of the map acquisition device of the second map data 140 to obtain multiple groups of pose nodes. Each group of pose nodes of the second map data 140 can be identified with a corresponding geographical coverage. In some embodiments, the pose nodes in the second map data 140 can be considered as individual components in the pose graph. A certain number of pose nodes can constitute a block of the pose graph, each block corresponding to a group of pose nodes. Similarly, the pose nodes of the first map data 115 can also be divided by blocks.
[0045] For the first pose node selected in block 310, a group of pose nodes that may overlap with the first pose node may be determined by comparing the position information indicated by the first pose node with the coverage of each group of pose nodes in the second map data 140. The position of the first pose node is determined to fall within the coverage of the group of pose nodes.
[0046] At block 320, the map processing device 120 selects a pose node (referred to as a "second pose node" for discussion purposes) from a set of pose nodes determined in the second map data 140 for comparison with the first pose node. For each pose node in the determined set of pose nodes, the comparison with the first pose node may be performed iteratively.
[0047] At block 325 , the map processing device 120 determines a threshold distance for the second pose node based on the pose difference between the first pose node and the second pose node.
[0048] The map processing device 120 can determine the posture difference between the first posture node and the second posture node based on the posture information indicated by the first posture node and the posture information indicated by the second posture node. In some embodiments, the yaw angle difference between the yaw angles in the posture information indicated by the first posture node and the second posture node can be determined, and the posture difference can be determined based on the yaw angle difference. The yaw angle in the posture information can indicate the driving direction of the map acquisition device when collecting map data, so the yaw angle difference between the two posture nodes can indicate the driving direction difference of the map acquisition device. In some embodiments, an upper limit of the posture difference, such as a yaw angle difference upper limit, can also be set to limit the posture difference (e.g., yaw angle difference) between the first posture node and the second posture node to a set upper limit of the posture difference (e.g., yaw angle difference upper limit).
[0049] For example, the pose difference can be determined as follows:
[0050] yaw diff=min(Anglediff(yaw old -yaw new ), Max_diff) formula (1)
[0051] Among them yaw old represents the yaw angle corresponding to the second pose node in the second map data 140; yaw new represents the yaw angle corresponding to the first pose node in the first map data 115; Ang1ediff() represents the determination of the angle difference; Max_diff represents the upper limit of the yaw angle difference; min() represents the selection of the minimum value among the items in the brackets; yaw diff represents the determined yaw angle difference.
[0052] The posture difference can be used to determine the dynamic threshold distance for the second posture node. For example, the posture difference can be used to adjust between the preset threshold distance upper limit and the threshold distance lower limit so that the determined threshold distance does not exceed the preset upper and lower limits. In certain embodiments, when determining the threshold distance based on the posture difference, the threshold distance upper limit and the threshold distance lower limit can be performed linear interpolation (for example, linear interpolation) to determine the threshold distance based on the posture difference. The posture difference can be used to calculate the scale factor of the linear difference. When determining the threshold distance, it is expected that the threshold distance is determined to be smaller when the posture difference is larger. For example, the threshold distance can be determined as follows:
[0053] Threshold=Interpolate(Max_threshold, Min_threshold, yaw diff / Max_diff) formula (2)
[0054] Where Threshold represents the determined threshold distance; Max_threshold and Min_threshold represent the upper and lower limits of the threshold distance respectively; Interpolate() represents linear interpolation processing; yaw diff / Max_diff represents the scaling factor of the linear interpolation so that the determined threshold distance increases with yaw diff decreases with the increase of .
[0055] As will be discussed below, the determined threshold distance is used to measure the distance between the first pose node and the second pose node to determine whether the second pose node belongs to the pose nodes to be cleared. For example, if the distance between the second pose node and the first pose node is less than the determined threshold distance, it can be determined that the second pose node has a high degree of proximity to the first pose node and a high probability of overlapping, and thus can be cleared from the second map data 140. Figure 3In the example embodiment of , the threshold distance is determined based on the difference in posture between the posture nodes. In other words, the removal of the posture nodes takes into account the distance between the posture nodes and also the posture (e.g., the driving direction). This is to take into account the influence of the posture of the map collection device on its collection data.
[0056] Figure 4A and Figure 4B Examples of different postures are shown. Figure 4A In FIG. 4 , it is assumed that the map acquisition device 410 performs point cloud data acquisition at its corresponding position, and its position and attitude (e.g., the yaw angle as shown by arrow 412) are recorded in the first attitude node. At the same time, it is assumed that the map acquisition device 420 performs point cloud data acquisition at its corresponding position, and its position and attitude (e.g., the yaw angle as shown by arrow 422) are recorded in the second attitude node. Figure 4A In the example, the distance between the first pose node and the second pose node is close, and the pose difference is also small, which means that the map acquisition device 410 may collect data overlapping with the map acquisition device 420 at this position and pose. Therefore, the second pose node should be deleted with a high probability.
[0057] exist Figure 4B , the position difference of the map acquisition device 420 relative to the map acquisition device 410 is not big, but the posture difference is big. In other words, the two map acquisition devices may be collecting in different driving directions. As shown in the figure, the yaw angle indicated by the arrow 422 deviates significantly from the yaw angle indicated by the arrow 412. Accordingly, the distance difference between the corresponding first posture node and the second posture node is small, and the posture difference is also large. In this case, it is a better choice to retain the second posture node in the second map data 140 to avoid deleting non-overlapping posture nodes, resulting in map data holes.
[0058] As mentioned above, when the posture difference is large, such as Figure 4B For example, the threshold distance can be determined as a smaller value. Based on such a threshold distance, since the posture difference is small, the second posture node may be deleted only if the distance between the first posture node and the second posture node is small enough. This avoids clearing posture nodes that are close in distance but have a large posture difference. When the posture difference is small, such as Figure 4A In the example of , the threshold distance can be determined as a larger value. Based on such a threshold distance, since the posture difference is not large, the second pose node may be deleted only when the distance between the second pose node and the first pose node is large enough.
[0059] Continue to refer back Figure 3At block 330 of process 300, the map processing device 120 determines a distance between the first pose node and the second pose node. In some embodiments, the map processing device 120 may determine the distance between the two pose nodes based on the position information indicated by the two pose nodes. In some embodiments, the map processing device 120 may determine the horizontal distance between the two pose nodes without considering the height difference between the two pose nodes.
[0060] At block 335, the map processing device 120 compares the determined distance with a threshold distance determined for the second pose node. If it is determined that the distance between the first pose node and the second pose node is less than the threshold distance, at block 340, the map processing device 120 deletes the second pose node from the second map data 140. For example, the map processing device 120 may mark the second pose node as requiring cleanup in the second map processing 140. When the updated second map data 145 is finally generated, the second pose node is deleted therefrom.
[0061] If the distance between the first pose node and the second pose node is greater than or equal to the threshold distance, at block 345 , the map processing device 120 retains the second pose node in the second map data 140 .
[0062] After performing a judgment on whether to delete or retain a pose node in the set of pose nodes determined in block 315, the map processing device 120 may continue to iteratively perform the operations of blocks 325 to 345 on other pose nodes. Specifically, in block 350, the map processing device 120 determines whether there are any unselected pose nodes in the determined set of pose nodes. If there are any unselected pose nodes, the process 300 returns to block 320 and continues to select a second pose node from the unselected pose nodes for comparison with the currently selected first pose node.
[0063] If the judgment has been performed for all the pose nodes currently determined, in block 355, the map processing device 120 determines whether there are any unselected pose nodes in the first map data 115. If there are any unselected pose nodes, the process 300 returns to block 310 to continue selecting a first pose node therefrom for filtering out possible overlapping pose nodes from the second map data 140.
[0064] Through the above iterative process, for each new pose node in the first map data 115, the pose nodes in the second map data 140 that overlap with it can be determined and filtered. If it is determined at block 355 that each pose node in the first map data 115 has been selected, the process 300 ends.
[0065] Through process 300, the adjusted second map data 140 can be determined, in which some pose nodes are cleared. As mentioned above, the map processing device 120 can select a second group of pose nodes adjacent to the first group of pose nodes in the first map data 115 from the adjusted second map data 140 as cached pose nodes. In the map data update, the buffered pose nodes are to be adjusted to achieve overall optimization of the map data. Other pose nodes (i.e., fixed pose nodes) in the adjusted second map data 140 can remain unchanged in the map data update.
[0066] As mentioned above, when adjusting the second set of pose nodes in the second map data 140, reference is made to the corresponding distances between the first set of pose nodes and the second set of pose nodes in the first map data 115. In some embodiments, the adjustment of the second set of pose nodes can be achieved by optimizing the pose constraints for the second set of pose nodes and / or the registration constraints for the second set of pose nodes.
[0067] The first map data 115 and the second map data 140 can be represented as pose graphs, respectively. Therefore, the optimization of pose nodes can be considered as a graph optimization problem. The optimization goal can be achieved by constructing a graph optimization model to minimize the error of the graph optimization model. In graph optimization, pose constraints and registration constraints are common constraints.
[0068] The pose constraint is used to constrain the position and posture of the pose nodes before and after adjustment. In some embodiments, the distance between the first group of pose nodes and the second group of pose nodes is used to affect the pose constraint for the second group of pose nodes during the optimization process. Specifically, the corresponding weights of the pose constraints for each pose node in the second group of pose nodes can be adaptively determined based on the distance from the first group of pose nodes. In some embodiments, the pose constraint for the first group of pose nodes is also performed to adjust the first group of pose nodes. In other words, both the first group of pose nodes and the second group of pose nodes can be jointly adjusted through the pose constraint to achieve the optimization goal related to the pose constraint.
[0069] In point cloud-based map construction, registration or matching refers to determining the transformation matrix (e.g., a three-dimensional rigid body transformation matrix) between two point cloud sets associated with two pose nodes so that the points in the overlapping area of the two point cloud sets are aligned. Registration can be achieved, for example, by registration algorithms such as iterative closest point (ICP) and normal distribution transform (NDT). After registration, the registration transformation relationship between a pair of pose nodes can be determined, which can be represented by a transformation matrix (represented as T), for example. Since the two pose nodes may not be collected at the same position in space, the registration process may introduce random errors. Registration constraints are used to constrain the errors introduced when performing registration between pose nodes. In the pose graph, the registration constraints are represented as edges used to constrain the connections between pose nodes in the pose graph.
[0070] In some embodiments, a registration constraint for the first group of pose nodes and the second group of pose nodes can be performed to jointly adjust the first group of pose nodes and the second group of pose nodes. In some embodiments, when performing the registration constraint, the registration constraint between the first group of pose nodes and / or the registration constraint between the second group of pose nodes are considered, that is, there are edge connections between the first group of pose nodes and these edge connections must satisfy the registration constraints, and there are also edge connections between the second group of pose nodes and the registration constraints must be satisfied. Alternatively or additionally, the registration constraint between the first group of pose nodes and the second group of pose nodes can also be considered, because the two groups of pose nodes are adjacent and there may also be edge connections that need to satisfy the registration constraints. Alternatively or additionally, the registration constraints between the second group of pose nodes and other pose nodes in the second map data 140 (for example, those that have not been deleted and are called fixed pose nodes) can also be considered.
[0071] In some embodiments, the pose constraints for individual pose nodes and the registration constraints between pose nodes can be jointly executed to achieve the global optimization goal. The graph optimization model based on pose constraints and registration constraints can be expressed as follows:
[0072]
[0073] In formula (3), P represents the set of pose nodes to be adjusted. In some embodiments, P includes a first set of pose nodes (i.e., newly added pose nodes provided by the first map data 115) and a second set of pose nodes (i.e., buffered pose nodes determined from the second map data 140). In formula (3), p i represents a pose node in the set P, It means that after achieving the optimization goal, i Determine the adjusted pose node.
[0074] Formula (3) indicates that in the graph optimization model, nonlinear optimization (e.g., iteratively adjusting the pose nodes) is performed on the pose node set P so that the determined optimized (adjusted) pose nodes meet the optimization goal. In formula (3), the first term after the Argmin function represents the pose constraint for each pose node in the set P, and the second term represents the registration constraint associated with each pose node in the set P. E i Indicates the connection from other pose nodes to pose node p in the pose graph i The edge of i,j Represents the pose node p j With pose node p i The edge of. Depends on the pose node p i The registration constraints to be considered may be different for the first set of pose nodes or the second set of pose nodes. Represents the node p used to align the pose j With pose node p i The transformation matrix can be determined, for example, from the registration process. Indicates that the pose node p i The transformation matrix that aligns to a standard coordinate system (such as the world coordinate system). Represents the transformation matrix that registers the pose node pj to a standard coordinate system (e.g., the world coordinate system).
[0075] For the second map data 140, the second group of pose nodes and the undeleted pose nodes therein can be determined after performing global optimization based on the results measured from the map acquisition device. Therefore, in some embodiments, the second group of pose nodes is further adjusted based on the previous optimization results. The registration transformation relationship between the second group of pose nodes and other pose nodes is also determined based on the previous optimization. The first group of pose nodes comes from the newly collected first map data 115, so the optimization initial value for the first group of pose nodes can be considered as a measurement result that has not yet been optimized.
[0076] Argmin in formula (3) represents the adjustment of each pose node in the pose node set P when the equation reaches the optimization target (e.g., the minimum value). The adjustment of the pose node may include the adjustment of the position information and / or the posture information. By iteratively optimizing each pose node in the set P, the adjusted pose node set P that reaches the optimization target can be determined.
[0077] In formula (3), the pose constraint is represented by the corresponding weight W 1 Adjust. Weight W 1It is mainly used to adjust the second set of pose nodes in the set P. For each pose node in the second set of pose nodes, the weight for the pose constraint can be dynamically determined based on the distance between the pose node and the first set of pose nodes. This will be discussed below with reference to Figure 5 Discuss in detail.
[0078] In formula (3), the registration constraint can also be expressed by the corresponding weight W 2 In some embodiments, W 2 It is mainly used to adjust the registration constraints between the second group of pose nodes and the fixed pose nodes in the second map data 140. In some embodiments, the weight W 2 can be set to a fixed value, for example, can be determined as a maximum value. This means that in the process of satisfying the registration constraint, the fixed pose nodes do not change, and the second set of pose nodes (i.e., the buffer pose nodes) should be aligned with the fixed pose nodes as much as possible.
[0079] In the optimization process discussed above, the adjustment (or optimization) of the second set of pose nodes is affected by the corresponding weights (e.g., weights W 1 ), these weights depend on the distances between the second set of pose nodes and the first set of pose nodes. Figure 5 A flowchart of a process 500 of pose node adjustment according to some embodiments of the present disclosure is shown. The process 500 mainly involves how to determine corresponding weights for the second group of pose nodes.
[0080] In box 510, for each pose node in the second group of pose nodes, the map processing device 210 selects a reference distance for the pose node from the corresponding distance between the pose node and the corresponding pose node in the first group of pose nodes. In this way, a set of reference distances for each pose node in the second group of pose nodes can be obtained. In some embodiments, the distance between each pose node in the second group of pose nodes and each pose node in the first group of pose nodes can be calculated separately based on the distance indicated by each pose node. In some embodiments, the reference distance can be selected as the minimum distance among the corresponding distances with the first group of pose nodes. In this way, the pose constraint of each pose node in the second group of pose nodes will be affected by the newly added pose node (i.e., the node in the first group of pose nodes) that is closest to it. Of course, for the pose nodes in the second group of pose nodes, other reference distances can also be selected, for example, a distance can be randomly selected from the determined distances as the reference distance, or an average value or other statistical value can be calculated based on the determined distance as the reference distance.
[0081] At block 520 , for each pose node in the second set of pose nodes, the map processing device 210 determines a weight for the pose node based on the reference distance for the pose node, so as to obtain a set of weights for corresponding pose nodes in the second set of pose nodes.
[0082] In some embodiments, for each pose node in the second set of pose nodes, the smaller the reference distance, the larger the weight may be determined. That is, if a pose node in the second set of pose nodes is closer to a pose node in the first set of pose nodes, then the pose constraint weight for the pose node in the second set of pose nodes is larger.
[0083] In some embodiments, the weights for the second set of pose nodes can be adjusted between an upper weight limit and a lower weight limit. The upper weight limit can be, for example, a weight for a registration constraint. The upper weight limit and the lower weight limit can be predetermined. In some embodiments, the weights can be determined by performing linear interpolation (e.g., linear interpolation) on the upper weight limit and the lower weight limit based on a reference distance.
[0084] In some embodiments, in addition to the reference distance for a single pose node, the weight of the pose node may also globally consider the corresponding distance between the second group of pose nodes and the first group of pose nodes. Specifically, the map processing device 210 may select two target reference distances (referred to as "first target reference distance" and "second target reference distance") from a set of reference distances determined for the second group of pose nodes. The first target reference distance is selected as a smaller value, such as less than the first threshold distance, and the second target reference distance is selected as a larger value, such as greater than the second threshold distance. In some embodiments, the first target reference distance is the minimum distance in a set of reference distances, and the second target reference distance is the maximum distance in a set of reference distances. The map processing device 210 may determine the reference distance difference between the first target reference distance and the second target reference distance. Then, for each pose node in the second group of pose nodes, the distance difference between the pose node and the first target reference distance (i.e., the smaller distance) is determined, and the weight for the pose node is determined based on the ratio of the determined reference distance difference to the distance difference. In an example considering a linear interpolation performed between an upper weight limit and a lower weight limit, for a given pose node in the second set of pose nodes, its weight may be determined as follows:
[0085]
[0086] Weight i Represents the given pose node P in the second set of pose nodes iThe weight of the function; Max_weight and Min_weight represent the upper and lower limits of the weight respectively; Interpolate() represents linear interpolation processing; D i Represents the given pose node P i The reference distance, which can be, for example, a given pose node P i The distance between the pose node closest to the first set of pose nodes; D min represents the minimum distance among a set of reference distances for the second set of pose nodes; and D max Represents the minimum distance among a set of reference distances for the second set of pose nodes.
[0087] In formula (4), represents the scaling factor of the linear interpolation so that for a given pose node P i The reference distance D i The larger the value, the greater the value of the pose node P. i The weight of is determined to be smaller.
[0088] At block 530, the map processing device 210 adjusts the second set of pose nodes by executing pose constraints for the second set of pose nodes based on a set of weights. The adjustment of the second set of pose nodes is incorporated into the optimization process described above. In some embodiments, the second set of pose nodes is adjusted together with the first set of pose nodes to achieve an optimization goal related to the pose constraints (and possibly the registration constraints).
[0089] In some embodiments, when updating the second map data 140, the original second group of pose nodes is replaced with the adjusted second group of pose nodes. In embodiments where the first group of pose nodes is also adjusted, the adjusted first group of pose nodes are merged into the second map data 140 as newly added pose nodes. In this way, by adjusting the existing buffered pose nodes, the pose nodes in the updated second map data 145, including the newly added pose nodes, are all consistent.
[0090] Figure 6 FIG. 6 is a schematic structural block diagram of an apparatus 600 for updating map data according to some embodiments of the present disclosure. The apparatus 600 may be implemented as or included in the map processing apparatus 120 .
[0091] As shown in the figure, the device 600 includes a pose node determination module 610, which is configured to determine a first group of pose nodes in the first map data and a second group of pose nodes adjacent to the first group of pose nodes in the second map data, each pose node indicating position information and posture information. The device 600 also includes a distance determination module 620, which is configured to determine the corresponding distance between the first group of pose nodes and the second group of pose nodes based on the position information indicated by the first group of pose nodes and the second group of pose nodes. The device 600 also includes a pose node adjustment module 630, which is configured to adjust the second group of pose nodes based on the determined corresponding distance to obtain the adjusted second group of pose nodes. The device 600 also includes a map data update module 640, which is configured to update the second map data using the first group of pose nodes and the adjusted second group of pose nodes.
[0092] In some embodiments, the second map data includes previous map data collected in the target geographic area. In some embodiments, the first map data includes new map data collected in at least a portion of the target geographic area or outside the target geographic area.
[0093] In some embodiments, the pose node determination module 610 includes a pose node deletion module, which is configured to delete pose nodes overlapping with pose nodes in the first map data from the second map data based on the corresponding distances and pose differences between the first group of pose nodes and the second group of pose nodes, to obtain adjusted second map data; and an adjacent pose node determination module, which is configured to determine a second group of pose nodes adjacent to the first group of pose nodes from the adjusted second map data.
[0094] In some embodiments, a pose node deletion module includes: for a first pose node in the first map data, a pose node determination module, configured to determine a group of pose nodes covering the position range in which the first pose node falls from multiple groups of pose nodes in the second map data, and the multiple groups of pose nodes respectively cover the corresponding position ranges; a pose difference determination module, configured to determine, for a second pose node in a group of pose nodes, a pose difference between the first pose node and the second pose node based on the pose information indicated by the first pose node and the pose information indicated by the second pose node; and a threshold distance determination module, configured to determine a threshold distance for the second pose node based on the determined pose difference; a distance determination module, configured to determine the distance between the first pose node and the second pose node based on the position information indicated by the first pose node and the position information indicated by the second pose node; and a deletion module, configured to delete the second pose node from the second map data if the determined distance is less than the determined threshold distance.
[0095] In some embodiments, the attitude difference determination module includes: a yaw angle difference calculation module, configured to calculate the yaw angle difference between the yaw angle in the attitude information indicated by the first attitude node and the yaw angle in the attitude information indicated by the second attitude node; and a yaw angle-based difference determination module, configured to determine the attitude difference based on the yaw angle difference.
[0096] In some embodiments, the threshold distance determination module is configured to determine the threshold distance by performing linear interpolation on the upper threshold distance limit and the lower threshold distance limit based on the posture difference, wherein the greater the posture difference, the smaller the threshold distance is determined to be.
[0097] In some embodiments, the pose node adjustment module 630 includes: a reference distance selection module, configured to select, for each pose node in the second group of pose nodes, a reference distance for the pose node from the corresponding distances between the pose node and the corresponding pose nodes in the first group of pose nodes, to obtain a set of reference distances for the corresponding pose nodes in the second group of pose nodes; a weight determination module, configured to determine, for each pose node in the second group of pose nodes, a weight for the pose node based on the reference distance for the pose node, to obtain a set of weights for the corresponding pose nodes in the second group of pose nodes; and a pose constraint module, configured to adjust the second group of pose nodes by performing pose constraints on the second group of pose nodes based on a set of weights.
[0098] In some embodiments, the reference distance module is configured to select, for each pose node in the second set of pose nodes, a minimum distance from corresponding distances between the pose node and a corresponding pose node in the first set of pose nodes.
[0099] In some embodiments, the weight determination module includes: a target reference distance selection module configured to select a first target reference distance and a second target reference distance from a set of reference distances, the first target reference distance being less than a first threshold distance, and the second target reference distance being greater than a second threshold distance; a reference distance difference determination module configured to determine a reference distance difference based on a distance difference between the first target reference distance and the second target reference distance; and a distance difference ratio-based weight determination module configured to determine a weight for each pose node in the second set of pose nodes based on a ratio of the reference distance difference to the following distance difference: the distance difference between the reference distance for the pose node and the first target reference distance. In some embodiments, the first target reference distance is the minimum distance in the set of reference distances. In some embodiments, the second target reference distance is the maximum distance in the set of reference distances.
[0100] In some embodiments, the pose node adjustment module 630 also includes: a joint pose constraint module, configured to jointly adjust the first group of pose nodes and the second group of pose nodes by performing pose constraints on the second group of pose nodes based on a set of weights for the second group of pose nodes and performing pose constraints on the first group of pose nodes to achieve an optimization goal related to the pose constraints.
[0101] In some embodiments, the map data update module 640 includes: a merging module configured to merge the adjusted first set of pose nodes into the second map data; and a replacing module configured to replace the second set of pose nodes in the second map data with the adjusted second set of pose nodes.
[0102] In some embodiments, the pose node adjustment module 630 also includes: a registration constraint module, configured to adjust the second group of pose nodes by executing at least one of the following registration constraints: a registration constraint between the first group of pose nodes, a registration constraint between the second group of pose nodes, a registration constraint between the first group of pose nodes and the second group of pose nodes, and a registration constraint between the second group of pose nodes and other pose nodes in the second map data.
[0103] Figure 7 A block diagram of an electronic device 700 is shown in which one or more embodiments of the present disclosure may be implemented. It should be understood that Figure 7 The electronic device 700 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein. Figure 7 The electronic device 700 shown may be included in or implemented as Figure 1 A map processing device 120 is provided.
[0104] like Figure 7 As shown, the electronic device 700 is in the form of a general-purpose computing device. The electronic device 700 may also be any type of computing device or server. The components of the electronic device 700 may include, but are not limited to, one or more processors or processing units 710, a memory 720, a storage device 730, one or more communication units 740, one or more input devices 750, and one or more output devices 760. The processing unit 710 may be an actual or virtual processor and is capable of performing various processes according to a program stored in the memory 720. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to improve the parallel processing capability of the electronic device 700.
[0105] The electronic device 700 typically includes a plurality of computer storage media. Such media may be any available media accessible to the electronic device 700, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 720 may be a volatile memory (e.g., a register, a cache, a random access memory (RAM)), a non-volatile memory (e.g., a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 730 may be a removable or non-removable medium, and may include a machine-readable medium, such as a flash drive, a disk, or any other medium, which may be capable of being used to store information and / or data (e.g., map data) and may be accessed within the electronic device 700.
[0106] The electronic device 700 may further include additional removable / non-removable, volatile / non-volatile storage media. Figure 7 As shown in , a disk drive for reading or writing from a removable, non-volatile disk (e.g., a "floppy disk") and an optical drive for reading or writing from a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to the bus (not shown) by one or more data media interfaces. The memory 720 may include a computer program product 725 having one or more program modules that are configured to perform various methods or actions of various embodiments of the present disclosure.
[0107] The communication unit 740 implements communication with other computing devices through a communication medium. Additionally, the functions of the components of the electronic device 700 can be implemented with a single computing cluster or multiple computing machines that can communicate through a communication connection. Therefore, the electronic device 700 can operate in a networked environment using a logical connection with one or more other servers, a network personal computer (PC), or another network node.
[0108] The input device 750 may be one or more input devices, such as a mouse, a keyboard, a tracking ball, etc. The output device 760 may be one or more output devices, such as a display, a speaker, a printer, etc. The electronic device 700 may also communicate with one or more external devices (not shown) through the communication unit 740 as needed, such as a storage device, a display device, etc., communicate with one or more devices that allow a user to interact with the electronic device 700, or communicate with any device that allows the electronic device 700 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).
[0109] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which computer-executable instructions or programs are stored, wherein the computer-executable instructions or programs are executed by a processor to implement the method or function described above. The computer-readable storage medium may include a non-transient computer-readable medium. According to an exemplary implementation of the present disclosure, a computer program product is also provided, including computer-executable instructions or programs, and the computer-executable instructions or programs are executed by a processor to implement the method or function described above. The computer program product may be tangibly embodied on a non-transient computer-readable medium.
[0110] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, devices, equipment, and computer program products implemented according to the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of boxes in the flowchart and / or block diagram can be implemented by computer executable instructions or programs.
[0111] These computer executable instructions or programs can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer executable instructions or programs can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0112] Computer-executable instructions or programs can be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable data processing apparatus, or other device implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0113] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple implementations of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of a module, program segment or instruction includes one or more executable instructions for realizing the logical function of the specification. In some implementations as replacements, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.
[0114] The above descriptions of various implementations of the present disclosure are exemplary, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The selection of terms used herein is intended to best explain the principles of the implementations, practical applications, or improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the various implementations disclosed herein.
Claims
1. A method for updating map data, comprising: Determine a first group of pose nodes in the first map data and a second group of pose nodes in the second map data that are adjacent to the first group of pose nodes, each pose node indicating position information and pose information; wherein the first map data at least includes newly collected map data, which is used to update the existing second map data; Determining corresponding distances between the first group of pose nodes and the second group of pose nodes based on position information indicated by the first group of pose nodes and the second group of pose nodes; adjusting the second group of pose nodes based on the determined corresponding distances to obtain an adjusted second group of pose nodes; and The second map data is updated using the first group of pose nodes and the adjusted second group of pose nodes, wherein in the updated second map data, the original second group of pose nodes is replaced by the adjusted second group of pose nodes.
2. The method of claim 1, wherein the second map data comprises previous map data collected in the target geographic area; and The first map data includes new map data collected in at least a part of the target geographical area or outside the target geographical area.
3. The method of claim 1 , wherein determining the second set of pose nodes comprises: Based on the corresponding distances and posture differences between the first group of posture nodes and the second group of posture nodes, deleting the posture nodes overlapping with the posture nodes in the first map data from the second map data to obtain adjusted second map data; as well as The second group of pose nodes adjacent to the first group of pose nodes is determined from the adjusted second map data.
4. The method according to claim 3, wherein deleting from the second map data the pose nodes overlapping with the pose nodes in the first map data comprises: For the first pose node in the first map data, Determining a group of pose nodes covering the position range in which the first pose node falls from the multiple groups of pose nodes in the second map data, the multiple groups of pose nodes respectively covering corresponding position ranges; For a second pose node in the group of pose nodes, determining a pose difference between the first pose node and the second pose node based on the pose information indicated by the first pose node and the pose information indicated by the second pose node; determining a threshold distance for the second pose node based on the determined pose difference; Determine a distance between the first pose node and the second pose node based on the position information indicated by the first pose node and the position information indicated by the second pose node; as well as If the determined distance is less than the determined threshold distance, the second pose node is deleted from the second map data.
5. The method of claim 4, wherein determining the posture difference comprises: Calculating a yaw angle difference between a yaw angle in the attitude information indicated by the first attitude node and a yaw angle in the attitude information indicated by the second attitude node; as well as The attitude difference is determined based on the yaw angle difference.
6. The method of claim 4, wherein determining the threshold distance comprises: Based on the posture difference, linear interpolation is performed on an upper threshold distance limit and a lower threshold distance limit to determine the threshold distance, wherein the greater the posture difference is, the smaller the threshold distance is determined to be.
7. The method of claim 1, wherein adjusting the second set of pose nodes comprises: For each pose node in the second group of pose nodes, select a reference distance for the pose node from corresponding distances between the pose node and corresponding pose nodes in the first group of pose nodes to obtain a set of reference distances for corresponding pose nodes in the second group of pose nodes; For each pose node in the second group of pose nodes, determine a weight for the pose node based on the reference distance for the pose node, and obtain a set of weights for the corresponding pose node in the second group of pose nodes; as well as The second set of pose nodes is adjusted by enforcing pose constraints on the second set of pose nodes based on the set of weights.
8. The method of claim 7, wherein selecting a reference distance for the pose node comprises: For each pose node in the second set of pose nodes, a minimum distance is selected from corresponding distances between the pose node and a corresponding pose node in the first set of pose nodes.
9. The method of claim 7, wherein determining the weight comprises: Selecting a first target reference distance and a second target reference distance from the set of reference distances, the first target reference distance being less than a first threshold distance, and the second target reference distance being greater than a second threshold distance; determining a reference distance difference based on a distance difference between the first target reference distance and the second target reference distance; as well as For each pose node in the second set of pose nodes, the weight is determined based on a ratio of the reference distance difference to a distance difference between the reference distance for the pose node and the first target reference distance.
10. The method according to claim 9, wherein the first target reference distance is the minimum distance in the set of reference distances, and / or The second target reference distance is the maximum distance in the set of reference distances.
11. The method of claim 7, wherein adjusting the second set of pose nodes further comprises: The first group of pose nodes and the second group of pose nodes are jointly adjusted by performing pose constraints on the second group of pose nodes based on the set of weights for the second group of pose nodes and performing pose constraints on the first group of pose nodes to achieve an optimization goal related to the pose constraints.
12. The method according to claim 11, wherein updating the second map data comprises: Merging the adjusted first group of pose nodes into the second map data; as well as The second group of pose nodes in the second map data is replaced by the adjusted second group of pose nodes.
13. The method of claim 7, wherein adjusting the second set of pose nodes comprises: The second set of pose nodes is further adjusted by enforcing at least one of the following registration constraints: The registration constraints between the first set of pose nodes, The registration constraints between the second set of pose nodes, A registration constraint between the first set of pose nodes and the second set of pose nodes, Registration constraints between the second set of pose nodes and other pose nodes in the second map data.
14. A device for updating map data, comprising: a pose node determination module, configured to determine a first group of pose nodes in first map data and a second group of pose nodes adjacent to the first group of pose nodes in second map data, each pose node indicating position information and pose information; wherein the first map data at least includes newly collected map data, which is used to update the existing second map data; a distance determination module configured to determine corresponding distances between the first group of pose nodes and the second group of pose nodes based on position information indicated by the first group of pose nodes and the second group of pose nodes; a pose node adjustment module, configured to adjust the second group of pose nodes based on the determined corresponding distances to obtain an adjusted second group of pose nodes; and The map data updating module is configured to update the second map data using the first group of pose nodes and the adjusted second group of pose nodes, wherein in the updated second map data, the original second group of pose nodes are replaced by the adjusted second group of pose nodes.
15. An electronic device, comprising: one or more processors; as well as A memory storing computer executable instructions, which, when executed by the one or more processors, enables the electronic device to implement the method according to any one of claims 1 to 13.
16. A computer-readable storage medium having computer-executable instructions stored thereon, wherein the computer-executable instructions implement the method according to any one of claims 1 to 13 when executed by a processor.
Citation Information
Patent Citations
Map building method and device
CN108827249A
Laser mapping positioning method and device, storage medium and electronic equipment
CN112068154A