PROACTIVE MAINTENANCE IN AN AUTONOMOUS MOBILE ROBOT

A mobile cleaning robot system can include including a mobile cleaning robot, processing circuitry, and memory circuitry. The memory circuitry can include instructions, which when executed by the processing circuitry, can cause the processing circuitry to perform operations to receive a maintenance indication from a remote device indicative of whether maintenance on the mobile cleaning robot is recommended, where the maintenance indication can be based at least in part on factory test data. The processing circuitry can also transmit a maintenance instruction to a user device when maintenance on the mobile cleaning robot is recommended.

BACKGROUND

Autonomous mobile cleaning robots can traverse floor surfaces to perform various operations in an environment, such as vacuuming of one or more rooms of the environment. A cleaning robot can include a controller configured to autonomously navigate the robot about an environment such that the robot can ingest debris as it moves. As an autonomous mobile robot traverses a floor surface, the robot can produce and record information about the environment and the robot.

SUMMARY

Autonomous mobile cleaning robots can be used to automatically or autonomously clean a portion, such as a room or rooms, of an environment. After many missions, robots can require maintenance and can sometimes require service or replacement of components. In some cases, components can fail, requiring replacement of the components. However, replacement of components can be a time-consuming process if parts are not available or if the parts take time to be shipped and failure to replace components can degrade cleaning performance.

This disclosure describes examples of approaches that can help to address this problem such as by including systems that can determine whether a component is likely to require replacement. The determination can be made based on one or more factors, such as factory test data, fleet data, robot telemetry (robot data), or the like. When determination is made that maintenance on a robot will likely be required, one or more systems can transmit a maintenance recommendation or instruction to the robot, a user device, or other device, to provide instructions for the user to replace the component, such as ordering a new component. This process can be used to help a user proactively maintain the robot100, such as by helping to deliver a replacement component to the user prior to component failure, helping to reduce robot downtime.

For example, a mobile cleaning robot system can include a mobile cleaning robot, processing circuitry, and memory circuitry. The memory circuitry can include instructions, which when executed by the processing circuitry, can cause the processing circuitry to perform operations to receive a maintenance indication from a remote device indicative of whether maintenance on the mobile cleaning robot is recommended, where the maintenance indication can be based at least in part on factory test data. The processing circuitry can also transmit a maintenance instruction to a user device when maintenance on the mobile cleaning robot is recommended.

The above discussion is intended to provide an overview of subject matter of the present patent application. It is not intended to provide an exclusive or exhaustive explanation of the invention. The description below is included to provide further information about the present patent application.

DETAILED DESCRIPTION

FIG.1illustrates a plan view of a mobile cleaning robot100in an environment40, in accordance with at least one example of this disclosure. The environment40can be a dwelling, such as a home or an apartment, and can include rooms42a-42e. Obstacles, such as a bed44, a table46, and an island48can be located in one or more of the rooms42of the environment. Each of the rooms42a-42ecan have a floor surface50a-50e, respectively. Some rooms, such as the room42d, can include a rug, such as a rug52. The floor surfaces50can be of one or more types of flooring, such as hardwood, ceramic, low-pile carpet, medium-pile carpet, long (or high)-pile carpet, stone, or the like.

The mobile cleaning robot100can be operated, such as by a user60, to autonomously clean the environment40in a room-by-room fashion. In some examples, the robot100can clean the floor surface50aof one room, such as the room42a, before moving to the next room, such as the room42d, to clean the surface of the room42d. Different rooms can have different types of floor surfaces. For example, the room42e(which can be a kitchen) can have a hard floor surface, such as wood or ceramic tile, and the room42a(which can be a bedroom) can have a carpet surface, such as a medium pile carpet. Other rooms, such as the room42d(which can be a dining room) can include multiple surfaces where the rug52is located within the room42d.

During cleaning or traveling operations, the robot100can use data collected from various sensors and calculations (such as odometry and obstacle detection) to develop a map of the environment40. Once the map is created, the user60can define rooms or zones (such as the rooms42) within the map. The map can be presentable to the user60on a user interface, such as a mobile device, where the user60can direct or change cleaning preferences.

During operation, the robot100can detect surface types within each of the rooms42, which can be stored in the robot or another device. The robot100can update the map (or data related thereto) such as to include or account for surface types of the floor surfaces50a-50eof each of the respective rooms42of the environment. In some examples, the map can be updated to show the different surface types such as within each of the rooms42.

In some examples, the user60can define a behavior control zone54using, for example, the methods and systems described herein. In response to the user60defining the behavior control zone54, the robot100can move toward the behavior control zone54to confirm the selection. After confirmation, autonomous operation of the robot100can be initiated. In autonomous operation, the robot100can initiate a behavior in response to being in or near the behavior control zone54. For example, the user60can define an area of the environment40that is prone to becoming dirty to be the behavior control zone54. In response, the robot100can initiate a focused cleaning behavior in which the robot100performs a focused cleaning of a portion of the floor surface50din the behavior control zone54.

Components of the Robot

FIG.2Aillustrates a bottom view of the mobile cleaning robot100.FIG.2Billustrates a bottom view of the mobile cleaning robot100.FIG.3illustrates a cross-section view across indicators3-3ofFIG.2Aof the mobile cleaning robot100.FIG.3also shows orientation indicators Front and Rear.FIGS.2A-3are discussed together below.

The cleaning robot100can be an autonomous cleaning robot that can autonomously traverse the floor surface50while ingesting the debris75from different parts of the floor surface50. As shown inFIGS.2A and3, the robot100can include a body202movable across the floor surface50. The body202can include multiple connected structures to which components of the cleaning robot100are mounted. The connected structures can include, for example, an outer housing to cover internal components of the cleaning robot100, a chassis or frame to which the drive wheels210aand210band the cleaning rollers205aand205b(of a cleaning assembly204) are mounted, and a bumper238. The bumper238can be removably secured to the body202and can be movable relative to the body202while mounted thereto. In some examples, the bumper238can form part of the body202.

As shown inFIG.2A, the body202includes a front portion202athat has a substantially semicircular shape and a rear portion202bthat has a substantially semicircular shape. These portions can have other shapes in other examples, such as a square front (or rounded square front). As shown inFIG.2A, the robot100can include a drive system including actuators208aand208b, which can be, for example, motors. The actuators208aand208bcan be mounted in the body202and can be operably connected to the drive wheels210aand210b, which can be rotatably mounted to the body202to support the body202above the floor surface50. The actuators208aand208b, when driven, can rotate the drive wheels210aand210bto enable the robot100to autonomously move across the floor surface50.

The controller (or processor)212can be located within the housing and can be a programmable controller, such as a single or multi-board computer, a direct digital controller (DDC), a programmable logic controller (PLC), or the like. In other examples the controller212can be any computing device, such as a handheld computer, for example, a smart phone, a tablet, a laptop, a desktop computer, or any other computing device including a processor, memory, and communication capabilities. The memory213can be one or more types of memory, such as volatile or non-volatile memory, read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and other storage devices and media. The memory213can be located within the body202, connected to the controller212and accessible by the controller212.

The controller212can operate the actuators208aand208bto autonomously navigate the robot100about the floor surface50during a cleaning operation. The actuators208aand208bcan be operable to drive the robot100in a forward drive direction, in a backwards direction, or to turn the robot100. The robot100can include a caster wheel211that can support the body202above the floor surface50. The caster wheel211can support the front portion202aof the body202above the floor surface50, and the drive wheels210aand210bcan support the rear portion202bof the body202above the floor surface50.

As shown inFIG.3, a vacuum assembly218can be located at least partially within the body202of the robot100, e.g., in the rear portion202bof the body202. The controller212can operate the vacuum assembly218to generate an airflow that flows through the air gap near the cleaning rollers205, through the body202, and out of the body202. The vacuum assembly218can include, for example, an impeller that generates the airflow when rotated. The airflow and the cleaning rollers205, when rotated, can cooperate to ingest debris75into a suction duct348of the robot100. The suction duct348can extend down to or near a bottom portion of the body202and can be at least partially defined by the cleaning assembly204.

The suction duct348can be connected to the cleaning head204or cleaning assembly and can be connected to a cleaning bin322. The cleaning bin322can be mounted in the body202and can contain the debris75ingested by the robot100. A filter349can be located in the body202, which can help to separate the debris75from the airflow before the airflow220enters the vacuum assembly218and is exhausted out of the body202. In this regard, the debris75can be captured in both the cleaning bin322and the filter before the airflow220is exhausted from the body202.

The cleaning rollers205aand205bcan operably connected to one or more actuators214aand214b, e.g., motors, respectively. The cleaning head204and the cleaning rollers205aand205bcan be positioned forward of the cleaning bin322. The cleaning rollers205aand205bcan be mounted to a housing224of the cleaning head204and mounted, e.g., indirectly or directly, to the body202of the robot100. In particular, the cleaning rollers205aand205bcan be mounted to an underside of the body202so that the cleaning rollers205aand205bengage debris75on the floor surface50during the cleaning operation when the underside faces the floor surface50.

The housing224of the cleaning head204can be mounted to the body202of the robot100. In this regard, the cleaning rollers205aand205bcan also be mounted to the body202of the robot100, such as indirectly mounted to the body202through the housing224. Alternatively, or additionally, the cleaning head204can be a removable assembly of the robot100where the housing224(with the cleaning rollers205aand205bmounted therein) is removably mounted to the body202of the robot100.

A side brush242can be connected to an underside of the robot100and can be connected to a motor244operable to rotate the side brush242with respect to the body202of the robot100. The side brush242can be configured to engage debris to move the debris toward the cleaning assembly205or away from edges of the environment40. The motor244configured to drive the side brush242can be in communication with the controller212. The brush242can be a side brush laterally offset from a center of the robot100such that the brush242can extend beyond an outer perimeter of the body202of the robot100. Similarly, the brush242can also be forwardly offset of a center of the robot100such that the brush242also extends beyond the bumper238or an outer periphery of the body202.

The robot100can further include a sensor system with one or more electrical sensors. The sensor system can generate one or more signals indicative of a current location of the robot100, and can generate one or more signals indicative of locations of the robot100as the robot100travels along the floor surface50.

For example, cliff sensors234(shown inFIG.2A) can be located along a bottom portion of the body202. The cliff sensors234can include an optical sensor that can be configured to detect a presence or absence of an object below the optical sensor, such as the floor surface50. The cliff sensors234can be connected to the controller212.

The bump sensors239aand239b(the bump sensors239) can be connected to the body202and can be engageable or configured to interact with the bumper238. The bump sensors239can include break beam sensors, Hall Effect sensors, capacitive sensors, switches, or other sensors that can detect contact between the robot100(e.g., the bumper238) and objects in the environment40. The bump sensors239can be in communication with the controller212.

An image capture device240can be connected to the body202and can extend at least partially through the bumper238of the robot100, such as through an opening243of the bumper238. The image capture device240can be a camera, such as a front-facing camera, configured to generate a signal based on imagery of the environment40of the robot100. The image capture device240can transmit the image capture signal to the controller212for use for navigation and cleaning routines.

Obstacle follow sensors241(shown inFIG.2B) can include an optical sensor facing outward or downward from the bumper238that can be configured to detect the presence or the absence of an object adjacent to a side of the body202. The obstacle follow sensor241can emit an optical beam horizontally in a direction perpendicular (or nearly perpendicular) to the forward drive direction of the robot100. The optical emitter can emit an optical beam outward from the robot100, e.g., outward in a horizontal direction, and the optical detector detects a reflection of the optical beam that reflects off an object near the robot100. The robot100, e.g., using the controller212, can determine a time of flight of the optical beam and thereby determine a distance between the optical detector and the object, and hence a distance between the robot100and the object.

The robot100can also optionally include one or more dirt sensors245connected to the body202and in communication with the controller212. The dirt sensors245can be a microphone, piezoelectric sensor, optical sensor, or the like, and can be located in or near a flow path of debris, such as near an opening of the cleaning rollers205or in one or more ducts within the body202. This can allow the dirt sensor(s)245to detect how much dirt is being ingested by the vacuum assembly218(e.g., via the extractor204) at any time during a cleaning mission. Because the robot100can be aware of its location, the robot100can keep a log or record of which areas or rooms of the map are dirtier or where more dirt is collected. The robot100can also include a battery245operable to power one or more components (such as the motors) of the robot.

Operation of the Robot

In operation of some examples, the robot100can be propelled in a forward drive direction or a rearward drive direction. The robot100can also be propelled such that the robot100turns in place or turns while moving in the forward drive direction or the rearward drive direction.

When the controller212causes the robot100to perform a mission, the controller212can operate the motors208to drive the drive wheels210and propel the robot100along the floor surface50. In addition, the controller212can operate the motors214to cause the rollers205aand205bto rotate, can operate the motor244to cause the brush242to rotate, or can operate the motor of the vacuum system218to generate airflow. The controller212can also execute software stored on the memory213to cause the robot100to perform various navigational and cleaning behaviors by operating the various motors or components of the robot100.

The various sensors of the robot100can be used to help the robot navigate and clean within the environment40. For example, the cliff sensors234can detect obstacles such as drop-offs and cliffs below portions of the robot100where the cliff sensors234are located. The cliff sensors234can transmit signals to the controller212so that the controller212can redirect the robot100based on signals from the cliff sensors234.

In some examples, the bump sensor239acan be used to detect movement of the bumper238in one or more directions of the robot100. For example, the bump sensor239acan be used to detect movement of the bumper238from front to rear or the bump sensors239bcan detect movement along one or more sides of the robot100. The bump sensors239can transmit signals to the controller212so that the controller212can redirect the robot100based on signals from the bump sensors239.

In some examples, the obstacle follow sensors241can detect detectable objects, including obstacles such as furniture, walls, persons, and other objects in the environment of the robot100. In some implementations, the sensors241can be located along a side surface of the body202, and the obstacle following sensor241can detect the presence or the absence an object adjacent to the side surface. The one or more obstacle following sensors241can also serve as obstacle detection sensors, similar to proximity sensors. The controller212can use the signals from the obstacle follow sensors241to follow along obstacles such as walls or cabinets.

The robot100can also include sensors for tracking a distance travelled by the robot100. For example, the sensor system can include encoders associated with the motors208for the drive wheels210, and the encoders can track a distance that the robot100has travelled. In some implementations, the sensor can include an optical sensor facing downward toward a floor surface. The optical sensor can be positioned to direct light through a bottom surface of the robot100toward the floor surface50. The optical sensor can detect reflections of the light and can detect a distance travelled by the robot100based on changes in floor features as the robot100travels along the floor surface50.

The image capture device240can be configured to generate a signal based on imagery of the environment40of the robot100as the robot100moves about the floor surface50. The image capture device240can transmit such a signal to the controller212. The image capture device240can capture images of wall surfaces of the environment so that features corresponding to objects on the wall surfaces can be used for localization.

The controller212can use data collected by the sensors of the sensor system to control navigational behaviors of the robot100during the mission. For example, the controller212can use the sensor data collected by obstacle detection sensors of the robot100(e.g., the cliff sensors234, the bump sensors239, and the image capture device240) to help the robot100avoid obstacles when moving within the environment of the robot100during a mission.

The sensor data can also be used by the controller212for simultaneous localization and mapping (SLAM) techniques in which the controller212extracts or interprets features of the environment represented by the sensor data and constructs a map of the floor surface50of the environment. The sensor data collected by the image capture device240can be used for techniques such as vision-based SLAM (VSLAM) in which the controller212can extract visual features corresponding to objects in the environment40and can construct the map using these visual features. As the controller212directs the robot100about the floor surface50during the mission, the controller212can use SLAM techniques to determine a location of the robot100within the map by detecting features represented in collected sensor data and comparing the features to previously stored features. The map formed from the sensor data can indicate locations of traversable and non-traversable space within the environment. For example, locations of obstacles can be indicated on the map as non-traversable space, and locations of open floor space can be indicated on the map as traversable space.

The sensor data collected by any of the sensors can be stored in the memory213. In addition, other data generated for the SLAM techniques, including mapping data forming the map, can be stored in the memory213. These data produced during the mission can include persistent data that are produced during the mission and that are usable during further missions. In addition to storing the software for causing the robot100to perform its behaviors, the memory213can store data resulting from processing of the sensor data for access by the controller212. For example, the map can be a map that is usable and updateable by the controller212of the robot100from one mission to another mission to navigate the robot100about the floor surface50.

The persistent data, including the persistent map, helps to enable the robot100to efficiently clean the floor surface50. For example, the map enables the controller212to direct the robot100toward open floor space and to avoid non-traversable space. In addition, for subsequent missions, the controller212can use the map to optimize paths taken during the missions to help plan navigation of the robot100through the environment40.

Network Examples

FIG.4Ais a diagram illustrating by way of example and not limitation a communication network400that can enable networking and communication between the mobile robot100and one or more other devices, such as a mobile device404, a cloud computing system406, or another autonomous robot408separate from the mobile robot100. Using the communication network410, the robot100, the mobile device404, the robot408, and the cloud computing system406can communicate with one another to transmit and receive data, instructions, or other information to and from one another. The cloud computing system406can include processing circuitry and memory circuitry, including instructions, executable by the processing circuitry to cause the processing circuitry to perform operations.

In some examples, the robot100, the robot408, or both the robot100and the robot408communicate with the mobile device404through the cloud computing system406. Alternatively or additionally, the robot100, the robot408, or both the robot100and the robot408communicate directly with the mobile device404. Various types and combinations of wireless networks (e.g., Bluetooth, radio frequency, optical based, etc.) and network architectures (e.g., one or more of a distributed network, local area network (LAN), wide area network (WAN), a mesh network, or the like) may be employed by the communication network410.

In some examples, the mobile device404can be a remote device that can be linked to the cloud computing system406and can enable a user to provide inputs, such as a smartphone, tablet, computer, or other computing device. The mobile device404can include user input elements such as, for example, one or more of a touchscreen display, buttons, a microphone, a mouse, a keyboard, or other devices that respond to inputs provided by the user. The mobile device404can also include immersive media (e.g., virtual reality) with which the user can interact to provide input. The mobile device404, in these examples, can be a virtual reality headset or a head-mounted display.

The user can provide inputs corresponding to commands for the mobile robot100. In such cases, the mobile device404can transmit a signal to the cloud computing system406to cause the cloud computing system406to transmit a command signal to the mobile robot100. In some implementations, the mobile device404can present augmented reality images. In some implementations, the mobile device404can be a smart phone, a laptop computer, a tablet computing device, or other mobile device.

In some examples, the communication network410can include additional nodes. For example, nodes of the communication network410can include additional robots, such as a fleet of robots. Alternatively or additionally, nodes of the communication network410can include network-connected devices that can generate information about the environment40. Such a network-connected device can include one or more sensors, such as an acoustic sensor, an image capture system, or other sensor generating signals, to detect characteristics of the environment40from which features can be extracted. Network-connected devices can also include home cameras, smart sensors, or the like.

In the communication network410, the wireless links may utilize various communication schemes, protocols, etc., such as, for example, Bluetooth classes, Wi-Fi, Bluetooth-low-energy, also known as BLE, 802.15.4, Worldwide Interoperability for Microwave Access (WiMAX), an infrared channel, satellite band, or the like. In some examples, wireless links can include any cellular network standards used to communicate among mobile devices, including, but not limited to, standards that qualify as 1G, 2G, 3G, 4G, 5G, or the like. The network standards, if utilized, qualify as, for example, one or more generations of mobile telecommunication standards by fulfilling a specification or standards such as the specifications maintained by International Telecommunication Union. For example, the 4G standards can correspond to the International Mobile Telecommunications Advanced (IMT-Advanced) specification. Examples of cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, LTE Advanced, Mobile WiMAX, and WiMAX-Advanced. Cellular network standards may use various channel access methods, e.g., FDMA, TDMA, CDMA, or SDMA.

FIG.4Bis a diagram illustrating an exemplary process401of exchanging information among devices in the communication network410or performing one or more calculations or determinations on the devices, such as the mobile robot100, the cloud computing system406, the mobile device404, a robot fleet414, or other devices.

In some examples, the robot100can be tested at a factory (e.g., a manufacturing facility or test facility thereof). One or more sensors of the robot or sensors of one or more components or systems in the factory can produce sensor signals during testing. For example, the drive wheel motors can be tested, the roller motors can be tested, or the blower motor can be tested. In each test, data from one or more sensors from the robot or the factory can be collected, analyzed, and stored as factory test data412. Such factory test data can be stored using an identifier of the robot, such as a serial number. The factory test data can include values from tests, such as a sensor value, e.g., motor current or an amount of time passed during testing. The factory test data can also include whether a tested component of the robot passed or failed. The factory test data can also include a trajectory of testing of the robot, such as a rate at which the robot passed each test, or a number of tries to pass each test.

Also, a fleet of robots414, which can be mopping robots, vacuuming robots, or two-in-one robots, or other smart-home devices, can be in the field, or in various homes or environments. Each of the robots414can include one or more sensors (such as those of the robot100) and each sensor can produce a signal that can be received by a controller of the robots of the fleet414. The fleet robots414can store or process the signals and can transmit data from the signals or determinations made therefrom, which can be fleet data416. The fleet data416can be transferred from each of the fleet robots414to the cloud computing system406. The fleet data416can optionally include factory test data for each fleet robot.

The factory test data412and the fleet data416can together be used as a training pipeline418for a machine learning model420(or trained model or classifier) of the cloud computing system406. Optionally, the training pipeline can include additional data, such as robot age, component life expectancy, or the like. The data received by the machine learning model420can be labeled with an indication, such as a source or category of the data, including robot model, event frequency, event type, component type, component life expectancy, or the like. The various data can be stored and analyzed to train the machine learning model420. The specific machine learning algorithm used for training can be selected from among many different potential supervised or unsupervised machine learning algorithms. Examples of supervised learning algorithms include artificial neural networks, Bayesian networks, instance-based learning, support vector machines, decision trees (e.g., Iterative Dichotomiser 3, C4.5, Classification and Regression Tree (CART), Chi-squared Automatic Interaction Detector (CHAID), and the like), random forests, linear classifiers, quadratic classifiers, k-nearest neighbor, linear regression, logistic regression, and hidden Markov models. Examples of unsupervised learning algorithms include K-means clustering, principal component analysis, expectation-maximization algorithms, vector quantization, and information bottleneck method. Unsupervised models may not have a training engine. In an example embodiment, a classifier can be used and the model420can be one or more coefficients corresponding to a learned importance for each of the features.

The resulting machine learning model420can be a model configured to predict an outcome based on input data, which can be used to help a user proactively maintain the robot100. The machine learning model420can be a classifier, such as a binary classifier or a multi-class classifier. Once trained, the model420can output a correlated data-based outcome from an input of one or more data inputs. For example, the machine learning model420can output a result422following one or more inferences or determinations424based on robot data426.

The robot data426can be robot telemetry or other data from the robot100. For example, the robot100can produce one or more sensor signals from one or more sensors of the robot100. The sensor signals can be used by the controller212of the robot to make one or more determinations, which can be stored by the controller212, such as in memory213of the robot100. Also, the controller212can store data from the signals along with other correlated data, such as time or frequency of occurrence. Any or all of this information collected by the robot100can be transmitted to the cloud computing system406for use with the machine learning model420in the inference pipeline424.

Upon receipt of the robot data426, the machine learning model420can use the robot data426to predict whether maintenance of one or more components of the robot100is required or will be required, which can be a maintenance determination or indication. For example, the machine learning model420can use data of the robot data426relating to operation of the vacuum assembly218. Upon receipt of the vacuum assembly data, for example data from a motor of the vacuum assembly (such as a motor current sensor), the machine learning model420can use the data as an input into the inference pipeline424to determine whether maintenance on the blower of the vacuum assembly218is required or is likely to be required. When the machine learning model420makes a determination, the machine learning model420can output the result422, which can be transmitted to one or more other devices, such as the mobile device404, an analytics device428, or a customer care device430. Either of the analytics device428or the customer care device430can be devices, such as computers, tablets, or the like configured to be operated or accessed by a user. For example, the customer care device430can be a computer or system accessible by a customer care or support specialist.

Optionally, the inference pipeline424can receive robot data426that is only factory test data and the machine learning model420can use factory test data pertaining to a specific robot in the inference pipeline424to make a maintenance determination or indication as to whether a component will require service.

When the machine learning model420makes a determination that the maintenance indication is maintenance is required, the result422can be transmitted to one of the devices, such as the mobile device404for receipt by the user402, such as in the form of a maintenance instruction, as discussed in further detail below. The maintenance indication can optionally be transmitted to any of the mobile device404, the analytics device428, or the customer care device430, where such devices can make a maintenance recommendation or maintenance instruction based on the maintenance indication. The device (any of the mobile device404, the analytics device428, or the customer care device430) can then transmit a maintenance instruction to another of the devices or can display a maintenance instruction. Upon receipt of the indication or instruction, the device can produce an alert or instructions for its user. For example, as discussed in further detail below with respect toFIG.6, the mobile device404can produce instructions for checking the component predicted to fail or instructions for ordering a replacement component.

In another example, the machine learning model420can use data from the motor244of the side brush242(such as a motor current sensor of the motor244) as an input into the inference pipeline424to determine whether maintenance on the motor244of the brush242is required or is likely to be required. When the machine learning model420makes a determination that maintenance is required, the machine learning model420can output the result422, which can be transmitted to one or more other devices, such as the mobile device404, an analytics device428, or a customer care device430. For example, the machine learning model420can transmit the maintenance indication or the maintenance instruction to the mobile device404that the motor244be replaced.

In another example, the machine learning model420can use data from the roller actuator or motor214(such as a motor current sensor) as an input into the inference pipeline424to determine whether maintenance on the motors214is required or is likely to be required. When the machine learning model420makes a determination that maintenance is required, the machine learning model420can output the result422, which can be transmitted to one or more other devices, such as the mobile device404, an analytics device428, or a customer care device430. For example, the machine learning model420can transmit the maintenance indication or the maintenance instruction to the mobile device404that one or more of the motors214be replaced.

In another example, the machine learning model420can use data from the drive wheel actuator or motor208(such as a motor current sensor) as an input into the inference pipeline424to determine whether maintenance on either of the motors208is required or is likely to be required. When the machine learning model420makes a determination that maintenance is required, the machine learning model420can output the result422, which can be transmitted to one or more other devices, such as the mobile device404, an analytics device428, or a customer care device430. For example, the machine learning model420can transmit the maintenance indication or the maintenance instruction to the mobile device404that one or more of the motors208be replaced.

Similarly, the machine learning model420can use data from a sensor (such as the cliff sensors234, the bump sensors239, or the image capture device240) as an input into the inference pipeline424to determine whether maintenance on one or more of the sensors required or is likely to be required. When the machine learning model420makes a determination that maintenance is required, the machine learning model420can output the result422, which can be transmitted to one or more other devices, such as the mobile device404, an analytics device428, or a customer care device430. For example, the machine learning model420can transmit the maintenance indication or the maintenance instruction to the mobile device404that one or more of the sensors be replaced.

Similarly, the machine learning model420can use data from a sensor of the robot or from a docking station or a user device indicative of an amount of average robot time between charges as an input into the inference pipeline424to determine whether maintenance on the battery245of the robot is required. The machine learning model420can also receive data regarding a capacity of the battery245as an input into the inference pipeline424to determine whether maintenance on the battery245of the robot is required. When the machine learning model420makes a determination that maintenance is required, the machine learning model420can output the result422, which can be transmitted to one or more other devices, such as the mobile device404, an analytics device428, or a customer care device430. For example, the machine learning model420can transmit the maintenance indication or the maintenance instruction to the mobile device404that one the battery245be replaced.

The machine learning model420can use other data that is not sensor data in the inference pipeline424to determine to predict that a component will require service or replacement. For example, the robot100can transmit robot data426that include a cleaning frequency of the robot100within the environment40, such as once per day or once per week. The machine learning model420can use such information, along with sensor data or along with factory data, to determine the maintenance indication, such as whether the component is likely to fail or require service. Also, the machine learning model420can use the cleaning frequency to determine when the component is likely to fail or when the component is likely to require service. The cloud computing system406can transmit to one or more device (e.g., the mobile device404) that the component is likely to fail and when the component is likely to fail. The mobile device404can produce a maintenance instruction indicating the component in need of service and when the component will likely need service. Such an indication can provide the user402with a timeline for obtaining replacement parts.

Replacement parts can also be automatically ordered by the mobile device404or the cloud computing system406(or the analytics device428or the customer care device430). For example, when the machine learning model420determines that a component is likely to fail, the cloud computing system406can transmit an order (such as to the customer care device430) for a replacement component to be shipped to the user402. Optionally, the cloud computing system406can transmit, to the mobile device404, the maintenance indication (or a maintenance instruction) and the mobile device404can present an indication that is user selectable to place an order for a replacement component of the robot100. Upon user selection of the indication, the mobile device404can transmit acceptance of the order to the cloud computing system406or the customer care device430and the component can be ordered or prepared for shipment in response.

Operations for the process401and other processes described herein, such one or more steps of the method500can be executed in a distributed manner. For example, the cloud computing system406, the mobile robot100, and the mobile device404may execute one or more of the operations in concert with one another. Operations described as executed by one of the cloud computing system406, the mobile robot100, and the mobile device404are, in some implementations, executed at least in part by two or all of the cloud computing system406, the mobile robot100, and the mobile device404.

Further Operations of the Robot

FIG.5illustrates a schematic view of the method500, in accordance with at least one example of this disclosure. The method500can be a method of predicting component failure or maintenance for a mobile cleaning robot. The robot100can transmit data to the cloud computing system406which can use a machine learning model420to analyze the data (along with other data, optionally) to determine whether maintenance of the robot will be required or to predict component replacement. More specific examples of the method500are discussed below. The steps or operations of the method500are illustrated in a particular order for convenience and clarity; many of the discussed operations can be performed in a different sequence or in parallel without materially impacting other operations. The method500as discussed includes operations performed by multiple different actors, devices, or systems. It is understood that subsets of the operations discussed in the method500can be attributable to a single actor, device, or system could be considered a separate standalone process or method.

The method500can begin at step502where factory test data of a mobile cleaning robot can be produced, transmitted, or received. For example, the robot100or components of the factory can produce test data, which can be transmitted to the cloud computing system406and received thereby.

At step504where fleet data of one or more mobile cleaning robots from a fleet can produce data regarding each robot, which can be transmitted thereby and received by a remote device or network, such as the406. At step506a model, such as a machine learning model or classifier or other predictive algorithm can be trained using the factory test data or the fleet data. For example, the machine learning model420can be trained on one or more of the fleet data416and the factory test data412.

At step508, the robot100can transmit robot data to another device, such as the mobile device404or the cloud computing system406. The robot data can be data from one or more sensors of the robot100or one or more determinations made by the controller212of the robot100. At step510, a maintenance indication can be determined. For example, the machine learning model420can determine or produce a maintenance indication based on the step506or other data. The maintenance indication can be indicative of whether maintenance on the mobile cleaning robot100is recommended.

At step512, a maintenance instruction can be transmitted. The instruction can be the maintenance indication or can be an instruction or recommendation. The instruction can be transmitted from the cloud computing system406to another device, such as the mobile device404. In some example, the maintenance indication or instruction can be transmitted only when maintenance on the mobile cleaning robot100is recommended.

FIG.6illustrates a perspective view of a user device.FIG.7illustrates a perspective view of the user device600.FIGS.6-7are discussed together below and illustrate, by way of non-limiting example, a user interface of a smart phone600, which can be an example of the mobile device404. The user device600can include a display screen602, which can be configured to display text or images and can be configured to receive user input, such as touch input.

As shown inFIG.6, an alert604regarding an error, such as an error26, can be presented on the display screen602. The display screen602can also display alert subtext606, which can provide additional information about the alert, such as that the vacuum suction is underperforming. Also, cleaning instructions608can be displayed on the display screen602, which can include instructions610and612, such as recommended cleaning instructions for the user to try, which can help to ensure that a component is actually failing. For example, the instruction610can instruct the user to remove the dust bin and filter from the robot. The instructions612can instruct the user to empty the bin and clean off the filter by tapping it on a trash bin.

The display screen602can also display component care notes614, which can include notes616and618on how to properly maintain the robot. For example, the note616can indicate proper filter cleaning frequency to the user, and the note618can indicate proper filter replacement frequency to the user.

Both the alert604and the alert subtext606can vary based on the error the robot is experiencing. For example, when the vacuum system is not performing correctly, the alert604and the alert subtext606can be displayed. However, when the drive wheel motors are not performing correctly, a drive wheel alert and subtext can be displayed. A different alert605and subtext606can be displayed for each error or detected issue. Similarly, the cleaning instructions608and the care notes614can also be tailored based on the specific error of the robot.

The user device600can also be configured to display a learn more indication620on the display screen602that is user-selectable to present a new screen with additional information or selectable indications, such as the display ofFIG.7. One the display screen602ofFIG.7, an order alert622can be produced, which can explain to the user that a replacement component can be ordered. The display screen602can also show subtext624of the alert622, which can include additional details, such as explaining the specific component (e.g., a cleaning head module) that requires replacement.

The display screen602can also include instructions626-630which can explain steps for replacement or preparation. For example, the instruction630can instruct a user to place an order by selecting order indication632. The order indication632can be presented on the display screen602and can be user-selectable to transmit an order (or a message for an order) to the cloud computing system406or another device. Upon receipt of the order from the user device600, the cloud computing system406can instruct a user or worker to prepare a replacement order for shipment to the user (e.g., the user402). In this way, the user device600can instruct the user to maintain a component that is predicted by the cloud computing system406to need maintenance or replacement and the user device600can interact with the cloud computing system406to quickly and easily place an order for a replacement component before failure of the component, helping to reduce robot downtime.

The machine (e.g., computer system)800may include a hardware processor802(e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory804, a static memory (e.g., memory or storage for firmware, microcode, a basic-input-output (BIOS), unified extensible firmware interface (UEFI), etc.)806, and mass storage808(e.g., hard drive, tape drive, flash storage, or other block devices) some or all of which may communicate with each other via an interlink (e.g., bus)830. The machine800may further include a display unit810, an alphanumeric input device812(e.g., a keyboard), and a user interface (UI) navigation device814(e.g., a mouse). In an example, the display unit810, input device812and UI navigation device814may be a touch screen display. The machine800may additionally include a storage device (e.g., drive unit)808, a signal generation device818(e.g., a speaker), a network interface device820, and one or more sensors816, such as a global positioning system (GPS) sensor, compass, accelerometer, or other sensor. The machine800may include an output controller828, such as a serial (e.g., universal serial bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate or control one or more peripheral devices (e.g., a printer, card reader, etc.).

Registers of the processor802, the main memory804, the static memory806, or the mass storage808may be, or include, a machine readable medium822on which is stored one or more sets of data structures or instructions824(e.g., software) embodying or utilized by any one or more of the techniques or functions described herein. The instructions824may also reside, completely or at least partially, within any of registers of the processor802, the main memory804, the static memory806, or the mass storage808during execution thereof by the machine800. In an example, one or any combination of the hardware processor802, the main memory804, the static memory806, or the mass storage808may constitute the machine readable media822. While the machine readable medium822is illustrated as a single medium, the term “machine readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) configured to store the one or more instructions824.

Notes and Examples

The following, non-limiting examples, detail certain aspects of the present subject matter to solve the challenges and provide the benefits discussed herein, among others.Example 1 is a mobile cleaning robot system including a mobile cleaning robot, the system comprising: processing circuitry; and memory circuitry, including instructions, which when executed by the processing circuitry, cause the processing circuitry to perform operations to: receive factory test data; transmit a maintenance indication indicative of whether maintenance on the mobile cleaning robot is recommended, the maintenance indication based at least in part on the factory test data; and transmit a maintenance instruction to a user device when the maintenance indication is that maintenance on the mobile cleaning robot is recommended.In Example 2, the subject matter of Example 1 optionally includes the mobile cleaning robot comprising: a blower motor configured to operate a vacuum blower to ingest debris from an environment; and a motor sensor connected to the blower motor and configured to produce a motor signal based on operation of the blower motor, wherein the factory test data is based at least in part on the motor signal.In Example 3, the subject matter of Example 2 optionally includes wherein the maintenance indication indicates whether the blower motor is recommended to receive maintenance.In Example 4, the subject matter of any one or more of Examples 1-3 optionally include wherein the memory circuitry includes instructions, which when executed by the processing circuitry, further cause the processing circuitry to perform operations to: produce a sensor signal using a sensor of the mobile cleaning robot; produce sensor data based on the sensor signal; and transmit the sensor data from the mobile cleaning robot, the maintenance indication based at least in part on the sensor data.In Example 5, the subject matter of any one or more of Examples 1-4 optionally include wherein the maintenance indication is determined based on fleet data from a fleet of mobile cleaning robots.In Example 6, the subject matter of any one or more of Examples 1-5 optionally include wherein the memory circuitry includes instructions, which when executed by the processing circuitry, further cause the processing circuitry to perform operations to: determine a cleaning frequency of the mobile cleaning robot in one or more portions of an environment; and transmit the cleaning frequency to a remote device, wherein the maintenance indication is determined at least in part on the cleaning frequency.Example 7 is at least one non-transitory machine-readable medium, including instructions, which when executed, cause processing circuitry to perform operations to: receive factory test data of a mobile cleaning robot; determine a maintenance indication indicative of whether maintenance on the mobile cleaning robot is recommended, the maintenance indication based at least in part on the factory test data of the mobile cleaning robot; and transmit a maintenance instruction to a user device when the maintenance indication is that maintenance on the mobile cleaning robot is recommended.In Example 8, the subject matter of Example 7 optionally includes the instructions to further cause the processing circuitry to: receive fleet data from a fleet of mobile cleaning robots; and determine the maintenance instruction based at least in part on the fleet data of the fleet of mobile cleaning robots.In Example 9, the subject matter of Example 8 optionally includes the instructions to further cause the processing circuitry to: determine the maintenance instruction using a trained machine learning model, the trained machine learning model trained using at least one of the factory test data or the fleet data as input to the trained machine learning model.In Example 10, the subject matter of Example 9 optionally includes wherein the factory test data includes vacuum system test data, and wherein the fleet data includes vacuum system operational data.In Example 11, the subject matter of any one or more of Examples 7-10 optionally include the instructions to further cause the processing circuitry to: present an order indication on the user device that is user selectable to place an order for a replacement component of the mobile cleaning robot; and transmit, to a remote device, the order for the replacement component upon user selection of the order indication.In Example 12, the subject matter of any one or more of Examples 7-11 optionally include the instructions to further cause the processing circuitry to: receive a motor signal based on operation of a blower motor of the mobile cleaning robot; and determine the maintenance instruction based at least in part on the motor signal.In Example 13, the subject matter of Example 12 optionally includes wherein the maintenance indication indicates whether the blower motor is recommended to receive maintenance.In Example 14, the subject matter of any one or more of Examples 7-13 optionally include the instructions to further cause the processing circuitry to: receive a sensor signal from a sensor of the mobile cleaning robot; generate sensor data based on the sensor signal; transmit the sensor data to a remote device; and determine the maintenance instruction based at least in part on the sensor data of the mobile cleaning robot.Example 15 is a method of predicting maintenance for a mobile cleaning robot, the method comprising: receiving factory test data of a mobile cleaning robot; determining a maintenance indication indicative of whether maintenance on the mobile cleaning robot is recommended, the maintenance indication based at least in part on the factory test data of the mobile cleaning robot; and transmitting a maintenance instruction to a user device when the maintenance indication is that maintenance on the mobile cleaning robot is recommended.In Example 16, the subject matter of Example 15 optionally includes receiving fleet data from a fleet of mobile cleaning robots; and determining the maintenance instruction based at least in part on the fleet data of the fleet of mobile cleaning robots.In Example 17, the subject matter of Example 16 optionally includes determining the maintenance instruction using a trained machine learning model, the trained machine learning model trained using at least one of the factory test data or the fleet data as input to the trained machine learning model.In Example 18, the subject matter of any one or more of Examples 16-17 optionally include wherein the factory test data includes vacuum system test data, and wherein the fleet data includes vacuum system operational data.In Example 19, the subject matter of Example 18 optionally includes receiving a sensor signal from a sensor of the mobile cleaning robot; generating sensor data based on the sensor signal; transmitting the sensor data to a remote device; and determine the maintenance instruction based at least in part on the sensor data of the mobile cleaning robot.In Example 20, the subject matter of any one or more of Examples 15-19 optionally include presenting an order indication on the user device that is user selectable to place an order for a replacement component of the mobile cleaning robot; and transmitting, to a remote device, the order for the replacement component upon user selection of the order indication.Example 21 is at least one machine-readable medium including instructions that, when executed by processing circuitry, cause the processing circuitry to perform operations to implement of any of Examples 1-20.Example 22 is an apparatus comprising means to implement of any of Examples 1-20.Example 23 is a system to implement of any of Examples 1-20.Example 24 is a method to implement of any of Examples 1-20.In Example 25, the system, apparatus(es), or method of any one or any combination of Examples 1-24 can optionally be configured such that all elements or options recited are available to use or select from.

In the event of inconsistent usages between this document and any documents so incorporated by reference, the usage in this document controls. In this document, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.” Also, in the following claims, the terms “including” and “comprising” are open-ended, that is, a system, device, article, composition, formulation, or process that includes elements in addition to those listed after such a term in a claim are still deemed to fall within the scope of that claim.