IP Library Granted Patent US 10,395,117
Granted Patent B1
US 10,395,117 · App. 15/942,348 · Granted Aug 27, 2019

Visual-inertial positional awareness for autonomous and non-autonomous tracking

Inventors: Zhe Zhang (Sunnyvale, CA); Grace Tsai (Campbell, CA); Shaoshan Liu (Fremont, CA)
Assignee: Trifo, Inc.
G06K9/00671G06K9/00805G06K9/4604G06K9/6202G06K9/6296G06T7/74G06T17/05G06K9/4676G06T2207/10016G06T2207/10028G06T2207/30244
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,395,117
App. No.
15/942,348
Granted
Aug 27, 2019
Kind
B1
Abstract

The described positional awareness techniques employing visual-inertial sensory data gathering and analysis hardware with reference to specific example implementations implement improvements in the use of sensors, techniques and hardware design that can enable specific embodiments to provide positional awareness to machines with improved speed and accuracy.

Claims (61)

1. A system including:

two or more mobile platforms, including a first autonomous unit and a second autonomous unit, each having disposed thereon:

a visual sensor comprising at least 4 cameras providing at least two frames, each frame providing a 360-degrees view about a centerline of the mobile platform; and

at least one of:

a multi-axis inertial measuring unit (IMU) capable of providing measurement of at least acceleration; and

a global positioning system (GPS) receiver; and

a map server, including a processor and a coupled memory storing instructions to build 3D maps of surrounding scenery encountered by the mobile platforms using information sourced by the one or more autonomous units, which instructions when executed by the processor perform:

receiving a set of keyrigs from a first autonomous unit, each keyrig comprising visual information of surrounding scenery captured by the visual sensor of the first autonomous unit and a position of the first autonomous unit where the visual information was captured, the position of the autonomous unit generated using combinations of global positioning system (GPS) receiver, the multi-axis inertial measurement unit (IMU), and visual information of the surrounding scenery by the first autonomous unit during travel from a starting point to an end point;

classifying at least one of one or more objects from the visual information of the surrounding scenery from the set of keyrigs into a set of moving objects and a set of non-moving objects;

selecting a subset of keyrig from the set of keyrigs and determining a sparse 3D mapping of object feature points taken from the visual information of the surrounding scenery from the subset of keyrigs for the set of non-moving objects;

building a 3D map of object feature points from the sparse 3D mapping of object feature points using visual information of the surrounding scenery from the set of keyrigs for the set of non-moving objects, wherein the 3D map is accurate within centimeters; and

providing the 3D map via a communications link to one or more additional autonomous units to guide the one or more additional autonomous units at a future time.

2. The system of claim 1 , further comprising instructions that when executed by the processor perform:

receiving from a second autonomous unit a set of keyrigs while hosting a first 3D map, each keyrig comprising visual information of the surrounding scenery and a position of the first autonomous unit where the visual information was captured, the position of the autonomous unit generated using combinations of global positioning system, inertial measurement unit, and visual information of the surrounding scenery by the second autonomous unit;

generating a second 3D map using the set of keyrigs from the second autonomous unit; and

merging the second 3D map with the first 3D map.

3. The system of claim 2 , wherein the first 3D map and the second 3D map both cover common location and further comprising instructions that when executed by the processor perform: updating the first 3D map using the second 3D map.

4. The system of claim 1 , further comprising instructions that when executed by the processor perform:

generating several hundred thousand images during one hour of operation by an autonomous unit.

5. The system of claim 1 , further comprising instructions that when executed by the processor perform:

substantially contemporaneously tracking a position of moving autonomous units against 3D maps.

6. The system of claim 1 , further comprising instructions that when executed by the processor perform:

storing a time of day with at least one 3D map.

7. The system of claim 1 , further comprising instructions that when executed by the processor perform:

storing a weather condition with at least one 3D map.

8. The system of claim 1 , further comprising instructions that when executed by the processor perform:

identifying an object feature point to be included in the sparse 3D mapping of object feature points:

extracting a first set 2D features of the object from a first 360-degrees image in a keyrig selected from a subset of keyrigs;

extracting a second set of 2D features of the object from a second 360-degrees image in the selected keyrig;

receiving a position of the autonomous unit when the 360-degrees images were captured including longitude and latitude as input;

triangulating the first set of 2D features from the first 360-degrees image and the second set of 2D features from the 360-degrees second image to derive location for feature points of the object relative to the position of the autonomous unit; and

generating for at least one feature point of the object, a global position, including longitude, latitude, and height and adding the global position and feature descriptors of the object to the sparse mapping of object feature points.

9. The system of claim 1 , further comprising instructions that when executed by the processor perform:

identifying an object feature point to be included in the 3D map of object feature points:

extracting a first set 2D features of the object from a first 360-degrees image in a keyrig selected from a set of keyrigs provided by an autonomous unit;

extracting a second set of 2D features of the object from a second 360-degrees image in the selected keyrig;

receiving a position of the autonomous unit when the 360-degrees images were captured including longitude and latitude as input;

triangulating the first set of 2D features from the first 360-degrees image and the second set of 2D features from the 360-degrees second image to derive location for feature points of the object relative to the position of the autonomous unit; and

generating for at least one feature point of the object, a global position, including longitude, latitude, and height and adding the global position and feature descriptors of the object to the 3D map of object feature points.

10. The system of claim 1 , wherein accuracy is determined by a difference between a location of an object depiction on the 3D map and an actual location of the object in space.

11. The system of claim 10 , further including at least one 3D map with an accuracy within 20 centimeters.

12. The system of claim 10 , further including at least one 3D map with an accuracy within 10 centimeters.

13. The system of claim 1 , wherein the starting point of the travel of the first autonomous unit is the end point of the travel of the first autonomous unit.

14. A method for building 3D maps from a surrounding scenery using information sourced by one or more moving autonomous units that include at least a quad camera visual sensor and at least one selected from a global positioning system and an inertial measurement unit, including:

receiving a set of keyrigs from a first autonomous unit, each keyrig comprising visual information of the surrounding scenery and a position of the first autonomous unit where the visual information was captured, the position of the autonomous unit generated using combinations of global positioning system, inertial measurement unit, and visual information of the surrounding scenery by the first autonomous unit during travel from a starting point to an end point;

classifying at least one of one or more objects from the visual information of the surrounding scenery from the set of keyrigs into a set of moving objects and a set of non-moving objects;

selecting a subset of keyrig from the set of keyrigs and determining a sparse 3D mapping of object feature points taken from the visual information of the surrounding scenery from the subset of keyrigs for the set of non-moving objects;

building a 3D map of object feature points from the sparse 3D mapping of object feature points using visual information of the surrounding scenery from the set of keyrigs for the set of non-moving objects, wherein the 3D map is accurate within centimeters; and

providing the 3D map via a communications link to one or more additional autonomous units to guide the one or more additional autonomous units at a future time.

15. A non-transitory computer readable medium storing instructions for building 3D maps from surrounding scenery using information sourced by one or more moving autonomous units, which instructions when executed by a processor perform:

receiving a set of keyrigs from a first autonomous unit, each keyrig comprising visual information from surrounding scenery and a position of the first autonomous unit where the visual information was captured, the position of the autonomous unit generated using combinations of global positioning system, inertial measurement unit, and visual information of the surrounding scenery by the first autonomous unit during travel from a starting point to an end point;

classifying at least one of one or more objects from the visual information of the surrounding scenery from the set of keyrigs into a set of moving objects and a set of non-moving objects;

selecting a subset of keyrig from the set of keyrigs and determining a sparse 3D mapping of object feature points taken from the visual information of the surrounding scenery from the subset of keyrigs for the set of non-moving objects;

building a 3D map of object feature points from the sparse 3D mapping of object feature points using visual information of the surrounding scenery from the set of keyrigs for the set of non-moving objects, wherein the 3D map is accurate within centimeters; and

providing the 3D map via a communications link to one or more additional autonomous units to guide the one or more additional autonomous units at a future time.

16. A method for building 3D maps from a surrounding scenery using information sourced by one or more moving autonomous units that include at least a quad camera visual sensor and at least one selected from a global positioning system and an inertial measurement unit, including:

receiving a set of keyrigs from a first autonomous unit, each keyrig comprising visual information of the surrounding scenery and a position of the first autonomous unit where the visual information was captured, the position of the autonomous unit generated using combinations of global positioning system, inertial measurement unit, and visual information of the surrounding scenery by the first autonomous unit during travel from a starting point to an end point;

classifying at least one of one or more objects from the visual information of the surrounding scenery from the set of keyrigs into a set of moving objects and a set of non-moving objects;

selecting a subset of keyrig from the set of keyrigs and determining a sparse 3D mapping of object feature points taken from the visual information of the surrounding scenery from the subset of keyrigs for the set of non-moving objects;

building a 3D map of object feature points from the sparse 3D mapping of object feature points using visual information of the surrounding scenery from the set of keyrigs for the set of non-moving objects, wherein the 3D map is accurate within centimeters; and

providing the 3D map via a communications link to a map server that stores and distributes 3D maps to guide the autonomous unit at a future time and at least one other autonomous unit.

Assignments (2)
CHANGE OF NAME Recorded Apr 5, 2019
From: PERCEPTIN, INC.
To: TRIFO, INC.
Reel/Frame 048814/0767 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: ZHANG, ZHE; TSAI, GRACE; LIU, SHAOSHAN
To: PERCEPTIN, INC.
Reel/Frame 046583/0768 →
Continuity (1)
Continuation In Part 15250393 · Aug 29, 2016
Cited By (12)
US 12,223,591 US 12,260,489 US 12,264,936 US 12,281,898 US 12,387,502 US 12,394,156 US 12,553,738 US 12,649,241 US 12,675,962 US 12,684,310 US 12,699,394 US 12,705,762