# US 12,111,632 B1 · Edge device architecture within logistics center for increasing throughput

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,111,632 B1
- Document ID: US12111632B1
- Status: Granted
- Kind: B1
- Application number: 17/116,079
- Filed: 2020-12-09
- Granted: 2024-10-08
- Earliest claimed: 2020-12-09
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Rohit Bansal
- Web page: https://patentgrep.com/patent/US12111632B1

## CPC

- G05B 19/4155: characterised by program execution, i.e. part program or machine function execution, e.g. selection of a program
- B25J 9/1661: {characterised by task planning, object-oriented languages}
- B25J 9/1682: {Dual arm manipulator; Coordination of several manipulators}
- B65G 1/1373: {for fulfilling orders in warehouses}
- G06Q 10/087: Inventory or stock management, e.g. order filling, procurement or balancing against orders
- G06Q 10/08741: {by picking of items from inventory for fulfillment}
- G05B 2219/40269: Naturally compliant robot arm
- G06Q 10/0877: {by inventory control or reporting using inventory tracking or counting}
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- B25J: MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES ({manipulators specially adapted for use in surgery A61B34/70; manipulators used in cleaning hollow articles B08B9/04}; manipulators associated with rolling mills B21B39/20; manipulators associated with forging machines B21J13/10; {manipulators associated with picking-up and placing mechanisms B23P19/007}; means for holding wheels or parts thereof B60B30/00; {vehicles with ground-engaging propulsion means, e.g. walking members B62D57/02, B62D57/032; devices for picking-up and depositing articles or materials between conveyors B65G47/90, B65G47/91; manipulators with gripping or holding means for transferring packages B65H67/065}; cranes B66C; {manipulators used in the protection or supervision of pipe-line installations F17D5/00; walking equipment adapted for nuclear steam-generators F22B37/006}; manipulators specially adapted for, or associated with, nuclear reactors G21C; {apparatus used for handling wafers during manufacture or treatment of semiconductor H10P72/50})
- B65G: TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS (packaging B65B; handling thin or filamentary materials, e.g. paper sheets or thread, B65H; cranes B66C; portable mobile or lifting or hauling appliances, e.g. hoists, B66D; devices for lifting or lowering goods for loading or unloading purposes, e.g. fork-lift trucks, B66F9/00; emptying bottles, jars, casks, barrels or similar containers, not otherwise provided for, B67C9/00; delivering or transferring liquids B67D; filling or discharging vessels for liquefied, solidified or compressed gases F17C; pipe-line systems for fluids F17D)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A local device may receive, from a remote device, a task to be completed at a workstation within a logistics center in which orders are fulfilled and processed. The local device may determine, among a plurality of robotic agents at the workstation, a robotic agent configured to perform the task. An in-memory datastore having cache and compute capabilities may be stored in memory of the local device may store data associated with the task and the robotic agent to complete the task. The local device may instruct the robotic agent to perform the task and may receive, from the robotic agent, an indication associated with the performance of the task. This data may be stored in the in-memory datastore and/or may be used for assigning future tasks.

## Claims

### Claim 1

A system comprising:
one or more processors;
one or more non-transitory computer-readable media; and
an in-memory datastore stored in the one or more non-transitory computer-readable media, the in-memory datastore storing information associated with a state of a plurality of robotic agents at a workstation within an environment in which orders for items are fulfilled, wherein individual robotic agents of the plurality of robotic agents are stored in association with one or more tasks that the individual robotic agents are configured to perform at the workstation;
wherein the one or more non-transitory computer-readable media store computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving, from a remote computing resource, a request for performing a task at the workstation;
determining, among the plurality of robotic agents at the workstation, a robotic agent to perform the task;
assigning the task to the robotic agent;
storing, in the in-memory datastore, a first indication associated with assigning the task to the robotic agent;
sending, to the robotic agent, an instruction associated with the robotic agent performing the task, wherein the robotic agent is configured to perform the task based at least in part on the instruction;
receiving, from the robotic agent, a second indication associated with the robotic agent performing the task; and
storing, in the in-memory datastore, a third indication associated with the robotic agent performing the task, wherein the third indication identifies at least one of:
a first identifier of the robotic agent;
a second identifier of the task; or
one or more resources within the environment utilized by the robotic agent to perform the task.

### Claim 2 (depends on 1)

The system of claim 1, wherein the first indication identifies at least one of:
a second time associated with receiving the request from the remote computing resource;
a third time associated with assigning the task to the robotic agent; or
the instruction associated with the robotic agent performing the task.

### Claim 3 (depends on 1)

The system of claim 1, the operations further comprising:
receiving, from the remote computing resource, a second request for a state of the robotic agent, wherein the state is associated with a current performance of the robotic agent or a previous performance of the robotic agent; and
transmitting, to the remote computing resource, the state of the robotic agent.

### Claim 4 (depends on 1)

The system of claim 1, the operations further comprising receiving, from the remote computing resource, a second request for one or more messages exchanged between the system and the robotic agent, the one or more messages identifying at least one of:
the instruction sent to the robotic agent;
a time associated with the robotic agent performing the task; or
one or more actions performed by the robotic agent to perform the task.

### Claim 5

A method comprising:
receiving, at a local device and from a remote device, a first indication of a task to be performed at a workstation within an environment, wherein the remote device is physically remote from the local device;
determining, by the local device, a robotic agent at the workstation configured to perform the task;
storing, in an in-memory datastore at the local device, first data associated with the task and the robotic agent to perform the task;
sending, to the robotic agent, a second indication associated with the robotic agent performing the task;
receiving, from the robotic agent, a third indication associated with a performance of the task; and
storing, in the in-memory datastore, second data associated with the third indication.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
accessing the in-memory datastore to obtain a current state of the robotic agent; and
determining, based at least in part on the current state, to assign the task to the robotic agent,
wherein sending the second indication is based at least in part on assigning the task to the robotic agent.

### Claim 7 (depends on 5)

The method of claim 5, wherein the second data identifies at least one of:
a first time the robotic agent performed the task;
a second time the robotic agent received the second indication;
a first identifier of the task;
a second identifier of the robotic agent; or
one or more resources at the workstation utilized by the robotic agent.

### Claim 8 (depends on 5)

The method of claim 5, further comprising:
receiving, at the local device from the remote device, a fourth indication requesting information associated with the robotic agent performing the task; and
sending at least a portion of the second data to the remote device.

### Claim 9 (depends on 5)

The method of claim 5, further comprising sending, from the local device to the remote device, at least one of:
a current performance state of the robotic agent;
a previous performance state of the workstation;
a first previous task performed by the robotic agent;
a second previous task performed at the workstation by the robotic agent;
a first time associated with the first previous task performed by the robotic agent; or
a second time associated with the second previous task performed at the workstation.

### Claim 10 (depends on 5)

The method of claim 5, wherein the task is associated with the robotic agent, further comprising:
causing the robotic agent to remove a first container containing an item from a slot on a shelf;
causing the robotic agent to place the first container for transport; and
causing the robotic agent to place a second container into the slot.

### Claim 11 (depends on 10)

The method of claim 10, wherein the second data identifies at least one of:
a first identifier of the slot;
a second identifier of the first container;
a third identifier of the second container;
a first time associated with the robotic agent removing the first container from the slot;
a second time associated with the robotic agent placing the first container for transport; or
a third time associated with the robotic agent placing the second container into the slot.

### Claim 12 (depends on 5)

The method of claim 5, further comprising:
storing, in the in-memory datastore, one or more messages transmitted between the local device and the robotic agent, wherein the one or more messages are stored in association with a time of receipt; and
sending, from the local device to the remote device, the one or more messages.

### Claim 13 (depends on 5)

The method of claim 5, further comprising:
receiving, at the local device and from the remote device, a fourth indication of a second task to be completed at the workstation;
causing the second task to be queued, wherein the second task is configured to be performed after the task;
storing, in the in-memory datastore, third data associated with the second task being queued;
causing an instruction to be written on a programmable logic controller (PLC) of the robotic agent for carrying out the second task;
storing, in the in-memory datastore, fourth data associated with the instruction being written on the PLC;
receiving a fifth indication associated with the robotic agent receiving the second task; and
storing, in the in-memory datastore, fifth data associated with the robotic agent receiving the second task.

### Claim 14

A device comprising:
one or more processors;
one or more non-transitory computer-readable media; and
an in-memory datastore stored in the one or more non-transitory computer-readable media, the in-memory datastore storing information associated with one or more robotic agents located at a workstation within an environment,
wherein the one or more non-transitory computer-readable media store computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving, from a remote device, a first indication of a task to be performed by a robotic agent of the one or more robotic agents;
assigning the task to the robotic agent;
storing a second indication in the in-memory datastore associated with assigning the task to the robotic agent;
causing an instruction associated with performing the task to be sent to the robotic agent;
receiving, from the robotic agent, a third indication associated with a performance of the task; and
causing a fourth indication associated with the performance of the task to be stored in the in-memory datastore.

### Claim 15 (depends on 14)

The device of claim 14, wherein the third indication includes one or more instructions associated with the robotic agent performing the task, the operations further comprising storing, in the in-memory datastore:
the instruction;
a time associated with the instruction being sent to the robotic agent;
a first identifier of the task; and
a second identifier of the robotic agent.

### Claim 16 (depends on 14)

The device of claim 14, the operations further comprising:
receiving, from the remote device, a fifth indication requesting a state of the task;
receiving, from the in-memory datastore, the state, wherein the state corresponds to at least one of:
a progress of the task;
a status of the robotic agent performing the task; or
a stage associated with assigning the task to the robotic agent; and
sending, to the remote device, data associated with the state.

### Claim 17 (depends on 14)

The device of claim 14, the operations further comprising receiving, from the remote device, a fifth indication requesting one or more messages exchanged between the device and the robotic agent, the one or more messages identifying at least one of:
the instruction sent to the robotic agent;
a first time associated with the robotic agent performing the task;
one or more actions performed by the robotic agent in performing the task; or
a second time associated with the one or more actions performed by the robotic agent.

### Claim 18 (depends on 14)

The device of claim 14, the operations further comprising:
receiving, from one or more sensors, image data depicting at least a portion of the workstation;
storing, in the in-memory datastore, the image data in association with a time at which the image data was generated; and
at least one of:
determining, based at least in part on the image data, a second task to perform or a modification to the task; or
sending, to the remote device, the image data.

### Claim 19 (depends on 14)

The device of claim 14, the operations further comprising:
receiving a fifth indication associated with a container utilized by the robotic agent to perform the task; and
storing, in the in-memory datastore, an identification of the container and at least one of:
a first time at which the robotic agent picked up the container, or
a second time at which the robotic agent dropped off the container.

### Claim 20 (depends on 14)

The device of claim 14, the operations further comprising:
receiving, from the in-memory datastore, a state of the robotic agent that is associated with the performance of the task;
determining, based at least in part on the state of the robotic agent, a second task for the robotic agent; and
causing a second instruction associated with the second task to be sent to the robotic agent.
