IP Library Granted Patent US 10,410,403
Granted Patent B1
US 10,410,403 · App. 15/912,063 · Granted Sep 10, 2019

Three-dimensional voxel mapping

Inventors: X (Portland, OR); Dana Maher (Portland, OR); Matthew S. Fanelli (Washington, DC)
Assignee: Verizon Patent and Licensing Inc.
G06T15/08G06T17/05G06T2200/04
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 10,410,403
App. No.
15/912,063
Granted
Sep 10, 2019
Kind
B1
Abstract

A device can be configured to receive map data from at least one map data provider, the map data including data points representing information regarding a space. The device can generate a first set of voxels based on the map data, the first set of voxels representing a first three-dimensional space that includes: at least a portion of the space represented by the map data, and voxel data corresponding to at least one of the data points. The device may also index the first set of voxels in a first index; generate a second set of voxels based on the first set of voxels, the second set of voxels representing a second three-dimensional space that is included in the first three-dimensional space; and index the second set of voxels in a second index.

Claims (108)

1. A device, comprising:

one or more processors to:

receive map data from at least one map data provider,

the map data including a plurality of data points representing information regarding a space;

generate a first set of voxels based on the map data,

the first set of voxels representing a first three-dimensional space that includes:

at least a portion of the space represented by the map data, and

first voxel data corresponding to at least one of the plurality of data points;

index the first set of voxels in a first index;

receive pattern data that specifies a pattern identified in the first voxel data;

generate a second set of voxels based on the first set of voxels,

the second set of voxels representing a second three-dimensional space that is included in the first three-dimensional space,

the second set of voxels including second voxel data,

the second voxel data including a subset of the first voxel data and at least a portion of the pattern, and

where the one or more processors, when generating the second set of voxels based on the first set of voxels, are to:

determine that the pattern spans multiple voxels included in the second set of voxels; and

include, in each of the multiple voxels spanned by the pattern, pattern reference data that identifies a location within the voxel where the pattern intersects an edge of the voxel;

generate a formula representing the portion of the pattern;

replace, in the second voxel data, data representing the portion of the pattern with the formula; and

index the second set of voxels in a second index.

2. The device of claim 1 , where each of the plurality of data points includes at least two coordinates that define a location in the space represented by the map data.

3. The device of claim 1 , where at least one of the plurality of data points includes a vector that defines a location in the space represented by the map data.

4. The device of claim 1 , where the plurality of data points represents, for the space, at least one of:

terrain information;

environment information;

topographical information;

street information;

border information;

space restriction information;

material information; or

object information.

5. The device of claim 1 , where the one or more processors, when receiving the map data from the at least one map data provider, are to:

receive, from a first map data provider, a first portion of the plurality of data points representing information regarding the space; and

receive, from a second map data provider, a second portion of the plurality of data points representing information regarding the space,

the second portion being different from the first portion.

6. The device of claim 5 , where the one or more processors, when generating the first set of voxels based on the map data, are to:

include, in the first three-dimensional space, at least a portion of:

the first portion of the plurality of data points, and

the second portion of the plurality of data points.

7. The device of claim 5 , where:

the one or more processors, when generating the first set of voxels based on the map data, are to:

include, in the first three-dimensional space, at least a portion of the first portion of the plurality of data points; and

the one or more processors, when generating the second set of voxels based on the first set of voxels, are to:

include, in the second three-dimensional space, at least a portion of the second portion of the plurality of data points.

8. A non-transitory computer-readable medium storing instructions, the instructions comprising:

one or more instructions that, when executed by one or more processors, cause the one or more processors to:

receive map data from at least one map data provider,

the map data including a plurality of data points representing information regarding a space;

generate a first set of voxels based on the map data,

the first set of voxels representing a first three-dimensional space that includes:

at least a portion of the space represented by the map data, and

first voxel data corresponding to at least one of the plurality of data points;

index the first set of voxels in a first index;

receive pattern data that specifies a pattern identified in the first voxel data;

generate a second set of voxels based on the first set of voxels,

the second set of voxels representing a second three-dimensional space that is included in the first three-dimensional space,

the second set of voxels including second voxel data,

the second voxel data including a subset of the first voxel data and at least a portion of the pattern, and

where the one or more instructions, that cause the one or more processors to generate the second set of voxels based on the first set of voxels, cause the one or more processors to:

determine that the pattern spans multiple voxels included in the second set of voxels; and

include, in each of the multiple voxels spanned by the pattern, pattern reference data that identifies a location within the voxel where the pattern intersects an edge of the voxel;

generate a formula representing the portion of the pattern;

replace, in the second voxel data, data representing the portion of the pattern with the formula; and

index the second set of voxels in a second index.

9. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, that cause the one or more processors to generate the first set of voxels based on the map data, cause the one or more processors to:

identify, based on a density of the map data, a subset of the map data that will not be represented in the first voxel data.

10. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, that cause the one or more processors to generate the second set of voxels based on the first set of voxels, cause the one or more processors to:

identify, based on a density of the first voxel data included in the first set of voxels, a second subset of the first voxel data that will not be represented in the second voxel data.

11. The non-transitory computer-readable medium of claim 8 , where:

the first set of voxels are arranged in a regular grid, and

each voxel in the first set of voxels defines a cube-shaped three-dimensional space.

12. The non-transitory computer-readable medium of claim 8 , where:

each voxel in the first set of voxels defines an irregular hexahedron-shaped three-dimensional space, and

for each voxel in the first set of voxels, a volume of the space represented by the voxel is based on coordinates associated with the space represented by the voxel.

13. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, that cause the one or more processors to generate the second set of voxels based on the first set of voxels, cause the one or more processors to:

subdivide the first set of voxels.

14. A method, comprising:

receiving, by at least one of one or more devices, map data from at least one map data provider,

the map data including a plurality of data points representing information regarding a space;

generating, by at least one of the one or more devices, a first set of voxels based on the map data,

the first set of voxels representing a first three-dimensional space that includes:

at least a portion of the space represented by the map data, and

first voxel data corresponding to at least one of the plurality of data points;

indexing, by at least one of the one or more devices, the first set of voxels in a first index;

receiving, by at least one of the one or more devices, pattern data that specifies a pattern identified in the first voxel data;

generating, by at least one of the one or more devices, a second set of voxels based on the first set of voxels,

the second set of voxels representing a second three-dimensional space that is included in the first three-dimensional space,

the second set of voxels including second voxel data,

the second voxel data including a subset of the first voxel data and at least a portion of the pattern, and

where generating the second set of voxels based on the first set of voxels comprises:

determining that the pattern spans multiple voxels included in the second set of voxels; and

including, in each of the multiple voxels spanned by the pattern, pattern reference data that identifies a location within the voxel where the pattern intersects an edge of the voxel;

generating, by at least one of the one or more devices, a formula representing the portion of the pattern;

replacing, by at least one of the one or more devices and in the second voxel data, data representing the portion of the pattern with the formula; and

indexing, by at least one of the one or more devices, the second set of voxels in a second index.

15. The method of claim 14 , where generating the first set of voxels based on the map data comprises:

determining the first voxel data to include in the first set of voxels based on a first type of user device associated with the first set of voxels.

16. The method of claim 15 , where generating the second set of voxels based on the first set of voxels comprises:

determining the first voxel data to include in the second set of voxels based on a second type of user device associated with the second set of voxels, the second type of user device being different from the first type of user device.

17. The method of claim 14 , where generating the second set of voxels based on the first set of voxels comprises:

determining the first voxel data to include in the second set of voxels based on an amount of storage resources used to store the first voxel data.

18. The method of claim 14 , further comprising:

receiving, from a user device, a request for third voxel data;

identifying, based on the request, third voxel data included in one of the first index or the second index; and

providing the user device with the third voxel data.

19. The method of claim 14 , wherein the formula specifies at least a portion of a shape.

20. The method of claim 14 , wherein generating the second set of voxels based on the first set of voxels further comprises:

identifying, based on a density of the first voxel data included in the first set of voxels, a second subset of the first voxel data that will not be represented in the second voxel data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2018
From: SKYWARD IO, INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 046834/0590 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2018
From: ., X; MAHER, DANA; FANELLI, MATTHEW S.
To: SKYWARD IO, INC.
Reel/Frame 045125/0115 →