IP Library Granted Patent US 11,429,103
Granted Patent B2
US 11,429,103 · App. 16/832,837 · Granted Aug 30, 2022

Semantic obstacle recognition for path planning

Inventors: David Millard (San Francisco, CA); Mikael Persson (Sunnyvale, CA)
Assignee: X Development LLC
G05D1/0088B25J9/0003B25J9/1666G01C21/20G05D1/024G05D1/0214G05D1/0217G05D1/0221G05D1/0246G05D1/0274G06V20/10G01C21/3453G05D1/0223Y10S901/01Y10S901/47
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,429,103
App. No.
16/832,837
Granted
Aug 30, 2022
Kind
B2
Abstract

Systems, methods, devices, and techniques for planning travel of an autonomous robot. A system identifies one or more obstacles that are located in proximity of at least a portion of a planned route for the autonomous robot. For each obstacle, the system: (i) determines a semantic class of the obstacle, including selecting the semantic class from a library that defines a set of multiple possible semantic classes for obstacles, and (ii) selects a planning policy for the obstacle that corresponds to the semantic class of the obstacle. The system can generate a trajectory along the at least the portion of the planned route using the selected planning policies. The robot can then initiate travel according to the trajectory.

Claims (38)

1. A computer-implemented method, comprising:

identifying a particular obstacle in a proximity of an autonomous robot;

determining a semantic class of the particular obstacle, including selecting the semantic class from a plurality of pre-defined semantic classes;

identifying an obstacle cost function that corresponds to the semantic class of the particular obstacle, wherein the obstacle cost function defines a cost of traveling relative to a given obstacle within the semantic class of the particular obstacle, wherein the cost varies based at least on (i) a position of the autonomous robot relative to the given obstacle and (ii) a speed of the autonomous robot; and

directing the autonomous robot to travel relative to the particular obstacle using the cost defined by the obstacle cost function.

2. The computer-implemented method of claim 1 , comprising using the obstacle cost function to plan a trajectory for the autonomous robot to travel relative to the particular obstacle, wherein directing the autonomous robot to travel relative to the particular obstacle comprises directing the robot to initiate travel according to the planned trajectory.

3. The computer-implemented method of claim 2 , wherein planning the trajectory for the autonomous robot comprises optimizing a cost of the trajectory, and the cost of the trajectory is a function of the cost defined by the obstacle cost function.

4. The computer-implemented method of claim 1 , wherein the obstacle cost function defines different values for the cost of traveling relative to the given obstacle for at least two different positions of the autonomous robot relative to the given obstacle when the autonomous robot is traveling at a same speed at the at least two different positions.

5. The computer-implemented method of claim 1 , wherein the obstacle cost function defines different values for the cost of traveling relative to the given obstacle for at least two different speeds of the autonomous robot when the autonomous robot is located at a same position relative to the given obstacle.

6. The computer-implemented method of claim 1 , wherein varying the cost defined by the obstacle cost function based on the position of the autonomous robot relative to the given obstacle comprises varying the cost based on a distance of the autonomous robot from the given obstacle.

7. The computer-implemented method of claim 1 , wherein the obstacle cost function is described in a planning policy associated with the semantic class of the particular obstacle.

8. The computer-implemented method of claim 1 , wherein different ones of the plurality of pre-defined semantic classes are associated with different obstacle cost functions, and identifying the obstacle cost function that corresponds to the semantic class of the particular obstacle comprises selecting an obstacle cost function associated with the semantic class of the particular obstacle.

9. The computer-implemented method of claim 1 , wherein determining the semantic class of the particular obstacle comprises:

accessing a hierarchical representation of the plurality of pre-defined semantic classes that organizes semantic classes based on levels of specificity; and

locating a most-specific semantic class assigned to the particular obstacle.

10. The computer-implemented method of claim 1 , wherein the particular obstacle is a person or an inanimate object.

11. A system comprising:

one or more processors; and

one or more computer-readable media having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

identifying a particular obstacle in a proximity of an autonomous robot;

determining a semantic class of the particular obstacle, including selecting the semantic class from a plurality of pre-defined semantic classes;

identifying an obstacle cost function that corresponds to the semantic class of the particular obstacle, wherein the obstacle cost function defines a cost of traveling relative to a given obstacle within the semantic class of the particular obstacle, wherein the cost varies based at least on (i) a position of the autonomous robot relative to the given obstacle and (ii) a speed of the autonomous robot; and

directing the autonomous robot to travel relative to the particular obstacle using the cost defined by the obstacle cost function.

12. The system of claim 11 , wherein the operations comprise using the obstacle cost function to plan a trajectory for the autonomous robot to travel relative to the particular obstacle, wherein directing the autonomous robot to travel relative to the particular obstacle comprises directing the robot to initiate travel according to the planned trajectory.

13. The system of claim 12 , wherein planning the trajectory for the autonomous robot comprises optimizing a cost of the trajectory, and the cost of the trajectory is a function of the cost defined by the obstacle cost function.

14. The system of claim 11 , wherein the obstacle cost function defines different values for the cost of traveling relative to the given obstacle for at least two different positions of the autonomous robot relative to the given obstacle when the autonomous robot is traveling at a same speed at the at least two different positions.

15. The system of claim 11 , wherein the obstacle cost function defines different values for the cost of traveling relative to the given obstacle for at least two different speeds of the autonomous robot when the autonomous robot is located at a same position relative to the given obstacle.

16. The system of claim 11 , wherein varying the cost defined by the obstacle cost function based on the position of the autonomous robot relative to the given obstacle comprises varying the cost based on a distance of the autonomous robot from the given obstacle.

17. The system of claim 11 , wherein the obstacle cost function is described in a planning policy associated with the semantic class of the particular obstacle.

18. The system of claim 11 , wherein different ones of the plurality of pre-defined semantic classes are associated with different obstacle cost functions, and identifying the obstacle cost function that corresponds to the semantic class of the particular obstacle comprises selecting an obstacle cost function associated with the semantic class of the particular obstacle.

19. The system of claim 11 , wherein determining the semantic class of the particular obstacle comprises:

accessing a hierarchical representation of the plurality of pre-defined semantic classes that organizes semantic classes based on levels of specificity; and

locating a most-specific semantic class assigned to the particular obstacle.

20. One or more non-transitory computer-readable media having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

identifying a particular obstacle in a proximity of an autonomous robot;

determining a semantic class of the particular obstacle, including selecting the semantic class from a plurality of pre-defined semantic classes;

identifying an obstacle cost function that corresponds to the semantic class of the particular obstacle, wherein the obstacle cost function defines a cost of traveling relative to a given obstacle within the semantic class of the particular obstacle, wherein the cost varies based at least on (i) a position of the autonomous robot relative to the given obstacle and (ii) a speed of the autonomous robot; and

directing the autonomous robot to travel relative to the particular obstacle using the cost defined by the obstacle cost function.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: GOOGLE LLC
To: GDM HOLDING LLC
Reel/Frame 071109/0342 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 064658/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2020
From: MILLARD, DAVID; PERSSON, MIKAEL
To: X DEVELOPMENT LLC
Reel/Frame 052474/0137 →