Block serialization method, dynamic loading method and processing system of point cloud map

Through a multi-level grid index system and a three-level cache architecture based on point cloud position pose and radar ranging parameters, the memory consumption and loading efficiency of large-scale point cloud maps are solved, efficient point cloud map chunking serialization and dynamic loading are achieved, and the real-time and positioning accuracy of the autonomous driving system are improved.

CN120523980AInactive Publication Date: 2025-08-22CHANGSHU INSTITUTE OF TECHNOLOGY +1
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202511029676.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-25
Publication Date
2025-08-22
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

The prior art has problems such as excessive memory consumption, low chunking efficiency, unbalanced resource scheduling and limited loading range in the storage and dynamic loading of large-scale high-precision point cloud maps, especially in large-scale scenarios, resulting in memory overflow and reduced positioning accuracy.

Method used

By determining the boundary of the map target based on the point cloud position pose and radar ranging parameters, dividing it into a multi-level grid index system, and defining a point cloud data structure containing a secondary sub-grid index, combining the third-level cache architecture and dynamic unloading mechanism, the chunking serialization and dynamic loading of the point cloud map are realized.

Benefits of technology

It realizes efficient storage and dynamic loading of large-scale point cloud maps, reduces memory requirements, improves retrieval efficiency and positioning accuracy, reduces real-time computing burden and input and output operation frequency, and ensures the real-time and robustness of the autonomous driving system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120523980A_ABST
    Figure CN120523980A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a block serialization method of a point cloud map, a dynamic loading method and a processing system, and the method comprises the steps: inputting the point cloud pose data of the map and the distance measurement parameters of a radar, and determining the target boundary of the map according to the point cloud pose data and the distance measurement parameters; dividing the map into a plurality of first-level grids according to the target boundary and the first-level block size, and uniformly dividing each first-level grid into four second-level sub-grids; defining a structure of the point cloud data containing the second-level sub-grid index field; traversing the point cloud data, calculating a first-level grid index and a second-level sub-grid index to which each point belongs, and adding the calculated second-level sub-grid index to the point cloud data structure; and storing the point cloud files in blocks according to the first-level grid index, wherein each point cloud file comprises all the point cloud data in the corresponding first-level grid and a field of the second-level sub-grid index to which each point cloud data belongs. The problem that block serialization depends on a large memory is solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the technical field of autonomous driving environment perception and three-dimensional geographic information systems, and specifically relates to a block serialization method, dynamic loading method and processing system for point cloud maps. Background Art

[0002] In the field of autonomous driving environment perception and three-dimensional geographic information systems, the storage and dynamic loading of large-scale high-precision point cloud maps face many technical bottlenecks.

[0003] The current mainstream solution stores the entire map as a single file (e.g., pcd or bin format), requiring full data read upon loading. For example, a 4km×4km urban road scenario: the raw data volume can reach 20-80GB (depending on the LiDAR harness), and even after compression, it still occupies 4-16GB of storage space. However, the autonomous driving controller has severely limited memory resources (e.g., the NVIDIA Jetson AGX only has 16-32GB). The localization module typically has less than 1GB of available memory, requiring simultaneous processing of positioning, perception, and regulation. This solution suffers from flaws in its point cloud map storage mechanism.

[0004] Some existing solutions achieve segmentation by traversing the two-dimensional boundaries of the point cloud, but the memory consumption is too high when processing ultra-large maps. Other solutions perform segmentation based on perspective division, which improves segmentation efficiency but does not solve the fundamental resource constraints. In particular, when the scene expands to a range of 10km×10km, the existing segmentation strategies fail due to memory overflow.

[0005] Furthermore, existing dynamic loading solutions suffer from limitations such as a single-level block architecture and unbalanced resource scheduling. For example, the single-level block architecture is constrained by the efficiency of the K-dimensional tree (KD-tree) data structure, requiring the loading range to be controlled within 300m × 300m. However, loading within a small range results in frequent I / O operations, which can easily lead to blocking risks. Frequent loading and unloading of point cloud data also exacerbates the I / O burden, directly impacting the real-time performance of positioning. Existing technologies also face KD-tree performance bottlenecks. For example, the KD-tree data structure, upon which point cloud positioning relies, faces the dual dilemma of expanding and shrinking the loading range, significantly reducing search efficiency and matching accuracy. Summary of the Invention

[0006] This application proposes a block serialization method, dynamic loading method and processing system for point cloud maps to address the defects of the above-mentioned existing technologies.

[0007] According to a first aspect of an embodiment of the present application, a block serialization method for a point cloud map is provided, comprising: Inputting point cloud pose data of a map and ranging parameters of a radar, and determining a target boundary of the map according to the point cloud pose data and the ranging parameters; Dividing the map into a plurality of first-level grids according to the target boundary and the first-level block size, and evenly dividing each first-level grid into four second-level subgrids; Defining a structure of point cloud data including the secondary subgrid index field; Traversing the point cloud data, calculating the first-level grid index and the second-level sub-grid index to which each point belongs, and adding the calculated second-level sub-grid index to the point cloud data structure; Point cloud files are stored in blocks according to the first-level grid index, and each point cloud file includes fields corresponding to all the point cloud data in the first-level grid and the second-level sub-grid index to which each point cloud data belongs.

[0008] In some embodiments, the point cloud pose data is keyframe point cloud global pose data, the ranging parameter is a laser radar ranging range parameter, and determining the target boundary of the map based on the point cloud pose data and the ranging parameter includes: Obtaining a first boundary of the map by traversing the global pose of the key frame point cloud; The first boundary of the map is expanded to a target boundary of the map according to the laser radar ranging range parameter.

[0009] In some embodiments, determining the target boundary of the map based on the point cloud pose data and the ranging parameters is expressed by the following formula:

[0010] in, After the map is expanded X Axis minimum value, After the map is expanded Y Axis minimum value, After the map is expanded X Axis maximum value, After the map is expanded Y Axis maximum value, is the laser radar ranging range parameter, The initial value of the first boundary X Axis minimum value, The initial value of the first boundary Y Axis minimum value, The initial value of the first boundary X Axis maximum value, The initial value of the first boundary Y Axis maximum value.

[0011] In some embodiments, dividing the map into a plurality of first-level grids according to the target boundary and the first-level block size, and evenly dividing each first-level grid into four second-level subgrids includes: Dividing the map into a plurality of first-level grids according to the target boundary and the first-level block size, and generating a row and column index for each first-level grid; Each of the first-level grids is evenly divided into four second-level sub-grids, and an orientation index is assigned to each of the second-level sub-grids.

[0012] In some implementations, generating a row and column index for each of the first-level grids includes: The number of rows and columns of the first-level grid is calculated, and a character string of the row and column index of each first-level grid is generated according to the number of rows and columns and the row and column position of each first-level grid.

[0013] In some implementations, the character string for generating the row and column indexes of each primary grid may be represented by the following formula: , ; in, is the number of rows in the number of rows and columns, is the number of columns in the number of rows and columns, is the primary block size, After the map is expanded X Axis maximum value, After the map is expanded Y Axis maximum value, After the map is expanded X Axis minimum value, After the map is expanded Y Axis minimum value.

[0014] In some embodiments, the size of the secondary subgrid is half of the size of the primary block, and the allocation rule for allocating the orientation index to each secondary subgrid is: target bit code 0 corresponds to the upper left, target bit code 1 corresponds to the upper right, target bit code 2 corresponds to the lower left, and target bit code 3 corresponds to the lower right.

[0015] In some embodiments, the point cloud data structure includes a spatial position field, a reflection intensity field, and a sub-grid index field, wherein the spatial position field is used to store three-dimensional spatial coordinate information, the reflection intensity field is used to store the intensity value of the radar reflection, and the sub-grid index field is used to store the field of the secondary sub-grid index to which the point cloud data belongs.

[0016] According to a second aspect of an embodiment of the present application, a method for dynamically loading a point cloud map is provided, which is executed based on a point cloud data file generated by the above block serialization method of the point cloud map, and includes: Reading a map metadata file and establishing a grid mapping relationship, wherein the metadata file includes a target boundary, a first-level block size, and a second-level subgrid size of the map; Calculate the first-level grid index and second-level subgrid index of the current location based on the real-time positioning coordinates and metadata files; Constructing a core buffer area with the current location as the center and constructing a spatial index data structure, wherein the area of ​​the core buffer area covers the range of the 3×3 secondary sub-grid; When the current positioned position changes and satisfies a preloading condition, asynchronously loading adjacent grid data into an extended buffer area; Memory release is performed on the grid data that exceeds the range of the 5×5 secondary subgrid; The core buffer area is updated in real time according to the current positioning position.

[0017] According to a third aspect of an embodiment of the present application, a point cloud map processing system is provided, comprising: The block serialization module is used to execute the above-mentioned point cloud map block serialization method; Dynamic loading module, used to execute the above-mentioned point cloud map dynamic loading method; The positioning service interface is used to provide real-time point cloud matching services based on the spatial index data structure constructed by the dynamic loading module.

[0018] The beneficial effects of the block serialization method, dynamic loading method, and processing system of the point cloud map in the embodiments of the present application include at least: The embodiment of the present application determines the map target boundary based on the point cloud pose and radar ranging parameters, which can ensure that the map range completely covers the effective detection area of ​​the sensor and avoid the risk of positioning blind spots when the vehicle approaches the edge of the map; divides the multi-level grid according to the target boundary and the first-level block size to establish a hierarchical spatial index system (first-level grid + second-level sub-grid) and support the precise positioning of the area loaded dynamically subsequently; by defining a point cloud data structure containing a second-level sub-grid index, the newly added index field is directly associated with the point cloud spatial orientation attribute and the real-time coordinate conversion overhead during dynamic loading is eliminated; by calculating and adding the grid index of each point to the data structure, the pre-stored index data improves the retrieval efficiency and significantly reduces the real-time calculation burden during dynamic loading; further based on the storage of point cloud files containing sub-grid indexes according to the first-level grid index, the file naming and spatial location are directly mapped to reduce the call frequency. The embodiment of the present application solves the problem of large-scale point cloud map block serialization's dependence on large memory, the problem of low efficiency of large-scale point cloud block serialization, and the problem of frequent input and output operations during map dynamic loading. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] Figure 1 This is a flowchart of an embodiment of a method for serializing a point cloud map into blocks according to an embodiment of the present application; Figure 2 This is a flowchart of an embodiment of a method for dynamically loading a point cloud map according to an embodiment of the present application; Figure 3 This is a structural diagram of a point cloud map processing system according to an embodiment of the present application. DETAILED DESCRIPTION

[0020] In order to enable those skilled in the art to better understand the technical solution of the present application, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0021] The following detailed description of the embodiments of the present application is provided in conjunction with the accompanying drawings and examples. The following detailed description of the embodiments and the accompanying drawings are used to illustrate the principles of the present application, but are not intended to limit the scope of the present application, that is, the present application is not limited to the described embodiments.

[0022] Refer to the attached Figure 1 As shown, the embodiment of the present application discloses the specific implementation steps of a block serialization method for a point cloud map, and a dynamic loading method for a point cloud map executed based on a point cloud data file generated by the block serialization method for a point cloud map. The operations of the above two methods are implemented based on a point cloud map processing system to ensure that those skilled in the art can implement the technical solution of the present application accordingly. The block serialization method for a point cloud map specifically includes the following steps 110-150.

[0023] Step 110 , inputting the point cloud pose data of the map and the ranging parameters of the radar, and determining the target boundary of the map according to the point cloud pose data and the ranging parameters.

[0024] Among them, the point cloud pose data can be the key frame point cloud global pose data, and the ranging parameters can be the laser radar ranging range parameters ( The global pose data of the keyframe point cloud is used to determine the spatial distribution range of the point cloud and the LiDAR ranging range parameters, which are used to expand the map boundary to ensure that the effective detection area of ​​the sensor is covered.

[0025] In some embodiments, determining the target boundary of the map based on the point cloud pose data and the ranging parameters includes: obtaining a first boundary of the map by traversing the global pose of the keyframe point cloud; and extending the first boundary of the map to the target boundary of the map based on the lidar ranging range parameters.

[0026] In some embodiments, determining the target boundary of the map based on the point cloud pose data and the ranging parameters is expressed as follows:

[0027] in, After the map is expanded X Axis minimum value, After the map is expanded Y Axis minimum value, After the map is expanded X Axis maximum value, After the map is expanded Y Axis maximum value, is the laser radar ranging range parameter, The initial value of the first boundary X Axis minimum value, The initial value of the first boundary Y Axis minimum value, The initial value of the first boundary X Axis maximum value, The initial value of the first boundary Y Axis maximum value.

[0028] Step 120 : Divide the map into a plurality of first-level grids according to the target boundary and the first-level block size, and evenly divide each first-level grid into four second-level subgrids.

[0029] In some embodiments, dividing the map into multiple first-level grids according to the target boundary and the first-level block size, and evenly dividing each first-level grid into four second-level sub-grids includes: dividing the map into multiple first-level grids according to the target boundary and the first-level block size, and generating row and column indexes for each first-level grid; evenly dividing each first-level grid into four second-level sub-grids, and assigning an orientation index to each second-level sub-grid.

[0030] In some implementations, generating a row and column index for each first-level grid includes: calculating the number of rows and columns of the first-level grid, and generating a character string of the row and column index for each first-level grid according to the number of rows and columns and the row and column position of each first-level grid.

[0031] For example, the string that generates the row and column indexes of each first-level grid can be expressed as follows: , ; in, is the number of rows in the number of rows and columns, is the number of columns in the number of rows and columns, is the first-level block size, After the map is expanded X Axis maximum value, After the map is expanded Y Axis maximum value, After the map is expanded X Axis minimum value, After the map is expanded Y Axis minimum value.

[0032] In some embodiments, the size of the second-level subgrid is half the size of the first-level block, and the rule for assigning an orientation index to each second-level subgrid is: target position code 0 corresponds to the upper left, target position code 1 corresponds to the upper right, target position code 2 corresponds to the lower left, and target position code 3 corresponds to the lower right. This assignment rule employs a local encoding method.

[0033] For example, the secondary subgrid size is expressed as follows: ; in, is the secondary sub-grid size.

[0034] Step 130 : defining the structure of the point cloud data including the secondary sub-grid index field.

[0035] In some embodiments, the point cloud data structure includes a spatial position field, a reflection intensity field, and a sub-grid index field, wherein the spatial position field is used to store three-dimensional spatial coordinate information, the reflection intensity field is used to store the intensity value of radar reflection, and the sub-grid index field is used to store the field of the secondary sub-grid index to which the point cloud data belongs.

[0036] For example, to define the point cloud data structure, you can use the traditional x axis, y axis, z Axis and the coordinate system of the intensity signal (INTENSITY) x, y, z, This is achieved by adding a secondary subgrid index field (DOWN_GRID_INDEX) to the data structure of the grid. In a specific development environment, this data structure can be implemented in code. The following example code snippet demonstrates the implementation process using the C++ development environment. This example is non-limiting: struct MyPointType { PCL_ADD_POINT4D; PCL_ADD_INTENSITY; int DOWN_GRID_INDEX; EIGEN_MAKE_ALIGNED_OPERATOR_NEW} EIGEN_ALIGN16; The above code snippets respectively implement the construction of a coordinate system that inherits the basic point cloud structure, the addition of intensity signal values, and the addition of sub-grid index fields.

[0037] Step 140 traverses the point cloud data, calculates the first-level grid index and the second-level sub-grid index to which each point belongs, and adds the calculated second-level sub-grid index to the point cloud data structure.

[0038] For example, first traverse the point cloud data, calculate the first-level grid index according to the corresponding coordinates in the coordinate system, and then further calculate the second-level sub-grid index within the first-level grid. Among them, each first-level grid index corresponds to four second-level sub-grid indexes Step 150 : The point cloud files are stored in blocks according to the first-level grid index. Each point cloud file contains all point cloud data corresponding to the first-level grid and the field of the second-level sub-grid index to which each point cloud data belongs. The embodiment of the present application determines the map target boundary based on the point cloud pose and radar ranging parameters, which can ensure that the map range completely covers the effective detection area of ​​the sensor and avoid the risk of positioning blind spots when the vehicle approaches the edge of the map; divides the multi-level grid according to the target boundary and the first-level block size to establish a hierarchical spatial index system (first-level grid + second-level sub-grid) and support the precise positioning of the area loaded dynamically subsequently; by defining a point cloud data structure containing a second-level sub-grid index, the newly added index field is directly associated with the point cloud spatial orientation attribute and the real-time coordinate conversion overhead during dynamic loading is eliminated; by calculating and adding the grid index of each point to the data structure, the pre-stored index data improves the retrieval efficiency and significantly reduces the real-time calculation burden during dynamic loading; further based on the storage of point cloud files containing sub-grid indexes according to the first-level grid index, the file naming and spatial location are directly mapped to reduce the call frequency. The embodiment of the present application solves the problem of large-scale point cloud map block serialization's dependence on large memory, the problem of low efficiency of large-scale point cloud block serialization, and the problem of frequent input and output operations during map dynamic loading.

[0039] Refer to the attached Figure 2 As shown, the embodiment of the present application also discloses a specific implementation step of a method for dynamically loading a point cloud map based on a point cloud data file generated by the point cloud map block serialization method. The method for dynamically loading a point cloud map includes steps 210-260.

[0040] Step 210 , read the map metadata file and establish a grid mapping relationship. The metadata file includes the target boundary, the first-level block size, and the second-level sub-grid size of the map.

[0041] Step 220 : Calculate the primary grid index and the secondary subgrid index of the current location based on the real-time positioning coordinates and the metadata file.

[0042] For example, calculating the first-level grid index and the second-level sub-grid index of the current location may include: calculating the first-level grid index of the current location ( grid_idx ) and the secondary subgrid index ( subgrid_idx ); if the secondary sub-grid index is consistent with the previous frame, skip the loading process; if the secondary sub-grid index changes, trigger the dynamic loading mechanism, that is, trigger step 230.

[0043] Step 230 : constructing a core buffer area with the current location as the center and constructing a spatial index data structure. The area of ​​the core buffer area covers the range of a 3×3 secondary sub-grid.

[0044] Among them, building a core cache area centered on the current location includes initializing a cache pool to provide resource guarantee for subsequent dynamic loading.

[0045] For example, the current location can be the coordinates of the vehicle's real-time positioning. The scope of constructing a 3×3 secondary subgrid can be to construct a local point cloud KD-Tree for the 3×3 secondary subgrid, which serves as a frequently accessed core cache. This core cache data can occupy resident memory to ensure real-time matching efficiency and maintain the vehicle's position in the 3×3 center block of the map. This allows for further real-time updates to the KD-Tree structure to maintain the vehicle's geometric center in the secondary grid.

[0046] Step 240 : When the current positioning position changes and satisfies the preloading condition, the adjacent grid data is asynchronously loaded into the extended buffer area.

[0047] Step 250 : releasing the memory of the grid data beyond the range of the 5×5 secondary sub-grid.

[0048] For example, when the vehicle's core cache area (3×3) moves to the boundary of the core cache area (that is, close to the 5×5 second-level sub-grid range), that is, when the current vehicle position is one sub-map away from the boundary, the first-level grid index to be loaded is calculated, and the target grid data is asynchronously loaded from the hard disk to the memory to keep the vehicle always in the center of the cache area.

[0049] Step 260: The core cache is updated in real time according to the current positioning position.

[0050] In some embodiments, the present application also includes an intelligent unloading mechanism. For example, after each new data update is loaded into the core cache, the distance between all grids in the memory and the current position of the vehicle is checked. If a grid at a certain level completely exceeds the boundary of the 5×5 second-level grid, its memory resources are released.

[0051] The core innovation of the embodiment of the present application is that it realizes real-time loading of point cloud maps through a three-level cache architecture and a dynamic unloading mechanism. Its layered cache architecture includes a core area (covering a 3×3 grid range) and an extended area (covering a 5×5 grid range). The core area ensures real-time performance with millisecond-level response, and the extended area supports smooth transition to significantly reduce loading delays. Dynamic resource management implements an on-demand loading mechanism, greatly reducing memory usage and making it adaptable to large-scale point cloud scenarios. The jamming phenomenon is eliminated by combining asynchronous input and output operations with preloading. The centralized cache layout ensures that the vehicle always has complete surrounding environment data support during movement. The embodiment of the present application solves the problem of large-scale point cloud map block serialization dependence on large memory, the problem of low efficiency of large-scale point cloud block serialization, and the problem of frequent calls to input and output operations during dynamic map loading.

[0052] Refer to the attached Figure 3As shown, the embodiment of the present application also discloses a point cloud map processing system, including: a block serialization module 310, a dynamic loading module 320 and a positioning service interface 330.

[0053] The block serialization module 310 is used to execute the above-mentioned point cloud map block serialization method.

[0054] The dynamic loading module 320 is used to execute the above-mentioned point cloud map dynamic loading method.

[0055] The positioning service interface 330 is used to provide real-time point cloud matching services based on the spatial index data structure constructed by the dynamic loading module.

[0056] This embodiment of the present application, through a partial implementation of a point cloud map processing system built based on a campus cloud map, discovered that by segmenting a high-precision point cloud map covering a 5km x 5km campus into small blocks (i.e., multiple storage units), each unit size controlled to approximately 120m x 120m, and each unit's storage memory size limited to 4MB (the amount of hard disk storage occupied), a standardized map block storage structure is formed. This approach significantly reduces processor memory requirements, improving loading speed and scalability. Furthermore, by optimizing storage, management, and loading strategies, measured data shows that segmenting a high-precision point cloud map collected using an 80-line lidar into small blocks of approximately 4MB significantly reduces processor memory requirements, improving loading speed and system scalability. The optimized storage, management, and loading strategies maintain a stable real-time memory consumption of approximately 30MB. During actual operation, the system estimates the pose of the current frame based on the pose output of the previous frame and performs dynamic point cloud loading based on this position information. Specifically, dynamic loading is triggered every 180 meters traveled by the vehicle, and each load takes an average of 100 milliseconds. At the same time, the system frequently builds spatial index structures, rebuilding them every 60 meters. This process takes an average of 30 milliseconds. These two key metrics work together to significantly enhance the real-time performance of map loading.

[0057] To meet the stringent real-time requirements of the system for dynamic loading and high-frequency construction of spatial index structures, the present embodiment adopts a multi-threaded parallel processing architecture to improve computing speed and responsiveness. Through algorithm-level optimization and data structure optimization, unnecessary computing and storage overhead are minimized. While ensuring real-time performance, the data processing process achieves an optimal balance between computing efficiency and positioning accuracy through refined resource scheduling and management, effectively enhancing the overall robustness and scenario adaptability of the system.

[0058] Furthermore, dynamic map loading and real-time spatial indexing, core technologies for autonomous driving, allow the system to update and maintain maps based on the vehicle's real-time location and driving status. Pose estimation accurately calculates the vehicle's current position and posture by fusing multi-source sensor data (including GPS, inertial measurement unit, and lidar) with historical pose information. Point cloud maps contain a large amount of 3D point data, accurately describing the surrounding terrain and obstacles. A 180-meter loading cycle ensures accurate and real-time map information while avoiding the impact of frequent input and output operations on system real-time performance. The high-frequency spatial indexing process continuously builds a 3D map while the vehicle is in motion, including steps such as data collection, point cloud processing (filtering, noise reduction, and segmentation), feature extraction, and spatial indexing based on data structures such as octrees. The 60-meter spatial indexing cycle and efficient 30-millisecond processing significantly improve environmental perception and positioning accuracy.

[0059] The embodiment of the present application also discloses a point cloud map block serialization system, including: a boundary determination module, a grid division module, a structure definition module, an index addition module and a data storage module.

[0060] The boundary determination module is used to input the point cloud pose data of the map and the ranging parameters of the radar, and determine the target boundary of the map based on the point cloud pose data and the ranging parameters.

[0061] The grid division module is used to divide the map into multiple first-level grids according to the target boundary and the first-level block size, and evenly divide each first-level grid into four second-level sub-grids.

[0062] The structure definition module is used to define the structure of point cloud data containing the secondary subgrid index field.

[0063] The index adding module is used to traverse the point cloud data, calculate the first-level grid index and second-level sub-grid index of each point, and add the calculated second-level sub-grid index to the point cloud data structure.

[0064] The data storage module is used to store point cloud files in blocks according to the first-level grid index. Each point cloud file contains all the point cloud data in the corresponding first-level grid and the fields of the second-level sub-grid index to which each point cloud data belongs. The present application also provides a computer-readable storage medium having a computer program stored thereon, characterized in that when the program is executed by a processor, the specific implementation steps of the above-mentioned point cloud map block serialization method and point cloud map dynamic loading method are implemented. For example, the point cloud map block serialization method and point cloud map dynamic loading method of the present application can be implemented via computer program instructions, and the relevant code can be stored in a computer-readable storage medium (such as a hard disk, SSD, or cloud server).

[0065] It is understood that the above embodiments are merely exemplary embodiments for illustrating the principles of the present application, and the present application is not limited thereto. Those skilled in the art may make various modifications and improvements without departing from the spirit and substance of the present application, and such modifications and improvements are also considered to be within the scope of protection of the present application.

Claims

1. A block serialization method for point cloud maps, characterized in that: include: Inputting point cloud pose data of a map and ranging parameters of a radar, and determining a target boundary of the map according to the point cloud pose data and the ranging parameters; Dividing the map into a plurality of first-level grids according to the target boundary and the first-level block size, and evenly dividing each first-level grid into four second-level subgrids; Defining a structure of point cloud data including the secondary subgrid index field; Traversing the point cloud data, calculating the first-level grid index and the second-level sub-grid index to which each point belongs, and adding the calculated second-level sub-grid index to the point cloud data structure; Point cloud files are stored in blocks according to the first-level grid index, and each point cloud file includes fields corresponding to all the point cloud data in the first-level grid and the second-level sub-grid index to which each point cloud data belongs.

2. The method according to claim 1, characterized in that The point cloud pose data is key frame point cloud global pose data, the ranging parameter is a laser radar ranging range parameter, and determining the target boundary of the map according to the point cloud pose data and the ranging parameter includes: Obtaining a first boundary of the map by traversing the global pose of the key frame point cloud; The first boundary of the map is extended to a target boundary of the map according to the laser radar ranging range parameter.

3. The method according to claim 2, characterized in that The target boundary of the map is determined according to the point cloud pose data and the ranging parameters by the following formula: in, After the map is expanded X Axis minimum value, After the map is expanded Y Axis minimum value, After the map is expanded X Axis maximum value, After the map is expanded Y Axis maximum value, is the laser radar ranging range parameter, The initial value of the first boundary X Axis minimum value, The initial value of the first boundary Y Axis minimum value, The initial value of the first boundary X Axis maximum value, The initial value of the first boundary Y Axis maximum value.

4. The method according to any one of claims 1 or 3, characterized in that The step of dividing the map into a plurality of first-level grids according to the target boundary and the first-level block size, and evenly dividing each first-level grid into four second-level subgrids includes: Dividing the map into a plurality of first-level grids according to the target boundary and the first-level block size, and generating a row and column index for each first-level grid; Each of the first-level grids is evenly divided into four second-level sub-grids, and an orientation index is assigned to each of the second-level sub-grids.

5. The method according to any one of claim 4, characterized in that Generating a row and column index for each of the first-level grids includes: The number of rows and columns of the first-level grid is calculated, and a character string of the row and column index of each first-level grid is generated according to the number of rows and columns and the row and column position of each first-level grid.

6. The method according to claim 5, characterized in that The character string for generating the row and column indexes of each primary grid can be expressed by the following formula: , ; in, is the number of rows in the number of rows and columns, is the number of columns in the number of rows and columns, is the primary block size, After the map is expanded X Axis maximum value, After the map is expanded Y Axis maximum value, After the map is expanded X Axis minimum value, After the map is expanded Y Axis minimum value.

7. The method according to claim 4, characterized in that The size of the secondary subgrid is half of the size of the primary block, and the allocation rule for allocating the orientation index to each secondary subgrid is: target position code 0 corresponds to the upper left, target position code 1 corresponds to the upper right, target position code 2 corresponds to the lower left, and target position code 3 corresponds to the lower right.

8. The method according to claim 1, characterized in that The point cloud data structure includes a spatial position field, a reflection intensity field, and a sub-grid index field, wherein the spatial position field is used to store three-dimensional spatial coordinate information, the reflection intensity field is used to store the intensity value of the radar reflection, and the sub-grid index field is used to store the field of the secondary sub-grid index to which the point cloud data belongs.

9. A method for dynamically loading a point cloud map, executed based on a point cloud data file generated by the block serialization method for a point cloud map according to any one of claims 1 to 8, characterized in that: include: Reading a map metadata file and establishing a grid mapping relationship, wherein the metadata file includes a target boundary, a first-level block size, and a second-level subgrid size of the map; Calculate the primary grid index and the secondary subgrid index of the current location based on the real-time positioning coordinates and the metadata file; Constructing a core buffer area with the current location as the center and constructing a spatial index data structure, wherein the area of ​​the core buffer area covers the range of the 3×3 secondary sub-grid; When the current positioned position changes and satisfies a preloading condition, asynchronously loading adjacent grid data into an extended buffer area; Memory release is performed on the grid data that exceeds the range of the 5×5 secondary subgrid; The core buffer area is updated in real time according to the current positioning position.

10. A point cloud map processing system, characterized in that: include: A block serialization module, configured to execute the point cloud map block serialization method according to any one of claims 1 to 8; A dynamic loading module, configured to execute the point cloud map dynamic loading method according to claim 9; The positioning service interface is used to provide real-time point cloud matching services based on the spatial index data structure constructed by the dynamic loading module.

Citation Information

Patent Citations

  • Gridding-based point cloud data retrieval method

    CN113190723A

  • Point cloud data processing method and device, electronic equipment and storage medium

    CN113722415A

  • Laser point cloud data processing method, device and equipment for high-precision map

    CN115080680A

  • Point cloud map partitioning method

    CN115187617A