IP Library › Granted Patent US 11,734,883
Granted Patent B2
US 11,734,883 · App. 17/230,651 · Granted Aug 22, 2023

Generating mappings of physical spaces from point cloud data

Inventors: Christopher Frank Eckman (San Francisco, CA); Brady Michael Lowe (Pocatello, ID)
Assignee: Lineage Logistics, LLC
G06T17/05G06F18/23G06F18/2431G06V20/176G06T2210/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,734,883
App. No.
17/230,651
Granted
Aug 22, 2023
Kind
B2
Abstract

This specification describes systems and methods for generating a mapping of a physical space from point cloud data for the physical space. The methods can include receiving the point cloud data for the physical space, filtering the point cloud data to, at least, remove sparse points from the point cloud data, aligning the point cloud data along x, y, and z dimensions that correspond to an orientation of the physical space, and classifying the points in the point cloud data as corresponding to one or more types of physical surfaces. The methods can also include identifying specific physical structures in the physical space based, at least in part, on classifications for the points in the point cloud data, and generating the mapping of the physical space to identify the specific physical structures and corresponding contours for the specific physical structures within the orientation of the physical space.

Claims (114)

1. A method for generating a mapping of a physical space from point cloud data for the physical space, the method comprising:

receiving, by a computing system, the point cloud data for the physical space, the point cloud data including a plurality of points in three-dimensional space that approximate locations of physical surfaces within the physical space;

filtering, by the computing system, the point cloud data to, at least, remove sparse points from the point cloud data;

aligning, by the computing system, the point cloud data along x, y, and z dimensions that correspond to an orientation of the physical space;

classifying, by the computing system, the points in the point cloud data as corresponding to one or more types of physical surfaces;

identifying, by the computing system, specific physical structures in the physical space based, at least in part, on classifications for the points in the point cloud data;

generating, by the computing system, the mapping of the physical space to identify the specific physical structures and corresponding contours for the specific physical structures within the orientation of the physical space;

detecting, by the computing system and from the point cloud data, physical objects in the physical space; and

determining, by the computing system, characteristics of the detected physical objects in the physical space,

wherein detecting, by the computing system, the physical objects in the physical space comprises:

classifying points in the point cloud data that are associated with contours related to the physical objects,

localizing the classified points, and

straightening the localized points into the physical objects, and

wherein classifying, by the computing system, points in the point cloud data that are associated with the physical objects comprises:

voxelizing the point cloud data into first predetermined mesh sizes,

for each voxel, clustering points of the point cloud data in the voxel,

for each cluster of points in the voxel, voxelizing the cluster of points into second predetermined mesh sizes,

for each point in each voxelized cluster of points, classifying the point as an object point,

for each cluster of points in the voxel, normalizing the classifications for each point, and

determining, based on the normalizing the classifications for each point, whether each cluster of points in the voxel is associated with the physical objects in the physical space.

2. The method of claim 1 , wherein classifying, by the computing system, the points in the point cloud data comprises:

selecting, from the point cloud data, a reference point;

identifying, for the reference point, k nearest neighbor points;

calculating, for each of the k nearest neighbor points, spherical coordinates with respect to the reference point;

determining, based on the spherical coordinates for each of the k nearest neighbor points, spherical features of the reference point; and

classifying, based on determining the spherical features of the reference point, the reference point, wherein the reference point can be classified as belonging to at least one of a floor, a wall, a vertical pole, a support beam, a pallet, and noise.

3. The method of claim 2 , wherein classifying, by the computing system, the points in the point cloud data further comprises outputting at least one of (i) classifications for each of the points in the point cloud data, (ii) spherical features for each of the points in the point cloud data, and (iii) objects that are represented by the point cloud data based on the classifications for each of the points in the point cloud data.

4. The method of claim 1 , wherein aligning, by the computing system, the point cloud data comprises identifying one or more reference points around at least one of a door or a window in the physical space, wherein the one or more reference points indicate an axis on which to rotate the point cloud data.

5. The method of claim 1 , wherein aligning, by the computing system, the point cloud data comprises detecting a bounding box around the physical space, wherein the bounding box indicates an axis on which to rotate the point cloud data.

6. The method of claim 1 , wherein:

detecting, by the computing system and from the point cloud data, physical objects in the physical space comprises:

detecting, by the computing system and from the point cloud data, vertical poles, and

determining, by the computing system, characteristics of the detected physical objects in the physical space comprises:

detecting, by the computing system and from the point cloud data based on the detected vertical poles, rack sections;

determining, by the computing system, pallet footprints based on the detected rack sections;

determining, by the computing system, heights of each shelf section in the detected rack sections; and

identifying, by the computing system, pallet locations for each shelf section of the detected rack sections based on the pallet footprints and the heights of each shelf section.

7. The method of claim 6 , wherein detecting, by the computing system, vertical poles comprises:

classifying points in the point cloud data that are associated with vertical poles;

localizing the classified points; and

straightening the localized points into vertical poles.

8. The method of claim 7 , wherein detecting, by the computing system, rack sections comprises:

clustering the vertical poles into rack groupings;

classifying the clustered vertical poles with a rack type and a rack orientation;

interpolating missing rack poles for each of the clustered vertical poles based on the classifying the clustered vertical poles with a rack type and a rack orientation; and

detecting rack sections based on the clustered vertical poles.

9. The method of claim 8 , wherein clustering, by the computing system, the vertical poles into rack groupings comprises:

receiving rack information;

for each cluster, determining size information of the cluster, wherein the size information includes a bounding box, minimum x, Y, and Z coordinates of the bounding box, and maximum X, Y, and Z coordinates of the bounding box;

determining whether the size information of the cluster is consistent with the rank information;

returning, based on determining that the size information of the cluster is not consistent with the rack information, points in the cluster to a pool of points in the point cloud data;

identifying, based on determining that the size information of the cluster is consistent with the rack information, orientation information of the cluster; and

generating a rack list containing the cluster, the size information of the cluster, and the orientation information of the cluster.

10. The method of claim 9 , further comprising:

selecting, by the computing system, a rack from the rack list;

determining, by the computing system, distances between each of the vertical poles in the selected rack;

determining, by the computing system, orientation information for each of the vertical poles in the selected rack; and

determining, by the computing system, a rack type of the selected rack based on the distances and the orientation information for each of the vertical poles.

11. The method of claim 7 , wherein classifying, by the computing system, points in the point cloud data that are associated with vertical poles comprises:

voxelizing the point cloud data into first predetermined mesh sizes;

for each voxel, clustering points of the point cloud data in the voxel;

for each cluster of points in the voxel, voxelizing the cluster of points into second predetermined mesh sizes;

for each point in each voxelized cluster of points, classifying the point as a vertical pole point;

for each cluster of points in the voxel, normalizing the classifications for each point; and

determining, based on the normalizing the classifications for each point, whether each cluster of points in the voxel is associated with vertical poles.

12. The method of claim 11 , wherein for each point in each voxelized cluster of points, classifying, by the computing system, the point as a vertical pole point comprises:

applying a covariance matrix to the voxelized cluster of points;

determining standard deviation values for each point in the voxelized cluster of points;

identifying a high standard deviation in a Z direction;

identifying a low standard deviation in X and Y directions; and

assigning, for each point in the voxelized cluster of points and based on the identified high standard deviation and the identified low standard deviation, a score for one dimensional or two dimensional points extension to the point.

13. The method of claim 11 , wherein for each point in each voxelized cluster of points, classifying, by the computing system, the point as a vertical pole point comprises applying a spherical covariance matric to the voxelized cluster of points.

14. The method of claim 11 , wherein for each point in each voxelized cluster of points, classifying, by the computing system, the point as a vertical pole point comprises applying a histogram filter to the voxelized cluster of points.

15. The method of claim 11 , wherein for each point in each voxelized cluster of points, classifying, by the computing system, the point as a vertical pole point comprises applying a neural network to the voxelized cluster of points.

16. The method of claim 6 , wherein determining, by the computing system, pallet footprints based on the detected rack sections comprises:

for each of the detected rack sections, determining whether the detected rack section has a select rack type;

calculating, based on determining that the detected rack section has the select rack type, two pallet footprint centers in the detected rack section; and

calculating, based on determining that the detected rack section does not have the select rack type, one pallet footprint center in the detected rack section.

17. The method of claim 6 , wherein determining, by the computing system,

heights of each shelf section in the detected rack sections comprises:

for each of the detected rack sections, filtering out vertical objects from the detected rack section;

detecting horizontal planes in the filtered rack section;

identifying whether the horizontal planes have characteristics of a shelf section;

determining a high shelf score based on determining that the horizontal planes have characteristics of the shelf section; and

determining a low shelf score relative to the high shelf score based on determining that the horizontal planes do not have characteristics of the shelf section, wherein the low shelf score is closer to 0 and the high shelf score is closer to 1.

18. A computerized system for generating a mapping of a physical space from point cloud data for the physical space, the system comprising:

one or more processors; and

one or more computer-readable devices including instructions that, when executed by the one or more processors, cause the computerized system to perform operations that include:

receiving the point cloud data for the physical space, the point cloud data including a plurality of points in three-dimensional space that approximate locations of physical surfaces within the physical space;

filtering the point cloud data to, at least, remove sparse points from the point cloud data;

aligning the point cloud data along x, y, and z dimensions that correspond to an orientation of the physical space;

classifying the points in the point cloud data as corresponding to one or more types of physical surfaces;

identifying specific physical structures in the physical space based, at least in part, on classifications for the points in the point cloud data;

generating the mapping of the physical space to identify the specific physical structures and corresponding contours for the specific physical structures within the orientation of the physical space;

detecting, from the point cloud data, physical objects in the physical space; and

determining characteristics of the detected physical objects in the physical space,

wherein detecting the physical objects in the physical space comprises:

classifying points in the point cloud data that are associated with contours related to the physical objects,

localizing the classified points, and

straightening the localized points into the physical objects, and

wherein classifying, by the computing system, points in the point cloud data that are associated with the physical objects comprises:

voxelizing the point cloud data into first predetermined mesh sizes,

for each voxel, clustering points of the point cloud data in the voxel,

for each cluster of points in the voxel, voxelizing the cluster of points into second predetermined mesh sizes,

for each point in each voxelized cluster of points, classifying the point as an object point,

for each cluster of points in the voxel, normalizing the classifications for each point, and

determining, based on the normalizing the classifications for each point, whether each cluster of points in the voxel is associated with the physical objects in the physical space.

19. The system of claim 18 , wherein classifying the points in the point cloud data comprises:

selecting, from the point cloud data, a reference point;

identifying, for the reference point, k nearest neighbor points;

calculating, for each of the k nearest neighbor points, spherical coordinates with respect to the reference point;

determining, based on the spherical coordinates for each of the k nearest neighbor points, spherical features of the reference point; and

classifying, based on determining the spherical features of the reference point, the reference point, wherein the reference point can be classified as belonging to at least one of a floor, a wall, a vertical pole, a support beam, a pallet, and noise.

20. The system of claim 19 , wherein classifying the points in the point cloud data further comprises outputting at least one of (i) classifications for each of the points in the point cloud data, (ii) spherical features for each of the points in the point cloud data, and (iii) objects that are represented by the point cloud data based on the classifications for each of the points in the point cloud data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2022
From: ECKMAN, CHRISTOPHER FRANK; LOWE, BRADY MICHAEL
To: LINEAGE LOGISTICS, LLC
Reel/Frame 059904/0716 →
Continuity (1)
Related Publication 20220335688A1 · Oct 20, 2022