IP Library Granted Patent US 11,660,748
Granted Patent B1
US 11,660,748 · App. 17/346,900 · Granted May 30, 2023

Managing robot resources

Inventors: Sarah Coe (Mountain View, CA); Nathan Pooley (Sunnyvale, CA)
Assignee: X Development LLC
B25J9/1661G06F9/5038G06F9/5044
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,660,748
App. No.
17/346,900
Granted
May 30, 2023
Kind
B1
Abstract

Methods, systems, and devices for managing robot resources are described. A robot receives from an application a request to reserve a particular set of physical resources of the robot. The robot then determines that each of the physical resources in the set are available to the application and, based on the determination, allocates exclusive use of the particular set of resources to the application by (i) generating a token corresponding to the set of resources, (ii) providing the token to the application, and (iii) updating token data that associates the token with the set of resources. The robot then controls access to the particular set of resources such that, while token data indicates that the token is valid, commands from applications that involve the set of resources are only executed when provided with the token corresponding to the allocation of access to the particular set of resources.

Claims (51)

1. A method performed by one or more computing devices, the method comprising:

receiving, by the one or more computing devices, a request to access or reserve access to a resource of a robot, the request being associated with a first module of the robot;

determining, by the one or more computing devices, a priority level associated with the request;

determining, by the one or more computing devices, that the priority level associated with the request exceeds a priority level of an existing first reservation that reserves access to the resource for a second module of the robot; and

in response to determining that the priority level associated with the request exceeds the priority level of the first reservation:

cancelling, by the one or more computing devices, the first reservation to remove authorization of the second module to access the resource of the robot; and

based on the request, generating, by the one or more computing devices, a second reservation that authorizes the first module to access to the resource of the robot.

2. The method of claim 1 , wherein the one or more computing devices are one or more computing devices of the robot.

3. The method of claim 1 , wherein the resource is a physical resource of the robot.

4. The method of claim 1 , wherein the first module and the second module are different software applications of the robot.

5. The method of claim 1 , further comprising notifying the second module that the first reservation is cancelled.

6. The method of claim 1 , wherein the first reservation is associated with a corresponding token; and

wherein cancelling the first reservation comprises invalidating the token for the first reservation.

7. The method of claim 6 , wherein generating the second reservation comprises:

associating a token with the second reservation; and

providing the token to the first module of the robot.

8. The method of claim 1 , wherein the resource is one of multiple resources of the robot that are reserved by the first reservation;

wherein cancelling the first reservation comprises cancelling the reservation of each of the multiple resources associated with the first reservation.

9. The method of claim 1 , comprising receiving an identifier for the first module in association with the request;

wherein determining the priority level associated with the request comprises determining the priority level based on the identifier for the first module.

10. The method of claim 1 , wherein the priority level associated with the request is based on a type of operation that the first module resource plans to use the resource to perform.

11. The method of claim 1 , comprising storing reservation data that indicates reservations of resources of the robot, tokens associated with the reservations, and priority levels for the reservations; and

wherein determining the priority level for the first reservation comprises retrieving, from the reservation data, a value indicating the priority level for the first reservation.

12. The method of claim 1 , wherein the first module and the second module each have predetermined priority levels assigned, wherein the priority level for the first reservation is based on the predetermined priority level for the second module, and wherein the priority level for the request is based on the predetermined priority level for the first module.

13. A system comprising:

one or more computing devices; and

one or more computer-readable media storing instructions that are operable, when executed by the one or more computing devices, to cause the one or more computing devices to perform operations comprising:

receiving, by the one or more computing devices, a request to access or reserve access to a resource of a robot, the request being associated with a first module of the robot;

determining, by the one or more computing devices, a priority level associated with the request;

determining, by the one or more computing devices, that the priority level associated with the request exceeds a priority level of an existing first reservation that reserves access to the resource for a second module of the robot; and

in response to determining that the priority level associated with the request exceeds the priority level of the first reservation:

cancelling, by the one or more computing devices, the first reservation to remove authorization of the second module to access the resource of the robot; and

based on the request, generating, by the one or more computing devices, a second reservation that authorizes the first module to access to the resource of the robot.

14. The system of claim 13 , wherein the one or more computing devices are one or more computing devices of the robot.

15. The system of claim 13 , wherein the resource is a physical resource of the robot.

16. The system of claim 13 , wherein the first module and the second module are different software applications of the robot.

17. The system of claim 13 , further comprising notifying the second module that the first reservation is cancelled.

18. The system of claim 13 , wherein the first reservation is associated with a corresponding token; and

wherein cancelling the first reservation comprises invalidating the token for the first reservation.

19. The system of claim 18 , wherein generating the second reservation comprises:

associating a token with the second reservation; and

providing the token to the first module of the robot.

20. A system comprising:

one or more computing devices; and

one or more computer-readable media storing instructions that are operable, when executed by the one or more computing devices, to cause the one or more computing devices to perform operations comprising:

receiving, by the one or more computing devices, a request to access or reserve access to a resource of a robot, the request being associated with a first module of the robot;

determining, by the one or more computing devices, a priority level associated with the request;

determining, by the one or more computing devices, that the priority level associated with the request exceeds a priority level of an existing first reservation that reserves access to the resource for a second module of the robot; and

in response to determining that the priority level associated with the request exceeds the priority level of the first reservation:

cancelling, by the one or more computing devices, the first reservation to remove authorization of the second module to access the resource of the robot; and

based on the request, generating, by the one or more computing devices, a second reservation that authorizes the first module to access to the resource of the robot.

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 Jun 14, 2021
From: COE, SARAH; POOLEY, NATHAN
To: X DEVELOPMENT LLC
Reel/Frame 056535/0493 →