IP Library Granted Patent US 10,267,634
Granted Patent B2
US 10,267,634 · App. 15/857,606 · Granted Apr 23, 2019

Distributed processing of pose graphs for generating high definition maps for navigating autonomous vehicles

Inventors: Chen Chen (San Jose, CA); Greg Coombe (Mountain View, CA); Derik Schroeter (Fremont, CA)
Assignee: DeepMap Inc.
G01C11/12B60W40/06G01C11/30G01C21/005G01C21/3635G01C21/3694G01S19/42G05D1/0088G05D1/0246G06K9/00791G06K9/00798G06K9/00805G06K9/4671G06K9/6212G06T7/11G06T7/246G06T7/248G06T7/55G06T7/593G06T7/68G06T7/70G06T7/73G06T7/74G06T17/05G06T17/20G08G1/20B60W2550/14G01S17/89G05D2201/0213G06T2200/04G06T2207/10021G06T2207/10028G06T2207/20048G06T2207/30252G06T2207/30256G06T2210/56G06T2215/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 10,267,634
App. No.
15/857,606
Granted
Apr 23, 2019
Kind
B2
Abstract

A high-definition map system receives sensor data from vehicles travelling along routes and combines the data to generate a high definition map for use in driving vehicles, for example, for guiding autonomous vehicles. A pose graph is built from the collected data, each pose representing location and orientation of a vehicle. The pose graph is optimized to minimize constraints between poses. Points associated with surface are assigned a confidence measure determined using a measure of hardness/softness of the surface. A machine-learning-based result filter detects bad alignment results and prevents them from being entered in the subsequent global pose optimization. The alignment framework is parallelizable for execution using a parallel/distributed architecture. Alignment hot spots are detected for further verification and improvement. The system supports incremental updates, thereby allowing refinements of subgraphs for incrementally improving the high-definition map for keeping it up to date.

Claims (52)

1. A method for distributed processing of pose graphs for generating high-definition maps, the method comprising:

receiving sensor data captured by a plurality of vehicles driving through a path in a geographical region;

generating a pose graph, wherein each node of the pose graph represents a pose of a vehicle, the pose comprising a location and orientation of the vehicle, and wherein each edge between a pair of nodes represents a transformation between nodes of the pair of nodes;

dividing the pose graph into a plurality of subgraphs, each subgraph including a set of core nodes and a set of buffer nodes;

iteratively performing the steps comprising:

for each subgraph, keeping values of boundary nodes fixed and optimizing the subgraph, and

updating all node poses using core node poses of all subgraphs;

generating a high-definition map based on a point cloud representation; and

sending the high-definition map to one or more autonomous vehicles for navigating the autonomous vehicles in the geographical region.

2. The method of claim 1 , wherein the sensor data comprises data collected by LIDAR, data collected by global positioning system (GPS), and data collected by inertial measurement unit (IMU).

3. The method of claim 1 , wherein repeatedly performing the steps further comprises, determining whether there are changes in boundary nodes as a result of updating all node poses, and stopping the iterations responsive to determining that the changes to boundary nodes are below a threshold value.

4. The method of claim 1 , wherein the subgraphs are distributed among a plurality of processors for distributed execution.

5. The method of claim 1 , wherein dividing the pose graph into a plurality of subgraphs comprises:

determining bounding boxes based on latitude and longitude values; and

assigning all poses within a bounding box to a subgraph.

6. The method of claim 1 , wherein dividing the pose graph into a plurality of subgraphs comprises dividing the pose graph along a road to obtain subgraphs.

7. The method of claim 1 , wherein dividing the pose graph into a plurality of subgraphs comprises dividing the pose graph along a junction in roads to obtain subgraphs.

8. The method of claim 1 , wherein dividing the pose graph into a plurality of subgraphs comprises dividing the pose graph with the objective of minimizing the number of boundary nodes.

9. The method of claim 1 , wherein dividing the pose graph into a plurality of subgraphs comprises identifying portions of a geographical region that have large number of samples returned by vehicles and dividing the pose graph into subgraphs such that a boundary of a subgraph passes through an identified portion of the geographical region.

10. A non-transitory computer readable storage medium storing instructions for:

receiving sensor data captured by a plurality of vehicles driving through a path in a geographical region;

generating a pose graph, wherein each node of the pose graph represents a pose of a vehicle, the pose comprising a location and orientation of the vehicle, and wherein each edge between a pair of nodes represents a transformation between nodes of the pair of nodes;

dividing the pose graph into a plurality of subgraphs, each subgraph including a set of core nodes and a set of buffer nodes;

iteratively performing the steps comprising:

for each subgraph, keeping values of boundary nodes fixed and optimizing the subgraph, and

updating all node poses using core node poses of all subgraphs;

generating a high-definition map based on a point cloud representation; and

sending the high-definition map to one or more autonomous vehicles for navigating the autonomous vehicles in the geographical region.

11. The non-transitory computer readable storage medium of claim 10 , wherein the sensor data comprises data collected by LIDAR, data collected by global positioning system (GPS), and data collected by inertial measurement unit (IMU).

12. The non-transitory computer readable storage medium of claim 10 , wherein repeatedly performing the steps further comprises, determining whether there are changes in boundary nodes as a result of updating all node poses, and stopping the iterations responsive to determining that the changes to boundary nodes are below a threshold value.

13. The non-transitory computer readable storage medium of claim 10 , wherein the subgraphs are distributed among a plurality of processors for distributed execution.

14. The non-transitory computer readable storage medium of claim 10 , wherein instructions for dividing the pose graph into a plurality of subgraphs comprise instructions for:

determining bounding boxes based on latitude and longitude values; and

assigning all poses within a bounding box to a subgraph.

15. The non-transitory computer readable storage medium of claim 10 , wherein dividing the pose graph into a plurality of subgraphs comprises dividing the pose graph along a road to obtain subgraphs.

16. The non-transitory computer readable storage medium of claim 10 , wherein dividing the pose graph into a plurality of subgraphs comprises dividing the pose graph along a junction in roads to obtain subgraphs.

17. The non-transitory computer readable storage medium of claim 10 , wherein dividing the pose graph into a plurality of subgraphs comprises dividing the pose graph with the objective of minimizing the number of boundary nodes.

18. The non-transitory computer readable storage medium of claim 10 , wherein dividing the pose graph into a plurality of subgraphs comprises identifying portions of a geographical region that have large number of samples returned by vehicles and dividing the pose graph into subgraphs such that a boundary of a subgraph passes through an identified portion of the geographical region.

19. A computer system comprising:

an electronic processor; and

a non-transitory computer readable storage medium storing instructions executable by the electronic processor, the instructions for:

receiving sensor data captured by a plurality of vehicles driving through a path in a geographical region;

generating a pose graph, wherein each node of the pose graph represents a pose of a vehicle, the pose comprising a location and orientation of the vehicle, and wherein each edge between a pair of nodes represents a transformation between nodes of the pair of nodes;

dividing the pose graph into a plurality of subgraphs, each subgraph including a set of core nodes and a set of buffer nodes;

iteratively performing the steps comprising:

for each subgraph, keeping values of boundary nodes fixed and optimizing the subgraph, and

updating all node poses using core node poses of all subgraphs;

generating a high-definition map based on a point cloud representation; and

sending the high-definition map to one or more autonomous vehicles for navigating the autonomous vehicles in the geographical region.

20. The computer system of claim 19 , wherein instructions for dividing the pose graph into a plurality of subgraphs comprise instructions for:

determining bounding boxes based on latitude and longitude values; and

assigning all poses within a bounding box to a subgraph.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2022
From: DEEPMAP INC.
To: NVIDIA CORPORATION
Reel/Frame 061038/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2019
From: DEEPMAP CAYMAN LIMITED
To: DEEPMAP INC.
Reel/Frame 050281/0787 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2018
From: DEEPMAP INC.
To: DEEPMAP CAYMAN LIMITED
Reel/Frame 046208/0934 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2018
From: CHEN, CHEN; COOMBE, GREGORY; SCHROETER, DERIK
To: DEEPMAP INC.
Reel/Frame 044962/0653 →
Continuity (2)
Provisional Application 62441080 · Dec 30, 2016
Related Publication 20180188040A1 · Jul 5, 2018
Cited By (3)
US 12,372,665 US 12,384,410 US 12,704,646