Patent Description:
Mobile robots are a robots that is capable of moving in their surroundings. Mobile robots have become more commonplace in a variety of settings. For example, hospitals use autonomous mobile robots to move materials. Warehouses have installed mobile robotic systems to efficiently move materials from stocking shelves to order fulfillment zones. Mobile robots are also used in industrial, military and security settings.

<CIT> describes autonomous vehicles and associated mechanical, electrical and electronic hardware, computer software and systems, and wired and wireless network communications to provide an autonomous vehicle fleet as a service.

<CIT> describes a method to determine wireless network coverage and responsiveness. The method includes wirelessly transmitting test data to determine wireless connectivity and transmission quality; determining a quality of the wireless transmission of the test data; determining a location of the wireless device during the wireless transmission of the test data; updating a log with the location of the wireless device, a time of day of the wireless transmission, and the quality of the wireless transmission; and transmitting the log to a central server.

<CIT> describes communication network architectures, systems, and methods for supporting a dynamically configurable communication network comprising a complex array of both static and moving communication nodes (e.g., the Internet of moving things, autonomous vehicle networks, etc.).

<CIT> describes a method of operating a computing device. The method includes receiving occupancy data for an operating environment of a mobile robot based on localization data detected by at least one localization sensor of the mobile robot responsive to navigation thereof in the operating environment, and receiving signal coverage data for the operating environment based on wireless communication signals acquired by at least one wireless receiver of the mobile robot responsive to navigation thereof in the operating environment. The wireless communication signals are transmitted by at least one electronic device that is local to the operating environment.

Methods, systems, and non-transitory machine-readable media encoding instructions for managing a fleet of autonomous mobile robots in a facility are described.

In one aspect, a method as recited in claim <NUM> is performed by a computer-implemented system.

This and other aspects can include one or more of the following features. The logged characteristics can include one or more of a) lengths of each of the cycle times, b) identifiers of the autonomous mobile robots in each cycle, or c) identifiers of wireless access points used by the autonomous mobile robots in each cycle. Analyzing the logged characteristics can include identifying that one or more of the logged characteristics is overrepresented in instances where communications between the system and the autonomous mobile robots in the plurality are either inadequate or deficient. Identifying that one or more of the logged characteristics is overrepresented can include identifying that a wireless access point used by the autonomous mobile robots is associated with or responsible for the inadequate or deficient communications. The method can include outputting a representation of logged cycle times. The representation can be a heatmap of cycle times at different locations within the facility during a defined time window. Performing the communications cycle can include instructing a plurality of wireless access points in the facility to transmit the test signals. Analyzing the logged characteristics of the cycle times can include comparing the cycle times to a threshold to determine deviant communication cycle times. Either the location in the facility or the time of day of the inadequate or deficient communications can be determined based on the deviant communication cycle times.

In another aspect, a computer-implemented system for managing a fleet of autonomous mobile robots in a facility is defined in claim <NUM>.

This and other aspects can include one or more of the following features. The system can include a communications interface configured to interface with a plurality of wireless access points to wirelessly transmit the test signals and receive the wirelessly from the autonomous mobile robots. The system can include a control component configure to output a notification of the determined inadequate or deficient communications. The notification can include either a time of day during which or the location at which the inadequate or deficient communications occurred. The analysis component can be configured to compare the cycle times to a threshold to determine deviant communication cycle times, wherein either the location in the facility or the time of day of the inadequate or deficient communications is determined based on the deviant communication cycle times.

The operations and processes described herein may be performed in a system comprising at least one data processor and a memory communicatively coupled to the at least one processor where the memory stores instructions that when executed cause the at least one processor to perform the operations. Further, a non-transitory computer-readable medium storing instructions which, when executed, cause at least one processor to perform the operations is also contemplated. In other words, while generally described as computer implemented software embodied on tangible, non-transitory media that processes and transforms the respective data, some or all of the aspects may be computer implemented methods or further included in respective systems or other devices for performing this described functionality. The details of these and embodiments of the present disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description, drawings, and the claims.

<FIG> is a schematic representation of a facility <NUM> in which autonomous mobile robots are used to perform various operations. Facility <NUM> includes a fleet management system (i.e., FMS) <NUM> that manages the operation of a fleet of autonomous mobile robots (i.e., AMRs) <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> within facility <NUM>. While managing the operation of AMRs <NUM>, FMS <NUM> communicates with AMRs <NUM>,. using one or more access points <NUM>, <NUM>, <NUM>, <NUM> that are distributed across facility <NUM>. Further, FMS <NUM> collects data that characterizes the effective of information exchange with AMRs <NUM>,. This information can be used, e.g., to improve route planning, maintenance scheduling, and the design and operations of AMRs <NUM>,. and FMS <NUM> within facility <NUM>.

In more detail, facility <NUM> can be, e.g., a factory, an office, a hospital, or other discrete site. In general, facility <NUM>-along with access points <NUM>,. and AMRs <NUM>,. - will be under the control of a single operator, e.g., a single corporate or governmental entity. The operator will operate facility <NUM> for a desired purpose. For example, a factory may produce products, a hospital may provide healthcare, and the like. Facility <NUM> thus includes equipment and has requirements that are related to this purpose. In the illustrated implementation, facility <NUM> is shown as including equipment <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> and workspaces <NUM>, <NUM>. Depending on the nature of facility, equipment <NUM>,. can be manufacturing equipment, medical equipment, test equipment or the like.

Autonomous mobile robots <NUM>,. are mobile machines that can move through facility <NUM> to perform actions in accordance with programmed instructions. AMRs <NUM>,. are autonomous in that they are capable of governing the performance of the programmed instructions independently. In other words, real-time control of operations by an external human or other operator is unnecessary for many work-day actions. These autonomous operations can include defined actions that contribute directly to the operations performed in facility <NUM> (e.g., manufacturing products, transporting goods and materials, moving carts, cleaning, surveillance, disinfection, etc.) as well as actions that are responsive to unforeseen transient circumstances (e.g., identifying the position of movable obstacles and objects, including other of AMRs <NUM>, responding to alarms or safety conditions, and the like). The instructions are generally stored within AMRs <NUM>,. However, in some implementations, instructions can be stored externally to AMRs <NUM>,. and transmitted to AMRs <NUM>,.

AMRs <NUM>,. are generally constructed with a body configured to support the weight of an object and wheels that enable the AMR <NUM>,. to traverse the surface of facility <NUM>. AMRs <NUM>,. are generally programmed to move through facility <NUM> using an electronic map and sensors. The sensors can be used not only to determine the position of an AMR <NUM> within facility <NUM>, but also to detect transient circumstances. Example sensors include cameras and scanners (e.g., LIDAR scanning systems).

Route planning and replanning for AMRs <NUM>,. is generally an ongoing process with activities being performed both globally by fleet management system <NUM> and locally by each AMRs <NUM>,. For example, in some implementations, fleet management system <NUM> can specify destinations for each AMR <NUM>,. without specifying a particular route, as well as a cost map that is updated on an ongoing basis and that can be used by the AMR <NUM>,. to plan a route.

For local route planning, each AMR <NUM>,. generally includes a control system that is configured (e.g., programmed) to select or adjust a route along which the AMR <NUM>,. is to travel. For example, the control system may have access to a local cost map that contains a representation of one or more possible routes between a first location and a second location in facility <NUM>. The control system may select a route based on the cost of that route. The cost can be recalculated based on transient circumstances, such as a movable obstacle or object being at a location along the route, a door being opened or closed, or the like. Information for adjusting the cost of map may be obtained from detectors located on the AMR <NUM>,. itself, detectors located on other AMRs <NUM>,. that have traveled or are traveling within a same area, and/or detectors located on other structures such as walls, floors, or ceilings. Thus, some detectors may move whereas others may have fixed positions. In some implementations, fixed-position detectors may, e.g., pivot or translate. Regardless of the particular details of the detectors, the information from the detectors can be conveyed to fleet management system <NUM> and relayed to AMRs <NUM>,. to aid in the selection of efficient routes.

Access points <NUM>, <NUM>, <NUM>, <NUM> are networking devices that allow AMRs <NUM>,. - and in general, other devices - to transmit data to and receive data wirelessly. In general, access points <NUM>, <NUM>, <NUM>, <NUM> will be part of a single local area network of facility <NUM> that interconnects FMS <NUM>, AMRs <NUM>,. and possibly other devices. Access points <NUM>, <NUM>, <NUM>, <NUM> are distributed at different positions around facility <NUM>. The positions will in general be chosen to maintain constant communications between AMRs <NUM>,. and FMS <NUM> as AMRs <NUM>,. move through facility <NUM>.

Access points <NUM>,. can use any of a number of different wireless communication protocols. Examples include IEEE <NUM> xx, IEEE <NUM>, IEEE <NUM>. <NUM> (including ZigBee), ISA100.11a, Wireless HART, MiWi, SNAP. In some implementations, access points <NUM>,. can use communication protocols for mobile devices and data terminals, including those based on the GSM/EDGE and UMTS/HSPA technologies, including <NUM>.

Fleet management system <NUM> is a system that manages the operation of AMRs <NUM>,. within facility <NUM>. In general, fleet management system <NUM> is an integrated system that interacts with human operators, AMRs <NUM>,. , and even other systems (e.g., user order handling system or an Enterprise Resource Planning (ERP) system) to manage and coordinate those operations. The operations can include, e.g., vehicle tracking, route planning, scheduling. robot replacement and lifecycle management, and the like. In the illustrated implementation, fleet management system <NUM> is a discrete unit that is on-site at facility <NUM>. In other implementations, fleet management system <NUM> can be off-site or part of a larger system. For example, fleet management system <NUM> may be integrated within an ERP system and/or have functionality that is distributed amongst AMRs <NUM>,. themselves.

In operation, fleet management system <NUM> can communicate individually and bidirectionally with each of AMRs <NUM>,. via the wireless data transmission system provided by access points <NUM>,. The communicated data can include, e.g., information about the position and operational status of AMRs <NUM>,. , operational instructions, safety instructions, routes and route updates, maps and map updates, information about transient circumstances, images of different locations in facility <NUM>, and the like. In general, fleet management system <NUM> will be configured to address each of AMRs <NUM>,. individually, in subgroups, or by broadcast to all AMRs <NUM>,. In some implementations, AMRs <NUM>,. may also be able to communicate peer-to-peer, e.g., using either the wireless data transmission system provided by access points <NUM>,. or another wireless data transmission mechanism.

If communications between AMRs <NUM>,. and fleet management system <NUM> are not adequate, then the operations of AMRs <NUM>,. - and possibly facility <NUM> itself-can be impaired or even interrupted. Hence, access points <NUM>,. will generally be arranged in facility <NUM> to provide a sufficient signal strength for communications between AMRs <NUM>,. and fleet management system <NUM>, regardless of the location of AMRs <NUM>,. within facility <NUM>.

Even if the operator of facility <NUM> is aware of the need to maintain communications between AMRs <NUM>,. and fleet management system <NUM>, it is possible that there are times, places, and circumstances where the communication is inefficient or not possible. Signal coverage and strength can vary at different locations and over time. Communications hardware can be defective or overloaded. Communications may be delayed or not occur.

By way of example in the context of the illustrated facility <NUM>, access points <NUM>,. may not be exclusively dedicated to communications between AMRs <NUM>,. and fleet management system <NUM>. For example, human users at workspaces <NUM>, <NUM> may also rely upon access point <NUM> for wireless communications and overload it. As another example, equipment <NUM>,. may perform operations that disturbs or interrupts communications between AMRs <NUM>,. and fleet management system <NUM>. For example, high voltage equipment <NUM>,. may overcome even strong communications signals. Further, these conditions may be transient and occur only when certain conditions arise. For example, an overload may occur only when an unusually high number of human users are at workspaces <NUM>, <NUM>. As another example, high voltage equipment <NUM>,. may only be operated intermittently. Indeed, it may require a combination of these or other circumstances for a problem to arise.

As discussed above, AMRs <NUM>,. are autonomous and may be able to continue travel or other tasks even without communications with fleet management system <NUM>. Further, AMRs <NUM>,. can have built-in controls, e.g., to prevent collisions at intersections or narrow corridors and reroute to navigate and continue operation. If such local rerouting fails, AMRs <NUM>,. will generally attempt to communicate with fleet management system <NUM> to obtain a new route. However, if a communication problem exists, the rerouting might not be possible or efficient. For example, re-routing could be performed at fleet management system <NUM> with incomplete or aged information.

<FIG> is a schematic representation of an implementation of fleet management system <NUM>. In addition to one or more components <NUM> for performing operations that manage the operation of a fleet of autonomous mobile robots within a facility and associated fleet management data <NUM>, the illustrated implementation of fleet management system <NUM> includes a communications interface <NUM>, a transmission log <NUM>, a surveillance controller <NUM>, and a surveillance analysis component <NUM>. Communications interface <NUM>, transmission log <NUM>, surveillance controller <NUM>, and surveillance analysis component <NUM> interoperate to form a surveillance system that relies upon communication cycle to, e.g., manage a fleet of autonomous mobile robots, diagnose problems arising during management of such a fleet, and take steps to avoid such problems.

Communications interface <NUM> is a component that is configured to exchange data with devices external to fleet management system <NUM>. For example, communications interface <NUM> can be a network interface device that is configured to interface fleet management system <NUM> with, e.g., a local area network with which autonomous mobile robots can interface via one or more wireless access points. Communications interface <NUM> can be configured to perform various operations to implement a communications interface including, e.g., code conversion, protocol conversion, and buffering.

The communications exchanged with autonomous mobile robots over communications interface <NUM> can include "pings" or other test signals sent from communications interface <NUM> and the responses thereto received from autonomous mobile robots. For example, communications interface <NUM> can operate under instructions from surveillance controller <NUM> to repeatedly send individually-addressed test signals to each of AMRs <NUM>,. The test signal transmissions can repeat at a fixed frequency, e.g., between <NUM> and <NUM> (i.e., every <NUM> to <NUM> seconds). Communications interface <NUM> is also configured to receive a responsive signal from the addressed AMR <NUM>,. and report the same to surveillance controller <NUM>.

Surveillance controller <NUM> is a component that is configured to control the operations of the surveillance system. For example, surveillance controller <NUM> can be configured to register and de-register autonomous mobile robots from surveillance, ensure that appropriate robots are surveilled at the appropriate times, and log communication cycle information in transmission log <NUM>. In some implementations, surveillance controller <NUM> is configured to trigger communications interface <NUM> to automatically send test signals to all AMRs <NUM>,. simultaneously, at a fixed frequency, and log the individual response times with a time stamp, location information, an identifier of the responsive AMR, and possibly other parameters.

As discussed further below, surveillance controller <NUM> can also be configured to take certain remedial actions when communications between AMRs <NUM>,. and fleet management system <NUM> are inadequate or deficient.

Transmission log <NUM> is a data log of communication cycle information. The data in transmission log <NUM> is stored in one or more tangible, non-transitory data storage devices. Transmission log <NUM> can be stored in the same data storage device(s) as other fleet management data <NUM> or in separate data storage device(s).

<FIG> is a schematic representation of an example transmission log <NUM>. The illustrated schematic representation of transmission log <NUM> is structured as a data table. Each entry in transmission log <NUM> characterizes a separate communication cycle with a single autonomous mobile robot. In particular, the illustrated schematic representation of transmission log <NUM> includes a time column <NUM>, an autonomous mobile robot identifier column <NUM>, an autonomous mobile robot location column <NUM>, an access point identifier column <NUM>, and a cycle communication time column <NUM>.

Each entry in time column <NUM> includes data characterizing when a test signal was sent to an autonomous mobile robot. Each entry in autonomous mobile robot identifier column <NUM> includes an identifier of an autonomous mobile robot. The identified autonomous mobile robot can either be the robot addressed by an outgoing test signal or the robot that returned a response at the communication cycle time indicated in column <NUM>. Each entry in autonomous mobile robot location column <NUM> includes an identifier of a location of the autonomous mobile robot during the communication cycle. Each entry in access point identifier column <NUM> includes identifier of an access point used by the autonomous mobile robot in the communication cycle. Each entry in cycle communication time column <NUM> includes data characterizing the cycle time for the corresponding communication cycle.

In more detail, communication cycle time or "CCT" is a measurement of the time between the transmission of a test signal and the receipt of a response thereto. In general, the transmission of a test signal is taken to occur when a communications interface of the fleet management system <NUM> (e.g., communications interface <NUM>, <FIG>) outputs instructions indicating that a wireless test signal is to be sent to an autonomous mobile robot. The response is taken to be received when the communications interface of the fleet management system <NUM> receives it. The communication cycle time can thus provide a broad, ongoing measure of the operational conditions in a facility. In other words, communication cycle time is not limited to a single parameter such as, e.g., a one-time measurement of the strength of a wireless signal at a location. Rather, the communication cycle time can reflect the operational conditions of, e.g., a local area network that conveys signals to and from an autonomous mobile robot and the fleet management system, the noise level on the wireless communications channel, and the data load on access points-all as they develop over time and at locations that are distributed through a facility.

As a practical matter, communication cycle time will generally be expected to be less than <NUM> second. If the communication cycle time rises above <NUM> second, this implies that an autonomous mobile robot fleet may not to operate as smoothly as intended. For example, status information and instructions may be delayed or even not received.

Although the illustrated implementation of transmission log <NUM> is a data table, transmission log <NUM> can be structured in a variety of different ways. For example, a transmission log can include a collection of data records that are each dedicated to communications with an individual autonomous mobile robot or dedicated to communications with different autonomous mobile robots that are located in a particular vicinity. As another example, rather than storing a communication cycle time, the time of transmission and the time of receipt of a response can be stored. As yet another example, a communication cycle time deviation that reflects, e.g., a deviation in communication cycle time from expectations or from a threshold level can be stored. As yet another example, the average communication cycle time over several communication cycles can be logged. As yet another example, in some implementations, a separate column or field need not be maintained for both the location of the autonomous mobile robot location and the access point used by the autonomous mobile robot. Rather, in some implementations, the location of the autonomous mobile robot location can be characterized by the used access point.

Returning to <FIG>, surveillance analysis component <NUM> is a component that is configured to analyze surveillance data in transmission log <NUM> to identify inadequate or deficient communications between AMRs <NUM>,. and fleet management system <NUM>. Surveillance analysis component <NUM> can analyze communication cycle information that has been logged in transmission log <NUM> to identify inadequacies or deficiencies. Further, surveillance analysis component <NUM> can analyze communication cycle information to identify characteristics of the communication cycles during which communications were inadequate or deficient. In particular, surveillance analysis component <NUM> can identify the times of day when communications are inadequate or deficient, the locations where communications are inadequate or deficient, and the equipment (e.g., particular AMRs <NUM>,. and/or access points <NUM>,. ) responsible for inadequate or deficient communications. In some implementations, these characteristics can be identified by determining whether times of day, locations, and/or equipment certain are more like to have inadequate or deficient communication cycles that other, e.g., times of day, locations, and/or equipment.

For example, in some implementations, the data in transmission log <NUM> can be processed to select individual entries that characterize inadequate or deficient communication cycles. The frequency of occurrence of the times, the AMR identifiers, the AMR locations, and/or locations in the inadequate or deficient communication cycles can be compared to their frequency of occurrence in a larger data set. The overrepresented characteristic can be identified as associated with or even responsible for the inadequate or deficient communications.

Based on the processing of data in transmission log <NUM> and a definition of acceptable communication cycle times and/or communication cycle time deviations, surveillance analysis component <NUM> can determine one or more following example sets of overviews.

In some implementations, surveillance analysis component <NUM> includes functionality that is configured to attribute an inadequate or deficient communication cycle time to a likely cause. In some implementations, the likely cause is simply a location or a time of day. Data from several AMRs <NUM>,. can be combined to identify causes that are independent of the AMRs themselves.

In other implementations, the likely cause is attributed based on additional knowledge regarding the facility in which fleet management system <NUM> operates. For example, if every AMR <NUM>,. repeatedly displays an inadequate or deficient communication cycle time at a particular time of day every day, then surveillance analysis component <NUM> can attribute the inadequacies or deficiencies to other equipment that may be operational daily during that time of day. As yet example, if every AMR <NUM>,. intermittently displays an inadequate or deficient communication cycle time at a particular location that is adjacent to an access point near a workspace, then surveillance analysis component <NUM> can attribute the inadequacies or deficiencies to transient overload of the bandwidth of that access point.

As discussed above, surveillance controller <NUM> can be configured to take certain remedial actions when communications between AMRs <NUM>,. and fleet management system <NUM> are inadequate or deficient. For example, in response to surveillance analysis component <NUM> identifying inadequate or deficient communications, surveillance controller <NUM> may send a notification a human maintenance operator with information regarding the location and/or timing of the inadequacies or deficiencies. A human maintenance operator may take certain actions (e.g., modifying, exchanging, or repairing hardware, moving/adding access points, modifying operation/communication processes, reducing electromagnetic noise from other machinery or data transmission loads at certain times from other communication equipment units, or the like).

As yet another example, surveillance controller <NUM> may modify the costs of certain parameters in a route planning or work scheduling system to remedy inadequate or deficient communications. In response, other components in fleet management system <NUM> can (re)select routes, equipment (different AMRs <NUM>,. ) and time slots to avoid or remedy inadequate or deficient communications.

As yet another example, surveillance controller <NUM> may interact with other components of fleet management system <NUM> to take remedial action. For example, upon notification of inadequate or deficient communications at particular times of day by surveillance controller <NUM>, fleet management system <NUM> may (re)schedule activities such as map updates to avoid these times. As yet another example, upon notification of inadequate or deficient communications recurring in a particular of AMRs <NUM>,. , fleet management system <NUM> may schedule maintenance for that AMR.

As yet another example, surveillance controller <NUM> may interact with other components external to fleet management system <NUM> to take remedial action. For example, an Enterprise Resource Planning system may be configured to generate work schedules for a facility. Surveillance controller <NUM> can provide information to such a planning system, which in turn can act to ensure that adequate communications are maintained, e.g., by appropriately (re)scheduling certain activities or ensuring that heavy/important data transmission are scheduled at certain time of day/week, at certain locations, and/or at certain states of operation.

In some implementations, surveillance controller <NUM> is an adaptive system that is implemented using machine learning techniques designed to reduce communication inadequacies or deficiencies and/or optimize communication cycle time. The data logged in transmission log <NUM> can be used to train such a system.

<FIG> is an example of a heatmap of communication cycle time as a function of physical location, namely, a hexbin plot <NUM>. The illustrated implementations of hexbin plot <NUM> includes a collection of hexagonal bins <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> that each encompass an area within facility <NUM>. Each bin <NUM>,. is shaded or colored according to the number of occurrences of inadequate or deficient communications between one or more AMRs <NUM>,. and fleet management system <NUM> with the AMR(s) <NUM>,. is positioned within the bin. For example, the shade of hexagonal bins <NUM>, <NUM> can indicate that adequate or deficient communications occurred more often when an AMR <NUM>,. was positioned within those bins than when an AMR <NUM>,. was positioned, e.g., within bins <NUM>, <NUM>.

Hexbin plots like hexbin plot <NUM> can be generated in a number of ways. For example, hexbin plots can be generated for individual AMRs <NUM>,. or for an entire fleet. Hexbin plots can be generated to represent communications that occur during a particular time of day (e.g., between noon and <NUM>:<NUM>) or a particular day of the week (e.g., every Thursday). Hexbin plots can be generated only when certain equipment is operational (e.g., when a high voltage arc welding device is operational).

In general, a hexbin plot will only show areas where an AMR <NUM>,. has been active. Some areas in a facility <NUM> may not be binned if AMRs <NUM>,. are not active there.

Hexbin plot <NUM> can be generated, e.g., by a surveillance analysis component <NUM> for presentation to a human user. In general, either a surveillance analysis component <NUM> or other component will allow a human user to specify one or more a parameters including, e.g., the size of the hexagonal bins, the scale of the shading or coloring, and details regarding the represented data (e.g., the relevant AMRs <NUM>,. and the timing of the represented data).

In addition to various hexbin plots, communication cycle time data can be presented to humans in a variety of different ways. For example, other types of heatmaps-including cluster heat maps and spatial heat maps- are possible.

As another example, <FIG> is a graph <NUM> of mean communication cycle time per robot in a fleet of robots as a function of time. Position along the x-axis of graph <NUM> indicates the time of day and/or date when communication cycle time was measured. Position along the y-axis of graph <NUM> indicates the measured communication cycle time. Graph <NUM> includes individual data points <NUM> indicating the mean measured communication cycle time for the fleet as well as a polynomial fitting <NUM> of data points <NUM>. As shown, communication cycle time dropped dramatically partway through Day <NUM>. Such a decrease in communication cycle time can be attributed to, e.g., the installation of a new access point or a decrease in the communication bandwidth demands of other devices. Further, communication cycle time peaked partway through Day <NUM>. Such an increase in communication cycle time can be attributed, e.g., to the operation of equipment that interferes with wireless data communications.

As another example, <FIG> is a graph <NUM> of mean communication cycle time for individual robots as a function of time. Position along the x-axis indicates the time of day and/or date when communication cycle time was measured and position along the y-axis indicates the measured communication cycle time. Graph <NUM> includes a collection of traces <NUM>, <NUM>, <NUM>,. , each of which represents the mean communication cycle time for a respective AMR. The data in traces <NUM>, <NUM>, <NUM>,. was averaged to arrive at the data points <NUM> for the fleet (<FIG>). As shown, even though the fleet-wide drop in communication cycle time partway through Day <NUM> remain discernable, the individual traces <NUM>, <NUM>, <NUM>,. show distinguishable communication cycle times for different robots. Traces <NUM>, <NUM>, <NUM>,. can thus be used to identify autonomous mobile robots with worse performance than others and attribute that impaired performance to the location of or access point used by a particular autonomous mobile robot.

As yet another example, <FIG> is a boxplot <NUM> of the distribution of communication cycle times time for individual autonomous mobile robots during a window of time. Position along the x-axis indicates the autonomous mobile robots and position along the y-axis indicates communication cycle time distribution. In particular, for each autonomous mobile robot, a horizontal line <NUM> designates the mean communication cycle time of the relevant autonomous mobile robot during the window of time, a box <NUM> encompassed <NUM>% of the communication cycle times of the relevant autonomous mobile robot during the window of time, and whiskers <NUM> encompass ~<NUM>% of the communication cycle times of the relevant autonomous mobile robot during the window of time. Remaining outliers can also be designated.

Fleet management system <NUM> can be implemented in a computing system. The system can include a processor, a memory, a storage device, and an input/output device. The processor, a memory, a storage device, and an input/output device are interconnected using a system bus. The processor is capable of processing instructions for execution within the fleet management system <NUM>. In some implementations, the processor is a single-threaded processor. In some implementations, the processor is a multi-threaded processor. The processor <NUM> is capable of processing instructions stored in the memory or on the storage device to display graphical information for a user interface on the input/output device.

The memory stores information within the computing system. In some implementations, the memory is a computer-readable medium. In some implementations, the memory is a volatile memory unit. In some implementations, the memory is a nonvolatile memory unit. The storage device is capable of providing mass storage for the computing system. In some implementations, the storage device is a computer-readable medium. In some implementations, the storage device may be a floppy disk device, a hard disk device, an optical disk device, or a tape device. The input/output device provides input/output operations for the computing system. In some implementations, the input/output device includes a keyboard and/or pointing device. In some implementations, the input/output device includes a display unit for displaying graphical user interfaces.

The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier (e.g., in a machine-readable storage device, for execution by a programmable processor), and method operations can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result.

Elements of a computer can include a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer can also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

To provide for interaction with a user, the features can be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device, such as a mouse or a trackball by which the user can provide input to the computer.

The components of the system can be connected by any form or medium of digital data communication, such as a communication network. Examples of communication networks include, for example, a LAN, a WAN, and the computers and networks forming the Internet.

Claim 1:
A method for managing a fleet of autonomous mobile robots (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) in a facility (<NUM>), the method performed by a computer-implemented system (<NUM>), the method comprising:
performing a plurality of communications cycles, each cycle including
wirelessly transmitting test signals to a plurality of the autonomous mobile robots in the fleet, and
receiving responses to the test signals, wherein the responses are transmitted wirelessly from each of the autonomous mobile robots in the plurality; characterized in that the method comprises
logging, over time, characteristics of the cycle times between the transmission of the test signals and the receipt of the responses to the test signals, wherein the logged characteristics (<NUM>) include a location of each of the autonomous mobile robots when responding and a time of day of the communication cycle;
analyzing the logged characteristics of the cycle times of the plurality of the autonomous mobile robots to determine
i) a location in the facility at which communications between the system and the autonomous mobile robots in the plurality are either inadequate or deficient; or
ii) a time of day during which the communications between the system and the autonomous mobile robots in the plurality are either inadequate or deficient; or
iii) equipment (<NUM>, <NUM>, <NUM>, <NUM>) used to wirelessly transmit the test signals or receive responses thereto in communication cycles where communications between the system and the autonomous mobile robots in the plurality are either inadequate or deficient;
outputting a notification of the determined inadequate or deficient communications, wherein the notification comprises either a time of day during which or the location at which the inadequate or deficient communications occurred, wherein outputting the notification comprises outputting the notification to the autonomous mobile robots in the fleet or modifying a cost in a route planning or work scheduling system.