Point-free updating method, system and device for voxel map and storage medium

By integrating the point cloud information in the element into an abstract point cloud cluster information, the problem of memory explosion caused by the increasing increase of the point cloud data during the positioning of the element map, and the efficiency of efficient memory use and improvement.

CN119359948APending Publication Date: 2025-01-24SHENZHEN GUANGJIAN TECH CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411412515.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-11
Publication Date
2025-01-24

AI Technical Summary

Technical Problem

When the existing voxel map positioning technology is updated, point cloud data will increase endlessly, resulting in memory explosion and excessive resource consumption.

Method used

By fusing the point cloud information in each voxel that has been successfully plane-fitted into an abstract point cloud cluster information, it avoids storing point cloud information in the voxels after plane fitting, thereby improving operating efficiency and reducing memory usage. .

Benefits of technology

The operating efficiency of the positioning of the gel map has been greatly improved, the occupation of memory is reduced, the problem of memory explosion is avoided, and the point cloud data of different density and distance is suitable for different density and distance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119359948A_ABST
    Figure CN119359948A_ABST
Patent Text Reader

Abstract

A voxel map point-free updating method, system and device and a storage medium, the method comprising: step S1: obtaining a point cloud, and projecting the point cloud into a voxel to update the point cloud in the voxel; s2, judging whether plane information exists in the voxels or not; if the plane information exists, executing the step S4; if there is no plane information and the number of point clouds in the voxels is greater than a fitting threshold, performing plane fitting to obtain a fitting plane, and executing the step S3; s3, plane information of the fitting plane is stored, and point cloud information in the voxels is deleted; and S4, carrying out point-free updating on the plane information. According to the method, point cloud information does not need to be stored in voxels after plane fitting, so that the operation efficiency of voxel map positioning is greatly improved, and the occupation of voxel map positioning on a memory is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0002] The positioning principle of voxel map mainly involves the division of voxel grid, the calculation of point cloud observation covariance matrix, the calculation of plane parameters and plane covariance matrix of the plane obtained by plane fitting of point cloud in the same voxel, and the calculation of distance residual between point cloud and plane in the same voxel. Voxel map solves the current sensor pose by optimizing the current pose of the sensor to reduce the residual between point cloud and plane, thereby achieving precise positioning. In the prior art, when the map is updated, the newly obtained point cloud is often stored, that is, "storage point mode". However, the point cloud in the storage point mode increases endlessly. As long as there is a point in this voxel, it will continue to increase, resulting in memory explosion.

[0003] In the process of voxel map positioning, the main function of point cloud storage is that when a new point cloud enters a voxel, the plane parameters and plane covariance matrix in the voxel need to be recalculated. At this time, it is necessary to use the historical point cloud stored in the voxel and the new point cloud to perform plane fitting and plane uncertainty calculation again.

[0004] The disclosure of the above background technology content is only used to assist in understanding the inventive concept and technical solution of the present invention. It does not necessarily belong to the prior art of this patent application. In the absence of clear evidence that the above content has been disclosed on the filing date of this patent application, the above background technology should not be used to evaluate the novelty and creativity of the present application. Summary of the invention

[0005] To this end, the present invention is based on voxel map positioning, and the point cloud information in each voxel that successfully performs plane fitting is merged into an abstract point cloud cluster information, thereby eliminating the need to store point cloud information in the voxel after plane fitting, greatly improving the operating efficiency of voxel map positioning and reducing the memory usage of voxel map positioning.

[0006] In a first aspect, the present invention provides a pointless updating method for a voxel map, characterized by comprising:

[0007] Step S1: acquiring a point cloud, and projecting the point cloud into a voxel, so that the point cloud in the voxel is updated;

[0008] Step S2: Determine whether there is plane information in the voxel; if there is plane information and the distance between the point cloud and the plane is within a preset distance, execute step S4; otherwise, if the number of point clouds in the voxel is greater than a fitting threshold, perform plane fitting to obtain a fitting plane, and execute step S3;

[0009] Step S3: saving the plane information of the fitting plane and deleting the point cloud information in the voxel;

[0010] Step S4: updating the plane information without point conversion.

[0011] Optionally, the pointless updating method of a voxel map is characterized in that step S1 comprises:

[0012] Step S11: obtaining point cloud;

[0013] Step S12: Projecting the point cloud into a voxel map in a world coordinate system.

[0014] Optionally, the pointless updating method of a voxel map is characterized in that, when performing plane fitting, it includes:

[0015] Step S21: obtaining a point cloud for plane fitting in the current voxel;

[0016] Step S22: Calculate the centroid of the point cloud for plane fitting;

[0017] Step S23: constructing a point cloud covariance matrix;

[0018] Step S24: Decomposing the point cloud covariance matrix singular values ​​to obtain a plane equation.

[0019] Optionally, the pointless updating method of a voxel map is characterized in that, in step S2, before plane fitting, the point cloud is divided into at least two groups according to the density of the point cloud, and plane fitting is performed separately to obtain at least two fitting planes.

[0020] Optionally, the pointless updating method of a voxel map is characterized in that, in step S2, the angle between the two fitting planes is also determined, and if it is smaller than a preset angle, the two fitting planes are merged into one plane.

[0021] Optionally, the pointless updating method of a voxel map is characterized in that step S4 comprises:

[0022] Step S41: incrementally updating the plane centroid through point cloud coordinate information;

[0023] Step S42: incrementally updating the point cloud clique covariance matrix through the point cloud coordinate information;

[0024] Step S43: incrementally updating the plane normal vector through the point cloud coordinate information;

[0025] Step S44: incrementally updating the plane covariance matrix through the point cloud coordinate information;

[0026] Step S45: Update the number of points using the point cloud coordinate information.

[0027] Optionally, the point-free updating method of a voxel map is characterized in that in step S44, according to the formula Update the plane covariance matrix; where,

[0028] In a second aspect, the present invention provides a pointless updating system for a voxel map, which is used to implement any of the pointless updating methods for a voxel map described above, and is characterized by comprising:

[0029] A point cloud module, used for acquiring a point cloud and projecting the point cloud into a voxel so that the point cloud in the voxel is updated;

[0030] A judgment module, used to judge whether there is plane information in the voxel; if there is plane information and the distance between the point cloud and the plane is within a preset distance, the pointless update module is executed; otherwise, if the number of point clouds in the voxel is greater than a fitting threshold, plane fitting is performed to obtain a fitting plane, and a saving module is executed;

[0031] A saving module, used for saving the plane information of the fitting plane and deleting the point cloud information in the voxel;

[0032] The pointless updating module is used for performing pointless updating on the plane information.

[0033] In a third aspect, the present invention provides a pointless updating device for a voxel map, characterized in that it comprises:

[0034] processor;

[0035] a memory storing executable instructions of the processor;

[0036] The processor is configured to execute the steps of any of the aforementioned methods for updating a voxel map without point division by executing the executable instructions.

[0037] In a fourth aspect, the present invention provides a computer-readable storage medium for storing a program, characterized in that when the program is executed, the steps of any of the aforementioned methods for pointless updating of a voxel map are implemented.

[0038] Compared with the prior art, the present invention has the following beneficial effects:

[0039] The present invention is based on voxel map positioning, and the point cloud information in each voxel that successfully performs plane fitting is merged into an abstract point cloud cluster information, thereby eliminating the need to store point cloud information in the voxel after plane fitting, greatly improving the operating efficiency of voxel map positioning and reducing the memory usage of voxel map positioning.

[0040] The present invention replaces the point cloud storage mode in the prior art with a matrix of fixed size, thereby avoiding the problem of memory explosion and excessive memory consumption caused by a substantial increase in point cloud data within a voxel as point cloud data is continuously imported in the prior art, greatly reducing resource consumption and improving processing efficiency.

[0041] The present invention accumulates point cloud fitting planes in voxels, and is thus applicable not only to lasers with higher point cloud density but also to lasers with lower point cloud density, and is applicable to both shorter distances and longer distances.

[0042] The present invention performs fitting according to the number of newly added point clouds, so that the situation where multiple planes exist in a voxel can be better identified and processed, and has very good adaptability to application scenarios with large voxel sizes and complex scenes. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following will briefly introduce the drawings required for use in the embodiments or the prior art descriptions. Obviously, the drawings in the following descriptions are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without creative work. By reading the detailed description of the non-limiting embodiments with reference to the following drawings, other features, purposes and advantages of the present invention will become more obvious:

[0044] Figure 1 A flowchart of a method for updating a voxel map without point conversion in an embodiment of the present invention;

[0045] Figure 2 is a schematic diagram of a voxel in an embodiment of the present invention;

[0046] Figure 3 A flowchart of the steps of projecting a point cloud to a voxel in an embodiment of the present invention;

[0047] Figure 4 This is a flow chart of the steps of performing plane fitting in an embodiment of the present invention;

[0048] Figure 5 A flowchart of a non-pointing update step in an embodiment of the present invention;

[0049] Figure 6 It is a structural schematic diagram of a pointless updating system of a voxel map in an embodiment of the present invention;

[0050] Figure 7 is a structural schematic diagram of a pointless updating device for a voxel map in an embodiment of the present invention; and

[0051] Figure 8Schematic diagram of the structure of a computer-readable storage medium in an embodiment of the present invention. DETAILED DESCRIPTION

[0052] The present invention is described in detail below in conjunction with specific embodiments. The following embodiments will help those skilled in the art to further understand the present invention, but are not intended to limit the present invention in any form. It should be noted that, for those of ordinary skill in the art, several variations and improvements may be made without departing from the concept of the present invention. These all belong to the protection scope of the present invention.

[0053] The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present invention described herein, for example, can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0054] An embodiment of the present invention provides a pointless updating method for a voxel map, aiming to solve the problems existing in the prior art.

[0055] The following specific embodiments are used to describe in detail the technical solutions of the present invention and how the technical solutions of the present application solve the above-mentioned technical problems. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present invention will be described below in conjunction with the accompanying drawings.

[0056] The present invention is based on voxel map positioning, and the point cloud information in each voxel that successfully performs plane fitting is merged into an abstract point cloud cluster information, thereby eliminating the need to store point cloud information in the voxel after plane fitting, greatly improving the operating efficiency of voxel map positioning and reducing the memory usage of voxel map positioning.

[0057] Figure 1 FIG. 1 is a flowchart of a method for updating a voxel map without point conversion in an embodiment of the present invention. Figure 1 As shown, the steps of a pointless updating method of a voxel map in an embodiment of the present invention include:

[0058] Step S1: Acquire a point cloud, and project the point cloud into a voxel, so that the point cloud in the voxel is updated.

[0059] In this step, first, the point cloud data of the environment is obtained through LiDAR, depth camera or other 3D sensing devices. This data contains the 3D coordinate information of all objects in the scene. The obtained point cloud data is projected into a voxel grid. Figure 2 As shown, a voxel is a cubic unit in three-dimensional space in a world coordinate system rather than a camera coordinate system, similar to a pixel in a two-dimensional image, but with volume. By dividing the space into multiple voxels, the point cloud data can be discretized for subsequent processing. When new point cloud data arrives, it is projected into the corresponding voxel and the point cloud information in the voxel is updated. "Update" in this embodiment means adding a point cloud to a voxel without operating the existing point cloud (if any) in the voxel.

[0060] Step S2: Determine whether there is plane information in the voxel; if there is plane information and the distance between the point cloud and the plane is within a preset distance, execute step S4; otherwise, if the number of point clouds in the voxel is greater than the fitting threshold, perform plane fitting to obtain a fitting plane, and execute step S3.

[0061] In this step, for each voxel, it is checked whether the plane information is already contained inside it. The plane information is the plane information calculated by the previous frame data. Since the present embodiment retains the plane information after fitting the plane, when the plane information is detected in this step, it means that the plane information has been fitted before, and when the distance between the point cloud and the plane is within the preset distance, step S4 is executed to perform pointless update. If there is plane information, but the distance between the point cloud and the plane is greater than the preset distance, it means that there may be two or more planes in the voxel. If no plane information is detected, it means that the plane was not fitted in the previous frame; then it is determined whether the current number of point clouds in the voxel is greater than the fitting threshold. If the number of point clouds is not greater than the fitting threshold, no operation is performed. At this time, the number of point clouds in the voxel will gradually accumulate as the data is acquired. If the point cloud data is greater than the fitting threshold, plane fitting is performed to obtain the fitting plane, and step S3 is executed. The fitting threshold is a preset value, which can be set according to the voxel size, point cloud density, etc. When the number of point clouds in the voxel exceeds the threshold, it is considered that there is enough data for plane fitting. When performing plane fitting, any plane fitting method in the prior art can be used, such as the least squares method, the total least squares method, etc., or the direction represented by the eigenvector corresponding to the minimum eigenvalue of the covariance matrix is ​​consistent with the distribution direction of most of the point cloud data in the voxel, and the eigenvalue is much smaller than other eigenvalues, then the voxel is considered to contain plane information.

[0062] Step S3: Save the plane information of the fitting plane, and delete the point cloud information in the voxel.

[0063] In this step, after obtaining the fitted plane, the original point cloud data in the voxel is deleted, and only the plane information of the fitted plane (such as the plane equation, normal vector, etc.) is saved. This can reduce storage space and speed up subsequent processing.

[0064] Step S4: updating the plane information without point conversion.

[0065] In this step, the plane information is incrementally updated according to the existing point cloud data in the voxel. Since the point cloud corresponding to the plane information has been deleted, this update method is called "pointless update". It should be noted that before performing the pointless update, it is necessary to determine the positional relationship between the point cloud and the plane. If the point cloud is too far away from the plane, the point cloud is regarded as an outlier and the plane information is not updated with the point cloud; if the distance between the point cloud and the plane is within the preset range, the point cloud participates in the update of the plane information. The point clouds participating in the update are divided into two categories: point clouds within the plane and point clouds outside the plane. The update parameters of the point clouds within the plane and the point clouds outside the plane are different. First, the point cloud within the plane is used to update the number of point clouds in the plane information, and then the point cloud outside the plane is used to incrementally update the plane information. The pointless update method can reduce the amount of point cloud data stored and processed, and improve the efficiency of map updates.

[0066] In some embodiments, in step S2, before plane fitting, the point cloud is divided into at least two groups according to the density of the point cloud, and plane fitting is performed separately to obtain at least two fitting planes. When the voxel size is large, there may be two or more planes in the voxel. In this embodiment, the point cloud is divided according to the density, so that the point clouds that may be in the same plane are divided into one group. Specifically, the point cloud is divided into several groups, which can be adjusted according to the density of the point cloud. For example, if the point cloud is distributed in three dense areas, the point cloud is divided into three groups. Since the distribution of the point cloud may be regular or irregular, the distribution of the point cloud is more complicated when it comes to a single voxel. This embodiment can well identify possible plane positions.

[0067] In some embodiments, in step S2, the angle between the two fitting planes is also determined. If it is less than the preset angle, the two fitting planes are merged into one plane. In the previous embodiment, two or more fitting planes are identified. However, it does not always mean that there are two or more planes in the voxel. It may also be caused by the distribution characteristics of the point cloud itself. Therefore, this embodiment judges the two or more fitting planes obtained in the above-mentioned embodiment to determine whether two or more planes are the same plane. When judging whether two or more fitting planes are the same plane, any method in the prior art can be used, such as judging according to the normal vector angle or the plane distance. If there are two fitting planes that are the same plane, the two fitting planes are merged into the same plane, so that the number of fitting planes is reduced. This embodiment ensures that the fitting plane in the same voxel is the largest area, avoiding different expressions of a plane that may exist in the same voxel.

[0068] Figure 3 FIG. 1 is a flowchart of a step of projecting a point cloud to a voxel in an embodiment of the present invention. Figure 3 As shown, in an embodiment of the present invention, a step of projecting a point cloud to a voxel includes:

[0069] Step S11: Obtain point cloud.

[0070] In this step, this step is the starting point of data acquisition. Through LiDAR, depth camera or other 3D sensing devices, the point cloud data of the environment is acquired in real time or offline. By scanning, the point cloud in the camera coordinate system is acquired. Where i∈[1,N] represents N points obtained in each scan, and i represents the i-th point. Due to the existence of observation noise, it can be assumed that With the real There is a mean value between The covariance matrix is Error It can be expressed in the following mathematical language:

[0071]

[0072] By current robot pose Point Cloud Convert to the world coordinate system and get p i The formula is:

[0073]

[0074] Similarly, p i This is also a quantity with errors:

[0075]

[0076] Then p i The covariance of The covariance matrix of is linearly transformed:

[0077]

[0078] Step S12: Projecting the point cloud into a voxel map in a world coordinate system.

[0079] In this step, before voxelization, a global world coordinate system needs to be determined in order to unify the point cloud data from different camera coordinate systems into the same coordinate system. For example, when the depth camera moves, the position of the same wall in the camera coordinate system moves, while in the global world coordinate system, the position of the wall remains unchanged. The voxel map is a three-dimensional grid structure, and each voxel occupies a unit in the grid. Projecting the point cloud data into the voxel map is to assign it to the corresponding voxel according to the coordinates of the point cloud.

[0080] During the projection process, the voxel size (i.e., the side length of each voxel) needs to be determined. The choice of voxel size depends on the needs of the application scenario. Smaller voxels can provide higher spatial resolution, but will also increase the amount of computation and storage requirements.

[0081] The projection process is:

[0082] (1) Using the voxel side length d, calculate p i The voxel coordinates are:

[0083] [x voxel ,y voxel ,z voxel ] T =p i / d

[0084] (2) Change p i Added to the voxel at the corresponding voxel coordinates.

[0085] (3) Determine whether the number of points in the current voxel is greater than the threshold of plane fitting (such as 10, 20, 30 or other arbitrary values). If it is greater than the threshold, the point cloud in the voxel is used for plane fitting. If it is less than the threshold, the voxel is not processed.

[0086] Figure 4 FIG. 1 is a flow chart of the steps of performing plane fitting in an embodiment of the present invention. Figure 4 As shown, a step of performing plane fitting in an embodiment of the present invention includes:

[0087] Step S21: Obtain the point cloud used for plane fitting in the current voxel.

[0088] In this step, all point cloud data for plane fitting are screened out from the current voxel, and these data will be used in the subsequent plane fitting process.

[0089] Step S22: Calculate the centroid of the point cloud for plane fitting.

[0090] In this step, the centroid is the geometric center of the point cloud set, which is the average value of all point coordinates. Calculating the centroid is an important step in plane fitting because it is often used as a reference point for the plane equation. The formula for calculating the centroid of the point cloud used for plane fitting is as follows:

[0091]

[0092] Step S23: constructing a point cloud covariance matrix.

[0093] In this step, the covariance matrix is ​​used to describe the deviations between the coordinates of each point in the point cloud, especially how they are distributed relative to the center of mass. In plane fitting, the covariance matrix reveals in which directions the point cloud is most widely distributed (i.e., the direction with the largest eigenvalue) and in which directions it is relatively concentrated (i.e., the direction with the smallest eigenvalue). When calculating the point cloud covariance matrix, the formula is as follows:

[0094]

[0095] Step S24: Decomposing the point cloud covariance matrix singular values ​​to obtain a plane equation.

[0096] In this step, singular value decomposition (SVD) is an effective matrix decomposition method that can decompose the covariance matrix into the product of three matrices: an orthogonal matrix, a diagonal matrix (containing singular values), and the transpose of another orthogonal matrix. The three eigenvalues ​​of the A matrix and the corresponding eigenvectors are obtained through singular value decomposition.

[0097] Obtaining the plane equation: Minimum eigenvalue λ min The corresponding eigenvector n is the normal vector of the plane. Since the centroid of the point cloud is known, the plane equation can be obtained as:

[0098] n T (pq) = 0

[0099] When min When λ is less than a threshold (usually 0.01), we judge that the plane fitting is successful. minWhen it is greater than this threshold, we determine that the plane fitting fails. If the plane fitting is successful, we can perform a pointless operation on the current voxel. If the plane fitting fails, we will not operate on this voxel. If this voxel cannot complete the plane fitting, when the number of points stored in it exceeds the upper threshold (such as 100, 150, 200, 250 or other arbitrary values), all points in this voxel are cleared to ensure that memory consumption is maintained at a very low level.

[0100]

[0101] After the plane fitting is successful, since it is a quantity with errors, n and q both contain their own errors δn and δq. Assume that n and q are about p i The function of , then the following relationship can be listed:

[0102]

[0103] in, Yes i .

[0104]

[0105] Find p for function f i The first-order Jacobian matrix is ​​equivalent to finding p for n and q respectively. i The first-order Jacobian matrix of n is first calculated by p i The first-order Jacobian matrix of :

[0106]

[0107] Among them, U is the characteristic matrix of A, u m represents the mth eigenvalue λ m The corresponding eigenvector. Find p for q i The first-order Jacobian matrix of :

[0108]

[0109] With the above two Jacobian matrices, we can use δp i The covariance matrix of [n,q] is used to calculate T The covariance matrix of is:

[0110]

[0111] This covariance matrix represents the covariance matrix of the current plane.

[0112] This embodiment utilizes the point cloud data in the voxels to effectively fit a plane and extract the geometric information of the plane, which is very critical for subsequent processing.

[0113] Figure 5 FIG. 1 is a flowchart of a non-point updating step in an embodiment of the present invention. Figure 5 As shown, a step of non-pointing update in an embodiment of the present invention includes:

[0114] Step S41: incrementally update the plane centroid using point cloud coordinate information.

[0115] In this step, the plane information includes: plane centroid q, plane normal vector n, point cloud group covariance matrix A, plane covariance matrix Σ n,q , number of points N. The point cloud cluster covariance matrix A is the covariance matrix between multiple point clouds in a single voxel. The number of points N is the number of point clouds used when fitting the plane. Since all point cloud information in the voxel has been deleted in the previous step, the previously extracted information q, n, Σ can only be obtained through the new point cloud coordinate information p. n,q , A, and N are incrementally updated. The centroid update formula is:

[0116]

[0117] Step S42: incrementally update the point cloud clique covariance matrix using the point cloud coordinate information.

[0118] In this step, we need to construct a covariance matrix about the plane point cloud, which describes the distribution of the point cloud in the plane. When new point cloud data arrives, we can use an incremental method to update this covariance matrix instead of recalculating the entire matrix. The formula is as follows:

[0119]

[0120] Step S43: incrementally update the plane normal vector using the point cloud coordinate information.

[0121] In this step, the plane normal vector is an important parameter that describes the plane direction. When new point cloud data is added to the plane, we can update the normal vector by recalculating the eigenvector corresponding to the minimum singular value of the covariance matrix containing the new point cloud. ` Perform singular value decomposition and find the eigenvector corresponding to the minimum eigenvalue, which is the new plane normal vector n`.

[0122] Step S44: incrementally update the plane covariance matrix using the point cloud coordinate information.

[0123] In this step, the plane covariance matrix is ​​the covariance matrix that describes the uncertainty of the plane parameters (such as the center of mass, normal vector, etc.). In this process, we need to find Σ nq Σ obtained after incremental update nq `

[0124] First, Σ n,q Expand the expression:

[0125]

[0126] Since Σ nn ,Σ nq T ,Σ nq ,Σ qq There is similarity between them, so next we will use Σ nn Take as an example to deduce the incremental update.

[0127] Σ nn Expand:

[0128]

[0129] Assumption b mn is the element in the mth row and nth column of matrix B

[0130] Then we can get b mn :

[0131]

[0132] b mn The first item is To represent:

[0133]

[0134] Lemma 1: Let e1 = [1, 0, 0] T 、e2=[0,1,0] T 、e3=[0,0,1] T .

[0135] According to Lemma 1, let Will D i , Expand:

[0136]

[0137]

[0138] Will D i , Bring in get:

[0139]

[0140] Lemma 2: Let xT Gy=tr(x T Gy) = tr(yx T G).

[0141] According to Lemma 2, we can Becomes as follows:

[0142]

[0143] in:

[0144]

[0145] As you can see, The quantity on which the expression depends, F m With F n After A is updated, we can get i is the new point cloud coordinate information, Can be obtained by p i Get, that is, b mn The update of does not need to rely on all point cloud information. After solving, substitute b mn . mn Substitute Σ nn , and get the updated Σ nn `.

[0146] Similarly, b mn The remaining three items are defined as follows:

[0147]

[0148] Will Expand to get:

[0149]

[0150]

[0151] Among them, e j belong The orthonormal basis in Y j , Z can be updated as follows:

[0152]

[0153] Among them, q and F can be updated incrementally. Therefore, b mn All parameters of Σ are updated. nq Expand it and get:

[0154]

[0155] c mn represents the value of the mth row in matrix C, and nth row in matrix C. Then the following derivation can be performed:

[0156]

[0157] Y n and Z can be updated from the above parts. Therefore c mn It can also be updated. Finally, we get:

[0158]

[0159] Similarly, we can get Σ nq T` ,Σ nq `、Σ qq `. After combining them, we can get the updated plane covariance matrix Σ n,q `.

[0160] Step S45: Update the number of points using the point cloud coordinate information.

[0161] This is one of the most straightforward and simple updates in this step. Whenever new point cloud data is added to the plane, we simply increase the number of points in the plane by the corresponding amount. This information is useful for assessing the stability and importance of the plane.

[0162] Plane fitting points update:

[0163] N`=N+1

[0164] The "incremental update" method in this embodiment is generally more efficient than completely recalculating the entire parameter set, especially when processing large amounts of data, thereby greatly reducing the amount of data processing, reducing memory consumption, and improving processing efficiency.

[0165] Figure 6 FIG. 1 is a schematic diagram of a structure of a pointless updating system for a voxel map in an embodiment of the present invention. Figure 6 As shown, a pointless updating system for a voxel map in an embodiment of the present invention includes:

[0166] A point cloud module, used for acquiring a point cloud and projecting the point cloud into a voxel so that the point cloud in the voxel is updated;

[0167] A judgment module, used for judging whether there is plane information in the voxel; if there is plane information, executing the pointless update module; if there is no plane information and the number of point clouds in the voxel is greater than the fitting threshold, performing plane fitting to obtain a fitting plane, and executing the saving module;

[0168] A saving module, used for saving the plane information of the fitting plane and deleting the point cloud information in the voxel;

[0169] The pointless updating module is used for performing pointless updating on the plane information.

[0170] This embodiment is based on voxel map positioning, and the point cloud information in each voxel that successfully performs plane fitting is merged into an abstract point cloud cluster information, thereby eliminating the need to store point cloud information in the voxel after plane fitting, greatly improving the operating efficiency of voxel map positioning and reducing the memory usage of voxel map positioning.

[0171] The embodiment of the present invention also provides a point-free updating device for a voxel map, comprising a processor and a memory, wherein executable instructions of the processor are stored, wherein the processor is configured to execute the steps of a point-free updating method for a voxel map by executing the executable instructions.

[0172] As mentioned above, this embodiment is based on voxel map positioning, and the point cloud information in each voxel that successfully performs plane fitting is merged into an abstract point cloud cluster information, thereby eliminating the need to store point cloud information in the voxel after plane fitting, greatly improving the operating efficiency of voxel map positioning and reducing the memory usage of voxel map positioning.

[0173] It will be appreciated by those skilled in the art that various aspects of the present invention may be implemented as systems, methods or program products. Therefore, various aspects of the present invention may be specifically implemented in the following forms, namely: complete hardware implementation, complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software implementations, which may be collectively referred to herein as "circuits", "modules" or "platforms".

[0174] Figure 7 Schematic diagram of the structure of a pointless updating device for a voxel map in an embodiment of the present invention. Figure 7 The electronic device 600 according to this embodiment of the present invention is described. Figure 7 The electronic device 600 shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.

[0175] like Figure 7 As shown, the electronic device 600 is in the form of a general computing device. The components of the electronic device 600 may include, but are not limited to: at least one processing unit 610, at least one storage unit 620, a bus 630 connecting different platform components (including the storage unit 620 and the processing unit 610), a display unit 640, etc.

[0176] The storage unit stores program codes, which can be executed by the processing unit 610, so that the processing unit 610 executes the steps of various exemplary embodiments of the present invention described in the above-mentioned method for updating a voxel map without point conversion. For example, the processing unit 610 can execute the following steps: Figure 1 Follow the steps shown in .

[0177] The storage unit 620 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 6201 and / or a cache memory unit 6202 , and may further include a read-only memory unit (ROM) 6203 .

[0178] The storage unit 620 may also include a program / utility 6204 having a set (at least one) of program modules 6205, such program modules 6205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a grid environment.

[0179] Bus 630 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.

[0180] The electronic device 600 may also communicate with one or more external devices 700 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), one or more devices that enable a user to interact with the electronic device 600, and / or any device that enables the electronic device 600 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed through an input / output (I / O) interface 650. Furthermore, the electronic device 600 may also communicate with one or more grids (e.g., a local area network (LAN), a wide area network (WAN), and / or a public grid, such as the Internet) through a grid adapter 660. The grid adapter 660 may communicate with other modules of the electronic device 600 through the bus 630. It should be understood that although Figure 7 Not shown, other hardware and / or software modules may be used in conjunction with electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage platforms.

[0181] In an embodiment of the present invention, a computer-readable storage medium is also provided for storing a program, and when the program is executed, the steps of a method for updating a voxel map without point changes are implemented. In some possible implementations, various aspects of the present invention may also be implemented in the form of a program product, which includes a program code. When the program product is run on a terminal device, the program code is used to enable the terminal device to execute the steps of various exemplary embodiments of the present invention described in the above-mentioned method for updating a voxel map without point changes in this specification.

[0182] As shown above, this embodiment is based on voxel map positioning, and the point cloud information in each voxel that successfully performs plane fitting is merged into an abstract point cloud cluster information, thereby eliminating the need to store point cloud information in the voxel after plane fitting, greatly improving the operating efficiency of voxel map positioning and reducing the memory usage of voxel map positioning.

[0183] Figure 8 Schematic diagram of the structure of a computer-readable storage medium in an embodiment of the present invention. Figure 8 As shown, a program product 800 for implementing the above method according to an embodiment of the present invention is described, which can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto. In this document, a readable storage medium can be any tangible medium containing or storing a program, which can be used by or in combination with an instruction execution system, an apparatus or a device.

[0184] The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0185] Computer readable storage media may include data signals propagated in baseband or as part of a carrier wave, wherein readable program codes are carried. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The readable storage medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, device, or device. The program codes contained on the readable storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination thereof.

[0186] Program code for performing the operations of the present invention may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, C++, and the like, as well as conventional procedural programming languages ​​such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving a remote computing device, the remote computing device may be connected to the user computing device through any type of grid, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0187] This embodiment is based on voxel map positioning, and the point cloud information in each voxel that successfully performs plane fitting is merged into an abstract point cloud cluster information, thereby eliminating the need to store point cloud information in the voxel after plane fitting, greatly improving the operating efficiency of voxel map positioning and reducing the memory usage of voxel map positioning.

[0188] In this specification, each embodiment is described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same and similar parts between the embodiments can be referred to each other. The above description of the disclosed embodiments enables professionals and technicians in this field to implement or use the present invention. Various modifications to these embodiments will be obvious to professionals and technicians in this field, and the general principles defined herein can be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention will not be limited to these embodiments shown in this article, but will comply with the widest range consistent with the principles and novel features disclosed herein.

[0189] The above describes the specific embodiments of the present invention. It should be understood that the present invention is not limited to the above specific embodiments, and those skilled in the art may make various modifications or variations within the scope of the claims, which do not affect the essence of the present invention.

Claims

1. A pointless updating method for a voxel map, characterized in that: include: Step S1: acquiring a point cloud, and projecting the point cloud into a voxel, so that the point cloud in the voxel is updated; Step S2: Determine whether there is plane information in the voxel; if there is plane information and the distance between the point cloud and the plane is within a preset distance, execute step S4; otherwise, if the number of point clouds in the voxel is greater than a fitting threshold, perform plane fitting to obtain a fitting plane, and execute step S3; Step S3: saving the plane information of the fitting plane and deleting the point cloud information in the voxel; Step S4: updating the plane information without point conversion.

2. A pointless updating method for a voxel map according to claim 1, characterized in that: The step S1 comprises: Step S11: obtaining point cloud; Step S12: Projecting the point cloud into a voxel map in a world coordinate system.

3. A pointless updating method for a voxel map according to claim 2, characterized in that: When performing plane fitting, include: Step S21: obtaining a point cloud for plane fitting in the current voxel; Step S22: Calculate the centroid of the point cloud for plane fitting; Step S23: constructing a point cloud covariance matrix; Step S24: Decomposing the point cloud covariance matrix singular values ​​to obtain a plane equation.

4. The pointless updating method of a voxel map according to claim 1, characterized in that: In step S2, before plane fitting is performed, the point cloud is divided into at least two groups according to the density of the point cloud, and plane fitting is performed separately to obtain at least two fitting planes.

5. A pointless updating method for a voxel map according to claim 4, characterized in that: In step S2, the included angle between the two fitting planes is also determined. If the included angle is smaller than a preset included angle, the two fitting planes are merged into one plane.

6. A pointless updating method for a voxel map according to claim 1, characterized in that: Step S4 includes: Step S41: incrementally updating the plane centroid through point cloud coordinate information; Step S42: incrementally updating the point cloud clique covariance matrix through the point cloud coordinate information; Step S43: incrementally updating the plane normal vector through the point cloud coordinate information; Step S44: incrementally updating the plane covariance matrix through the point cloud coordinate information; Step S45: Update the number of points using point cloud coordinate information.

7. A pointless updating method for a voxel map according to claim 6, characterized in that: In step S44, according to the formula Update the plane covariance matrix; where, 8. A pointless updating system for a voxel map, used to implement the pointless updating method for a voxel map according to any one of claims 1 to 7, characterized in that: include: A point cloud module, used for acquiring a point cloud and projecting the point cloud into a voxel so that the point cloud in the voxel is updated; A judging module, used for judging whether there is plane information in the voxel; If there is plane information, and the distance between the point cloud and the plane is within a preset distance, the pointless update module is executed; Otherwise, if the number of point clouds in the voxel is greater than the fitting threshold, plane fitting is performed to obtain a fitting plane, and a saving module is executed; A saving module, used for saving the plane information of the fitting plane and deleting the point cloud information in the voxel; The pointless updating module is used for performing pointless updating on the plane information.

9. A pointless updating device for a voxel map, characterized in that: include: processor; a memory storing executable instructions of the processor; The processor is configured to perform the steps of the method for non-pointing update of a voxel map according to any one of claims 1 to 7 by executing the executable instructions.

10. A computer-readable storage medium for storing a program, characterized in that: When the program is executed, the steps of the pointless updating method of the voxel map according to any one of claims 1 to 7 are implemented.