Systems, methods and apparatus for assessing the health of a cleaning head assembly in a mobile cleaning robot

By analyzing the robot data when the mobile cleaning robot operates in different floor areas, the wear and debris accumulation status of the cleaning head is automatically judged, which solves the problem of untimely maintenance in the existing technology and achieves more efficient robot maintenance.

CN114867399BActive Publication Date: 2025-05-09IROBOT CORP
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202080085139.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-11
Filing Date
2020-07-23
Publication Date
2025-05-09
Estimated Expiration
2040-07-23

AI Technical Summary

Technical Problem

Existing mobile cleaning robots have difficulty automatically determining the status of the cleaning head, especially the wear and debris accumulation level of the cleaning head, resulting in untimely or excessive maintenance.

Method used

By receiving robot data generated by the mobile cleaning robot when operating in the environment, extracting data portions corresponding to a specific floor area, using these data to determine robot parameters, and determining the status and remaining service life of the cleaning head based on these parameters.

Benefits of technology

Automatic monitoring and maintenance recommendations for the cleaning head status of mobile cleaning robots are realized, reducing failure and repair time and reducing maintenance costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114867399B_ABST
    Figure CN114867399B_ABST
Patent Text Reader

Abstract

Systems and methods for evaluating the health status of a cleaning head assembly in a mobile cleaning robot are described herein. The mobile robot includes a motorized cleaning member that rotatably engages a floor surface to extract debris. An exemplary system includes a processor circuit that receives robot data generated by a mobile cleaning robot traversing an environment, determines robot parameters using a portion of the received robot data that corresponds to a floor area with a specific surface condition that is repeatedly traversed by the mobile cleaning robot, and determines a cleaning head state and an estimate of the remaining useful life of the cleaning head based on the robot parameters. The determined state of the cleaning head system can be provided to a user via a user interface.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority Application

[0002] This application claims the benefit of priority to U.S. patent application No. 16 / 710,126, filed December 11, 2019, the entire contents of which are incorporated herein by reference. Technical Field

[0003] This document relates generally to mobile robots and, more particularly, to systems, apparatus, and methods for predictive maintenance of mobile cleaning robots. Background Art

[0004] An autonomous mobile robot can move around surfaces in an environment. Examples of autonomous mobile robots include cleaning robots that autonomously perform cleaning tasks within an environment (e.g., a home). Many types of cleaning robots are autonomous to some extent in different ways. A cleaning robot can perform a "cleaning task" in which the robot traverses a floor surface of its environment while ingesting (e.g., sucking) debris from the floor surface.

[0005] Mobile cleaning robots may include cleaning heads, such as brushes, beater rollers, etc., that pick up or help pick up debris. However, while the cleaning heads may agitate and draw debris and dirt from the floor surface, filaments (e.g., hair, thread, string, carpet fibers) may become tightly entangled in the rollers. In particular, pet hair tends to accumulate quickly and is difficult to remove. Debris may accumulate in the cleaning heads. In addition, the cleaning heads may wear out over time. Routine maintenance is essential for effective cleaning. Summary of the invention

[0006] This article describes systems, devices, and methods for automatically determining the state of a cleaning head in a mobile cleaning robot, such as the level of wear or debris accumulation of a cleaning head or its cleaning components (i.e., the "dirty" level of the cleaning head). The state of the cleaning head can be determined during the normal operation of the mobile robot to determine maintenance requirements. Using a predictive maintenance method, the state of the cleaning head is determined based on the actual condition of the cleaning head rather than an overall aggregate estimate of the expected life (e.g., an average or other aggregated statistical data). An exemplary system can receive robot data generated by a mobile cleaning robot traversing an environment, extract a portion of the received robot data corresponding to a floor area with a specific surface condition traversed by the mobile cleaning robot, use the extracted robot data portion to determine robot parameters, determine the state of the cleaning head based on the robot parameters, and estimate the remaining service life of the cleaning head. The system can generate recommendations for users to clean the cleaning head, or recommendations for replacing worn cleaning heads.

[0007] Example 1 is a system for evaluating the health of a cleaning head assembly in a mobile cleaning robot, the cleaning head assembly including a cleaning member driven by a motor and rotatably engaging a floor surface to extract debris. The system includes: a processor circuit configured to: receive robot data generated by a mobile cleaning robot traversing an environment; determine robot parameters using a portion of the received robot data, the portion of the robot data corresponding to a floor area in the environment traversed by the mobile cleaning robot, the floor area having a surface condition; and based on the determined robot parameters, determine a state of the cleaning head, the state of the cleaning head indicating at least one of a level of wear of the cleaning member or a level of debris accumulation; and a user interface configured to notify a user of the determined state of the cleaning head.

[0008] In Example 2, the subject matter of Example 1 optionally includes a processor circuit that can be configured to generate trends of robot parameters including multiple cleaning tasks, wherein the multiple cleaning tasks respectively include the mobile cleaning robot traversing the same floor area, and the processor circuit is configured to determine the state of the cleaning head based on the generated trends of the robot parameters.

[0009] In Example 3, the subject matter of any one or more of Examples 1-2 optionally includes a processor circuit further configured to generate an estimate of a remaining useful life (ERL) of the cleaning member using the determined robot parameters.

[0010] In Example 4, the subject matter of any one or more of Examples 1-3 optionally includes measurement of one or more of: voltage supplied to the motor; motor current; angular velocity of the cleaning member; or torque generated at the cleaning member.

[0011] In Example 5, the subject matter of any one or more of Examples 3-4 optionally includes a processor circuit that can be configured to: estimate state variables of a cleaning component using (1) a mathematical model of a cleaning head component representing the dynamics of the cleaning head, and (2) a data portion corresponding to a floor area having a surface condition; and generate an ERL for the cleaning component using the estimated state variables.

[0012] In Example 6, the subject matter of Example 5 optionally includes the state variable comprising a disturbance torque associated with debris accumulation in the cleaning member or wear of the cleaning member.

[0013] In Example 7, the subject matter of any one or more of Examples 5-6 optionally includes a mathematical model, which includes a state-space model, and the processor circuit can be configured to generate a state-space response model using (1) a voltage supplied to a motor to drive the cleaning member and (2) a motor current generated when the mobile cleaning robot operates under one or more surface conditions.

[0014] In Example 8, the subject matter of any one or more of Examples 1-7 optionally includes a processor circuit configured to extract a portion of the received robot data corresponding to a floor area having a surface condition based on a floor map containing information about a surface condition of one or more floor areas in an environment, the surface condition comprising one or more of: a floor type; a floor surface at a specific spatial location in the environment; a platform surface of a docking station for a mobile cleaning robot; or a floor surface having a specific size or shape.

[0015] In Example 9, the subject matter of any one or more of Examples 1-8 optionally includes a processor circuit configured to extract the portion of the received robot data based on a stage of the cleaning task, the stage of the cleaning task comprising at least one of: a docking stage, in which the cleaning robot is moved back to a docking station; or an undocking stage, in which the cleaning robot is moved away from the docking station.

[0016] In Example 10, the subject matter of any one or more of Examples 1-9 optionally includes robot parameters, the robot parameters including energy generated by the motor for driving the cleaning member across a floor area having a surface condition, and wherein the processor circuit is configured to: generate a trend of motor energy including multiple cleaning tasks, the multiple cleaning tasks each including the mobile cleaning robot traversing the same floor area; during a first monitoring period, determine a debris accumulation level based on an increasing trend in motor energy; and during a second monitoring period that is longer than the first monitoring period, determine a wear level based on a decreasing trend in motor energy.

[0017] In Example 11, the subject matter of Example 10 optionally includes a first monitoring period between two consecutive maintenance services of the cleaning head.

[0018] In Example 12, the subject matter of any one or more of Examples 10-11 optionally includes a processor circuit configured to trend the motor energy over a plurality of cleaning tasks, each cleaning task occurring at a particular time with respect to a detected maintenance indication of the cleaning head.

[0019] In Example 13, the subject matter of Example 12 optionally includes a maintenance detector circuit coupled to the one or more sensors to detect an indication that maintenance is being performed on the cleaning head.

[0020] In Example 14, the subject matter of any one or more of Examples 1-13 optionally includes robot parameters, wherein the robot parameters include a dynamic response of a motor that drives the cleaning member to rotatably engage the platform surface of the docking station of the mobile cleaning robot; wherein the processor circuit is configured to determine the state of the cleaning head based on a comparison of the determined dynamic response of the motor with one or more of a first motor response template for a worn cleaning head or a second motor response template for a debris-accumulated cleaning head; and wherein the first motor response template and the second motor response template are respectively generated using robot data corresponding to the cleaning member that rotatably engages the platform surface of the docking station.

[0021] In Example 15, the subject matter of Example 14 optionally includes a processor circuit configured to: generate a parametric model to fit the determined dynamic response of the motor; determine one or more model parameters of the parametric model so that the fit meets specific criteria; and determine the state of the cleaning head using the determined one or more model parameters.

[0022] In Example 16, the subject matter of any one or more of Examples 1-15 optionally includes a plurality of estimators associated with respective floor areas having respective surface conditions in an environment. Each of the plurality of estimators may be configured to determine respective robot parameters using a portion of the received robot data corresponding to the respective floor area. The processor circuit is configured to: generate composite robot parameters using robot parameters determined respectively by the plurality of estimators in a cleaning task; generate a trend of the composite robot parameters over a plurality of cleaning tasks, each cleaning task comprising moving the cleaning robot across one or more respective floor areas; and determine a state of the cleaning head based on the generated trend of the composite robot parameters.

[0023] In Example 17, the subject matter of Example 16 optionally includes a processor circuit configured to determine a corresponding weight factor for each of the plurality of estimators and to generate the composite robot parameters using a combination of the robot parameters weighted by the corresponding weight factors.

[0024] In Example 18, the subject matter of Example 17 optionally includes a plurality of estimators, each estimator configured to generate an estimated remaining useful life (ERL) of the cleaning member; and the processor circuit configured to generate an aggregate ERL using a combination of the ERLs weighted by respective weight factors.

[0025] In Example 19, the subject matter of any one or more of Examples 17-18 may optionally include a processor circuit that may be configured to determine the weight factor based on a floor type of a floor area associated with the corresponding estimator.

[0026] In Example 20, the subject matter of any one or more of Examples 17-19 optionally includes a processor circuit that can be configured to determine the weighting factor based on a variability measure of robot data acquired as the mobile cleaning robot traverses a floor area associated with the corresponding estimator during a cleaning task.

[0027] In Example 21, the subject matter of any one or more of Examples 1-20 may optionally include a user interface which may be configured to notify a user of the ERL of the cleaning member.

[0028] In Example 22, the subject matter of any one or more of Examples 1-21 can optionally include a user interface that can be configured to generate a recommendation to clean the cleaning member in response to the determined debris accumulation level, or to generate a recommendation to replace the cleaning member based on the determined wear level.

[0029] In Example 23, the subject matter of any one or more of Examples 1-22 may optionally include a user interface which may be configured to prompt a user to purchase a new cleaning head to replace a cleaning head having the determined level of wear.

[0030] Example 24 is a method for evaluating the health of a cleaning head assembly in a mobile cleaning robot, the cleaning head assembly including a cleaning member driven by a motor and rotatably engaging a floor surface to extract debris. The method includes the following steps: receiving robot data generated by a mobile cleaning robot traversing an environment; determining robot parameters via a processor circuit using a portion of the received robot data, the portion of the robot data corresponding to a floor area in the environment traversed by the mobile cleaning robot, the floor area having a surface condition; determining a state of the cleaning head based on the determined robot parameters via the processor circuit, the state of the cleaning head indicating at least one of a level of wear of the cleaning member or a level of debris accumulation; and presenting the determined state of the cleaning head on a user interface.

[0031] In Example 25, the subject matter of Example 24 optionally includes extracting a portion of the received robot data corresponding to a floor area having a surface condition based on a floor map containing information about a surface condition of one or more floor areas in the environment. The surface condition may include one or more of: a floor type; a floor surface at a specific location in the environment; a platform surface of a docking station for a mobile cleaning robot; or a floor surface having a specific size or shape.

[0032] In Example 26, the subject matter of any one or more of Examples 24-25 optionally includes extracting the portion of the received robot data based on a specific stage of the cleaning task, the specific stage of the cleaning task comprising at least one of: a docking stage, in which the cleaning robot is moved back to a docking station; or an undocking stage, in which the cleaning robot is moved away from the docking station.

[0033] In Example 27, the subject matter of any one or more of Examples 24-26 optionally includes using the determined robot parameters to generate an estimate of remaining useful life (ERL) of the cleaning member.

[0034] In Example 28, the subject matter of Example 27 optionally includes estimating state variables of the cleaning component using (1) a mathematical model of the cleaning head components representing the dynamics of the cleaning head, and (2) a data portion corresponding to a floor area having a surface condition; and generating an ERL for the cleaning component using the estimated state variables.

[0035] In Example 29, the subject matter of Example 28 optionally includes a state variable comprising a disturbance torque associated with debris accumulation in the cleaning member or wear of the cleaning member. This example may also include generating a mathematical model comprising a state-space model representing a relationship between (1) a voltage supplied to a motor to drive the cleaning member and (2) a motor current generated when the mobile cleaning robot operates under one or more surface conditions.

[0036] In Example 30, the subject matter of any one or more of Examples 24-29 optionally includes robot parameters including energy generated by the motor for driving the cleaning member across a floor area having a surface condition. This example may also include: generating trends of robot parameters including a plurality of cleaning tasks, the plurality of cleaning tasks respectively including the mobile cleaning robot traversing the same floor area; during a first monitoring period, determining a level of debris accumulation based on an increasing trend of motor energy; and during a second monitoring period longer than the first monitoring period, determining a level of wear based on a decreasing trend of motor energy.

[0037] In Example 31, the subject matter of Example 30 optionally includes: detecting or receiving an indication that maintenance is being performed on a cleaning head; determining a debris accumulation level based on an increasing trend in motor energy during a first monitoring period between two consecutive maintenance services of the cleaning head; and determining a wear level based on a decreasing trend in motor energy over multiple cleaning tasks, each cleaning task occurring at a specific time relative to the detected maintenance indication for the cleaning head.

[0038] In Example 32, the subject matter of any one or more of Examples 24-31 optionally includes robot parameters, which may include a dynamic response of a motor that drives the cleaning member to rotatably engage the platform surface of the docking station of the mobile cleaning robot. The step of determining the state of the cleaning head can be based on a comparison of the determined dynamic response of the motor with one or more of a first motor response template for a worn cleaning head or a second motor response template for a cleaning head with debris accumulation. The first motor response template and the second motor response template can be generated using robot data corresponding to the cleaning member that rotatably engages the platform surface of the docking station, respectively.

[0039] In Example 33, the subject matter of any one or more of Examples 24-35 optionally includes: using a first portion of the received robot data corresponding to a first floor area having a first surface condition in the environment to at least determine a first robot parameter, and using a second portion of the received robot data corresponding to a second floor area having a second surface condition in the environment to determine a second robot parameter, the first floor area and the second floor area each being traversed by the mobile cleaning robot; using at least the first and second robot parameters to generate a composite robot parameter; generating a trend of the composite robot parameter over multiple cleaning tasks, each cleaning task including the mobile cleaning robot traversing one or more of the first or second floor areas; and determining a state of the cleaning head based on the generated trend of the composite robot parameter.

[0040] In Example 34, the subject matter of Example 33 optionally includes generating a weighted combination of at least the first robot parameter and the second robot parameter weighted by respective weight factors.

[0041] In Example 35, the subject matter of any one or more of Examples 24-34 optionally includes: generating at least a first estimate of the remaining useful life (ERL) of the cleaning component using first robot parameters, and generating a second ERL for the cleaning component using second robot parameters; and generating an aggregate ERL using at least the first and second ERLs weighted by respective weight factors.

[0042] Example 36 is an apparatus for evaluating the health of a cleaning head assembly in a mobile cleaning robot. The apparatus includes: a communication circuit configured to communicatively couple to the mobile robot to receive robot data generated by the mobile cleaning robot traversing an environment; a memory circuit configured to store a floor map containing information about surface conditions, the surface conditions including a floor type of one or more floor areas in the environment; a processor circuit configured to: extract a portion of the received robot data corresponding to a floor area traversed by the mobile cleaning robot using the floor map, the floor area having a specific floor type; determine robot parameters using the extracted data portion; and determine a state of the cleaning head based on the determined robot parameters, the state of the cleaning head indicating at least one of a wear level or a debris accumulation level of a cleaning member of the cleaning head assembly; and a user interface configured to notify a user of the determined state of the cleaning head.

[0043] In Example 37, the subject matter of Example 36 can optionally include a processor circuit further configured to generate an estimate of a remaining useful life (ERL) of the cleaning member using the determined robot parameters.

[0044] In Example 38, the subject matter of any one or more of Examples 36-37 optionally includes robot parameters comprising energy generated by the motor for driving the cleaning member across a floor area having a specific floor type, and wherein the processor circuit is configured to: generate a trend of motor energy comprising a plurality of cleaning tasks, wherein the plurality of cleaning tasks respectively comprise the mobile cleaning robot traversing the same floor area; determine a debris accumulation level based on an increasing trend of the motor energy during a first monitoring period; and determine a wear level based on a decreasing trend of the motor energy during a second monitoring period that is longer than the first monitoring period.

[0045] In Example 39, the subject matter of any one or more of Examples 36-38 optionally includes robot parameters including a dynamic response of a motor that drives the cleaning member to rotatably engage a platform surface of a docking station of the mobile cleaning robot; wherein the processor circuit is configured to determine the state of the cleaning head based on a comparison of the determined dynamic response of the motor with one or more of a first motor response template for a worn cleaning head or a second motor response template for a debris accumulated cleaning head. The first and second motor response templates can be generated using robot data corresponding to the cleaning member that rotatably engages the platform surface of the docking station, respectively.

[0046] In Example 40, the subject matter of any one or more of Examples 36-39 optionally includes a processor circuit that can be configured to: determine at least a first robot parameter using a first portion of the received robot data corresponding to a first floor area having a first floor type, and determine a second robot parameter using a second portion of the received robot data corresponding to a second floor area having a second floor type, the first and second floor areas each being traversed by a mobile cleaning robot; generate a composite robot parameter using at least the first and second robot parameters weighted by corresponding weight factors; generate a trend of the composite robot parameter over multiple cleaning tasks, each cleaning task including the mobile cleaning robot traversing one or more of the first or second floor areas; and determine a state of the cleaning head based on the generated trend of the composite robot parameter.

[0047] This summary is an overview of some of the teachings of the present application and is not intended as an exclusive or exhaustive treatment of the present subject matter. More details on the present subject matter can be found in the detailed description and the appended claims. Other aspects of the present disclosure will be apparent to those skilled in the art upon reading and understanding the following detailed description and upon viewing the accompanying drawings, each of which should not be construed as limiting. The scope of the present disclosure is defined by the appended claims and their legal equivalents. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] Various embodiments are shown by way of example in the figures of the accompanying drawings. Such embodiments are illustrative and are not intended to be exhaustive or exclusive embodiments of the subject matter.

[0049] Figure 1 , 2A and 2B are a side cutaway view, a bottom perspective view, and a top perspective view of the mobile robot.

[0050] Figure 3 is a diagram illustrating an example of a control architecture for operating a mobile cleaning robot.

[0051] Figure 4A is a diagram illustrating an example of a communication network in which a mobile cleaning robot performs operations and data transmission.

[0052] Figure 4B is a diagram illustrating an exemplary process of exchanging information between a mobile robot and other devices in a communication network.

[0053] Figure 5 is a diagram illustrating an example of a mobile robot predictive maintenance (PdM) system.

[0054] Figure 6is a diagram showing the docking and undocking of a mobile robot, during which robot data is acquired and used to evaluate cleaning head status.

[0055] Figure 7A-7B is a diagram illustrating an exemplary method of determining a cleaning head status based on trends in robot parameters.

[0056] Figure 8 is a diagram illustrating an exemplary method of detecting a maintenance action performed on a cleaning head of a mobile robot.

[0057] Figures 9A-9C An exemplary method of determining a cleaning head status based on a dynamic response of a cleaning head motor is shown.

[0058] Fig.10 is a graph showing an example of a linear regression model for estimating the remaining useful life of a cleaning member of a cleaning head.

[0059] Figures 11A-11B is a diagram illustrating an exemplary user interface on a smart phone configured to display information regarding the status of a cleaning head.

[0060] Fig.12 is a diagram illustrating an example of a mobile robotic PdM system configured to use a mathematical model-based aesthetic sensor to determine a cleaning head state.

[0061] Fig.13 is a diagram illustrating an exemplary mobile robotic PdM system configured to determine a cleaning head state based on multi-estimator fusion.

[0062] FIG. 14A to FIG. 14B is a diagram showing the fusion of robot parameters determined by multiple estimators respectively associated with different areas in the environment.

[0063] Fig.15 is a flow chart illustrating an example of a method of evaluating the health of a cleaning head in a mobile cleaning robot.

[0064] Fig.16 is a flow chart illustrating an example of a method for evaluating the health status of a cleaning head based on multi-estimator fusion.

[0065] Fig.17 is a block diagram illustrating an example machine upon which any one or more of the techniques (eg, methodologies) discussed herein may be performed. DETAILED DESCRIPTION

[0066] After repeated use, a mobile cleaning robot may accumulate debris in its cleaning head, such as filaments (e.g., hair, string, string, carpet fibers) tightly wrapped around a rotating brush or roller. The cleaning head may wear out over time. Routine maintenance is essential for effective cleaning, healthy operating condition, and extended service life of the mobile robot. Traditionally, robot maintenance (e.g., cleaning debris, repairing or replacing the cleaning head) is usually performed on a regular basis. This is called planned maintenance or preventive maintenance, which is characterized by routine inspections performed regularly or at set times. For example, when a certain amount of operating time has passed since a reference time (e.g., the time since the last maintenance), an alarm can be triggered to remind the user to clean the cleaning brush or check the wear state of the cleaning brush. Some mobile robots perform planned maintenance based on an odometer or the distance traveled by the mobile robot, where a maintenance alarm is triggered when the mobile robot travels a predetermined distance. After performing maintenance (e.g., cleaning the brush), the user can manually reset the corresponding timer or odometer.

[0067] Planned maintenance (whether in terms of time elapsed or distance traveled) is essentially based on a heuristic approach that assumes that debris accumulates uniformly at a fixed rate across all robots and all environments. However, in reality, debris accumulation often varies between individual robots. Mobile robots rarely maintain a fixed debris accumulation rate due to different ground conditions in the robot's environment, the amount and distribution of debris, changes in cleaning tasks, or cleaning frequency or schedules. In addition, for many traditional mobile robots, the planned maintenance schedule (e.g., the threshold time or threshold distance for triggering a maintenance alarm) is predetermined based on an overall aggregate estimate of the degradation process of the cleaning head (e.g., debris accumulation, or normal wear). This aggregate-based estimate may differ from the actual detection or inference of the cleaning head status of a single mobile robot, and may erroneously or untimely trigger an alarm on the debris or wear status of the cleaning head. For example, when the cleaning head is not dirty or not worn enough to require immediate attention, planned maintenance may be unnecessary or premature. On the other hand, when the cleaning head becomes dirty or wears out long before the next scheduled maintenance, planned maintenance may be overdue. In addition, planned maintenance is likely to miss unexpected damage to the cleaning head before the next scheduled maintenance.For the reasons listed above, planned maintenance may, in at least some cases, result in poor cleaning performance, damaged parts, and negative user satisfaction.

[0068] This document discusses a predictive maintenance (PdM) paradigm that predicts the status of a cleaning head in a mobile cleaning robot, including personalized estimates of debris accumulation or wear levels of the cleaning head or its cleaning components. PdM, also known as condition-based maintenance, is maintenance that monitors equipment performance and condition during normal operation to predict the occurrence of specific types of events, such as malfunction or failure of the equipment. Unlike preventive maintenance, PdM relies on the actual condition of the equipment, rather than average or expected life statistics (e.g., based on aggregated debris accumulation cycle estimates or the expected life of the cleaning head) to predict when maintenance will be needed.

[0069] When estimating the wear and debris accumulation state of a cleaning head in a mobile cleaning robot, data representing wear or debris accumulation collected from the mobile robot (e.g., by sensors configured to sense mechanical or electrical parameters) may be confounded by environmental conditions. For example, the type of floor traversed by the robot can control the characteristics of the robot data. Dedicated sensors can be used to add additional sensing capabilities to automatically check the operating state of the cleaning head, such as by visual inspection, torque or force sensing, etc. However, these additional components add cost and complexity to the integrated system. Alternatively, sensors or derived signals that have been used in other robot operations (e.g., navigation, cleaning, and motion control) and have been incorporated into the mobile robot can be reused and reused to evaluate the accumulation and wear state of cleaning head debris. For example, the current measured from the motor driving the cleaning head represents the load on the cleaning head. The load may include a first component due to debris accumulation (e.g., hair), and a main second component due to the interaction between the cleaning member (e.g., brush) and the floor. The measurement of the motor current depends primarily on the surface condition of the floor to be cleaned, such as the type of floor (e.g., hardwood, tile, or carpet). The present inventors have recognized challenges in predictive maintenance of mobile cleaning robots, and in particular, an unmet need for improved methods of estimating wear and debris accumulation levels under different floor conditions.

[0070] This document discusses predictive maintenance (PdM) of a mobile cleaning robot. A cleaning head assembly includes one or more cleaning members driven by one or more electric motors that rotatably engage a floor surface to agitate and extract debris. An exemplary system includes: a data receiver for receiving robot data generated by a mobile cleaning robot traversing an environment; and a controller that estimates debris accumulation and wear levels of the cleaning members. In order to eliminate the effects of floor interactions and the effects of the debris or wear state of the cleaning head on the measured robot data, the controller can use a portion of the received robot data corresponding to a specific floor area traversed by the mobile robot to determine robot parameters. The floor area has a specific surface condition, such as a specific floor type, a specific spatial location in the environment, or a specific area of ​​a specific size or dimension, etc. In such a controlled (i.e., substantially fixed) floor condition, the controller can determine a cleaning head state indicating a wear level or a debris accumulation level based on the determined robot parameters. The system can include a user interface to prompt a user to perform maintenance or replacement of the cleaning head based on the determined debris or wear state.

[0071] The PdM of a mobile cleaning robot discussed in this document has several advantages over conventional planned or preventive maintenance. First, monitoring the actual operating condition of a cleaning head can reduce the number of malfunctions or failures of a mobile robot, reduce maintenance downtime, and reduce maintenance costs. Second, debris and wear levels are estimated using algorithms based on existing sensors that are already used for other robotic operations, such as robot navigation and cleaning control. Avoiding the use of dedicated sensors for wear and debris state detection can reduce the complexity of the integrated robotic system and reduce overall cost. Third, the mobile robot PdM paradigm in this document also includes methods for eliminating the effects of floor interactions and the effects of debris and wear of the cleaning head on measured robotic data. The inventors have recognized that spatial information of the floor and the surface condition of the floor (e.g., floor type) can provide a means of controlling floor type interactions between a cleaning head and the floor surface. Whereas robot data (e.g., instantaneous measurements of motor responses (e.g., their current draw, energy consumption, frequency domain transforms, etc.)) are primarily interactions with the floor surface, and tracking these robot data in terms of floor position and floor condition, and then trending these observations over time (e.g., using current measured robot data and historical robot data), can provide a means for isolating components due to debris and wear from the measured motor signals. For example, assuming that the type of flooring in a house does not change frequently, trending robot data acquired over the course of multiple cleaning tasks can effectively control for data variations due to floor interactions and other effects that are expected to occur due to debris accumulation and wear. Once the effects of the spatial position of the floor and the floor condition are isolated and removed from the observations, more reliable and accurate inferences about the state of the cleaning head, including the level of wear or debris accumulation, can be drawn from the robot data and subsequently used to communicate maintenance needs to the robot owner. Thus, utilizing systems, devices, and methods for evaluating the state of a robotic cleaning head as discussed herein, more efficient maintenance and improved operation of a mobile robot can be achieved.

[0072] In the following, reference will be made to Figure 1-3 A mobile robot and its working environment are briefly discussed. A detailed description of systems, devices and methods for overlay path planning according to various embodiments described herein is discussed with reference to FIGS. 4-15.

[0073] Autonomous Mobile Robot Example

[0074] Figure 1 and Figure 2A-2B Various views of an example of a mobile floor cleaning robot 100 are depicted. Figure 1 As the robot 100 traverses the floor surface 10, the robot 100 collects debris 105 from the floor surface 10. Figure 2A, the robot 100 includes a robot housing infrastructure 108. The housing infrastructure 108 can define a structural periphery of the robot 100. In some examples, the housing infrastructure 108 includes a chassis, a cover, a base plate, and a bumper assembly. The robot 100 is a household robot having a small profile so that the robot 100 can fit under furniture in a house. For example, the height H1 of the robot 100 relative to the floor surface (e.g., Figure 1 The robot 100 is also compact. The total length L1 ( Figure 1 shown) and the total width W1 ( Figure 2A The total width W1 may correspond to the width of the housing infrastructure 108 of the robot 100 .

[0075] The robot 100 includes a drive system 110 having one or more drive wheels. The drive system 110 further includes one or more electric motors including an electric drive portion that forms part of the circuit 106. The housing infrastructure 108 supports the circuit 106 within the robot 100, including at least a controller circuit 109.

[0076] The drive system 110 is operable to propel the robot 100 across the floor surface 10. The robot 100 may be propelled in a forward drive direction F or a rearward drive direction R. The robot 100 may also be propelled so that the robot 100 turns in place or turns while moving in the forward drive direction F or the rearward drive direction R. Figure 2A , the robot 100 includes a drive wheel 112 extending through a bottom 113 of the housing infrastructure 108. The drive wheel 112 is rotated by a motor 114 to cause the robot 100 to move along the floor surface 10. The robot 100 also includes a passive caster 115 that extends through the bottom 113 of the housing infrastructure 108. The caster 115 is not powered. The drive wheel 112 and the caster 115 work together to support the housing infrastructure 108 above the floor surface 10. For example, the caster 115 is disposed along a rear portion 121 of the housing infrastructure 108, and the drive wheel 112 is disposed in front of the caster 115.

[0077] Reference Figure 2B The robot 100 includes a substantially rectangular front portion 122 and a substantially semicircular rear portion 121. The front portion 122 includes side surfaces 150, 152, a front surface 154, and corner surfaces 156, 158. The corner surfaces 156, 158 of the front portion 122 connect the side surfaces 150, 152 to the front surface 154.

[0078] exist Figure 1 and2A In the example shown in FIG. 2B , the robot 100 is an autonomous mobile floor cleaning robot that includes a cleaning head assembly 116 ( Figure 2A For example, the robot 100 is a vacuum cleaning robot, wherein the cleaning head assembly 116 is operable to ingest debris 105 from the floor surface 10 ( Figure 1 10) to clean the floor surface 10. The cleaning head assembly 116 includes a cleaning inlet 117 through which the robot 100 collects debris. The cleaning inlet 117 is located in front of the center (e.g., center 162) of the robot 100 and along the front 122 of the robot 100 between the side surfaces 150, 152 of the front 122.

[0079] The cleaning head assembly 116 includes one or more rotatable members, for example, a rotatable member 118 driven by a roller motor 120. The rotatable member 118 extends horizontally across the front 122 of the robot 100. The rotatable member 118 is positioned along the front 122 of the housing infrastructure 108 and extends along 75% to 95% of the width of the front 122 of the housing infrastructure 108, for example, the width of the front 122 corresponds to the overall width W1 of the robot 100. Also refer to Figure 1 , the cleaning inlet 117 is located between the rotatable members 118 .

[0080] like Figure 1 As shown, the rotatable members 118 are rollers that rotate relative to each other. For example, the rotatable members 118 include front and rear rollers that are mounted parallel to the floor surface and are spaced apart from each other by a small elongated gap. The rotatable members 118 can rotate about parallel horizontal axes 146, 148 (at Figure 2A ) rotates to agitate the debris 105 on the floor surface 10 and direct the debris 105 toward the cleaning inlet 117 into the cleaning inlet 117 and into the suction path 145 in the robot 100 (as shown in FIG. Figure 1 Refer again to Figure 2A , the rotatable member 118 can be positioned completely within the front portion 122 of the robot 100. The rotatable member 118 includes an elastomeric housing that, when the rotatable member 118 rotates relative to the housing infrastructure 108, contacts the debris 105 on the floor surface 10 to guide the debris 105 through the cleaning inlet 117 between the rotatable members 118 and into the interior of the robot 100, such as into the debris bin 124 (e.g., Figure 1 ). The rotatable member 118 further contacts the floor surface 10 to agitate the debris 105 on the floor surface 10. Figure 2AIn the example shown, the rotatable members 118, such as the front and rear rollers, may each have a pattern of herringbone blades distributed along their cylindrical exteriors, and the blades of at least one roller are in contact with the floor surface along the length of the roller and are subject to continuously applied friction during rotation, which is not present in brushes with flexible bristles.

[0081] Rotatable member 118 can take other suitable configurations. In one example, at least one of the front roller and the rear roller may include bristles and / or elongated flexible fins for agitating the floor surface. In one example, a baffle brush rotatably coupled to the cleaning head assembly housing may include compliant fins that extend radially outward from the core to sweep the floor surface when the roller is driven to rotate. The fins are configured to prevent erroneous filaments from being tightly wound around the core to help subsequent filament removal. The baffle brush includes an axial end protector that is mounted on the core, near the end of the outer core surface, and is configured to prevent the winding filaments from axially crossing over the mounting feature from the outer surface of the core. The baffle brush may include a plurality of floor cleaning bristles extending radially outward from the core.

[0082] The robot 100 also includes a vacuum system 119 that is operable to generate an airflow that enters a debris box 124 through a cleaning inlet 117 between rotatable members 118. The vacuum system 119 includes an impeller and a motor that rotates the impeller to generate an airflow. The vacuum system 119 cooperates with the cleaning head assembly 116 to suck debris 105 from the floor surface 10 into the debris box 124. In some cases, the airflow generated by the vacuum system 119 generates enough force to suck the debris 105 on the floor surface 10 upward through the gaps between the rotatable members 118 into the debris box 124. In some cases, the rotatable members 118 contact the floor surface 10 to agitate the debris 105 on the floor surface 10, thereby allowing the debris 105 to be more easily ingested by the airflow generated by the vacuum system 119.

[0083] The robot 100 also includes a brush 126 (also referred to as a side brush) that rotates about a non-horizontal axis, such as an axis that forms an angle between 75 and 90 degrees with the floor surface 10. The non-horizontal axis forms an angle of 75 to 90 degrees with the longitudinal axis of the rotatable member 118, for example. The robot 100 includes a brush motor 128 operably connected to the side brush 126 to rotate the side brush 126.

[0084] The brush 126 is a side brush that is laterally offset from the front-to-back axis FA of the robot 100 such that the brush 126 extends beyond the periphery of the housing infrastructure 108 of the robot 100. For example, the brush 126 may extend beyond one of the side surfaces 150, 152 of the robot 100 and thereby be able to engage debris on portions of the floor surface 10 that are not normally accessible to the rotatable member 118, such as portions of the floor surface 10 that are exterior to the portion of the floor surface 10 that is directly beneath the robot 10. The brush 126 is also offset forwardly from the lateral axis LA of the robot 100 such that the brush 126 also extends beyond the front surface 154 of the housing infrastructure 108. Figure 2A As shown, the brush 126 extends beyond the side surface 150, the corner surface 156, and the front surface 154 of the housing infrastructure 108. In some embodiments, the brush 126 extends beyond the side surface 150 by a horizontal distance D1 of at least, for example, 0.2 cm, for example, at least 0.25 cm, at least 0.3 cm, at least 0.4 cm, at least 0.5 cm, at least 1 cm, or more. The brush 126 is positioned to contact the floor surface 10 during its rotation so that the brush 126 can easily engage the debris 105 on the floor surface 10.

[0085] The brush 126 may rotate about a non-horizontal axis in a manner that brushes debris on the floor surface 10 into the cleaning path of the cleaning head assembly 116 as the robot 100 moves. For example, in an example where the robot 100 moves in a forward drive direction F, the brush 126 may rotate in a clockwise direction (when viewed from a perspective above the robot 100) such that debris contacted by the brush 126 moves toward the cleaning head assembly and moves toward the portion of the floor surface 10 in front of the cleaning head assembly 116 in the forward drive direction F. As a result, when the robot 100 moves in the forward drive direction F, the cleaning inlet 117 100 of the robot may collect debris swept by the brush 126. In an example where the robot 100 moves in a rearward drive direction R, the brush 126 may rotate in a counterclockwise direction (when viewed from a perspective above the robot 100) such that debris contacted by the brush 126 moves toward the portion of the floor surface behind the cleaning head assembly 116 in the rearward drive direction R. As a result, when the robot 100 moves in the rearward driving direction R, the cleaning inlet 117 of the robot 100 may collect debris swept by the brush 126 .

[0086] In addition to the controller circuit 109, the circuit 106 also includes, for example, a memory storage element 144 and a sensor system having one or more electrical sensors. As described herein, the sensor system can generate a signal indicating the current position of the robot 100 and can generate a signal indicating the position of the robot 100 as the robot 100 travels along the floor surface 10. The controller circuit 109 is configured to execute instructions to perform one or more operations as described herein. The memory storage element 144 is accessible by the controller circuit 109 and is arranged within the housing infrastructure 108. The one or more electrical sensors are configured to detect features in the environment of the robot 100. For example, referring to Figure 2A , the sensor system includes cliff sensors 134 disposed along the bottom 113 of the housing infrastructure 108. Each cliff sensor 134 is an optical sensor that can detect the presence or absence of an object (e.g., floor surface 10) below the optical sensor. The cliff sensor 134 can thus detect obstacles such as drops and cliffs below the portion of the robot 100 where the cliff sensor 134 is disposed, and redirect the robot accordingly. For example, referring to Figure 3 The sensor system and controller circuit 109 are discussed in further detail.

[0087] Reference Figure 2B , the sensor system includes one or more proximity sensors that can detect objects close to the robot 100 along the floor surface 10. For example, the sensor system can include proximity sensors 136a, 136b, 136c, and the proximity sensors 136a, 136b, 136c are arranged close to the front surface 154 of the housing infrastructure 108. Each of the proximity sensors 136a, 136b, 136c includes an optical sensor that faces outward from the front surface 154 of the housing infrastructure 108 and can detect the presence of an object in front of the optical sensor. For example, the detectable objects include obstacles in the environment of the robot 100, such as furniture, walls, people, and other objects.

[0088] The sensor system includes a bumper system that includes a bumper 138 and one or more collision sensors that detect contact between the bumper 138 and obstacles in the environment. The bumper 138 forms a portion of the housing infrastructure 108. For example, the bumper 138 can form side surfaces 150, 152 and a front surface 154. The sensor system may include, for example, collision sensors 139a, 139b. The collision sensors 139a, 139b may include broken beam sensors, capacitive sensors, or other sensors that can detect contact between the robot 100 (e.g., the bumper 138) and an object in the environment. In some embodiments, the collision sensor 139a can be used to detect contact between the bumper 138 along the front-to-back axis FA (at the center of the robot 100) Figure 2A ), and the collision sensor 139b can be used to detect the movement of the bumper 138 along the lateral axis LA (in Figure 2A The proximity sensors 136a, 136b, 136c may detect an object before the robot 100 contacts the object, and the collision sensors 139a, 139b may detect an object contacting the bumper 138, for example, in response to the robot 100 contacting the object.

[0089] The sensor system includes one or more obstacle following sensors. For example, the robot 100 may include an obstacle following sensor 141 along the side surface 150. The obstacle following sensor 141 includes an optical sensor that faces outward from the side surface 150 of the housing infrastructure 108 and can detect the presence or absence of an object adjacent to the side surface 150 of the housing infrastructure 108. The obstacle following sensor 141 can emit a light beam horizontally in a direction perpendicular to the forward driving direction F of the robot 100 and perpendicular to the side surface 150 of the robot 100. For example, the detectable objects include obstacles in the environment of the robot 100, such as furniture, walls, people, and other objects. In some embodiments, the sensor system may include an obstacle following sensor along the side surface 152, and the obstacle following sensor can detect the presence or absence of an object adjacent to the side surface 152. The obstacle following sensor 141 along the side surface 150 is a right obstacle following sensor, and the obstacle following sensor along the side surface 152 is a left obstacle following sensor. One or more obstacle following sensors, including the obstacle following sensor 141, may also be used as obstacle detection sensors, e.g., similar to the proximity sensors described herein. In this regard, the left obstacle following sensor may be used to determine the distance between an object (e.g., an obstacle surface) to the left of the robot 100 and the robot 100, while the right obstacle following sensor may be used to determine the distance between an object (e.g., an obstacle surface) to the right of the robot 100 and the robot 100.

[0090] In some embodiments, at least some of the proximity sensors 136a, 136b, 136c and each of the obstacle following sensors 141 include an optical emitter and an optical detector. The optical emitter emits a light beam outwardly from the robot 100, for example, in a horizontal direction, and the optical detector detects a reflection of the light beam reflected back from an object near the robot 100. The robot 100, for example, using the controller circuit 109, can determine the flight time of the light beam, thereby determining the distance between the optical detector and the object, and thereby determining the distance between the robot 100 and the object.

[0091] In some embodiments, the proximity sensor 136a includes an optical detector 180 and a plurality of optical emitters 182, 184. One of the optical emitters 182, 184 may be positioned to direct a light beam outward and downward, while another of the optical emitters 182, 184 may be positioned to direct a light beam outward and upward. The optical detector 180 may detect reflections of the light beam or scattering from the light beam. In some embodiments, the optical detector 180 is an imaging sensor, a camera, or some other type of detection device for sensing optical signals. In some embodiments, the light beam illuminates a horizontal line along a planar vertical surface in front of the robot 100. In some embodiments, the optical emitters 182, 184 each emit a fan of light beams outward toward the obstacle surface, so that a one-dimensional dot matrix appears on one or more obstacle surfaces. The one-dimensional dot matrix may be located on a horizontally extended line. In some embodiments, the dot matrix may extend over multiple obstacle surfaces, for example, multiple obstacle surfaces adjacent to each other. The optical detector 180 may capture an image representing the dot matrix formed by the optical emitter 182 and the dot matrix formed by the optical emitter 184. Based on the size of the point in the image, the robot 100 can determine the distance of the object on which the point appears relative to the optical detector 180 (e.g., relative to the robot 100). The robot 100 can make this determination for each point, allowing the robot 100 to determine the shape of the object on which the point appears. In addition, if multiple objects are in front of the robot 100, the robot 100 can determine the shape of each object. In some embodiments, the objects can include one or more objects that are laterally offset from a portion of the floor surface 10 directly in front of the robot 100.

[0092] The sensor system also includes an image capture device 140, such as a camera, pointed toward the top 142 of the housing infrastructure 108. The image capture device 140 generates a digital image of the environment of the robot 100 as the robot 100 moves around the floor surface 10. The image capture device 140 is angled in an upward direction, for example, at an angle of 30 to 80 degrees from the floor surface 10 around which the robot 100 navigates. When tilted upward, the camera is able to capture images of the wall surfaces of the environment so that features corresponding to objects on the wall surfaces can be used for positioning.

[0093] When the controller circuit 109 causes the robot 100 to perform a task, the controller circuit 109 operates the motor 114 to drive the drive wheel 112 and propel the robot 100 along the floor surface 10. In addition, the controller circuit 109 operates the roller motor 120 to rotate the rotatable member 118, operates the brush motor 128 to rotate the side brush 126, and operates the motor of the vacuum system 119 to generate airflow. In order for the robot 100 to perform various navigation and cleaning behaviors, the controller circuit 109 executes software stored on the memory storage element 144 to cause the robot 100 to perform by operating the various motors of the robot 100. The controller circuit 109 operates the various motors of the robot 100 to cause the robot 100 to perform behaviors.

[0094] The sensor system may further include sensors for tracking the distance traveled by the robot 100. For example, the sensor system may include encoders associated with the motors 114 for driving the wheels 112, and these encoders may track the distance that the robot 100 has traveled. In some embodiments, the sensor system includes an optical sensor facing downward toward the floor surface. The optical sensor may be an optical mouse sensor. For example, the optical sensor may be positioned to direct light through the bottom surface of the robot 100 toward the floor surface 10. The optical sensor may detect reflections of the light and may detect the distance traveled by the robot 100 based on changes in floor features as the robot 100 travels along the floor surface 10.

[0095] The controller circuit 109 uses data collected by the sensors of the sensor system to control the navigation behavior of the robot 100 during the mission. For example, the controller circuit 109 uses sensor data collected by the obstacle detection sensors (e.g., cliff sensors 134, proximity sensors 136a, 136b, 136c and collision sensors 139a, 139b) of the robot 100 to enable the robot 100 to avoid obstacles or prevent falling from stairs in the environment of the robot 100 during the execution of the mission. In some examples, the controller circuit 109 uses information about the environment (such as a map of the environment) to control the navigation behavior of the robot 100. Through proper navigation, the robot 100 is able to reach a target location or complete a coverage task as efficiently and reliably as possible. According to various embodiments discussed herein, the controller circuit 109 may include a coverage planner configured to identify a coverage plan, such as a path, so that the robot 100 passes through all or a specific portion of the environment at least once while minimizing or reducing the total travel time. In this document, a path refers to a trajectory including a set of linear path segments connected by a number of rotations between the linear path segments. The robot 100 rotates to switch from one linear path segment to another linear path segment. In order to reduce the total travel time of the robot 100, the coverage planner can identify the path of a group of linear path segments connected by several rotations between the linear path segments. The coverage planner can use the environmental division and path planning technology of the various embodiments described in this document to determine the path that reduces the number of rotations compared to the path with at least a portion (e.g., a range of about 80-100 degrees or a range of about 60-120 degrees between two parts of the path) in a substantially orthogonal direction. In some examples, a team of two or more robots can cover the environment together according to their respective paths. The coverage planner can identify the corresponding path, thereby minimizing or reducing the time spent by the slowest robot in the robot team. The example of the coverage planner and the method for identifying the path with reduced number of rotations are discussed below, for example, with reference to Figures 4-15.

[0096] The sensor data may be used by the controller circuit 109 for a simultaneous localization and mapping (SLAM) technique in which the controller circuit 109 extracts features of the environment represented by the sensor data and constructs a map of the floor surface 10 of the environment. The sensor data collected by the image capture device 140 may be used for techniques such as vision-based SLAM (VSLAM), in which the controller circuit 109 extracts visual features corresponding to objects in the environment and uses these visual features to construct a map. As the controller circuit 109 guides the robot 100 around the floor surface 10 during the execution of the task, the controller circuit 109 uses SLAM technology to determine the location of the robot 100 in the map by detecting features represented in the collected sensor data and comparing these features with previously stored features. The map formed by the sensor data may indicate the location of traversable and non-traversable spaces within the environment. For example, the location of obstacles is represented on the map as non-traversable spaces, while the location of open floor spaces is represented on the map as traversable spaces.

[0097] Sensor data collected by any sensor may be stored in the memory storage element 144. In addition, other data generated for the SLAM technology, including map data that forms a map, may be stored in the memory storage element 144. Such data generated during a task may include persistent data generated during a task that may be used in another task. For example, the task may be a first task, and the other task may be a second task that occurs after the first task. In addition to storing software for causing the robot 100 to perform its behavior, the memory storage element 144 also stores sensor data or data generated by the processing of sensor data for access by the controller circuit 109 from one task to another. For example, the map may be a persistent map that may be used and updated by the controller circuit 109 of the robot 100 from one task to another to navigate the robot 100 around the floor surface 10. According to various embodiments discussed in this document, the persistent map may be updated in response to instruction commands received from a user. The controller circuit 109 may modify subsequent or future navigation behaviors of the robot 100 based on the updated persistent map, such as by modifying a planned path or updating an obstacle avoidance strategy. Examples of modifying a planned path are discussed below, for example with reference to Figure 10-12 .

[0098] The persistent data, including the persistent map, enables the robot 100 to effectively clean the floor surface 10. For example, the persistent map enables the controller circuit 109 to guide the robot 100 toward open floor spaces and avoid untraversable spaces. Additionally, for subsequent missions, the controller circuit 109 can use the persistent map to plan the robot 100's navigation in the environment to optimize the path taken during the mission.

[0099] In some embodiments, the robot 100 may include a light indicator system 137 located on the top 142 of the robot 100. The light indicator system 137 may include a light indicator located on the top 142 of the robot 100. Figure 2A 147). The light source may be positioned to direct light to the periphery of the cover 147. The light source is positioned so that any portion of the continuous ring 143 on the top 142 of the robot 100 may be illuminated. The continuous ring 143 is located on a recessed portion of the top 142 of the robot 100 so that the light source may illuminate the surface of the robot 100 when activated.

[0100] Figure 3 is a diagram illustrating an example of a control architecture 300 for operating a mobile cleaning robot. The controller circuit 109 can be communicatively coupled to various subsystems of the robot 100, including a communication system 305, a cleaning system 310, a drive system 110, and a navigation sensor system 320. The controller circuit 109 includes a storage unit 144 that stores data and instructions processed by a processor 324. The processor 324 receives program instructions and feedback data from the storage unit 144, performs logical operations required by the program instructions, and generates command signals for operating the various subsystem components of the robot 100. The input / output unit 326 sends command signals and receives feedback from the various components shown.

[0101] The communication system 305 may include a beacon communication module 306 and a wireless communication module 307. The beacon communication module 306 may be communicatively coupled to the controller circuit 109. In some embodiments, the beacon communication module 306 is operable to send signals to and receive signals from a remote device. For example, the beacon communication module 306 may detect a navigation signal projected from a transmitter of a navigation or virtual wall beacon or a homing signal projected from a transmitter of a docking station. Docking, limiting, homing bases, and homing techniques are discussed in U.S. Patents US7,196,487 and US7,404,000, U.S. Patent Application Publication US20050156562, and U.S. Patent Application Publication US20140100693 (the entire contents of which are incorporated herein by reference). As described in U.S. Patent Publication No. US2014 / 0207282 (the entire contents of which are incorporated herein by reference), the wireless communication system module 307 facilitates communicating information describing the status of the robot 100 with one or more mobile devices (e.g., the mobile device 404 shown in FIG. 4 ) via a suitable wireless network (e.g., a wireless local area network). Further details of the communication system 305 are discussed below, for example, with reference to FIG. 4 .

[0102] The cleaning system 310 may include a roller motor 120, a brush motor 128 driving a side brush 126, and a suction fan motor 316 that powers the vacuum system 119. The cleaning system 310 further includes a plurality of motor sensors 317 that monitor the operation of the roller motor 120, the brush motor 128, and the suction fan motor 316 to facilitate closed-loop control of the motors by the controller circuit 109. In some embodiments, the roller motor 120 is operated by the controller circuit 109 (or a suitable microcontroller) to drive the roller (e.g., rotatable member 118) according to a specific speed setting via a closed-loop pulse width modulation (PWM) technique, wherein feedback signals are received from the motor sensors 317 that monitor signals indicating the rotational speed of the roller motor 120. For example, such motor sensors 317 may be provided in the form of motor current sensors (e.g., shunt resistors, current sensing transformers, and / or Hall effect current sensors).

[0103] The drive system 110 may include a drive wheel motor 114 for operating the drive wheel 112 in response to a drive command or control signal from the controller circuit 109, and a plurality of drive motor sensors 161 to facilitate closed-loop control of the drive wheels (e.g., via a suitable PWM technique as described above). In some embodiments, a microcontroller assigned to the drive system 110 is configured to decrypt drive commands having x, y, and θ components. The controller circuit 109 may issue separate control signals to the drive wheel motors 114. Regardless, the controller circuit 109 may independently control the rotational speed and direction of each drive wheel 112 via the drive wheel motors 114, thereby maneuvering the robot 100 in any direction across the cleaning surface.

[0104] The controller circuit 109 may operate the drive system 110 in response to signals received from the navigation sensor system 320. For example, the controller circuit 109 may operate the drive system 110 to redirect the robot 100 to avoid obstacles and clutter when handling floor surfaces. In another example, if the robot 100 is stuck or entangled during use, the controller circuit 109 may operate the drive system 110 according to one or more escape behaviors. In order to achieve reliable autonomous motion, the navigation sensor system 320 may include several different types of sensors that can be used in conjunction with each other to allow the robot 100 to make intelligent decisions about a particular environment. By way of example and not limitation, the navigation sensor system 320 may include one or more proximity sensors 336 (e.g., proximity sensors 136a-136c), cliff sensors 134, visual sensors 324 (e.g., image capture devices 140), as described above, which are configured to detect features and landmarks in the operating environment and build a virtual map, such as using VSLAM technology.

[0105] The navigation sensor system 320 may also include a bumper sensor 339 (such as bumper sensors 139a and 139b) in response to activation of the bumper 138. The sensor system 320 may include an inertial measurement unit (IMU) 164 that is partially responsive to changes in the position of the robot 100 relative to a vertical axis that is substantially perpendicular to the floor, and senses when the robot 100 pitches on a floor type interface with a height difference, which may be due to a change in the floor type. In some examples, the IMU 164 is a six-axis IMU with a gyroscope sensor that measures the angular velocity of the robot 100 relative to the vertical axis. However, other suitable configurations may also be considered. For example, the IMU 164 may include an accelerometer that is sensitive to the linear acceleration of the robot 100 along the vertical axis. In any case, the output from the IMU 164 is received by the controller circuit 109 and processed to detect discontinuities in the floor surface across which the robot 100 travels. In the context of the present disclosure, the terms "floor discontinuity" and "threshold" refer to any irregularity in the floor surface (e.g., a change in floor type or a change in height at the floor interface) that the robot 100 can traverse but that results in a discrete vertical motion event (e.g., an upward or downward "bump"). Depending on the configuration and location of the IMU 164, the vertical motion event may refer to a portion of the drive system (e.g., one of the drive wheels 112) or the chassis of the robot housing 108. Detection of a floor threshold or floor interface may prompt the controller circuit 109 to anticipate a change in floor type. For example, when the robot 100 moves from a high-pile carpet (soft floor surface) to a tile floor (hard floor surface), the robot 100 may experience a significant downward vertical jolt, while in the opposite case, the robot 100 may experience an upward jolt.

[0106] Although not shown or described in conjunction with the illustrated examples, a variety of other types of sensors may be incorporated into the navigation sensor system 320 (or any other subsystem) without departing from the scope of the present disclosure. Such sensors may be used as obstacle detection units, obstacle detection and avoidance (ODOA) sensors, wheel drop sensors, obstacle following sensors, stall sensor units, drive wheel encoder units, bumper sensors, etc.

[0107] Communication Network Example

[0108] Figure 4A404, a cloud computing system 406, or another autonomous robot 408 independent of the mobile robot 404. Using the communication network 410, the robot 100, the mobile device 404, the robot 408, and the cloud computing system 406 can communicate with each other to send data to each other and receive data from each other. In some embodiments, the robot 100, the robot 408, or both the robot 100 and the robot 408 communicate with the mobile device 404 through the cloud computing system 406. Alternatively or additionally, the robot 100, the robot 408, or both the robot 100 and the robot 408 communicate directly with the mobile device 404. The communication network 410 can employ various types and combinations of wireless networks (e.g., Bluetooth, radio frequency, optical-based, etc.) and network architectures (e.g., mesh networks).

[0109] In some embodiments, the mobile device 404 shown in FIG. 4 is a remote device that can be linked to the cloud computing system 406 and can enable a user to provide input on the mobile device 404. The mobile device 404 may include a user input element, for example, one or more of a touch screen display, a button, a microphone, a mouse, a keyboard, or other devices that respond to the input provided by the user. The mobile device 404 may alternatively or additionally include an immersive media (e.g., virtual reality) with which the user interacts to provide user input. In these cases, the mobile device 404 is, for example, a virtual reality headset or a head-mounted display. The user can provide input corresponding to a command for the mobile robot 404. In this case, the mobile device 404 sends a signal to the cloud computing system 406 so that the cloud computing system 406 sends a command signal to the mobile robot 100. In some embodiments, the mobile device 404 can present an augmented reality image. In some embodiments, the mobile device 404 is a smart phone, a laptop computer, a tablet computing device, or other mobile device.

[0110] According to various embodiments discussed herein, the mobile device 404 may include a user interface configured to display a map of the robot environment. The robot path, such as that identified by the coverage planner of the controller circuit 109, may also be displayed on the map. The interface may receive user instructions to modify the environment map, such as by adding, removing, or otherwise modifying prohibited traversal areas in the environment; adding, deleting, or otherwise modifying repeated traversal areas (e.g., areas that require repeated cleaning) in the environment; limiting the robot's traversal direction or traversal pattern in part of the environment; or increasing or changing the cleaning level, etc.

[0111] In some embodiments, the communication network 410 may include additional nodes. For example, a node of the communication network 410 may include an additional robot. Alternatively or additionally, a node of the communication network 410 may include network-connected devices. In some embodiments, the network-connected devices may generate information about the environment 20. The network-connected devices may include one or more sensors to detect features in the environment 20, such as acoustic sensors, image capture systems, or other sensors that generate signals from which features can be extracted. The network-connected devices may include home cameras, smart sensors, etc.

[0112] In the communication network 410 shown in FIG. 4 and in other embodiments of the communication network 410, the wireless link can utilize various communication schemes, protocols, etc., such as Bluetooth class, Wi-Fi, low Bluetooth energy, also known as BLE, 802.15.4, Worldwide Interoperability for Microwave Access (WiMAX), infrared channels, or satellite bands. In some cases, the wireless link includes any cellular network standard for communication between mobile devices, including but not limited to standards that comply with 1G, 2G, 3G, or 4G. If a network standard is used, the network standard can be, for example, one or more generations of mobile telecommunication standards by meeting specifications or standards (such as specifications maintained by the International Telecommunication Union). If the 3G standard is used, it corresponds to, for example, the International Mobile Telecommunications 2000 (IMT-2000) specification, and the 4G standard can correspond to the International Advanced Mobile Telecommunications (IMT-Advanced) specification. Examples of cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, Advanced LTE, Mobile WiMAX, and Advanced WiMAX. Cellular network standards can use various channel access methods, such as FDMA, TDMA, CDMA, or SDMA.

[0113] Figure 4B 4 is a diagram showing an exemplary process 400 for exchanging information between devices in a communication network 410, the devices including the mobile robot 100, the cloud computing system 406, and the mobile device 404. A cleaning task can be initiated by pressing a button on the mobile robot 100, or can be scheduled for a future time or a future day. The user can select a set of rooms to be cleaned during a cleaning task, or can instruct the robot to clean all rooms. The user can also select a set of cleaning parameters to be used in each room during a cleaning task.

[0114] During a cleaning task, the mobile robot 100 tracks 410 its state, including its location, any operational events that occurred during cleaning, and the time spent cleaning. The mobile robot 100 sends 412 the state data (e.g., one or more of the location data, the operational event data, the time data) to the cloud computing system 406, which calculates 414 a time estimate for the area to be cleaned by a processor 442. For example, the time estimate for cleaning a room may be calculated by averaging the actual cleaning times for the room that have been collected during multiple (e.g., two or more) previous cleaning tasks for the room. The cloud computing system 406 sends 416 the time estimate data to the mobile device 404 along with the robot state data. The mobile device 404 presents 418 the robot state data and the time estimate data on a display via the processor 444. The robot state data and the time estimate data may be presented on the display of the mobile device as any of a number of graphical representations of an editable task timeline and / or mapping interface.

[0115] The user 402 views 420 the robot state data and time estimate data on the display, and can enter 422 new cleaning parameters, or can manipulate the order or identification of the rooms to be cleaned. The user 402 can, for example, delete a room from the cleaning schedule of the mobile robot 100. In other cases, the user 402 can, for example, select an edge cleaning mode or a deep cleaning mode for the room to be cleaned. When the user enters a change in the cleaning parameter or cleaning schedule, the display of the mobile device 404 is updated 424. For example, if the user changes the cleaning parameter from a single-pass cleaning to a double-pass cleaning, the system will update the estimated time to provide an estimate based on the new parameters. In this example of a single-pass cleaning and a double-pass cleaning, the estimated value will be approximately doubled. In another example, if the user removes a room from the cleaning plan, the total time estimate is reduced by approximately the time required to clean the removed room. Based on the input from the user 402, the cloud computing system 406 calculates 426 the time estimate for the area to be cleaned, and then sends 428 (e.g., by wireless transmission, by application protocol, by broadcast wireless transmission) back to the mobile device 404 and displays it. Additionally, data related to the calculated 426 time estimate is sent 446 to a controller 430 of the robot. Based on the input received by the controller 430 of the mobile robot 100 from the user 402, the controller 430 generates 432 a command signal. The command signal commands the mobile robot 100 to perform 434 a behavior, which may be a cleaning behavior. While performing the cleaning behavior, the controller continues to track 410 the robot state, including its location, any operational events that occurred during cleaning, and the cleaning time spent. In some cases, real-time updates regarding the state of the robot may be additionally provided to a mobile device or home electronic system (e.g., an interactive speaker system) via push notifications.

[0116] After performing 434 the action, the controller 430 checks 436 to see if the received command signal includes a command to complete the cleaning task. If the command signal includes a command to complete the cleaning task, the robot is commanded to return to its docking station and, upon return, to send information to enable the cloud computing system 406 to generate 438 a task summary, which is sent to the mobile device 404 and displayed 440 by the mobile device 404. The task summary may include a timeline and / or a map. The timeline may show the rooms cleaned, the time spent cleaning each room, the operational events tracked in each room, etc. The map may show the rooms cleaned, the operational events tracked in each room, the type of cleaning performed in each room (e.g., sweeping or mopping), etc.

[0117] The operations for the process 400 and other processes described herein may be performed in a distributed manner. For example, the cloud computing system 406, the mobile robot 100, and the mobile device 404 may perform one or more operations in cooperation with each other. In some embodiments, an operation described as being performed by one of the cloud computing system 406, the mobile robot 100, and the mobile device 404 is at least partially performed by two or all of the cloud computing system 406, the mobile robot 100, and the mobile device 404.

[0118] Example of a mobile robot predictive maintenance (PdM) system

[0119] Reference below Figure 5-17 Various embodiments of systems, devices, and processes for predictive maintenance of a motor cleaning robot such as a mobile robot 100 are discussed. Although some components, modules, and operations may be described as being implemented in the robot 100 and performed by the robot 100, by a user, by a computing device, or by other actors, in some embodiments, these operations may be performed by other actors other than those described. For example, in some embodiments, operations performed by the robot 100 may be performed by a cloud computing system 406 or another computing device (or multiple devices). In other examples, operations performed by a user may be performed by a computing device. In some embodiments, the cloud computing system 406 does not perform any operations. Instead, other computing devices perform operations described as being performed by the cloud computing system 406, and these computing devices may communicate directly (or indirectly) with each other (and with the robot 100). In some embodiments, in addition to the operations described as being performed by the robot 100, the robot 100 may also perform operations described as being performed by the cloud computing system 406 or the mobile device 404. Other variations are possible. Furthermore, although the methods, processes, and operations described herein are described as including certain operations or sub-operations, in other implementations, one or more of these operations or sub-operations may be omitted, or additional operations or sub-operations may be added.

[0120] Figure 5 is a diagram illustrating an example of a mobile robot PdM system 500. System 500 may be configured to assess the health of a cleaning head assembly in a mobile cleaning robot, such as cleaning head assembly 116 of mobile robot 100. By way of example and not limitation, the health of the cleaning head may include information regarding the level of debris accumulation, level of wear, and remaining useful life of the cleaning head assembly or its cleaning components.

[0121] The system 500 may include one or more of a data receiver 510, a processor circuit 520, a memory circuit 530, and a user interface 540. At least a portion of the system 500 may be implemented in one or more of the mobile robot 100, the mobile device 404, the autonomous robot 408, or the cloud computing system 406. For example, in one embodiment, some or all of the system 500 may be implemented in and executed by the mobile robot 100, wherein reference is made to Figure 3 , the data receiver 510 can be part of the input / output unit 326 coupled to the sensor system 320 to receive robot data, the processor circuit 520 can be part of the processor 324, and the memory circuit 530 can be part of the storage unit 144 in the mobile robot 100. In another embodiment, some or all of the system 500 can be implemented in and executed by the mobile device 404, such as a smart phone that is communicatively coupled to the mobile robot 100, where the data receiver 510 can be configured to receive robot data from the mobile robot 100 via a communication link. The memory circuit 530 in the smart phone can store floor maps and information about floor surface conditions. The processor circuit 520 can execute an application ("app") on the smart phone to determine the cleaning head status, and / or estimate the remaining useful life of the cleaning head, as well as other predictive maintenance tasks.

[0122] The data receiver 510 can receive robot data generated by the mobile cleaning robot during its active operation (e.g., when traversing an environment (e.g., a house) and cleaning a floor area in the environment). The data receiver 510 can be connected to one or more sensors, such as a motor sensor 317, which is configured to sense and obtain robot data indicating the operating state of the cleaning head assembly. Examples of robot data can include measuring the voltage provided to the motor (e.g., the roller motor 120 driving the rotatable member 118 or the brush motor 128 driving the drive side brush 126) of the cleaning member driving the cleaning head assembly, the motor current such as the current sensed by the motor current sensor (e.g., a shunt resistor, a current sensing transformer and / or a Hall effect current sensor), the angular velocity of the cleaning member, the motor speed or the torque generated at the cleaning member. In one example, the speed can be measured using an encoder sensor located at the rotor of the motor or at a position along the transmission system between the motor and the cleaning member. Examples of encoder technology can include optical, resistive, capacitive or inductive measurements. In one example, the torque load may be measured using one or more strain gauges (eg, mounted on the motor or at locations along the drive train between the drive motors), or estimated using the current drawn by the motor.

[0123] In some examples, the measurement of sensor data (e.g., motor current or angular velocity) can be converted into one or more frequency domain metrics, such as dominant frequency, resonance, or spectral density, etc. For example, the cleaning member (e.g., rotatable member 118) is typically a cylindrical element constructed of a flexible material and therefore exhibits mechanical resonance when excited. Changes in these resonances or other frequency domain characteristics can be used to estimate the level of debris accumulation or wear level.

[0124] The processor circuit 520 can perform PdM tasks, including determining the status of the cleaning head, and deciding whether maintenance or replacement of the cleaning head is required. The processor circuit 520 can be implemented as part of a microprocessor circuit, which can be a dedicated processor, such as a digital signal processor, an application specific integrated circuit (ASIC), a microprocessor, or other types of processors for processing information including physical activity information. Alternatively, the microprocessor circuit can be a processor that can receive and execute a set of instructions for performing the functions, methods, or techniques described herein.

[0125] The processor circuit 520 may include a circuit group including one or more other circuits or subcircuits, such as a spatial filter 522, a robot parameter generator 524, a cleaning head state detector 526, and a remaining life estimator 528. These circuits or modules may perform the functions, methods, or techniques described herein, alone or in combination. In an example, the hardware of the circuit group may be designed to perform a specific operation (e.g., hardwired) invariably. In an example, the hardware of the circuit group may include variably connected physical components (e.g., execution units, transistors, simple circuits, etc.), including physically modified (e.g., magnetically, electrically, particles of constant mass may be removably placed, etc.) computer-readable media to encode instructions for specific operations. When the physical components are connected, the basic electrical properties of the hardware composition may change, such as changing from an insulator to a conductor, and vice versa. Instructions enable embedded hardware (e.g., execution units or loading mechanisms) to create components of the circuit group in hardware through variable connections to perform a part of a specific operation when operating. Therefore, when the device is working, the computer-readable medium is communicatively connected to other components of the circuit group component. In one example, any physical component may be used in more than one component of more than one circuit group. For example, in operation, an execution unit may be used in a first circuit of a first circuit group at one point in time, and may be reused by a second circuit in the first circuit group or a third circuit in the second circuit group at a different time.

[0126] The spatial filter 522 can process the received robot data and extract portions of the robot data corresponding to the floor area traversed by the mobile robot. The floor area can have a specific floor surface condition. In this document, "surface condition" can include, among other things, spatial, geometric, and textural information of the floor area. Examples of surface conditions of a floor area can include a specific spatial location (e.g., a specific room or area, such as a kitchen, or a sub-area in a room, such as one or more M by N areas in a gridded map of a room or portion of an environment); a floor area of ​​a specific size, shape, or dimension; or a floor area of ​​a specific surface type (e.g., hardwood or carpet).

[0127] The memory circuit 530 can store a floor map including information about floor surface conditions 532 for different floor areas in the environment. The floor areas and corresponding floor surface conditions can be marked or otherwise identified on the floor map. A user can specify floor areas with known surface conditions that are repeatedly traversed and cleaned by a mobile robot on the floor map, or specify multiple floor areas with the same surface conditions (e.g., the same surface type) for the spatial filter 522. For example, a user can select a floor area with a hardwood surface in a hallway on the floor map. Based on the floor map and the location of the specified floor area, the spatial filter 522 can extract the data portion corresponding to the mobile robot that travels across and cleans the specified floor area.

[0128] In some examples, a user may designate the platform surface of the docking station as an area of ​​interest. Robot data may be acquired while the mobile robot is operating in a commanded "brush feature mode" in which the mobile robot performs a "cleaning" operation (i.e., the cleaning member rotatably engages the platform surface of the docking station) while the mobile cleaning robot remains stationary on the docking station.

[0129] As described above, robot data, such as brush motor voltage, current and rotational speed of cleaning members, are determined by the interaction of the cleaning members with the floor surface. By analyzing the portion of the robot data corresponding to a specific floor area with a fixed and known surface condition (or "controlled" surface condition), components due to debris and wear can be isolated from the robot data. Therefore, spatial filtering performed by the spatial filter 522 provides a means for eliminating the effects of floor interaction and the effects of debris accumulation and wear of the cleaning head on the measured robot data. Hard surfaces (e.g., hardwood floors, tiles, or the platform surface of a docking station) are smoother and harder than carpet surfaces, and are less likely to attract and retain errant filaments, such as hair and carpet fibers. In this way, when operating on a hard surface, the friction experienced by the cleaning member on the hard surface is generally less than the friction experienced on the carpet, and the effect of the cleaning head-floor interaction on the measured robot data is generally less significant and more predictable. In some examples, the spatial filter 522 can extract a portion of the robot data corresponding to a floor area that has only a hard floor surface and is repeatedly traversed by the mobile robot.

[0130] In addition to or in lieu of surface conditions such as spatial, geometric, and texture information of floor areas, spatial filter 522 can extract robot data portions based on the pattern of a mobile cleaning robot traversing a specific floor area. Examples of traversal patterns can include coverage paths (e.g., the position and direction of entering and leaving a floor area, and the orientation of a path within a floor area), traversal patterns (e.g., the order or arrangement of paths), or traversal speeds. In one example, a user can specify a floor area that is repeatedly traversed and cleaned by a mobile robot on a floor map, as well as a specified coverage path or traversal pattern. Spatial filter 522 can extract data portions corresponding to a mobile robot that travels across and cleans a specified floor area according to a specified traversal path or pattern. In another example, a user can specify a floor area of ​​a mobile robot and a traversal speed requirement. For example, spatial filter 522 can extract data portions corresponding to a mobile robot that cleans a specified floor area while traveling at full speed.

[0131] In some examples, the spatial filter 522 can alternatively extract portions of the robot data corresponding to a particular phase of a cleaning task. A cleaning task typically begins with an undocking session, during which the cleaning robot departs from a docking station, and then proceeds to a cleaning phase, including a series of floor cleanings of multiple areas in the environment, and then ends with a docking phase, during which the cleaning robot returns to the docking station. The docking station serves as a marker for the mobile cleaning robot to begin and end a cleaning session. Now referring to Figure 6 , before the cleaning task, the cleaning robot 100 remains on the platform 612 of the docking station 610. The cleaning task begins with an undocking phase, at which time the mobile cleaning robot 100 leaves the docking station 610 and travels backward along the undocking path 620A in the reverse direction 632. During docking, the mobile robot 100 can actively clean the floor surface of the undocking path 620A. When the mobile robot 100 retreats a certain distance, the undocking phase ends. Then, the mobile robot 100 rotates a specific angle in the direction 640, switches from a forward-facing direction to a backward-facing direction relative to the docking station 610, and then drives forward to continue performing the cleaning task.

[0132] During the docking phase, the mobile robot 100 travels along the docking path 620B in a forward direction 634 while actively cleaning the floor surface of the docking path 620B. When approaching the docking station 610, the mobile robot 100 rotates from a forward facing direction to a rearward facing direction relative to the docking station 610 and returns to the platform 612 of the docking station 610 to complete the cleaning task.

[0133] The undocking path 620A and the docking path 620B can be straight paths with determined floor conditions, respectively. The undocking and docking operations can be repeated on different cleaning tasks, so that the mobile robot 100 covers substantially the same undocking path 620A with a fixed and known floor surface condition during undocking, and similarly covers substantially the same docking path 620B with a fixed and known floor surface condition during docking. In some examples, the undocking path 620A and the docking path 620B can be the same path. When the mobile robot 100 traverses the undocking path 620A and cleans its floor surface, the spatial filter 522 can identify and extract a first portion of the robot data corresponding to the undocking phase. Additionally or alternatively, when the mobile robot 100 traverses the docking path 620B and cleans its floor surface, the spatial filter 522 can identify and extract a second portion of the robot data corresponding to the docking phase. Since the docking and undocking paths are deterministic floor areas with known and substantially fixed floor surface conditions, spatial filtering based on robot data during the docking or undocking phase can effectively control floor conditions for different cleaning tasks even in the absence of a floor map. This may be advantageous due to its simplicity compared to spatial filtering that requires a floor map to identify floor areas with controlled (i.e., substantially fixed) surface conditions in a cleaning task. This may also be beneficial for non-mapped mobile robots that lack the ability to create or store floor maps.

[0134] In some examples, the spatial filter 522 may additionally or alternatively identify and extract a third portion of the robot data corresponding to a specified time period regarding docking or undocking, such as T1 seconds immediately after an undocking phase, or T2 seconds immediately before a docking phase. Although cleaning phases are typically associated with variable (or task-specific) paths and variable floor areas with variable floor surface conditions, during certain portions of a cleaning phase (e.g., temporally proximate to docking and undocking phases), the mobile robot is more likely to cover substantially the same floor area with the same floor area conditions and, therefore, may be used for spatial filtering of the robot data.

[0135] Reference again Figure 5, the robot parameter generator 524 can use the portion of the received robot data corresponding to the floor area having a specific surface condition to determine the robot parameters. In one example, the robot parameters may include the power (P) consumed by the cleaning head motor that drives the cleaning head to rotatably engage the floor surface of the floor area, agitate and extract debris, such as the roller motor 120 that drives the rotatable member 118 or the brush motor 128 that drives the side brush 126. In addition to the first power component (P1) corresponding to floor interaction and cleaning, the power consumption P may also include a second power component P2, also known as interference power, which is used to overcome the friction or tension generated by the debris accumulated in the cleaning head (e.g., errant filaments wrapped around the roller or rotating brush). The interference power P2 can be related to the level of debris accumulation. In addition, wear or damage to the cleaning head, such as bristles or wings on the rotatable member 118 used to agitate the floor surface, can also affect the motor power. For example, a worn or damaged cleaning member having flat wings or soft, blunt bristles encounters less friction during floor engagement than a cleaning member having fully ridged wings or thick, resilient bristles, and can therefore be driven more easily by the motor with less power. Therefore, the motor power P or its component (e.g., interference power P2) can be used to determine the degree of wear of the cleaning member of the cleaning head assembly.

[0136] The motor power can be calculated using electrical parameter measurements of the motor driving the cleaning member. For example, the motor power can be calculated based on one or more of the motor current, the battery voltage, and the motor speed. In some examples, the roller motor 120 or the brush motor 128 can drive the corresponding cleaning member according to a specific speed setting via a closed-loop pulse width modulation (PWM) technique, and the motor power P can be calculated based on the measured voltage provided to the roller motor 120 or the brush motor 128, the measured current generated at each motor, and the PWM control signal characteristics (e.g., switching frequency or duty cycle) fed to each motor. The commonly assigned U.S. Patent No. 9,993,129, entitled "MOBILE FLOOR-CLEANING ROBOTWITH FLOOR-TYPE DETECTION," describes a technique for determining motor power using motor parameters, the description of which is incorporated herein by reference in its entirety.

[0137] In some examples, the robot parameter generator 524 can determine the energy (E) consumed by the cleaning head motor to traverse and clean all or part of a floor area having a specific surface condition. The motor energy (E) can be calculated as an integer of the power (P) that the mobile robot can traverse to clean the floor area over time. Similar to the motor power (P) including P1 and P2 components, the motor energy (E) can include a first energy component (E1) corresponding to the interaction of the cleaning member with the floor surface and a second interference energy component (E2) to overcome the friction caused by accumulated debris in the cleaning head during cleaning.

[0138] Motor power and motor energy as described above are non-limiting examples of robot parameters that can be used to determine the state of the cleaning head. In various examples, the robot parameter generator 524 can generate other robot parameters that represent floor-cleaning head interactions (e.g., torque generated at the cleaning member), statistical features of spatially filtered robot data (e.g., average motor current during traversal of a floor area), or frequency domain features of spatially filtered robot data (e.g., dominant frequency or peak spectral density of current measurements during traversal of a floor area).

[0139] The cleaning head state detector 526 can determine the state of the cleaning head based on the determined robot parameters. The cleaning head state indicates at least one of the wear level or debris accumulation level of the cleaning member (e.g., the rotatable member 118 or the side brush 126). In an example, the robot parameter generator 524 can generate multiple measurements of robot parameters (e.g., motor power or motor energy) corresponding to repeated traversal of the same floor area by the mobile cleaning robot. Repeated traversal of the same floor area can occur on multiple cleaning tasks, each of which is traversed by the mobile cleaning robot. In one example, the cleaning head state detector 526 can determine the state of the cleaning head based on trends in the robot parameters, such as performing multiple cleaning tasks during a monitoring period. Additionally or alternatively, repeated traversal of the same floor area can occur in a cleaning task, such as repeated cleaning of repeated traversal areas in a user-specified environment in a task. The cleaning head state detector 526 can determine the state of the cleaning head based on multiple measurements of the robot parameters. The following discusses such as reference Figure 7A-7B Example of determining cleaning head status based on robot parameter trends.

[0140] The cleaning head state detector 526 can additionally or alternatively determine the state of the cleaning head based on the dynamic response of the cleaning head motor. The dynamic response can be measured when the mobile robot is operating in a fixed known position and the motor excites the cleaning head so that the cleaning components interact with the floor surface in a manner similar to that of a field robot during a cleaning task, but no useful cleaning is performed. This mode of operation is hereinafter referred to as the cleaning head characterization mode to distinguish it from the normal cleaning mode in field operation. For example, referring to Figures 9A-9C An example of determining a cleaning head state based on the dynamic response of a cleaning head motor when the robot is operating in a cleaning head characterization mode is discussed.

[0141] The remaining life estimator 528 can generate an estimate of the remaining useful life (ERL) of the cleaning component. In one example, the ERL can be estimated using a regression model that relates the remaining useful life of the cleaning head to a signal used as a proxy for the remaining useful life. The model can be generated using historical data (e.g., proxy signal characteristics and corresponding remaining life, such as provided by a human expert). Fig.10 is a diagram showing an example of a linear regression model for estimating the ERL of a cleaning member. Fig.10 As shown, a linear regression model can be generated using training data 1010 collected under controlled conditions (e.g., known floor surface conditions). Each data point of the training data 1010 represents an estimated ERL value (y-axis) for a corresponding agent signal value (x-axis). Examples of agent signals may include one or more filtered robot data (e.g., motor current, angular velocity, torque) from a spatial filter 522 that corresponds to a specific floor area with a specific floor condition, such as a robot parameter determined by a robot parameter generator 524, or a measure of filtered robot data or robot parameters (e.g., a trend of robot parameters), or a dynamic response of a cleaning head motor when the robot is operating in a cleaning head characterization mode. Alternatively, a nonlinear regression model, such as one of a polynomial, exponential, or logarithmic regression model, can be used. The parameters of the regression model, such as the slope and intercept of the regression line 1020, can be estimated using least squares, least absolute deviation, or Bayesian regression methods, etc. The remaining life estimator 528 can additionally determine confidence intervals for the estimated ERL versus proxy signal values ​​from the training data 1010, as shown by confidence lines 1030 and 1040. In one example, confidence lines 1030 and 1040 define 95% confidence bands about the regression line 1020. The remaining life estimator 528 can use the generated regression model to predict or infer the remaining useful life of the measured proxy signal values.

[0142] In some examples, ERL can be estimated using parameters estimated by "virtual sensors," such as disturbance torques generated on a rotating cleaning head related to debris accumulation or wear or damage in the cleaning head. Examples of virtual sensors, disturbance torques, and ERL determination are discussed below, for example with reference to Fig.12 .

[0143] The user interface 540 may enable a user to provide input for controlling the operation of the mobile robot and to inform the user of the operating status and health status of the robot, such as the status of the cleaning head and / or the ERL of the cleaning head. In an example, the user interface 540 may be integrated into a mobile device 404 that is communicatively coupled to the mobile robot 100. As described above, the mobile device 404 may be provided in the form of a smart phone that is operable to execute a software application ("app") that displays status information received from the robot 100 on a display screen. Referring now to FIG. Figures 11A-11B , which shows, by way of non-limiting example, a user interface of a smart phone 1100, i.e., an example of a mobile device 404. Fig.11A As shown, a warning of the state or level of wear or damage of the roller cleaning member 118 or the side brush 126 can be displayed on the display screen 1102. Warnings can be provided via one or more of the text 1104 user interface element and the graphic 1106 user interface element. Similar user interface elements can be deployed on the display screen 1102 to indicate the state or level of debris accumulation in the cleaning member 118 or the side brush 126. Other messages can be displayed on the display screen 1102, such as recommending cleaning the cleaning member in response to the determined debris accumulation level, or recommending replacement of the cleaning member based on the determined wear level. In an example, a warning or recommendation message can be generated when the detected cleaning head state (such as the debris level or the wear level) exceeds the corresponding threshold, or when the ERL drops below the threshold. In some examples, the recommendation includes switching to a cleaning head or cleaning member of a different model or type from the worn cleaning head. For example, if the recommended number of replacements exceeds a certain frequency, a message can be displayed to the user to recommend a different cleaning head. Fig. 11B A display screen 1102 is shown that provides one or more "one-touch" selection options 1108 that prompt the user to purchase a new cleaning head (e.g., cleaning roller) to replace a current set that is no longer functioning properly, e.g., due to excessive wear or damage. Additionally, in the example shown, a textual user interface element 1110 presents one or more pricing options represented along with the name of the corresponding online vendor.

[0144] In the foregoing examples, the software application executed by the mobile device 1100 is shown and described as providing a warning-type indication to the user that maintenance of the robot 100 is required. In some examples, the software application can be configured to provide status updates periodically (e.g., at predetermined time intervals) or after receiving a user inquiry about the health status of the mobile robot (e.g., the level of debris or wear of the cleaning head).

[0145] Example of how to determine the status of the cleaning head

[0146] Reference below Figure 7A-7B , 8 and 9A-9C discuss various embodiments of methods for determining cleaning head status, such as determining debris accumulation levels differentially from wear or damage levels. Fig. 7A is a diagram showing an exemplary method 710 for determining a cleaning head state based on a trend of a robot parameter such as determined by a robot parameter generator 524. At least a portion of the processing may be performed by a cleaning head state detector 526. The inventors have recognized that debris accumulation and wear of a cleaning head cause motor parameters (e.g., motor power or motor energy) to change in different ways. For example, wear and debris accumulation may act on robot parameters at different time scales, and parameter trends may exhibit different directions of change (i.e., slopes with different algebraic signs). As used in method 710, an example of a robot parameter for detecting debris accumulation and wear state of a cleaning head is motor energy. At 711, the energy generated by a motor driving a roller motor 120 or a brush motor 128 to rotatably clean a specific floor area with a specific surface condition may be calculated. As previously described, motor energy may be calculated using robot data corresponding to a specific floor area, such as one or more of the voltage, current output, or PWM control signal characteristics provided to the motor and the time it takes for the mobile robot to clean the floor area.

[0147] At 712, an indication may be received that maintenance is to be performed on the cleaning head, such as an indication that the roller motor 120 or the brush motor 128 is to be removed from the mobile robot (e.g., for cleaning, repair, or replacement). The maintenance indication may be provided by a user, such as via the user interface 540. Alternatively, a maintenance detector circuit, which may be part of the processor circuit 520, may automatically detect that maintenance of the cleaning head is being performed, as described below. Figure 8 An example thereof is described.

[0148] Motor energy can be trended using current measurements of robot data and historical robot data, or can be trended over time when the motor robot traverses the same floor area with a specific floor condition (e.g., a specific floor size, dimension, or floor type), such as in multiple cleaning tasks or repeatedly cleaning a user-specified repeated traversal area in a single task. Motor energy may vary over different time frames. At 713, during the first monitoring period between two consecutive maintenance services, motor energy can be trended over multiple cleaning tasks. At 714, the motor energy trend can be compared with a predetermined or user-specified debris detection standard. For example, if an increasing trend is detected, or if the motor energy exceeds an energy threshold indicated by debris, then at 715, a debris accumulation state is deemed to be detected. A warning can be generated and reported to the user. In some examples, energy thresholds for multiple debris indications can be used to classify debris accumulation as one of multiple debris levels. If no increasing trend is detected, or the motor energy does not exceed the energy threshold indicated by the debris, the cleaning head is deemed to be clean and there is no debris accumulation state. The trend of motor energy can continue at 713.

[0149] At 716, the motor energy can be additionally or alternatively trended over multiple cleaning tasks in a second time range. The second time range can be longer than the first time range. After a few days or weeks of use, dirt and erroneous filaments usually accumulate in the cleaning head, and wear usually occurs after a few months. In this way, the energy trend in the first short time range can be used to detect the level of debris accumulation, while the energy trend in the second longer time range can be used to detect the level of wear of the cleaning head. In one example, the first period is several weeks (e.g., 1-3 weeks) and the second period is several months (e.g., 1-6 months).

[0150] To improve the performance of wear level determination, a long-term energy trend at 716 may be generated over cleaning tasks when the cleaning head is in substantially the same pre-task debris state. In one example, the motor energy trend includes motor energy values ​​corresponding to a plurality of cleaning tasks, each motor cleaning task occurring at a specific time relative to a maintenance service performed on the cleaning head, such as after or before maintenance of the cleaning head. Controlling the pre-task debris state may help reduce the impact of a short-term increase in motor energy (which may be associated with debris accumulation) on a long-term decreasing trend (which may be associated with wear).

[0151] In contrast to the short-term increase in motor energy representing debris accumulation, a worn cleaning head may produce less interaction force between the cleaning member (e.g., baffle, metal shavings, or bristles) and the floor, thereby reducing the load torque on the cleaning head motor. This can be represented by a decreasing trend (or negative slope) in motor energy consumption over time. At 717, the motor energy trend can be compared to the wear detection criteria. For example, if a decreasing trend is detected, or if the motor energy decreases below an energy threshold for wear indication, at 718, a wear state is deemed to be detected. A warning can be generated and reported to the user. If a decreasing trend is not detected, or the motor energy does not decrease below an energy threshold for wear indication, a wear state is not declared, and the trend of motor energy can continue at 716.

[0152] Figure 7B By way of non-limiting example, the Fig. 7A Step 713 of the short-term energy trend 720 during the first monitoring period T1, and according to Fig. 7A Step 716 of the long-term energy trend 730 during the second monitoring period T2. Each motor energy value corresponds to a cleaning task. For example, energy value 722 corresponds to the kth cleaning task during T1. In one example, T1 can be on the order of weeks (e.g., 1-3 weeks). In one example, the monitoring period T1 can be defined as the time range between two consecutive maintenance services. The maintenance time of the cleaning head can be obtained from step 712. During T1, the first cleaning task is performed after the cleaning head maintenance, and the last cleaning task is performed before the next maintenance.

[0153] The accumulation of debris can cause an increase in the load torque on the cleaning head motor, which can be represented by an increasing trend 723 (or a positive slope) of the motor force or motor energy consumption over time. In one example, the cleaning head state detector 526 can compare the motor energy values ​​under different tasks during the first monitoring period, and determine the state of debris accumulation based on the increase or increase rate of the motor energy (e.g., the slope of the increasing trend 723), or classify different levels of accumulation. Alternatively, the cleaning head state detector 526 can compare the motor energy value with the energy threshold 725 indicated by the debris, and if the motor energy value exceeds the threshold 725, the state of debris accumulation is determined.

[0154] The long-term energy trend 730 may be generated during a second monitoring period T2 that is longer than the first monitoring period T1. The second monitoring period T2 may be long enough to cover cleaning tasks during multiple maintenance sessions of the cleaning head, so that each short-term energy trend 720 is a subset of the long-term energy trend 730. Figure 7BAs shown, the long-term energy trend 730 may include multiple short-term energy trends 720, which are separated by maintenance links of the cleaning head, and each maintenance link resets the cleaning head state. The cleaning head state detector 526 can determine the wear state of the cleaning head based on the reduction amount or reduction rate of the motor energy during the second monitoring period (e.g., the slope of the rising trend 723). Alternatively, the cleaning head state detector 526 can compare the motor energy value with the energy threshold 735, and if the motor energy value decreases below the threshold 735, the state of wear is determined. In some examples, multiple wear thresholds can be used to classify different wear levels.

[0155] Figure 8 is a diagram illustrating automatic maintenance detection, an example of step 712 of method 710. The maintenance detector circuit can be coupled to one or more sensors to detect indications of maintenance performed on the cleaning head. In one example, the maintenance detector circuit is coupled to a switch to detect the opening of a latch 812 that releasably locks the rotating cleaning member 118 in the cleaning head assembly housing, the removal of the cleaning member 118, and the reinstallation of the cleaning member 118 (e.g., cleaning or repair) or a replacement cleaning member 118. Additionally or alternatively, the maintenance detector circuit is coupled to a gyroscope or accelerometer sensor to detect an orientation of the mobile cleaning robot 100 that is compatible with a maintenance action (e.g., a flip or rotation of the mobile cleaning robot 100), or a state in which the drive wheels 112 are not in contact with the ground. Based on the detected maintenance indications, the cleaning head state detector 526 can generate a long-term energy trend 720 using motor energy values ​​for those cleaning tasks immediately before or after the detected maintenance, and based on information such as the above reference. Figure 7A-7B The trend described determines the level of wear of the cleaning head.

[0156] Figures 9A-9C An exemplary method of determining a cleaning head state based on a dynamic response of a cleaning head motor is shown. The dynamic response may be measured when the mobile robot is operating in a cleaning head characterization mode. Fig.9AAn example of a cleaning head characterization mode is shown in which the mobile robot 100 remains stationary on the docking station 610. The cleaning member of the robot 100 is rotatably engaged with the platform surface 612 of the docking station. Because the docking platform 612 has a fixed position with a known surface condition, the spatial impact of the ground conditions (e.g., different ground types) experienced by the mobile robot is under control. The docking platform typically has a hard and smooth surface, or can be specially designed to have a hard and smooth surface. This can help control and reduce the motor power component P1 or the energy component E1. In some examples, the cleaning member is driven so that it rotates but does not actively stir and extract debris. In this way, the motor power P or energy consumption E is less determined by the motor power component P1 and the energy component E1, respectively. Instead, due to the debris accumulation or wear state of the cleaning head, the motor power P and the energy consumption E are determined by the power or energy consumption, respectively.

[0157] Fig. 9B An exemplary process for detecting a cleaning head state detection is shown, at least a portion of which can be performed by a cleaning head state detector 526. At 910, confirm that the mobile robot is on a docking platform. At 920, an excitation signal such as an excitation voltage u(t) is applied to the motor. The excitation signal can be a step function, a swept sine curve, or the like, and its purpose is to excite dynamics that reveal debris accumulation or wear of the cleaning head. At 930, the input voltage u(t) and the resultant motor current output i(t) can be used to determine the motor dynamic response, such as a frequency response. At 940, the motor dynamic response can be fit into a parametric model (F). Model F can be a function of one or more model parameters, θ=(θ1, θ2, …, θ K ). Modeling fitting involves adjusting one or more model parameters through an optimization process until a specific fitting criterion is met, such as the fitting error between the dynamic response and the model output F(Θ) falls below a threshold. The motor dynamic response can be determined by the corresponding optimized model parameter Θ opt Because the cleaning head representation model effectively controls the spatial impact of the floor condition and the cleaning head is excited in a specific and deterministic way, the optimized model parameter Θ opt The status of the cleaning head can be indicated more reliably.

[0158] In one example, the parameter model F may be a transfer function model H(s), which describes the relationship between the voltage input u(t) and the current output i(t), and may be expressed as follows:

[0159] H(s)=I(s) / U(s) (1)

[0160] where I(s) is the Laplace transform of i(t), and U(s) is the Laplace transform of u(t). The transfer function H(s) can be in the form of a polynomial with a set of transfer function coefficients θ = (θ1, θ2, …, θ N ). Non-limiting examples of H(s) are as follows:

[0161]

[0162] Reference now Fig. 9C , which shows, by way of non-limiting example, a frequency response 942 of a cleaning head. The frequency response 942 may be represented by an amplitude response (vertical axis) at different frequencies (horizontal axis). Fig. 9C Also shown is the magnitude response of a transfer function model 944, which fits the frequency response 942 according to a particular fitting criterion. The motor dynamic response can then be represented by the transfer function coefficients Θ = (θ1, θ2, θ3), also referred to as the measured fit model parameter set.

[0163] Return to reference Fig. 9B , one or more motor response templates may be received at 950. Examples of motor response templates may include a first motor dynamic response template (Y) for a cleaning head with debris accumulation. D ), or the second motor dynamic response template for the worn cleaning head (Y W ). When the mobile robot operates in the same cleaning head characterization mode, for example, when the mobile robot remains stationary on the docking station and the cleaning member rotatably engages the platform surface of the docking station, the motor response template Y can be created separately. D and Y W Template Y can be created experimentally at different known debris accumulation levels D Template Y can be created experimentally at different known wear levels W In some examples, when the mobile robot operates in the same cleaning head characterization mode, a third model dynamic response template (Y C ). A motor response template may be created and stored in a memory, such as memory circuit 530.

[0164] In various examples, when the mobile robot operates in the same cleaning head characterization mode, template Y D , Y W and optional Y C Any of these can be represented by a motor dynamic response (e.g., a motor frequency response). The template Y can be created by running multiple stimulus / response experiments for various known debris levels. D , with parameter set Θ D =(θ D1 ,θD2 ,…,θ DI ). Similarly, the template Y can be created by running multiple stimulus / response experiments for various known wear levels. W , with parameter set Θ W =(θ W1 ,θ W2 ,…,θ WJ ) model representation. The optional template Y can be created by running multiple stimulus / response experiments with the cleaning head maintained in a known clean and healthy state. C , with parameter set Θ C =(θ C1 ,θ C2 ,…,θ CK ). In one example, Y D , Y W and Y C can be expressed by their respective transfer functions H D (s), H W (s) and H C (s) is modeled similarly to the transfer function H(s) used for the motor dynamic response X. The parameter set Θ D , Θ W and θ C including the respective transfer function coefficients. Then the parameter set Θ D , Θ W and θ C Stored in memory.

[0165] At 960, the motor dynamic response X (eg, transfer function coefficients θ) from step 940 and the template Y may be used. D , Y W and Y C Any one of (e.g., the corresponding parameter set Θ D , Θ W and θ C ) to determine the cleaning head state. The motor dynamic response X and the motor response template Y can be used to determine the cleaning head state. D Similarity measure between Θ and Θ D The debris level can be determined based on the motor dynamic response X and the motor response template Y W Similarity measure between Θ and Θ W The wear level can be determined based on the motor dynamic response X and the motor response template Y. C Similarity measure between Θ and Θ C The cleaning and health status of the cleaning head are determined by comparing the measured fitting model parameter set θ with the trained model parameter set (e.g. θ D, Θ W and θ C ) may include comparisons of one or more parameters of Θ as well as Θ D , Θ W and θ C The fitted model parameters in Θ can be compared with Θ D , Θ W and θ C In some examples, a subset of the parameters in Θ (rather than all) can be used along with Θ D , Θ W and θ C For example, if a parameter subset (e.g., the parameters Θ in Θ) is known, k ) represents, for example, the damping ratio or energy dissipation that contributes more to the state of the cleaning head than other parameters representing the resonant frequency, then cluster analysis can be performed on θ j and the corresponding parameters in the trained model parameter set (e.g. Θ D Θ in Dj , Θ W Θ in Wj or Θ C Θ in Cj ) are executed between.

[0166] As previously described with reference to FIG. 7 , when the mobile robot is in an active cleaning task, detection of the cleaning head state can be performed based on parameter trends. In contrast, the cleaning head characterization mode requires the mobile robot to be located at a fixed known surface position, such as a docking platform. When the mobile robot is operated in this cleaning head characterization mode, detection of the cleaning head state does not require repeated measurement of robot parameters (e.g., motor power P or motor energy E), such as repeated measurements on multiple tasks to control the impact of interaction with floor surface conditions. Therefore, the cleaning head state detector 526 can determine the state of the cleaning head at any time when the mobile robot is located at the docking station. In one example, debris or wear states can be instantly identified without reference to historical data (e.g., robot parameter values ​​for historical cleaning tasks).

[0167] Mobile Robot Predictive Maintenance (PdM) System Using Virtual Sensors

[0168] Fig.12is a diagram illustrating an example of a mobile robot PdM system 1200. System 1200 is an embodiment of mobile robot PdM system 500 and may include a data receiver 510, a processor circuit 1220 that is a variation of processor circuit 520, a memory circuit 530, and a user interface 540. System 1200 may additionally include a virtual sensor 1250 configured to generate one or more parameters that are not directly measured by a physical sensor but that represent state variables that represent the state of a cleaning head. In an example, virtual sensor 1250 may include a mathematical model 1252 of cleaning head components that represent the dynamics of the cleaning head. An example of a mathematical model is a linear state-space model of the cleaning head frequency response:

[0169] x k+1 =Φx k +u+τ d

[0170] y m =Hx k (3)

[0171] Where u represents the excitation input of the system, y m represents the system output (or observation) that can be directly measured, x k represents the state of the system at time step k, τ d represents the disturbance to the system (also called system or process noise), Φ is the state transition matrix (from time step k to time step k+1), and H is the observation matrix between the current observation and the current state. d An example of this is the disturbance torque generated on a rotating cleaning head related to debris accumulation, wear or damage to the cleaning head.

[0172] A state-space model for the system frequency response can be created in the laboratory under artificially established known cleaning head states (e.g., various known debris levels or wear levels). In each cleaning head state, the system is excited with an excitation signal u (e.g., voltage) at various different frequencies, and system response data (e.g., step voltage, measured current, angular velocity, etc.) can be collected.

[0173] The state space model can be solved for the matrices (e.g., Φ and H) of the parameterized virtual sensors. The state space model can be solved using a Kalman filter 1254. The discrete form of the Kalman filter algorithm can be represented by the following measurement update and time update equations:

[0174] K k =P′ k H T (HP′ k H T +R)-1

[0175]

[0176] P k =(IK k H)P′ k

[0177]

[0178] P k+1 =ΦP k Φ T +Q (4)

[0179] where K is the Kalman gain function (matrix), R is the measurement error covariance, Q is the disturbance (system or process) covariance, and P k ' is the a priori estimated error covariance matrix. Using laboratory data collected under artificially established known cleaning head conditions, the Kalman filter model parameters including matrices F, H, R, and Q can be determined and stored in memory.

[0180] Processor circuit 1220 includes a Figure 5 The processor circuit 520 shown includes a spatial filter 522, and a state variable estimator 1221, which is configured to estimate the disturbance torque τ using (1) the spatially filtered robot data received from the spatial filter 522 and (2) the Mann filter whose filter parameters have been previously solved and stored in the memory. d The spatially filtered robot data (e.g., the measured values ​​of the motor current corresponding to the floor area with a specific surface condition specified by the spatial filter 522) is used to update the previously established virtual sensor defined by the matrices F, H, R, and Q of the Kalman filter. Similar to the processor circuit 520, the processor circuit 1220 may also include one or more of a robot parameter generator 524, a cleaning head state detector 526, or a remaining life estimator 528. In one example, the cleaning head state detector 526 may use the estimated disturbance torque τ d and other robot data or robot parameters to determine the state of the cleaning head. In another example, the remaining life estimator 528 can use the estimated disturbance torque τ in addition to other robot data or robot parameters. d To determine the ERL of the cleaning head.

[0181] Example of cleaning head status diagnosis based on multi-estimator fusion

[0182] Fig.131 is a diagram showing an example of a system 1300 for predictive maintenance of a cleaning head based on multi-estimator fusion. The system 1300 may include a data receiver 510 and a processor circuit 1310. The processor circuit 1310 may include a spatial filter 522 and a plurality of estimators 1320A, 1320B, ..., 1320N respectively connected to the spatial filter 522. The spatial filter 522 may, for example, identify and extract respective data portions corresponding to respective floor areas having specific surface conditions for the plurality of estimators by using a floor map of the environment. As described above with reference to Figure 5 As described, the surface condition may include, among other things, spatial, geometric, and texture information of the floor area. The spatial filter 522 may extract different robot data portions for multiple estimators 1320A-1320N based on one or more of the spatial position of the floor; the size, shape, or dimensions of the floor; the type of floor surface; the way of traversing a specific floor area; or a specific stage of the cleaning task, such as a docking or undocking stage. For example, the estimator 1320A may receive a robot data portion corresponding to a bedroom floor, the estimator 1320B may receive a robot data portion corresponding to a kitchen floor, and the estimator 1320C may receive a robot data portion corresponding to a dining room floor, etc. In another example, the spatial filter 522 may divide a specific room or area in the environment into multiple areas (e.g., M×N areas in a grid map). Then, the robot data portion corresponding to the divided area (i.e., the robot data collected when the robot performs a cleaning task in the divided area) may be extracted and provided to each estimator. In another example, the spatial filter 522 may identify different areas based on floor types such as hardwood floors, tile floors, or carpet floors. Estimator 1320A may receive robot data portions corresponding to regions of hardwood floors from spatial filter 522, estimator 1320B may receive robot data portions corresponding to regions of tile floors, and estimator 1320C may receive robot data portions corresponding to regions of carpet floors.

[0183] Each of the estimators 1320A-1320N may include a corresponding robot parameter generator and a remaining life estimator. Similar to the robot parameter generator 524 of the system 500, each robot parameter generator 1324A-1324N may use a portion of the robot data corresponding to a corresponding floor area with a corresponding floor condition to determine a corresponding robot parameter. In an example, when the mobile robot travels across various floor areas associated with some or all of the estimators 1320A-1320N, the robot parameter generators 1324A-1324N generate corresponding robot parameters during each cleaning task. When the mobile robot travels to the same floor area multiple times (e.g., performs multiple cleaning tasks, or repeatedly cleans a user-specified repeated traversal area in one task), the estimator associated with the floor area may generate robot parameters accordingly for each traversal of the floor area.

[0184] The processor circuit 1310 may include a first fusion circuit 1330 configured to generate a composite robot parameter (X) using the robot parameters determined by the plurality of estimators 1324A-1324N, respectively, in the cleaning task. total ). In one example, X total It can be a linear or nonlinear combination of the robot parameters determined by the estimators 1324A-1324N, such as a weighted combination of the robot parameters each scaled by a respective weight factor:

[0185]

[0186] Where X i represents the robot parameters generated by the ith estimator (e.g., estimator 1320I), w i Represents X i As mentioned above, for example, reference Figure 5 , robot parameters may include the power consumption or energy consumption of a motor that drives the cleaning head to rotate to interact with the floor and extract debris from it.

[0187] The processor circuit 1310 may include a weighting factor generator 1370 for determining the robot parameters (e.g., X) estimated by the respective estimators based on the reliability of the corresponding robot parameters based on the estimation of the cleaning head status (e.g., wear or debris accumulation). i ) weight factor (e.g., w i). In one example, the weight factor generator 1370 can determine the weight factors based on the floor type of the floor area associated with each estimator. Hard and smooth floor surfaces (e.g., hardwood or tile) typically produce less friction for floor-cleaning head interactions during active cleaning. Therefore, the robot parameters (e.g., motor power or motor energy) from the corresponding estimator are less affected by the floor interaction and more reliably indicate the debris or wear state of the cleaning head. In contrast, the interaction of the floor cleaning head may dominate the robot parameters corresponding to carpet floors, and therefore, the robot parameters estimated for carpet floors are less reliably indicative of debris or wear state. Therefore, larger weight factors can be applied to robot parameters associated with non-carpet hard floors, while smaller weight factors can be applied to robot parameters associated with carpet non-hard floors.

[0188] Floor type information can be provided to the system by a user, such as by marking on a floor map through a user interface 540, and associated with floor areas at different spatial locations. Alternatively, floor type information can be automatically detected by a floor type detector coupled to one or more sensors. The acquired floor type information can be integrated into a floor map of the environment. In one example, when the robot traverses a floor surface having a specific floor type, the floor type can be determined based on power consumption. High power consumption indicates high friction surface interaction, while low power consumption indicates low friction surface interaction. In some examples, the floor type classification can also include a probability density function predetermined for different floor types and stored in a memory. In another example, the floor type can be determined based on an inertial measurement unit (IMU) such as a gyroscope sensor or an accelerometer. The pitch change detected by the gyroscope can be used to determine whether the robot has crossed a floor surface threshold or a floor type interface. Such detection of a threshold or floor discontinuity may imply a change in the floor type. In yet another example, the floor type can be identified by analyzing an image captured by a camera or imaging sensor. In some examples, the floor type can be determined using an integration of information sources such as from different sensors as described above. Commonly assigned U.S. Patent No. 9,993,129, entitled "MOBILE FLOOR-CLEANING ROBOT WITH FLOOR-TYPE DETECTION," the description of which is incorporated herein by reference in its entirety, describes automatic detection of various floor type transition floor types. The user-provided or automatically detected floor type information can then be used to determine weight factors for various robot parameters.

[0189] Additionally or alternatively, the weight factor generator 1370 can determine the weight factors of the robot parameters estimated by each estimator based on a statistical measure of the robot data (such as a variability measure) acquired when the cleaning robot is moved across the floor area associated with the respective estimator in a cleaning task. In one example, the variability can be calculated as the variance or standard deviation of the motor current measurements within the cleaning task. The current measurement includes sampling at a specific sampling rate (e.g., 200Hz) of the data acquisition system. Compared with robot data with larger variations, robot data with smaller variations more reliably indicates the debris or wear state of the cleaning head. Therefore, a larger weight factor can be applied to robot parameters associated with robot data with smaller variations, while a smaller weight factor can be applied to robot parameters associated with robot data with larger variations.

[0190] The processor circuit 1310 may include a cleaning head state detector 1340, which is configured to generate a trend of a composite robot parameter over a plurality of cleaning tasks, each cleaning task comprising a traversal of one or more corresponding floor areas by a mobile cleaning robot, and is configured to detect the state of the cleaning head based on the trend of the generated composite robot parameter. Similar to the cleaning head state detector 526 of the system 500, the state of the cleaning head may include a level of debris accumulation or a level of wear or damage. The detection of the cleaning head state may be based on the direction of change (i.e., a slope with a different algebraic sign) within a corresponding time range, as described above with reference to FIG. 7. The monitoring of the cleaning head state may be presented to the user, for example via the user interface 540.

[0191] The processor circuit 1310 may include a second fusion circuit 1350 configured to generate an aggregate estimate of the remaining useful life (ERL) of the cleaning head using the ERLs determined by the plurality of estimators 1324A-1324N, respectively, during the cleaning task. agg ). In one example, ERL agg It can be a linear or nonlinear combination of the ERLs determined by the estimators 1324A-1324N, such as a weighted combination of the robot parameters each scaled by a respective weight factor:

[0192]

[0193] ERL i represents the ERL estimated by the ith estimator (e.g., estimator 1320I), w i Represents ERL i The total estimate of the remaining useful life can be presented to the user, for example via user interface 540. The ERL can be estimated for each cleaning task. aggAlternatively, the ERL may be updated periodically or upon receipt of a user inquiry regarding the health of the cleaning head. agg If ERL agg If it drops below the threshold, the estimated ERL agg A warning or alert message may be triggered to the user.

[0194] FIG. 14A to FIG. 14B is a diagram showing the fusion of robot parameters determined by multiple estimators respectively associated with different areas in the environment. Fig.14A A floor map 1410 of a robotic cleaning environment is shown by way of non-limiting example, along with three regions (region i, region j, and region k) in the environment that are monitored by various estimators. Fig. 14B The various robot parameters generated by the various estimates are shown, which can be executed by the first fusion circuit 1330 of the system 1300. In this example, the robot parameters are motor energy values ​​1422 calculated as described above with reference to FIG. 7. After each of the multiple tasks, the estimator determines the respective motor energy value. A composite motor energy can be determined using a combination 1424 of the motor energies from the various estimators, each weighted by a weight factor 1423 determined based on the floor type of the area or statistical information (e.g., a variability metric) of the measured robot data, as described above with reference to the weight factor generator 1370. A trend 1426 of the composite motor energy can then be generated over multiple cleaning tasks, for example by a cleaning head state detector 1340, from which the cleaning head state (e.g., debris accumulation state or wear state) can be derived.

[0195] Fig.15 15 is a flow chart 1500 illustrating an example of a method for evaluating the health of a cleaning head assembly in a mobile cleaning robot, such as a mobile robot 100 configured to traverse and clean a floor surface. The method 1500 may be implemented in and performed by a mobile robot PdM system 500. The health of the cleaning head may include information about the level of debris accumulation and wear of the cleaning head and the remaining useful life of the cleaning head.

[0196] Method 1500 begins at 1510 to receive robot data generated by a mobile cleaning robot during its active operation (e.g., while traversing an environment (e.g., a house) and cleaning a floor area in the environment). Examples of robot data may include measurements of voltage supplied to a motor that drives a cleaning member of a cleaning head assembly, motor current, angular velocity of a cleaning member, motor rotational speed, or torque generated at a cleaning member, etc. The robot data may be sensed by one or more sensors (e.g., motor sensor 317). In some examples, the sensed robot data may be converted into one or more frequency domain metrics, such as dominant frequency, resonance, or spectral density, etc. In some examples, the sensed robot may include parameters generated by a virtual sensor, such as a mathematical model 1252 of a cleaning head assembly representing the dynamics of the cleaning head. Virtual sensor parameters represent the operating state of the cleaning head, some of which may not be directly measurable by physical sensors. An example of a virtual sensor parameter is a disturbance to the system (also referred to as system or process noise), such as a disturbance torque. Fig.12 An exemplary virtual sensor or mathematical model for estimating disturbance torque is shown. The estimated disturbance torque can be analyzed in addition to other robot data to determine the health status of the cleaning head.

[0197] At 1520, a portion of the received robot data (including data sensed by a physical sensor or by a virtual sensor) may be extracted that corresponds to a floor area in an environment repeatedly traversed by a mobile cleaning robot. The floor area has a specific surface condition. Extraction of robot data is also referred to as spatial filtering of robot data, and may be performed, for example, by using a spatial filter 522. The surface condition of the floor area may include a specific spatial location, a floor area of ​​a specific size, shape, or dimension; or a floor area with a specific surface type (e.g., hardwood or carpet), as well as other spatial, geometric, and textural information of the floor area. In one example, information about the surface condition of one or more floor areas in the environment may be stored in a floor map.

[0198] Additionally or alternatively, data portions may be extracted at 1520 based on other conditions of the floor map. In an example, robot data may be extracted based on a traversal pattern (e.g., a coverage path, a traversal pattern, or a traversal speed) of a mobile robot over a specific floor area. For example, a user may specify a floor area with a specific coverage path or traversal pattern on a floor map. When the mobile robot travels according to the specified traversal path or pattern and cleans the specified floor area, robot data is collected to analyze the cleaning head status.

[0199] Additionally or alternatively, data portions may be extracted at 1520 according to the stage of the cleaning task. Figure 6As shown, the cleaning task usually starts with an undocking phase, during which the cleaning robot departs from the docking station, and then performs a cleaning phase, including a series of floor cleanings in multiple areas of the environment, and then ends in a docking phase, during which the cleaning robot returns to the docking station. In an example, the extracted data portion may include a first portion corresponding to the docking phase. In another example, the extracted data portion may include a second portion corresponding to the undocking phase. In yet another example, the extracted data portion may include a third portion corresponding to a specified time period regarding docking or undocking, such as T1 seconds immediately after the undocking phase, or T2 seconds immediately before the docking phase.

[0200] At 1530, robot parameters can be determined using an extracted portion of the robot data corresponding to a floor area with a specific surface condition. The robot parameters can represent floor-cleaning head interactions (e.g., torque generated at a cleaning member), statistical features of spatially filtered robot data (e.g., average motor current during traversal of a floor area), or frequency domain features of spatially filtered robot data. An example of a robot parameter is the power (P) consumed by a cleaning head motor driving a cleaning head, which can be calculated using one or more of the motor current, battery voltage, and motor speed. Another example of a robot parameter is the energy (E) consumed by a cleaning head motor to traverse and clean a floor area with a specific surface condition, which can be calculated as the integral of the power (P) over a period of time used to clean the entire or portion of the floor area.

[0201] At 1540, a state of the cleaning head can be determined based on the determined robot parameters, such as using a cleaning head state detector 526. The cleaning head state indicates at least one of a wear level of a cleaning member (e.g., a rotatable member 118 or a side brush 126) or a debris accumulation level. In one example, the cleaning head state can be determined based on multiple measurements of the robot parameters, such as trends in the robot parameters over multiple cleaning tasks over a specified monitoring time period. Dirt and errant filaments typically accumulate in the cleaning head after days or weeks of use, and wear typically occurs after months. In this way, energy trends over a first short time range can be used to detect debris accumulation levels, while energy trends over a second, longer time range can be used to detect wear levels of the cleaning head. As Figure 7A-7B As shown, an increasing trend of motor energy within a first shorter monitoring period may be used to detect a debris accumulation condition, while a decreasing trend of motor energy within a longer monitoring period may be used to detect a wear condition.

[0202] The cleaning head state may additionally or alternatively be determined based on the dynamic response of the cleaning head motor estimated while the mobile robot is in a cleaning head characterization mode (e.g., at a platform of a docking station or at a fixed location with known surface conditions). Figures 9A-9C As shown, robot data corresponding to a cleaning member rotatably engaged with a platform surface of a docking station can be used to generate one or more first motor response templates for a worn cleaning head or a second motor response template for a cleaning head with debris accumulation. The state of the cleaning head can be determined based on a comparison of the determined motor frequency response with at least one of the first or second motor response templates.

[0203] At 1550, an estimate of the remaining useful life (ERL) of the cleaning member may be generated using the determined robot parameters provided at 1530, or alternatively using the spatially filtered robot data provided at step 1520. The ERL may be estimated using a regression model that relates the remaining useful life of the cleaning head to a signal used as a proxy for the remaining useful life. Examples of regression models may include linear regression models or nonlinear regression models, such as polynomial, exponential, logarithmic regression models. The ERL may additionally or alternatively be estimated using parameters estimated by virtual sensors (e.g., disturbance torque), as described above with reference to Fig.12 An example thereof is described.

[0204] At 1560, information about the operational status and health status of the mobile robot, such as the status of the cleaning head and / or the ERL of the cleaning head, may be presented to the user, for example, via a user interface. This information may include text and / or graphical notifications, as described above with reference to Figures 11A-11B Examples of this are described. The notification may include a warning regarding the status or level of wear or damage to the cleaning head, the status or level of debris accumulation in the cleaning head, a recommendation to clean the cleaning components in response to a determined level of debris accumulation, a recommendation to replace the cleaning components based on a determined level of wear, or a recommendation to switch to a different cleaning head model than the worn cleaning head, etc.

[0205] Fig.161 is a flow chart showing an example of a method 1600 for evaluating the health status of a cleaning head assembly in a mobile cleaning robot based on multi-estimator fusion. The method 1600 can be implemented in and performed by the mobile robot PdM system 1300. The method 1600 begins at 1610, where a plurality of estimators can be associated with respective floor regions (or regions in an environment) having respective surface conditions. The surface conditions of the floor regions can include, for example, the spatial position of the floor; the size, shape, or dimensions of the floor; the floor surface type; the mode of traversing a particular floor region; or a particular phase of a cleaning task, such as a docking or docking phase; and other spatial, geometric, and textural information of the floor region. At 1620, the estimator is queried for robot data corresponding to a floor region having a particular surface condition. In an example, each estimator can receive robot data (e.g., motor current sensed by a sensor) when the mobile robot traverses the corresponding floor region. An association between the estimator and the corresponding floor region can be created and stored in a floor map.

[0206] At 1630, weight factors may be determined for each of the multiple estimators, such as using weight factor generator 1370, as described above with reference to Fig.13 As described. In one example, a weight factor for an estimator can be determined based on the floor type of the floor area associated with the estimator. Hard and smooth floor surfaces (e.g., hardwood or tile) typically produce less friction for floor-cleaning head interactions during active cleaning. Therefore, the robot parameters (e.g., motor power or motor energy) from the corresponding estimator are less affected by floor interactions and more reliably indicate the debris or wear state of the cleaning head. Therefore, a larger weight factor can be assigned to an estimator associated with a non-carpet hard floor, while a smaller weight factor can be assigned to an estimator associated with a carpet floor.

[0207] Alternatively or additionally, the weighting factors are determined based on statistics of robot data acquired by the estimator when the robot is moved across and cleans a floor area associated with the estimator during a cleaning task. As a non-limiting example, the statistics of the robot data may include the variability (e.g., variance or standard deviation) of motor current measurements received by the estimator during a cleaning task. Robot data with less variability is more reliably indicative of the debris or wear state of the cleaning head than robot data with greater variability. Therefore, a larger weighting factor may be applied to robot parameters associated with robot data with less variability, while a smaller weighting factor may be applied to robot parameters associated with robot data with greater variability.

[0208] Each estimator may generate robot parameters at 1640, and / or generate an estimate of the remaining useful life (ERL) of the cleaning head at 1670. The respective robot parameters may be determined using the respective robot data received by the estimator at 1640. When the mobile robot visits the same floor area multiple times (by repeatedly cleaning a user-specified repeated traversal area in one mission or in multiple cleaning missions), the estimator associated with the area may generate robot parameters accordingly for each traversal of the floor area.

[0209] At 1650, a composite robot parameter (P totoal ), for example, the weighted combination of the robot parameters is scaled by the corresponding weight factors provided at 1630, respectively. At 1660, the composite robot parameters can be trended over multiple cleaning tasks, and the state of the cleaning head can be detected based on the trend of the composite robot parameters. In one example, the debris accumulation state and / or the wear state of the cleaning head can be determined based on the direction of change (i.e., slopes with different algebraic signs) within the corresponding time range, as described above with reference to FIG. 7.

[0210] The ERLs estimated for the multiple estimators at 1670 may be combined to generate an aggregate ERL (ERL agg ). The ERL can be determined using a linear or nonlinear combination of the ERLs of the individual estimators. agg , for example, the weighted combination of the robot parameters are each scaled by the corresponding weight factors provided at 1630. The ERL may be estimated for each cleaning task agg , or determined periodically. The user may be presented with the cleaning head status determined at 1660 and the total estimate of remaining life (ERL) determined at 1680. agg ), or may respond to debris accumulation or wear conditions or ERL agg falls below the threshold to trigger an alert.

[0211] Fig.17 A block diagram of an example machine 1700 is generally shown, on which any one or more of the techniques (e.g., methods) discussed herein can be performed. Portions of this description can be applied to the computing framework of various parts of the mobile robot 100, the mobile device 404, or other computing systems (such as a local computer system or a cloud computing system 406).

[0212] In alternative embodiments, machine 1700 may operate as a standalone device, or may be connected (e.g., networked) to other machines. In a network deployment, machine 1700 may operate in the capacity of a server machine, a client machine, or both in a server-client network environment. In an example, machine 1700 may act as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. Machine 1700 may be a personal computer (PC), a tablet computer, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a network device, a network router, a switch or a bridge, or any machine capable of executing instructions (sequentially or otherwise) that specify the operations to be performed by the machine. In addition, although only a single machine is shown, the term "machine" should also be understood to include any collection of machines that individually or collectively execute a set (or multiple sets) of instructions to perform any one or more methods discussed herein, such as cloud computing, software as a service (SaaS), and other computer cluster configurations.

[0213] As described herein, examples may include logic or may be operated by logic or multiple components or mechanisms. A circuit group is a collection of circuits implemented in a tangible entity including hardware (e.g., simple circuits, gates, logic, etc.). Circuit group members may become flexible over time and with potential hardware variability. A circuit group includes members that can perform specified operations individually or in combination when operating. In an example, the hardware of the circuit group may be designed to perform specific operations (e.g., hardwired) invariably. In an example, the hardware of the circuit group may include variably connected physical components (e.g., execution units, transistors, simple circuits, etc.), including physically modified (e.g., magnetically, electrically, particles of constant mass may be removably placed, etc.) computer-readable media to encode instructions for specific operations. When physical components are connected, the underlying electrical properties of the hardware composition change, such as from an insulator to a conductor, and vice versa. Instructions enable embedded hardware (e.g., an execution unit or a loading mechanism) to create components of the circuit group in hardware through variable connections to perform a portion of a specific operation when operating. Therefore, when the device is working, the computer-readable medium is communicatively connected to other components of the circuit group component. In one example, any physical component may be used in more than one component of more than one circuit group. For example, in operation, an execution unit may be used in a first circuit of a first circuit group at one point in time, and may be reused by a second circuit in the first circuit group or a third circuit in the second circuit group at a different time.

[0214] The machine (e.g., computer system) 1700 may include a hardware processor 1702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory 1704, and a static memory 1706, some or all of which may communicate with each other via an interconnection link (e.g., a bus) 1708. The machine 1700 may further include a display unit 1710 (e.g., a raster display, a vector display, a holographic display, etc.), an alphanumeric input device 1712 (e.g., a keyboard), and a user interface (UI) navigation device 1714 (e.g., a mouse). In an example, the display unit 1710, the input device 1712, and the UI navigation device 1714 may be a touch screen display. The machine 1700 may additionally include a storage device (e.g., a drive unit) 1716, a signal generating device 1718 (e.g., a speaker), a network interface device 1720, and one or more sensors 1721, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensors. The machine 1700 may include an output controller 1728, 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 with or control one or more peripheral devices (e.g., printer, card reader, etc.).

[0215] The storage device 1716 may include a machine-readable medium 1722 on which is stored one or more sets of data structures or instructions 1724 (e.g., software) embodied or utilized by any one or more of the techniques or functionality described herein. The instructions 1724 may also reside, in whole or in part, within the main memory 1704, within the static memory 1706, or within the hardware processor 1702 during execution of the instructions 1724 by the machine 1700. In an example, one or any combination of the hardware processor 1702, the main memory 1704, the static memory 1706, or the storage device 1716 may constitute a machine-readable medium.

[0216] Although the machine-readable medium 1722 is illustrated as a single medium, the term “machine-readable medium” may include a single medium or multiple media (eg, a centralized or distributed database and / or associated caches and servers) configured to store one or more instructions 1724 .

[0217] The term "machine-readable medium" may include any medium capable of storing, encoding, or carrying instructions executed by the machine 1700 and causing the machine 1700 to perform any one or more of the techniques of the present disclosure, or capable of storing, encoding, or carrying data structures used by or associated with such instructions. Non-limiting machine-readable medium examples may include solid-state memory and optical and magnetic media. In one example, a large-capacity machine-readable medium includes a machine-readable medium having a plurality of particles with a constant (e.g., stationary) mass. Therefore, a large-capacity machine-readable medium is not a temporarily propagated signal. Specific examples of large-capacity machine-readable media may include: non-volatile memory such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EPSOM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

[0218] The instructions 1724 may also be sent or received over the communication network 1726 using a transmission medium via the network interface device 1720 using any of a variety of transmission protocols (e.g., frame relay, Internet Protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Exemplary communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), a mobile telephone network (e.g., a cellular network), a plain old telephone (POTS) network, and a wireless data network (e.g., a wireless network called a cellular network). The Institute of Electrical and Electronics Engineers (IEEE) 802.11 series of standards, known as IEEE 802.16 family of standards), IEEE 802.15.4 family of standards, peer-to-peer (P2P) networks, etc. In one example, the network interface device 1720 may include one or more physical jacks (e.g., Ethernet, coaxial or telephone jacks) or one or more antennas to connect to the communication network 1726. In an example, the network interface device 1720 may include multiple antennas to communicate wirelessly using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technology. The term "transmission medium" shall be deemed to include any intangible medium capable of storing, encoding or carrying instructions to be executed by the machine 1700, and includes digital or analog communication signals or other intangible media to facilitate the communication of such software.

[0219] Various embodiments are shown in the above figures. One or more features of one or more of these embodiments may be combined to form other embodiments.

[0220] The method examples described herein may be at least partially machine or computer implemented. Some examples may include a computer-readable medium or machine-readable medium encoded with instructions, which are operable to configure an electronic device or system to perform the method as described in the above examples. The implementation of such a method may include code, such as microcode, assembly language code, high-level language code, etc. Such code may include computer-readable instructions for performing various methods. The code may constitute part of a computer program product. In addition, the code may be tangibly stored on one or more volatile or non-volatile computer-readable media during execution or at other times.

[0221] The above detailed description is intended to be illustrative rather than limiting. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

Claims

1. A system for evaluating the health of a cleaning head assembly in a mobile cleaning robot, the cleaning head assembly including a cleaning member driven by a motor and rotatably engaging a floor surface to extract debris, the system comprising: The processor circuit is configured to: receiving robot data generated by the mobile cleaning robot traversing an environment; determining robot parameters using a portion of the received robot data, the portion of the robot data corresponding to a floor area in an environment traversed by the mobile cleaning robot, the floor area having a surface condition; and determining a status of the cleaning head based on the determined robot parameters, the status of the cleaning head indicating at least one of a level of wear or a level of debris accumulation of the cleaning member; and a user interface configured to notify a user of the determined status of the cleaning head; wherein the robot parameters include energy generated by the motor for driving the cleaning member across the floor area having the surface condition, and wherein the processor circuit is configured to: generating a trend of motor energy comprising a plurality of cleaning tasks, the plurality of cleaning tasks respectively comprising the mobile cleaning robot traversing a same floor area; determining a debris accumulation level based on an increasing trend in motor energy during a first monitoring period; and During a second monitoring period that is longer than the first monitoring period, the wear level is determined based on a decreasing trend of the motor energy.

2. The system according to claim 1, wherein: The processor circuit is configured to generate a trend of the robot parameters for a plurality of cleaning tasks, the plurality of cleaning tasks respectively comprising the mobile cleaning robot traversing a same floor area, and the processor circuit is configured to determine a state of the cleaning head based on the generated trend of the robot parameters.

3. A system according to any one of claims 1 or 2, wherein: The processor circuit is further configured to generate an estimate of a remaining useful life of the cleaning member using the determined robot parameters.

4. The system according to claim 1 or 2, wherein: The robot data includes measurements of one or more of the following: the voltage supplied to the motor; Motor current; the angular velocity of the cleaning member; or The torque generated at the cleaning member.

5. The system according to claim 3, wherein: The processor circuit is configured to: estimating a state variable of the cleaning member using (1) a mathematical model of the cleaning head components representing the dynamics of the cleaning head and (2) a portion of the data corresponding to the floor area having the surface condition; and The estimated state variables are used to generate a remaining useful life of the cleaning member.

6. The system according to claim 5, wherein: The state variables include disturbance torques associated with debris accumulation in the cleaning members or wear of the cleaning members.

7. The system according to claim 5, wherein: The mathematical model includes a state-space model, and the processor circuit is configured to generate a state-space response model using (1) a voltage supplied to a motor to drive the cleaning member and (2) a motor current generated when the mobile cleaning robot operates under one or more surface conditions.

8. The system according to claim 1 or 2, wherein: The processor circuit is configured to extract, based on a floor map containing information about surface conditions of one or more floor areas in an environment, portions of the received robot data corresponding to floor areas having the surface conditions, the surface conditions comprising one or more of: Floor type; The surface of the floor at a specific spatial location in the environment; A platform surface of a docking station for the mobile cleaning robot; or A floor surface of a specific size or shape.

9. The system according to claim 1 or 2, wherein: The processor circuit is configured to extract the portion of the received robot data according to a stage of a cleaning task, the stage of the cleaning task comprising at least one of: a docking phase, during which the mobile cleaning robot returns to the docking station; or The undocking phase, during which the mobile cleaning robot leaves the docking station.

10. The system according to claim 1 or 2, wherein: The first monitoring period is between two consecutive maintenance services of the cleaning head.

11. The system according to claim 1 or 2, wherein: The processor circuit is configured to trend the motor energy over a plurality of cleaning tasks, each cleaning task occurring at a particular time relative to a detected maintenance indication for the cleaning head.

12. The system of claim 11, comprising a maintenance detector circuit coupled to the one or more sensors to detect an indication that maintenance is being performed on the cleaning head.

13. The system according to claim 1 or 2, wherein: The robot parameters include a dynamic response of a motor that drives the cleaning member to rotatably engage a platform surface of a docking station of the mobile cleaning robot; wherein the processor circuit is configured to determine the state of the cleaning head based on a comparison of the determined dynamic response of the motor with one or more of a first motor response template for a worn cleaning head or a second motor response template for a debris accumulated cleaning head; and The first motor response template and the second motor response template are respectively generated using robot data corresponding to a cleaning member rotatably engaging a platform surface of the docking station.

14. The system according to claim 13, wherein: The processor circuit is configured to: generating a parametric model to fit the determined dynamic response of the motor; determining one or more model parameters of a parametric model so that the fit meets a specified criterion; and A condition of the cleaning head is determined using the determined one or more model parameters.

15. The system of claim 1 or 2, comprising a plurality of estimators associated with respective floor areas in the environment having respective surface conditions, wherein: Each of the plurality of estimators is configured to determine a respective robot parameter using a portion of the received robot data corresponding to a respective floor region; and The processor circuit is configured to: generating composite robot parameters using the robot parameters respectively determined by the plurality of estimators in the cleaning task; generating a trend of the composite robot parameter over a plurality of cleaning tasks, each cleaning task comprising the mobile cleaning robot traversing one or more respective floor areas; and A status of the cleaning head is determined based on the generated trend of the composite robot parameter.

16. The system of claim 15, wherein: The processor circuit is configured to determine a respective weight factor for each of the plurality of estimators and to generate the composite robot parameters using a combination of the robot parameters weighted by the respective weight factor.

17. The system of claim 16, wherein: Each of the plurality of estimators is configured to generate an estimated remaining useful life of the cleaning member; and The processor circuit is configured to generate an aggregate remaining useful life using a combination of the remaining useful lives weighted by respective weighting factors.

18. The system of claim 16, wherein: The processor circuit is configured to determine the weighting factor based on a floor type of a floor region associated with a corresponding estimator.

19. The system of claim 16, wherein: The processor circuit is configured to determine the weighting factor based on a variability measure of robot data acquired as the mobile cleaning robot traverses a floor area associated with a corresponding estimator in a cleaning task.

20. The system according to claim 1 or 2, wherein: The user interface is configured to inform a user of a remaining useful life of the cleaning member.

21. The system according to claim 1 or 2, wherein: The user interface is configured to generate a recommendation to clean the cleaning member in response to the determined level of debris accumulation or to generate a recommendation to replace the cleaning member based on the determined level of wear.

22. The system according to claim 1 or 2, wherein: The user interface is configured to prompt a user to purchase a new cleaning head to replace a cleaning head having a determined level of wear.

23. A method of assessing the health of a cleaning head assembly in a mobile cleaning robot, the cleaning head assembly comprising a cleaning member driven by a motor and rotatably engaging a floor surface to extract debris, the method comprising: receiving robot data generated by the mobile cleaning robot traversing an environment; determining robot parameters using, via a processor circuit, a portion of the received robot data, the portion of the robot data corresponding to a floor area in an environment traversed by the mobile cleaning robot, the floor area having a surface condition; determining, via the processor circuit, a status of the cleaning head based on the determined robot parameters, the status of the cleaning head indicating at least one of a level of wear or a level of debris accumulation of the cleaning members; and Displaying the determined status of the cleaning head on a user interface; Wherein the robot parameters include energy generated by the motor for driving the cleaning member across the floor area having the surface condition, the method comprising: generating a trend of a robot parameter comprising a plurality of cleaning tasks, the plurality of cleaning tasks respectively comprising the mobile cleaning robot traversing a same floor area; determining a debris accumulation level based on an increasing trend in motor energy during a first monitoring period; and During a second monitoring period that is longer than the first monitoring period, the wear level is determined based on a decreasing trend of the motor energy.

24. The method of claim 23, comprising extracting the portion of the received robot data corresponding to the floor area having the surface condition based on a floor map containing information about the surface condition of one or more floor areas in the environment, the surface condition comprising one or more of: Floor type; The surface of the floor at a specific location in the environment; A platform surface for a docking station for a mobile cleaning robot; or A floor surface of a specific size or shape.

25. The method of any one of claims 23 or 24, comprising extracting the portion of the received robot data based on a specific phase of a cleaning task, the specific phase of the cleaning task comprising at least one of: Docking phase, during which the cleaning robot is moved back to the docking station; or In the undocking phase, the cleaning robot is moved away from the docking station.

26. The method of claim 23 or 24, further comprising using the determined robot parameters to generate an estimate of the remaining useful life of the cleaning member.

27. The method according to claim 26, comprising: estimating a state variable of the cleaning member using (1) a mathematical model of the cleaning head components representing the dynamics of the cleaning head and (2) a portion of the data corresponding to the floor area having the surface condition; and The estimated state variables are used to generate a remaining useful life of the cleaning member.

28. The method according to claim 27, wherein: The state variables include disturbance torques associated with debris accumulation in the cleaning components or wear of the cleaning components, and the method includes generating a mathematical model comprising a state-space model representing the relationship between (1) a voltage supplied to a motor to drive the cleaning components and (2) a motor current generated when the mobile cleaning robot operates under one or more surface conditions.

29. The method according to claim 23 or 24, comprising: detecting or receiving an indication that maintenance is being performed on the cleaning head; determining a debris accumulation level based on an increasing trend of motor energy during a first monitoring period between two consecutive maintenance services of the cleaning head; and The wear level is determined based on a decreasing trend of motor energy over a plurality of cleaning tasks, each cleaning task occurring at a particular time relative to a detected maintenance indication for the cleaning head.

30. The method according to claim 23 or 24, wherein: The robot parameters include a dynamic response of a motor that drives the cleaning member to rotatably engage a platform surface of a docking station of the mobile cleaning robot; wherein the state of the cleaning head is determined based on a comparison of the determined dynamic response of the motor with one or more of a first motor response template for a worn cleaning head or a second motor response template for a debris accumulated cleaning head; and The first motor response template and the second motor response template are respectively generated using robot data corresponding to a cleaning member rotatably engaging a platform surface of the docking station.

31. The method according to claim 23 or 24, comprising: determining first robot parameters using at least a first portion of the received robot data corresponding to a first floor area in the environment having a first surface condition, and determining second robot parameters using a second portion of the received robot data corresponding to a second floor area in the environment having a second surface condition, the first floor area and the second floor area each being traversed by the mobile cleaning robot; generating a composite robot parameter using at least the first robot parameter and the second robot parameter; generating a trend of a composite robot parameter over a plurality of cleaning tasks, each cleaning task comprising the mobile cleaning robot traversing one or more of a first floor area or a second floor area; and The status of the cleaning head is determined based on the generated trends of the composite robot parameters.

32. The method according to claim 31, wherein: Generating the composite robot parameters includes generating a weighted combination of at least the first robot parameter and the second robot parameter weighted by respective weight factors.

33. The method according to claim 23 or 24, comprising: generating at least a first estimate of a remaining useful life of the cleaning member using the first robot parameters and generating a second remaining useful life of the cleaning member using the second robot parameters; and An aggregate remaining useful life is generated using at least the first remaining useful life and the second remaining useful life weighted by respective weight factors.

34. An apparatus for evaluating the health of a cleaning head assembly in a mobile cleaning robot, the apparatus comprising: communications circuitry configured to be communicatively coupled to the mobile cleaning robot to receive robot data generated by the mobile cleaning robot traversing an environment; a memory circuit configured to store a floor map containing information about surface conditions including floor type for one or more floor areas in an environment; The processor circuit is configured to: extracting, using the floor map, a portion of the received robot data corresponding to a floor area traversed by the mobile cleaning robot, the floor area having a particular floor type; using the extracted data portions to determine robot parameters; and determining a status of the cleaning head based on the determined robot parameters, the status of the cleaning head indicating at least one of a level of wear or a level of debris accumulation of cleaning components of the cleaning head assembly; and a user interface configured to notify a user of a determined status of the cleaning head; wherein the robot parameters include energy generated by a motor for driving the cleaning member across a floor area having a specific floor type, and Wherein, the processor circuit is configured as: generating a trend of motor energy comprising a plurality of cleaning tasks, the plurality of cleaning tasks respectively comprising the mobile cleaning robot traversing a same floor area; determining a debris accumulation level based on an increasing trend in motor energy during a first monitoring period; and During a second monitoring period that is longer than the first monitoring period, the wear level is determined based on a decreasing trend of the motor energy.

35. The apparatus of claim 34, wherein: The processor circuit is further configured to generate an estimate of a remaining useful life of the cleaning member using the determined robot parameters.

36. Apparatus according to any one of claims 34 to 35, wherein: The robot parameters include a dynamic response of a motor that drives the cleaning member to rotatably engage a platform surface of a docking station of the mobile cleaning robot; wherein the processor circuit is configured to determine the state of the cleaning head based on a comparison of the determined dynamic response of the motor with one or more of a first motor response template for a worn cleaning head or a second motor response template for a debris accumulated cleaning head; and The first motor response template and the second motor response template are respectively generated using robot data corresponding to a cleaning member rotatably engaging a platform surface of the docking station.

37. Apparatus according to any one of claims 34 to 35, wherein: The processor circuit is configured to: determining first robot parameters using at least a first portion of the received robot data corresponding to a first floor area having a first floor type, and determining second robot parameters using a second portion of the received robot data corresponding to a second floor area having a second floor type, the first floor area and the second floor area each being traversed by the mobile cleaning robot; generating a composite robot parameter using at least the first robot parameter and the second robot parameter weighted by respective weight factors; generating a trend of a composite robot parameter over a plurality of cleaning tasks, each cleaning task comprising moving the cleaning robot across one or more of the first floor area or the second floor area; and The status of the cleaning head is determined based on the generation trend of the composite robot parameters.

Citation Information

Patent Citations

  • Autonomous robot auto-docking and energy management systems and methods

    US20050156562A1

  • Robot management systems for determining docking station pose including mobile robots and methods using same

    US20140100693A1

  • Mobile Robot Providing Environmental Mapping for Household Environmental Control

    US20140207282A1

  • Method and system for robot localization and confinement

    US7196487B2

  • Protocol translation in a storage system

    US7404000B2