# US 10,120,390 B2 · System, computing device, and method for unmanned vehicle fleet control

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

- Number: US 10,120,390 B2
- Document ID: US10120390B2
- Status: Granted
- Kind: B2
- Application number: 15/429,974
- Filed: 2017-02-10
- Published: 2017-07-20
- Granted: 2018-11-06
- Earliest claimed: 2014-10-31
- Applicants: Clearpath Robotics, Inc.
- Inventors: Ryan Christopher Gariepy; Alex Bencz
- Web page: https://patentgrep.com/patent/US10120390B2

## CPC

- G05D 1/0297: {by controlling means in a control room}
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES

## Abstract

A system for controlling a fleet of unmanned vehicles includes a plurality of unmanned vehicles connected to a computing device. The computing device stores a dynamic attribute and a static attribute respective to each of the plurality of unmanned vehicles. The computing device is configured to: receive a task request including (i) an item identifier of an item, (ii) an action type defining an action to be performed respective to the item, and (iii) a location identifier of a location at which to perform the action; responsive to receiving the request, retrieve the stored dynamic attributes and static attributes; based on a comparison of the task request with the dynamic attributes and the static attributes, select one of the plurality of unmanned vehicles; and transmit, via the network, a command to the selected unmanned vehicle to perform the action respective to the item at the location.

## Claims

### Claim 1

A system, comprising:
a plurality of unmanned vehicles;
a computing device for connection to the plurality of unmanned vehicles via a network, the computing device storing, in a memory, (i) a dynamic attribute respective to each of the plurality of unmanned vehicles, the dynamic attribute defining an operational capability of the respective vehicle that is variable during vehicle operation and (ii) a static attribute respective to each of the plurality of unmanned vehicles, the static attribute defining an operational capability of the respective vehicle that is invariable during vehicle operation;
the computing device configured to:
receive a task request, the task request including (i) an item identifier of an item, (ii) an action type defining an action to be performed respective to the item, and (iii) a location identifier of a location at which to perform the action;
responsive to receiving the request, retrieve the stored dynamic attributes and static attributes from the memory;
for each unmanned vehicle, evaluate the dynamic attribute and the static attribute against at least one criterion;
when the at least one criterion is satisfied, add the unmanned vehicle to a selection set;
optimize the selection set to identify one of the unmanned vehicles as a selected unmanned vehicle that best matches the task request; and
transmit, via the network, a command to the selected unmanned vehicle to perform the action respective to the item at the location.

### Claim 2 (depends on 1)

The system of claim 1, each of the unmanned vehicles having a motor coupled to an energy storage device; wherein the dynamic attribute respective to each unmanned vehicle includes at least one of a location of the unmanned vehicle, an availability indicator for the unmanned vehicle, and a remaining capacity of the energy storage device.

### Claim 3 (depends on 1)

The system of claim 1, wherein the static attribute respective to each of the unmanned vehicles includes at least a maximum payload of the unmanned vehicle.

### Claim 4 (depends on 1)

The system of claim 1, the computing device further configured to:
prior to selecting one of the plurality of unmanned vehicles, retrieve, from the memory, an item attribute corresponding to the item and a location attribute corresponding to the location.

### Claim 5 (depends on 4)

The system of claim 4, wherein the item attribute includes at least one of a mass of the item and a dimension of the item; and wherein the location attribute includes a set of coordinates of the location.

### Claim 6 (depends on 1)

The system of claim 1, the computing device further configured to:
responsive to transmitting the command to the selected unmanned vehicle, update the dynamic attribute respective to the selected unmanned vehicle.

### Claim 7 (depends on 6)

The system of claim 6, wherein the action type is a pick up action; wherein the command is a command to pick up the item at the location; and wherein the update includes adding the item identifier to the dynamic attribute.

### Claim 8 (depends on 7)

The system of claim 7, wherein the action type is an in-process action; wherein the command is a command to machine the item at the location.

### Claim 9 (depends on 8)

The system of claim 8, wherein the update includes replacing the item identifier in the dynamic attribute with another item identifier.

### Claim 10 (depends on 6)

The system of claim 6, wherein the action type is a drop off action; wherein the command is a command to drop off the item at the location; and wherein the update includes removing the item identifier from the dynamic attribute.

### Claim 11 (depends on 1)

The system of claim 1, the computing device further configured to receive the task request from a second computing device via the network.

### Claim 12 (depends on 1)

The system of claim 1, the dynamic attribute defining at least one of: a current location of the unmanned vehicle, a remaining energy supply of the unmanned vehicle, an indication of availability for the unmanned vehicle, and a current payload identifier for the unmanned vehicle.

### Claim 13 (depends on 1)

The system of claim 1, the static attribute defining at least one of: a maximum speed of the unmanned vehicle, a curb weight of the unmanned vehicle, a maximum payload of the unmanned vehicle, and an identifier of a tool mounted to the unmanned vehicle.

### Claim 14 (depends on 1)

The system of claim 1, the static attributes for the plurality of unmanned vehicles being heterogeneous.

### Claim 15 (depends on 6)

The system of claim 6, the computing device further configured to:
subsequent to transmitting the command, receive a status message from the selected unmanned vehicle via the network;
determine whether the status message indicates completion of the action respective to the item at the location; and
when the status message indicates completion, send a confirmation message to the second computing device.

### Claim 16 (depends on 6)

The system of claim 6, the computing device further configured to:
determine whether the status message indicates a failure to complete the action respective to the item at the location;
when the status message indicates a failure, send an alert to the second computing device.

### Claim 17

A computing device, comprising:
a communications interface for connection to a plurality of unmanned vehicles via a network;
memory storing (i) a dynamic attribute respective to each of the plurality of unmanned vehicles, the dynamic attribute defining an operational capability of the respective vehicle that is variable during vehicle operation and (ii) a static attribute respective to each of the plurality of unmanned vehicles, the static attribute defining an operational capability of the respective vehicle that is invariable during vehicle operation; and
a processor connected to the communications interface and the memory, the processor configured to:
receive a task request, the task request including (i) an item identifier of an item, (ii) an action type defining an action to be performed respective to the item, and (iii) a location identifier of a location at which to perform the action;
responsive to receiving the request, retrieve the stored dynamic attributes and static attributes from the memory;
for each unmanned vehicle, evaluate the dynamic attribute and the static attribute against at least one criterion;
when the at least one criterion is satisfied, add the unmanned vehicle to a selection set;
optimize the selection set to identify one of the unmanned vehicles in the selection set as a selected unmanned vehicle that best matches the task request; and
transmit, via the communications interface, a command to the selected unmanned vehicle to perform the action respective to the item at the location.

### Claim 18

A method, comprising:
storing, in a memory, (i) a dynamic attribute respective of each of a plurality of unmanned vehicles, the dynamic attribute defining an operational capability of the respective vehicle that is variable during vehicle operation and (ii) a static attribute respective of each of the plurality of unmanned vehicles, the static attribute defining an operational capability of the respective vehicle that is invariable during vehicle operation;
receiving, at a processor connected to the memory, a task request, the task request including (i) an item identifier of an item, (ii) an action type defining an action to be performed respective to the item, and (iii) a location identifier of a location at which to perform the action;
responsive to receiving the request, retrieving the stored dynamic attributes and static attributes from the memory;
for each unmanned vehicle, evaluating the dynamic attribute and the static attribute against at least one criterion;
when the at least one criterion is satisfied, add the unmanned vehicle to a selection set;
optimizing the selection set to identify one of the unmanned vehicles as a selected unmanned vehicle that best matches the task request; and
transmitting, via a communications interface connected to the processor, a command to the selected unmanned vehicle to perform the action respective to the item at the location.
