Prioritizing cleaning for mobile cleaning robots

JP2026530430APending Publication Date: 2026-09-08IROBOT CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2026512139
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-23
Filing Date
2024-08-14
Publication Date
2026-09-08

Smart Images

  • Figure 2026530430000001_ABST
    Figure 2026530430000001_ABST
Patent Text Reader

Abstract

A method for prioritizing the cleaning of rooms in an environment for a mobile cleaning robot may include using a controller to generate a cleanliness score for each room in the environment. Each cleanliness score may indicate the amount of dirt expected to be collected in each room by the mobile cleaning robot. This method may also include generating room cleaning priorities based at least partially on each room's cleanliness score. This method may also include scheduling the mobile cleaning robot's actions for planned missions based on each room cleaning priority in the environment.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Priority Claim This patent application claims the benefit of priority under 35 U.S.C. § 119(e) to U.S. Patent Application Serial No. 18 / 237,117 filed by Steven Baron on August 23, 2023, entitled "CLEANING PRIORITIZATION FOR MOBILE CLEANING ROBOT" (Attorney Docket No. 5329.280US1), the entire content of which is incorporated herein by reference.

[0002] The examples described herein generally relate to mobile cleaning robots, and more particularly to systems, devices, and methods for scheduling and controlling mobile robots. Background Art

[0003] Autonomous mobile robots can move around an environment and perform a number of functions and operations in various categories, including but not limited to security operations, infrastructure or maintenance operations, navigation or mapping operations, inventory management operations, and robot / human interaction operations. Some mobile robots, known as cleaning robots, are capable of autonomously performing cleaning tasks in an environment, such as a home. Many types of cleaning robots are autonomous to some extent and in different ways. For example, a cleaning robot can perform a cleaning mission, in which the robot traverses the environment while simultaneously picking up (e.g., suctioning) debris from the floor surfaces in the environment of the mobile cleaning robot.

[0004] Some mobile robots can store a map of the environment in which they operate. This map can be used to achieve goals such as route planning or navigating the environment to perform missions, such as cleaning missions. [Prior art documents] [Patent Documents]

[0005] [Patent Document 1] U.S. Patent No. 7,196,487 [Patent Document 2] U.S. Patent No. 7,404,000 [Patent Document 3] U.S. Patent Application Publication No. 20050156562 [Patent Document 4] U.S. Patent Application Publication No. 20140100693 [Patent Document 5] U.S. Patent Publication No. 2014 / 0207282 [Patent Document 6] U.S. Patent Application No. 20200089255 [Overview of the project] [Means for solving the problem]

[0006] Autonomous mobile robots (hereinafter, "mobile robots") can be controlled locally (e.g., via a control device on the robot) or remotely (e.g., via a remote mobile device) and move around in an environment. In the example of scheduling remote missions and controlling robots, a mobile application, such as one implemented on a mobile device (e.g., a mobile phone), can display various pieces of information organized for easy viewing. A user can use the mobile application to manage (e.g., add or remove) one or more mobile robots located in their home, and to monitor the operational status of the mobile robots. In addition, a user can use the mobile application to create and maintain personalized mission routines. A mission routine may be represented by an editable schedule that includes the time or sequence for performing one or more tasks, such as cleaning one or more rooms or floor areas in the user's home. A mission routine (or the tasks within it) may be characterized by or referencing the user experience, such as the time, pattern, or manner in which a room is used or interacts with objects within it, the user's daily routine, or the user's actions. The mobile application can display information about mission routines on mobile devices and other locations, allowing users to monitor the progress of missions they are currently performing. Users can also make changes to tasks while they are running.

[0007] In various applications, mobile applications can also display maps on the user interface, such as a floor plan of the area where the mission is performed. Other information, including robot placement and operational status, mission progress, or tasks within it, may be displayed during a cleaning mission. Users can use the mobile application to create or update maps, create new areas, add or remove objects, or add semantic annotations to objects on the map. Users can also control the operation of the mobile robot by adjusting mission scheduling parameters, such as navigation parameters or the timing or sequence of one or more tasks in a mission routine.

[0008] The inventors of this specification have found an opportunity to improve the user experience for mobile cleaning robots by automating cleaning schedules, which can be turned on by the user and automatically schedule the activities of the mobile cleaning robot based on system preferences, smart clean parameters, and data from previous cleaning operations.

[0009] The example provides a method for prioritizing the cleaning of rooms in an environment for a mobile cleaning robot, which may include: generating a cleanliness score for each room in the environment using a controller, each cleanliness score indicating the amount of dirt expected in each room by the mobile cleaning robot; generating room cleaning priorities based at least partially on the cleanliness score for each room; and scheduling the actions of the mobile cleaning robot for a planned mission based on the room cleaning priority for each room in the environment.

[0010] In this example, the mobile cleaning robot may comprise a drive system configured to move the mobile cleaning robot around an environment, a cleaning system, a memory device containing instructions, and one or more processors coupled to the memory device, the one or more processors including a processing circuit which, when operating, generates a cleanliness score for each room of the environment based on instructions, each cleanliness score indicating the expected amount of dirt in each room by the mobile cleaning robot, generates a room cleaning priority based at least partially on the cleanliness score of each room, and is configured to schedule the operation of the mobile cleaning robot for a planned mission based on the room cleaning priority of each room in the environment.

[0011] For example, a mobile robotic system for prioritizing the cleaning of rooms in an environment may comprise a drive system configured to move the mobile cleaning robot around the environment, a mobile cleaning robot which may include a cleaning system, a mobile device which operably communicates with the mobile cleaning robot, a memory device which stores instructions, and one or more processors coupled to the memory device which include a processing circuit which, when in operation, generates a cleanliness score for each room in the environment based on instructions, each cleanliness score which indicates the amount of dirt expected in each room by the mobile cleaning robot, generates a room cleaning priority based at least in part on the cleanliness score of each room, and is configured to schedule the operation of the mobile cleaning robot for a planned mission based on the room cleaning priority of each room in the environment.

[0012] Various examples are illustrated in the attached drawings. Such examples are illustrative and are not intended to be exhaustive or exclusive examples of the subject matter. [Brief explanation of the drawing]

[0013] [Figure 1] This is a plan view illustrating a mobile cleaning robot in an environment. [Figure 2A] It is an isometric view illustrating a mobile cleaning robot in a first situation. [Figure 2B] It is an isometric view illustrating a mobile cleaning robot in a second situation. [Figure 2C] It is an isometric view illustrating a mobile cleaning robot in a third situation. [Figure 2D] It is a bottom view illustrating a mobile cleaning robot in the third situation. [Figure 2E] It is an isometric top view illustrating a mobile cleaning robot in the third situation. [Figure 3] It is a diagram illustrating an example of a control architecture for operating a mobile cleaning robot. [Figure 4A] It is a diagram illustrating an example of a communication network in which a mobile cleaning robot operates and data transmission within the network. [Figure 4B] It is a diagram illustrating an exemplary process for exchanging information between the mobile robot and other devices in the communication network. [Figure 5A] It is a diagram illustrating an example of automatic mission scheduling and robot control. [Figure 5B] It is a diagram illustrating an example of a cleaning turbo mode that can be used by a mobile cleaning robot. [Figure 6] It is a diagram illustrating an example of a system that uses cleanliness scores to prioritize cleaning by a mobile cleaning robot. [Figure 7] It is a diagram illustrating an example of room ranking order for room cleaning prioritization by a mobile cleaning robot. [Figure 8] It is a diagram illustrating an example of cleanliness degradation. [Figure 9] It is a diagram illustrating an example of a raw missed space heat map for a mobile cleaning robot. [Figure 10]FIG. 1 is a diagram illustrating an example of a scaled and smoothed missed space heat map for a mobile cleaning robot. [Figure 11] FIG. 2 is a diagram illustrating an example of map boundary lines along with a missed space heat map for a mobile cleaning robot. [Figure 12] FIG. 3 is a diagram illustrating an example user interface on a mobile device. [Figure 13] FIG. 4 is a diagram illustrating an example user interface on a mobile device. [Figure 14] FIG. 5 is a diagram illustrating an example user interface on a mobile device. [Figure 15] FIG. 6 is a diagram illustrating an example user interface on a mobile device. [Figure 16] FIG. 7 is a diagram illustrating an example user interface on a mobile device. [Figure 17] FIG. 8 is a diagram illustrating an example user interface on a mobile device. [Figure 18] FIG. 9 is a block diagram illustrating an example of a machine in which one or more examples may be implemented. DETAILED DESCRIPTION OF EMBODIMENTS FOR CARRYING OUT THE INVENTION

[0014] Autonomous mobile robots can be controlled locally or remotely to perform missions, such as cleaning missions involving rooms or floor surfaces to be cleaned by a mobile cleaning robot. Users can use a remote control device to view a map of the environment, create cleaning missions on the remote control device's user interface (UI), control the mobile robot to perform the cleaning mission, and connect and interact with other smart home devices, services, or ecosystems. Time-based scheduling has been used with traditional mobile robots. For example, a user can program or select several days or periods for a cleaning mission or some of the tasks within it. Time-based scheduling can take different forms, such as being related to an individual's daily schedule or events, including wake-up times, work departure times, return-home times, or similar times. Time-based scheduling has several drawbacks. Firstly, manual scheduling can be cumbersome and time-consuming, as a single mission may include multiple tasks, each requiring a separate time schedule. In practice, however, some missions are highly repeatable routines. Repeated mission creation can be burdensome for the user and increase the likelihood of introducing human error or inconsistencies between missions. Secondly, time-based schedules are generally static and lack the ability to accommodate schedule changes. For example, the time to "get home from work" can change due to traffic conditions or other exceptional events. Lacking the desired automation, users must manually set new time schedules or initiate ad-hoc robot missions to handle exceptions, which can be cumbersome and inconvenient, especially for users with busy lifestyles.

[0015] Traditional robot scheduling is also primarily a map-based approach, where the user defines a mission as a room or floor area on a map that needs to be cleaned. The map-location approach can be disadvantageous because it may not be customizable to meet the individual user's needs or unique goals. For example, a map-room-based cleaning mission may not suit the user's preferences for the time, place, or pattern of room cleaning, or the user's past experience or habits of using a mobile robot in their environment, nor does it have a real-time way of knowing where the user is inside or outside the house. The map-location approach may also lack contextual content of the mission, such as the spatial or temporal context of the mission or the tasks within it. For example, a user may be engaged in several activities and not want to be interrupted by a mobile robot moving around to perform a scheduled mission (e.g., according to a time-based schedule). The map-location approach, unfortunately, can limit the user experience and usability of robot control for mission scheduling. In contrast, mission scheduling that references and is triggered by user behavior or other contextual information within the home may be preferable to map-based scheduling.

[0016] This disclosure helps address unmet needs for devices and methods to improve mission scheduling and mobile robot control and enhance automation by leveraging one or more historical operational data or time-based degradation data from mobile cleaning robots to update the predicted cleanliness of each room to be cleaned by the mobile cleaning robot, and prioritizing and executing cleaning schedules that can meet the user's cleaning needs even with little or no user input.

[0017] Examples of autonomous mobile robots Figure 1 illustrates a plan view of a mobile cleaning robot 100 in an environment 40 according to at least one example of the present disclosure. The environment 40 may be a dwelling such as a house or apartment and may include rooms 42a-42e. Obstacles such as a bed 44, a table 46, and a central kitchen counter 48 may be placed within the rooms 42 of the environment. Each of the rooms 42a-42e may have floor surfaces 50a-50e. Some rooms, such as room 42d, may include rugs, such as a rug 52. The floor surface 50 may be one or more types such as hardwood, ceramic, low-pile carpet, medium-pile carpet, long (or high)-pile carpet, stone, or the like.

[0018] The mobile cleaning robot 100 can be operated by a user 60 or the like to autonomously clean the environment 40 room by room. For example, the robot 100 can clean the floor surface 50a of one room, such as room 42a, before moving to the next room, such as room 42d, and cleaning the surface of room 42d. Different rooms may have different types of floor surfaces. For example, room 42e (which may be a kitchen) may have a hard floor surface, such as wood or ceramic tile, and room 42a (which may be a bedroom) may have a carpeted surface, such as a medium-pile carpet. Other rooms, such as room 42d (which may be a dining room), may include multiple surfaces where a rug 52 is placed within room 42d.

[0019] During cleaning or driving operations, the robot 100 can create a map of the environment 40 using data collected from various sensors (such as optical sensors) and calculations (such as distance measurement and obstacle detection). After the map is created, the user 60 can define rooms or zones (such as room 42) within the map. The map may be presented to the user 60 on a user interface, such as a mobile device, from which the user 60 can command or change cleaning preferences.

[0020] Furthermore, during operation, the robot 100 can detect the surface type within each of the rooms 42, which can be stored in the robot 100 or another device. The robot 100 can update the map (or related data) to include or consider the surface types of each floor surface 50a-50e in each of the rooms 42 of the environment 40. In the example, the map may be updated to show different surface types, such as within each of the rooms 42.

[0021] In this example, user 60 can define an action control zone 54. In autonomous operation, robot 100 can initiate an action in response to being within or near the action control zone 54. For example, user 60 can define an area within the environment 40 that tends to get dirty as the action control zone 54. In response, robot 100 can initiate a concentrated cleaning action to perform concentrated cleaning of a portion of the floor surface 50d within the action control zone 54.

[0022] Figures 2A to 2C are described together below. Figure 2A illustrates an isometric view of the mobile cleaning robot 100 with the pad assembly in the retracted position. Figure 2B illustrates an isometric view of the mobile cleaning robot 100 with the pad assembly in the extended position. Figure 2C illustrates an isometric view of the mobile cleaning robot 100 with the pad assembly in the mopping position. Figures 2A to 2C also show the Front and Rear direction indicators.

[0023] The mobile cleaning robot 100 may include a main body 102 and a mopping system 104. The mopping system 104 may include arms 106a and 106b (collectively referred to as arm 106) and a pad assembly 108. The robot 100 may also include other features such as a bumper 109 and an extractor (including rollers), one or more side brushes, a vacuuming system, a controller, a drive system (e.g., motor, gear train, and wheels), casters, and sensors, which are described in further detail below. The distal portion of arm 106 is connected to the pad assembly 108, and the proximal portions of arms 106a and 106b may be connected to an internal drive system to drive arm 106 to move the pad assembly 108.

[0024] Figures 2A to 2C illustrate how the robot 100 can be operated to move the pad assembly 108 from the stowed position in Figure 2A to the transition or partially deployed position in Figure 2B, and further to the mopping or deployed position in Figure 2C. In the stowed position in Figure 2A, the robot 100 can only perform a vacuuming operation. In the deployed position in Figure 2C, the robot 100 can perform either a vacuuming operation or a mopping operation. Figures 2D to 2E describe additional components of the robot 100.

[0025] Figure 2D illustrates a bottom view of the mobile cleaning robot 100, and Figure 2E illustrates an isometric top view of the robot 100. Figures 2D to 2E are described together below. The robot 100 in Figures 2D and 2E may correspond to those in Figures 2A to 2C, and Figures 2D to 2E show additional details of the robot 100. For example, Figures 2D to 2E show that the robot 100 may include a body 102, a bumper 109, and a cleaning assembly 113 (including rollers 114a and 114b), actuators 116a and 116b, drive wheels 118a and 118b, caster wheels 120, a side brush assembly 122, a vacuum cleaner assembly 124, a memory 126, a sensor 128, and a cleaning bin 130. The mopping system 104 may also include a tank 132 and a pump 134.

[0026] The cleaning robot 100 can be an autonomous cleaning robot that autonomously traverses the floor surface 50 (Figure 1) while picking up debris from different parts of the floor surface 50. As shown in Figure 2D, the robot 100 may include a body 102 that can move across the floor surface 50. The body 102 may include a number of connected structures to which the movable or fixed components of the cleaning robot 100 are mounted. The connected structures may include, for example, an outer housing for covering the internal components of the cleaning robot 100, a chassis to which the drive wheels 118a and 118b and cleaning rollers 114a and 114b (of the cleaning assembly 113) are mounted, and a bumper 109 connected to the outer housing. The caster wheels 120 may support the front portion of the body 102 above the floor surface 50, and the drive wheels 118a and 118b may support the middle and rear portions of the body 102 above the floor surface 50 (and may also support the majority of the weight of the robot 100).

[0027] As shown in Figure 2D, the main body 102 may have a substantially semicircular shape and include a front portion which can be connected to the bumper 109. The main body 102 may also include a rear portion which has a substantially semicircular shape. In other examples, the main body 102 may have other shapes, such as a square front or a straight front. The robot 100 may also include a drive system including actuators (e.g., motors) 116a and 116b. The actuators 116a and 116b may be operably connected to drive wheels 118a and 118b which can be connected to the main body 102 and rotatably mounted on the main body 102. When driven, the actuators 116a and 116b may rotate the drive wheels 118a and 118b, enabling the robot 100 to move autonomously from edge to edge across the floor surface 50.

[0028] The vacuum cleaner assembly 124 is located at least partially within the main body 102 of the robot 100, such as in the rear portion of the main body 102, and may be located elsewhere in other examples. The vacuum cleaner assembly 124 may include a motor for driving an impeller that generates airflow when rotated. The airflow and cleaning roller 114 can work together to draw debris into the robot 100 when rotated. A cleaning bin 130 is mounted on the main body 102 and can contain the debris drawn in by the robot 100. A filter within the main body 102 can separate debris from the airflow before it enters the vacuum cleaner assembly 124 and is discharged from the main body 102. In this regard, debris may be captured in both the cleaning bin 130 and the filter before the airflow is discharged from the main body 102. In the example, the vacuum cleaner assembly 124 and cleaning assembly 113 may be included or of different types, at their discretion. Optionally, the vacuum cleaner assembly 124 may be operated during a mopping operation, such as one that includes a mopping system 104. That is, the robot 100 can perform a vacuuming mission or operation and a mopping mission or operation simultaneously.

[0029] The cleaning rollers 114a and 114b may be operably connected to an actuator 115, for example, a motor, through a gearbox. The cleaning assembly 113 and the cleaning rollers 114a and 114b may be positioned in front of the cleaning bin 130. The cleaning roller 114 may be mounted on the underside of the body 102 so that the cleaning rollers 114a and 114b engage with debris on the floor surface 50 during cleaning when the underside of the body 102 is facing the floor surface 50. Figure 2D further shows that the pad assembly 108 may include a brake 129 which may be configured to engage with a portion of the pad assembly 108 to restrict the movement or motion of the mopping pad 142 (and the pad tray 141 to which the mopping pad 142 is attached) relative to the body 102. In this example, the mopping pad 142 can support the rear portion of the body 102 when the mobile cleaning robot 100 is in mopping mode. The cleaning bin 130 may also rest on the mopping pad 142.

[0030] The controller 111 is located within the main unit 102 and can be a programmable controller, such as a single or multi-board computer, a direct digital controller (DDC), a programmable logic controller (PLC), or similar. In other examples, the controller 111 may be any computing device, such as a handheld computer, for example, a smartphone, tablet, laptop, desktop computer, or any other computing device having a processor, memory, and communication capabilities. The memory 126 may be one or more types of memory, such as volatile or non-volatile memory, read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, and other storage devices and media. The memory 126 may be located within the main unit 102, connected to the controller 111, and accessible by the controller 111.

[0031] The controller 111 can operate actuators 116a and 116b so that the robot 100 moves around the floor surface 50 by autonomous navigation during cleaning. Actuators 116a and 116b may be operated to drive the robot 100 in the forward direction, the backward direction, and to turn the robot 100. The controller 111 can operate the vacuum cleaner assembly 124 to generate an airflow that passes through the gap near the cleaning roller 114, through the main body 102, and out of the main body 102.

[0032] The control system may further comprise a sensor system having one or more electrical sensors. The sensor system may generate signals indicating the current position of the robot 100, as described herein, and may generate signals indicating the position of the robot 100 as it moves along the floor surface 50. Sensors 128 (shown in Figure 2D) may be positioned along the bottom of the main body 102. Each of the sensors 128 may be an optical sensor configured to detect the presence or absence of an object below the optical sensor, such as the floor surface 50. Sensors 128 (optionally cliff sensors) may be connected to a controller 111 and used by the controller 111 to navigate the robot 100 within the environment 40. In the example, the cliff sensors may be used to detect the type of floor surface that the controller 111 can use to selectively operate the mopping system 104.

[0033] The cleaning pad assembly 108 may be a cleaning pad connected to the bottom of the main body 102, such as a cleaning bin 130, in a location behind the cleaning assembly 113 (or connected to a moving mechanism configured to move the assembly 108 between a storage position and a cleaning position). The tank 132 may be a water tank configured to store water or a fluid, such as a cleaning fluid, to supply to the mopping pad 142. The pump 134 is connected to the controller 111 and can communicate fluidly with the tank 132. The controller 111 may be configured to operate the pump 134 to supply fluid to the mopping pad 142 during a mopping operation. The controller 111 may also be configured to operate the pump 134 to supply fluid around the mopping pad 142 during a mopping operation. In this example, the pad 142 may be a dry pad, such as for dust removal or dry debris removal. The pad 142 may also be any cloth, fabric, or similar configured for cleaning floor surfaces (either wet or dry).

[0034] In some example operations, the controller 111 can be used to command the robot 100 to perform a mission. In such cases, the controller 111 can drive the drive wheels 118 and operate the actuator 116 to propel the robot 100 along the floor surface 50. The robot 100 can be propelled in a forward or backward direction. The robot 100 can also be propelled so that it turns in place or turns while moving in a forward or backward direction. In addition, the controller 111 can operate the actuator 115 to rotate the rollers 114a and 114b, operate the side brush assembly 122, and operate the motor of the vacuum cleaner assembly 124 to generate airflow. The controller 111 can execute software stored in memory 126 to operate various motors of the robot 100, thereby causing the robot 100 to perform various navigation and cleaning operations.

[0035] Various sensors on the robot 100 can be used to assist the robot in navigating and cleaning within the environment 40. For example, a cliff sensor can detect obstacles such as drop-offs and cliffs that are below the portion of the robot 100 on which the cliff sensor is installed. The cliff sensor can transmit signals to the controller 111 so that the controller 111 can change the direction of the robot 100 based on the signals from the sensor.

[0036] A proximity sensor can generate a signal based on the presence or absence of an object in front of the optical sensor. For example, detectable objects include obstacles such as furniture, walls, people, and other objects in the environment 40 of the robot 100. The proximity sensor can transmit a signal to the controller 111 so that the controller can change the direction of the robot 100 based on the signal from the proximity sensor. In the example, a bump sensor may be used to detect the movement of the bumper 109 along the longitudinal axis of the robot 100. A bump sensor 139 can also be used to detect the movement of the bumper 109 along one or more sides of the robot 100 and can optionally detect the vertical movement of the bumper. The bump sensor 139 can transmit a signal to the controller 111 so that the controller can change the direction of the robot 100 based on the signal from the bump sensor 139.

[0037] The robot 100 may optionally include one or more dirt sensors 144 connected to the main body 102 and communicating with the controller 111. The dirt sensors 144 may be microphones, piezoelectric sensors, optical sensors, or similar devices located in or near the path of the dirt, such as near the opening of the cleaning roller 114 or in one or more ducts within the main body 102. This allows the dirt sensors 144 to detect at any time during the cleaning mission how much dirt has been collected by the vacuum cleaner assembly 124 (for example, via the cleaning assembly 113). Because the robot 100 can recognize its placement, it can maintain a log or record showing which areas or rooms on the map are dirtier or where more dirt is collected. This information can be used in several ways, as will be further described below.

[0038] The image capture device 140 may be configured to generate signals based on images of the environment 40 surrounding the robot 100 as the robot 100 moves around on the floor surface 50. The image capture device 140 can transmit such signals to the controller 111. The controller 111 can use one or more signals from the image capture device 140 for various tasks, algorithms, or similar, as will be described in more detail below.

[0039] In the example, the obstacle-following sensor can detect detectable objects, including obstacles such as furniture, walls, people, and other objects in the environment of the robot 100. In some implementations, the sensor system may include obstacle-following sensors along the side surface, which can detect the presence or absence of objects adjacent to the side surface. One or more obstacle-following sensors may also function as obstacle detection sensors, similar to, for example, the proximity sensors described herein.

[0040] The robot 100 may be further equipped with sensors to track the distance it travels. For example, the sensor system may include encoders associated with the motors 116 for the drive wheels 118, and these encoders may track the distance the robot 100 has traveled. In some implementations, the sensor system may include optical sensors facing downward toward the floor. The optical sensors may be positioned to direct light through the bottom surface of the robot 100 toward the floor 50. The optical sensors may be able to detect the reflection of light and, based on the changes in the floor features as the robot 100 moves along the floor 50, the distance the robot 100 has traveled can be detected.

[0041] The controller 111 can use data collected by the sensors of the sensor system to control the navigation movements of the robot 100 during mission execution. For example, the controller 111 can use sensor data collected by the robot 100's obstacle detection sensors (cliff sensors, proximity sensors, and bump sensors) to enable the robot 100 to avoid obstacles in its environment during mission execution.

[0042] Sensor data can also be used by the controller 111 for simultaneous localization and environmental mapping (SLAM) techniques, in which the controller 111 extracts environmental features represented by the sensor data and constructs a map of the floor surface 50 of the environment. Sensor data collected by the image capture device 140 can be used by the controller 111 for techniques such as vision-based SLAM (VSLAM), in which the controller 111 extracts visual features corresponding to objects in the environment 40 and uses these visual features to construct a map. When the controller 111 instructs the robot 100 to move around on the floor surface 50 during mission execution, the controller 111 can use SLAM techniques to detect features represented by the collected sensor data and determine the placement of the robot 100 on the map by comparing those features with previously stored features. The map formed from the sensor data can show the arrangement of traversable and non-traversable spaces in the environment. For example, the arrangement of obstacles may be shown on the map as non-traversable spaces, and the arrangement of open spaces on the floor may be shown on the map as traversable spaces.

[0043] Sensor data collected by any of the sensors may be stored in memory 126. In addition, other data generated for SLAM technology, including mapping data that forms a map, may be stored in memory 126. These data generated during mission execution may include persistent data that is generated during mission execution and available for use in subsequent mission executions. In addition to storing software that causes the robot 100 to perform its actions, memory 126 can store data obtained as a result of processing sensor data for access by the controller 111. For example, the map may be a diagram that is available and updatable by the robot 100's controller 111 between missions to navigate the robot 100 as it moves around the floor surface 50.

[0044] Persistent data, including a persistent map, can help enable the robot 100 to efficiently clean the floor surface 50. For example, this map can allow the controller 111 to guide the robot 100 towards available floor space and avoid spaces that cannot be traversed. In addition, for subsequent missions, the controller 111 can use this map to help optimize the path taken during mission execution and plan the navigation of the robot 100 through the environment 40.

[0045] The controller 111 can also send commands to the motor (inside the main body 102) to drive the arm 106 to move the pad assembly 108 between a retracted position (shown in Figures 2A and 2D) and an deployed position (shown in Figures 2C and 2E). In the deployed position, the pad assembly 108 (mop pad 142) can be used to mop the floor surface of any room in the environment 40.

[0046] The mopping pad 142 can be a dry pad or a wet pad. Optionally, when the mopping pad 142 is a wet pad, the pump 134 can be operated by the controller 111 to spray or drip a fluid (e.g., water or cleaning solution) onto the floor surface 50 or the mopping pad 142. The wet mopping pad 142 can then be used by the robot 100 to perform a wet mopping operation on the floor surface 50 of the environment 40. As described in more detail below, the controller 111 can determine when to move the pad tray 141 and the mopping pad 142 between the storage position and the cleaning position.

[0047] Figure 3 illustrates an example of a control architecture 300 for operating a mobile cleaning robot. The controller circuit 303 can be communicatively coupled to various subsystems of the mobile robot 100, including a communication system 305, a cleaning system 310, a drive system 311, and a sensor system 320. The controller circuit 303 may include a memory storage element 344 that can hold data and instructions for processing by a processor 324. The processor 324 can receive program instructions and feedback data from the memory storage element 344, execute logical operations called by the program instructions, and generate command signals to operate each subsystem component of the mobile robot 100. An input / output unit 326 can transmit command signals and receive feedback from various illustrated components.

[0048] 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 a controller circuit 303. In an example, the beacon communication module 306 may be operable to transmit signals to and receive signals from a remote device. For example, the beacon communication module 306 may detect navigation signals projected from a navigation or virtual wall beacon radiator, or homing signals projected from a docking station radiator. Docking technology, confinement technology, home base technology, and homing technology are described in U.S. Patent No. 7,196,487, U.S. Patent No. 7,404,000, U.S. Patent Application Publication No. 20050156562, and U.S. Patent Application Publication No. 20140100693 (all of which are incorporated herein by reference). As described in U.S. Patent Publication No. 2014 / 0207282 (which is incorporated herein by reference in its entirety), the wireless communication module 307 can facilitate the communication of information describing the status of the mobile robot 100 over a suitable wireless network (e.g., a wireless local area network) with one or more mobile devices (e.g., mobile device 404 shown in Figure 4A). Details of the communication system 305 are described below with reference to Figure 4A and the like.

[0049] The cleaning system 310 may include an actuator 116 for driving a side brush assembly 122 and a suction fan motor 316 for a vacuum cleaner assembly 124. The cleaning system 310 may include a number of motor sensors 317 that can monitor the operation of the actuator 116 and the suction fan motor 316 to facilitate closed-loop control of the motors by the controller circuit 303. In this example, the actuator 116 may be operated by the controller circuit 303 (or a suitable microcontroller) to drive a roller (e.g., a cleaning roller 114) according to a specific speed setting using closed-loop pulse-width modulation (PWM) technique, and feedback signals may be received from motor sensors 317 that monitor signals indicating the rotational speed of the actuator 116. For example, such motor sensors 317 may be provided in the form of motor current sensors (e.g., shunt resistors, current-sensing transformers, or Hall effect current sensors).

[0050] The drive system 311 may include actuators 116 for operating the drive wheels 118 in response to drive commands or control signals from the controller circuit 303, and a motor sensor 317 attached to the actuator 116 to facilitate closed-loop control of the drive wheels (for example, using preferred PWM techniques as described above). In this example, a microcontroller assigned to the drive system 311 may be configured to decode drive commands having x, y, and θ components. The controller circuit 303 can transmit individual control signals to the actuators 116. In any case, the controller circuit 303 can steer and move the mobile robot 100 in any direction across the cleaning surface by independently controlling the rotational speed and direction of each drive wheel 118 via the actuators 116.

[0051] The controller circuit 303 can operate the drive system 311 in response to signals received from the sensor system 320. For example, the controller circuit 303 can operate the drive system 311 to change the direction of the mobile robot 100 to avoid obstacles and debris encountered while working on the floor. In another example, if the mobile robot 100 becomes stuck or unable to move during use, the controller circuit 303 can operate the drive system 311 according to one or more escape actions. To achieve reliable autonomous movement, the sensor system 320 may include several different types of sensors that can be used in combination to enable the mobile robot 100 to make intelligent decisions about a particular environment. The sensor system 320 may include one or more of the following: proximity sensors 336 (such as sensor 128), cliff sensors 323 (such as sensor 128), and visual sensors 325 such as an image capture device 140, which may be configured to detect features and landmarks in the operating environment and build a virtual map, such as using VSLAM technology as described above.

[0052] The sensor system 320 may further include bumper sensors 339 (such as bumper sensors 139a and 139b) that respond to the operation of the bumper 109. The sensor system 320 may also include an inertial measuring unit (IMU) 364 that responds in part to changes in the position of the mobile robot 100 with respect to a vertical axis substantially perpendicular to the floor, and senses when the mobile robot 100 is pitching over a floor type interface with a height difference, potentially due to a change in floor material type. In this example, the IMU 364 is a 6-axis IMU with a gyro sensor that measures the angular velocity of the mobile robot 100 with respect to the vertical axis. However, other preferred configurations are also conceivable. For example, the IMU 364 may include an accelerometer that senses the linear acceleration of the mobile robot 100 along the vertical axis. In any case, the output from the IMU 364 is received by the controller circuit 303 and processed to detect discontinuities in the floor surface that the mobile robot 100 is traveling across. In the context of this disclosure, the terms “floor discontinuity” and “step” refer to unevenness in the floor surface (e.g., a change in floor material type or a change in height at a floor material interface) that the mobile robot 100 can traverse but that cause discrete vertical movement events (e.g., upward or downward “bumps”). A vertical movement event may also refer to a part of the drive system (e.g., one of the drive wheels 118) or the body 102 of the robot 100, depending on the configuration and arrangement of the IMU 364. Detection of a floor material step or floor material interface can prompt the controller circuit 303 to anticipate a change in floor type. For example, the mobile robot 100 may experience a significant downward vertical bump when moving from a high-pile carpet (soft floor surface) to a tile floor (hard floor surface), and an upward bump in the reverse case.

[0053] Many other types of sensors, not illustrated or described in relation to the examples illustrated, can be incorporated into the sensor system 320 (or any other subsystem) without departing from the scope of this disclosure. Such sensors can function as obstacle detection units, obstacle detection and obstacle avoidance (ODOA) sensors, wheel drop sensors, obstacle following sensors, stall sensor units, drive wheel encoder units, bumper sensors, and similar.

[0054] Examples of communication networks Figure 4A illustrates a communication network 400A that enables networking between the mobile robot 100 and one or more other devices, such as a mobile device 404, a cloud computing system 406, or another robot 408 separate from the mobile device 404. Using the communication network 400A, the mobile robot 100, the mobile device 404, the robot 408, and the cloud computing system 406 can communicate with each other, transmit data to each other, and receive data to each other. In some implementations, the mobile robot 100, the robot 408, or both the mobile robot 100 and the robot 408 communicate with the mobile device 404 through the cloud computing system 406. Alternatively, or in addition to these, the mobile robot 100, the robot 408, or both the mobile robot 100 and the robot 408 communicate directly with the mobile device 404. Various types and combinations of wireless networks (e.g., Bluetooth, radio frequency, optical-based networks, or similar) and network architectures (e.g., mesh networks) can be employed in the communication network 400A.

[0055] In some implementations, the mobile device 404, as shown in Figure 4A, is a remote device that can be linked to a cloud computing system 406 and allow a user to input to the mobile device 404. The mobile device 404 may include user input elements such as one or more of the following: a touchscreen display, buttons, a microphone, a mouse, a keyboard, or other devices that respond to input provided by the user. The mobile device 404 may also include, or in addition to the above, immersive media (e.g., virtual reality) that the user interacts with to make user input. In these cases, the mobile device 404 may be, for example, a virtual reality headset or a head-mounted display. The user may make input to the mobile device 404 that corresponds to a command. In such cases, the mobile device 404 may transmit a signal to the cloud computing system 406 that causes the cloud computing system 406 to transmit a command signal to the mobile robot 100. In some implementations, the mobile device 404 may present augmented reality images. In some implementations, the mobile device 404 is a smartphone, laptop computer, tablet computing device, or another mobile device.

[0056] According to various examples described herein, the mobile device 404 may include a user interface configured to display a map of the robot environment. Robot paths, such as those identified by the coverage planner of the controller circuit 303, may also be displayed on the map. The interface can receive user commands to modify the environment map, which may be done by adding, removing, or otherwise modifying no-go / no-cross zones in the environment, adding, removing, or otherwise modifying overlapping cross zones in the environment (such as areas requiring repeated cleaning), restricting robot crossing directions or patterns in parts of the environment, or, among other things, adding or changing cleaning ranks.

[0057] In some implementations, the communication network 400A may have additional nodes. For example, a node in the communication network 400A may include an additional robot. Alternatively, or in addition to the above, a node in the communication network 400A may include a network-connected device. In some implementations, the network-connected device may generate information about the environment. The network-connected device may include one or more sensors for detecting features of the environment, such as acoustic sensors, image capture systems, or other sensors that generate signals from which features can be extracted. The network-connected device may include home cameras, smart sensors, smart locks, smart thermostats, smart garage door openers, and the like.

[0058] In the communication network 400A and other implementations of the communication network 400A depicted in Figure 4, the wireless link can utilize a variety of communication methods, protocols, or similar, including Bluetooth class, Wi-Fi, Bluetooth-low-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 used to communicate between mobile devices, including, but not limited to, 1G, 2G, 3G, 4G, 5G, or similar standards. Network standards, when used, are recognized as one or more generations of mobile communication standards by meeting specifications or standards, such as those maintained by the International Telecommunication Union. A 3G standard, when used, may correspond to the International Mobile Telecommunications-2000 (IMT-2000) specification, and a 4G standard may correspond to the International Mobile Telecommunications Advanced (IMT-Advanced) specification. Examples of cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, LTE Advanced, Mobile WiMAX, and WiMAX-Advanced. Cellular network standards can use various channel access methods, such as FDMA, TDMA, CDMA, or SDMA.

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

[0060] During a cleaning mission, the mobile robot 100 can track its status, including its placement, operational events that occurred during cleaning, and the time 410 spent cleaning. The mobile robot 100 can transmit status data 412 (e.g., one or more of location data, operational event data, and time data) to a cloud computing system 406, which uses a processor 442 to calculate time estimates for the area 414 to be cleaned. For example, the time estimate for a room to be cleaned may be calculated by averaging the actual cleaning times for rooms collected during multiple (e.g., two or more) previous cleaning missions for that room. The cloud computing system 406 can transmit the time estimate data along with the robot status data 416 to a mobile device 404. The mobile device uses a processor 444 to display the robot status data and time estimate data 418. The robot status data and time estimate data can be displayed on the mobile device's display as either an editable mission timeline or a mapping interface with multiple graphic representations. In this example, the mobile robot 100 can communicate directly with the mobile device 404.

[0061] User 402 can view robot status data and time estimate data 420 on the display 420, enter new cleaning parameters, or manipulate the order or identity of rooms 422 to be cleaned. User 402 can, for example, remove a room from the cleaning schedule of the mobile robot 100. In another example, User 402 can, for example, select an edge cleaning mode or a thorough cleaning mode for the rooms to be cleaned. The display of the mobile device 404 is updated when the user enters changes to the cleaning parameters or cleaning schedule 424. For example, if the user changes the cleaning parameters from single-pass cleaning to dual-pass cleaning, the system updates the estimated time to provide an estimated time based on the new parameters. In this example of single-pass cleaning and dual-pass cleaning, the estimated time is approximately doubled. In another example, if the user removes a room from the cleaning schedule, the total time estimate is reduced by the time required to clean the removed room. Based on input from user 402, the cloud computing system 406 calculates a time estimate 426 for the area to be cleaned, which is then returned 428 to the mobile device 404 and displayed (for example, by wireless transmission, by applying a protocol, by broadcasting a wireless transmission). In addition, data related to the calculated time estimate 426 is transmitted 446 to the robot's controller 430. Based on input from user 402 received by the controller 430 of the mobile robot 100, the controller 430 generates a command signal 432. The command signal instructs the mobile robot 100 to perform an action 434, which may be a cleaning action. Once the cleaning action is performed, the controller continues to track the robot's status, including its placement, action events that occurred during cleaning, and the time spent cleaning 410. In some embodiments, live updates related to the robot's status may be provided to the mobile device or home electronic system (e.g., an interactive speaker system) via push notifications.

[0062] After performing action 434, the controller 430 may check 436 whether the received command signal contains a command to complete the cleaning mission. If the command signal contains a command to complete the cleaning mission, the robot may be instructed to return to the dock, and upon its return, transmits information that enables the cloud computing system 406 to generate a mission summary 438 which can be transmitted to the mobile device 404 and displayed 440 by the mobile device 404. The mission summary may include a timeline or a map. A timeline may show the rooms cleaned, the time spent cleaning each room, the action events tracked within each room, or similar. A map may show the rooms cleaned, the action events tracked within each room, the type of cleaning performed in each room (e.g., sweeping or mopping), or similar.

[0063] Operations for process 400B 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 coordination with each other. Operations described as being performed by one of the cloud computing system 406, the mobile robot 100, and the mobile device 404 may, in some implementations, be performed in part by two or all of the cloud computing system 406, the mobile robot 100, and the mobile device 404.

[0064] Example of a robot scheduling and control system Various examples of systems, devices, and processes for scheduling and controlling mobile robots based on user placement, behavior, and experience are described below with reference to Figures 5A and 5B. While this specification refers to mobile robot 100 performing floor cleaning, the robot scheduling and control systems and methods described herein can also be used for robots designed for different applications, such as mopping, lawn mowing, transporting, and monitoring. In addition, some components, modules, and actions may be described as being implemented and performed by mobile robot 100, by the user, by a computing device, or by another acting entity; however, in some implementations, these actions may be performed by acting entities other than those described. For example, actions performed by mobile robot 100 may be performed by cloud computing system 406 or by one or more other computing devices. In other examples, actions performed by the user may be performed by a computing device. In some implementations, cloud computing system 406 performs no actions. Rather, other computing devices perform the operations described as being performed by the cloud computing system 406, and these computing devices can communicate directly (or indirectly) with each other and with the mobile robot 100. In some implementations, the mobile robot 100 can perform operations described as being performed by the cloud computing system 406 or the mobile device 404, in addition to the operations described as being performed by the mobile robot 100. Other modifications are also possible. Furthermore, although the methods and processes described herein are described as including several operations or suboperations, in other implementations, one or more of these operations or suboperations may be omitted, or additional operations or suboperations may be added.

[0065] Figure 5A illustrates an example of a mobile robot system 500 for automated mission scheduling and robot control based on user placement, behavior, or contextual information. The mobile robot system 500 may include a mobile cleaning robot 510 and a mobile device 520 that operably communicates with the mobile cleaning robot 510. In this example, the mobile cleaning robot 510 may communicate with the mobile device 520 through a cloud computing system 530, which may be an embodiment of the cloud computing system 406 described above with reference to Figures 4A-4B.

[0066] A mobile cleaning robot 510, which may be an example of the mobile robot 100, may include, among other things, a controller circuit 512 and a drive system 514. The controller circuit 512 can receive information about contextual information such as user placement, user behavior, or temporal context. Based on the received user placement, user behavior, or contextual information, the controller circuit 512 can generate mission control signals to navigate the mobile cleaning robot 510 and perform a mission within the environment. Missions may be scheduled with reference to user placement, behavior, or contextual information, as described below. Such a mission scheduling process may be referred to as automated scheduling, for example, to distinguish it from time-based scheduling, in which missions or tasks are scheduled to be performed at specific times.

[0067] A mobile device 520, which may be one embodiment of mobile device 404, may be configured to schedule one or more missions and issue commands to the mobile cleaning robot 510 to perform such missions according to each schedule. Examples of mobile device 520 may include smartphones, personal digital assistants, laptop computers, tablets, smartwatches, or other portable computing devices. In an example, mobile device 520 may, using techniques such as those described herein according to various examples, schedule missions for two or more mobile robots of the same or different types, such as mobile cleaning robots, mobile mopping robots, lawn mowing robots, and space surveillance robots, and control the operation of those robots.

[0068] The mobile device 520 may include a user interface 522 that allows the user to create or modify one or more mission routines, such as, but not limited to, an Away-From-Home Routine 531, a Return-Home Routine 532, a Do-Not-Disturb Routine 533, or a Guest Routine 534, as illustrated in Figure 5A. A routine is a cleaning mission that includes one or more tasks that the mobile robot should or should refrain from performing. In addition, a routine may include information, among other things, about the places to be cleaned (e.g., one or more rooms or a specific zone), the cleaning method (e.g., cleaning mode), and the schedule for performing the mission (e.g., a time schedule, or events and conditions that trigger the execution of the mission). Mission routines may be stored in the memory 526 of the mobile device 520. Alternatively, mission routines may be stored in a cloud computing system 530 accessible by the mobile device 520.

[0069] The mobile device 520 can run software applications (e.g., mobile applications) or web-based services (e.g., services provided by the cloud computing system 530) implemented therein to assist users in creating or modifying mission routines. For example, such software applications or web-based services can use the "If This Then That" (IFTTT) technology to connect different applications, devices, or services to trigger one or more automations involving those applications, devices, and services. The user can create one or more mission routines by using the IFTTT service via the user interface 522. Mission routines thus created may include a set of conditional cleaning tasks that can be triggered by certain events or user actions that may be detected by the mobile device 520 or otherwise received. For example, the "away routine 531" may include a mission that is triggered by an instruction indicating that the user is leaving the house (e.g., "clean the living room and kitchen while I'm away"). The "returning home routine 532" may include a mission that is triggered by an instruction indicating that the user has arrived home or is about to arrive home (e.g., "stop cleaning and return to the dock when I'm on my way home"). The outing routine 531 and the return routine 532 are referred to herein as home-centric routines. The no-disturb routine 533 may include suspending, pausing, or postponing missions or specific robot actions that the mobile cleaning robot 510 refrains from performing, or any incomplete cleaning missions. For example, a user may schedule a no-disturb routine by specifying “No-Run Time.” Alternatively, a no-disturb routine may be conditional on specific user behaviors (e.g., “Don’t clean when I’m on the phone,” “Stop cleaning when I turn on the smart TV,” “Don’t mow the lawn when the dog is in the yard”).A guest routine can include a mission to be executed within a preset time period, which may be shorter than the time typically required for a mobile robot to complete an entire mission when operating in its typical cleaning mode. For example, a guest routine could include a time-box mission containing one or more areas to be cleaned within a preset time window, which may be programmable or selectable by the user via the mobile device's user interface. The IFTTT service enables different mobile applications and devices to connect together, allowing for conditional mission execution on the mobile robot.

[0070] Geofencing-based home-centered mission scheduling Home-centric routines, such as the outing routine 531 and the return-to-home routine 532, are based on reliable detection or verification that the user is either away from home or on their way home. This can be detected or determined using one of several techniques, as described herein with respect to various examples. In an example, the mobile device 520 may include a location information service 523 and a geofencing module 524 that can detect when the user is away from home or on their way home. The user interface 522 includes a display unit having input tools (e.g., UI controls) that allow the user to define a geographic zone with respect to the user's place of residence, which can display a map showing the defined geographic location of the user's residence. Such a geographic zone, also referred to as a geofence, defines a virtual boundary around the user's residence. The location information service 523 can determine the current location of the mobile device 520 using GPS, RFID, Wi-Fi, or cellular data. Since the mobile device 520 is generally held by the user or otherwise associated with the user in some way, it can be inferred that the location where the user is is substantially the same as the location where the mobile device 520 is placed. A geofencing module 524, which may be software (e.g., a mobile application) implemented within and runnable by the mobile device 520, can detect instructions indicating whether the user is entering or leaving a geofence based on the mobile device 520's current geographical location. If there are multiple users in a household, the setup may be configured to detect when the last person's mobile phone leaves the defined geographical location of the residence.

[0071] The controller circuit 512 of the mobile cleaning robot 510 can receive instructions from the mobile device 520, such as via a direct communication link or through the cloud computing system 530, indicating whether the user is entering or leaving the geofence around the user's residence. The controller circuit 512 generates a mission control signal to the drive system 514, which in turn allows the mobile cleaning robot 510 to move into the user's residence environment and perform missions according to mission routines. For example, an instruction indicating that the mobile device 520 is leaving the geofence (indicating the user is not home) can automatically trigger the mobile cleaning robot 510 to perform the out-of-home routine 531. An instruction indicating that the mobile device 520 is entering the geofence (indicating the user is returning home) can automatically trigger the mobile cleaning robot 510 to perform the return-home routine 532, such as interrupting, suspending, pausing, postponing, or rescheduling any incomplete missions when or before the user arrives home. In another example, an instruction indicating that the user has entered the geofence can automatically trigger the mobile cleaning robot 510 to return to a designated docking station. In another example, an instruction indicating that a user has entered a geofence can automatically trigger the mobile cleaning robot 510 to continue cleaning and complete its current mission. In this example, in response to an instruction indicating that a user has entered a geofence, the mobile robot can continue a currently incomplete mission for a specified period of time based on an estimated time to complete the mission or part of it. For example, if the mobile robot is in the middle of cleaning a room as part of a scheduled mission when a user enters a geofence, the mobile robot can estimate the time to complete the current room and the time to complete the entire mission.If the estimated completion time falls within a certain range or is below a certain threshold time (e.g., 5 minutes), the mobile robot may continue cleaning and complete the current task (e.g., a room that was left unfinished) or the entire mission within the estimated time. In yet another example, in response to an instruction indicating that the user has entered a predefined geographic zone, a notification may be generated for the user (e.g., displayed on user interface 522) prompting the user to give a command regarding the unfinished mission. The user can choose to continue cleaning, cancel the remaining jobs of the mission and return the mobile robot to the docking station, or postpone the currently unfinished mission to a later scheduled time, including the next time the user leaves the defined geofence around the residence.

[0072] Home-centric mission scheduling based on home automation devices and systems. In addition to determining whether a user is away from home or on their way home based on location and geofencing services, or instead, one or more mission routines (e.g., out routine 531 or return routine 532) may be triggered by an Internet-connected device associated with the user's residence. An Internet-connected device, also referred to as a smart device, smart home device, or Internet of Things (IoT) device, is a device (or generally hardware) capable of transmitting data (e.g., sensor data) over the internet from one location to another. Examples of smart devices include smart speakers, smart thermostats, smart lighting, smart locks, smart garage doors, smart plugs, smart TVs, smart toys, wearables, smart air conditioners, and other smart appliances. A smart home is a residence that uses Internet-connected devices to enable remote monitoring and management, as well as the creation of automated routines. Depending on the specific IoT application being deployed, various networking, communication, and connectivity protocols may be used with Internet-connected devices, including, for example, CoAP, DTLS, and MQTT, among others. Wireless protocols include, among others, IPv6, LPWAN, Zigbee, Bluetooth Low Energy, Z-Wave, RFID, cellular, satellite, Wi-Fi, and Ethernet.

[0073] As illustrated in Figure 5A, the mobile device 520 may include a smart home automation module 525 (such as a software package or mobile application) that operably communicates with one or more smart devices 540. The home automation module 525 can use IFTTT technology to enable the mobile cleaning robot 510 to seamlessly connect to a wide range of different services supported by the robot control application on the mobile device 520, and even from a broader IFTTT-enabled smart home ecosystem. In a sense, IFTTT can act as an intermediary between the mobile robot 510 and other smart home devices 540 or the smart home ecosystem 550 and services, thereby enabling them to collaborate to achieve conditional cleaning. For example, the mobile robot 510 may be programmed to start cleaning after one or more triggers indicate that the user is not at home. For example, triggers may be sent to the mobile robot when a smart front door lock is locked, or when a smart thermostat detects that the user is not at home, or when a smart garage door is closed.

[0074] One or more smart devices 540 can change their respective device operating status when a user enters or leaves the user's residence. A smart home automation module 525 can detect the device operating status or changes thereof and determine when a user enters or leaves the residence. Such information regarding a user entering or leaving the residence may be received by a mobile cleaning robot 510, and a controller circuit 512 can generate mission control signals to a drive system 514 to perform missions such as an out-of-home routine 531 in response to one or more smart devices changing their respective operating status to indicate that a user is leaving the home, or an return-to-home routine 532 in response to one or more smart devices changing their respective operating status to indicate that a user is entering the home. For example, a smart lock that locks the front door, a smart garage that closes the garage door, or a smart thermostat operating at a preset "Away" room temperature can indicate that a user is not home, which can then trigger the controller circuit 512 to generate a control signal to start executing the out-of-home routine 531. Conversely, a smart lock that unlocks the front door, a smart garage that opens the garage door, or a smart thermostat that sets the room temperature to a preset "Home" temperature can indicate that the user is returning home, which can then trigger the controller circuit 512 to generate a control signal that either initiates the execution of a return routine 532, such as stopping cleaning and returning to the dock, or prompts the user to take action regarding an incomplete mission. The user may have the option to define when the trigger causes an action to start or end a mobile robot cleaning mission, such as only on specific days, only during specific time windows, and only by frequency (e.g., only once a day).

[0075] In this example, one or more smart devices 540 may be networked and managed by a smart home ecosystem 550. Also referred to as a home automation ecosystem, the smart home ecosystem can include a virtual assistant (an artificial intelligence (AI) service that can communicate with the user), speakers (hardware), and software such as mobile applications running on mobile devices (e.g., a cell phone or tablet). One or more smart devices may be configured to pair with the smart home ecosystem and controlled by software or a mobile application on a mobile device. The smart home ecosystem consists of various networks, including artificial intelligence (AI), the Internet of Things (IoT), and cloud services, enabling network-connected devices to operate intelligently. Compared to independently controlling different smart devices, the smart home ecosystem provides the user with the ability to control multiple network-connected smart devices (e.g., internet-connected windows, doors, lighting, security, thermostats, and appliances) from a single interface. Examples of smart home ecosystems include any smart home ecosystem.

[0076] The smart home ecosystem 550 can generate alerts to the user when a connected smart device changes its operating state. These alerts can be, among other things, voice alerts or push notifications on the user interface 522 of the mobile device 520. For example, based on a change in the operating state of one or more network-connected smart devices, the smart home ecosystem can detect instructions for a user to enter or leave the user's residence. Such information regarding a user entering or leaving the residence may be transmitted to the mobile cleaning robot 510, and the controller circuit 512 can generate mission control signals to navigate the mobile cleaning robot 510 and perform missions such as an outing routine 531 in response to an instruction indicating a user leaving the house, or an arrival routine 532 in response to an instruction indicating a user entering the house, as described above.

[0077] In the example, the smart home ecosystem 550 may include a voice-controlled home assistant device configured to receive voice commands from a user performing a mission (e.g., "clean the kitchen"). The voice-controlled home assistant device may include a smart speaker in the smart home ecosystem, as described above. Examples of voice-controlled home assistant devices (or smart speakers) include any home assistant device or smart home ecosystem. The voice-controlled home assistant device may be paired with a mobile cleaning robot 510 and controlled by a mobile device 520. The voice-controlled home assistant device may be trained to recognize a user's voice commands, interpret the voice commands using a voice interpretation service (e.g., in a cloud computing system 530), and send control signals to the mobile robot 510. A controller circuit 512 may generate mission control signals to a drive system 514 to navigate the mobile cleaning robot 510 according to the user's voice commands and perform the mission.

[0078] Do-Not-Disturb Routine A no-disturbance routine 533 can include a mission represented by a period of time during which the mobile cleaning robot 510 refrains from performing a mission, performing a specific robot action, or making noise, or a temporary suspension, pause, or postponement of an incomplete cleaning mission. The user can create “No-Run Time” (NRT) schedules, such as one or more specific periods of time on a given day during which the mobile robot can refrain from performing any mission, a specific type of mission, certain robot actions, or actions in response to smart home ecosystem triggers. In the example, two or more different NRT schedules, each with its own time window, may be created and stored in memory 526. In the example, the user may set an NRT every weekday between 10 p.m. and 7 a.m. when the family is asleep, or on a specific day when there are visitors between 5 p.m. and 10 p.m., or when the user is away from home for an extended period (e.g., on vacation) and wants the reassurance that the mobile robot will absolutely not respond to any automated smart home triggers or routines or predefined time-based schedules. Users can create NRT schedules that suit their lifestyle and assign descriptive labels to different NRT schedules, such as quiet time, sleep time, nap time, meal time, TV time, work time, meeting time, guest time, vacation mode, or similar. The mobile device UI can provide users with pre-filled, or even personalized, suggestions for specific NRT schedules that they can switch on, customize, or delete based on their routines and cleaning habits. For example, if a user frequently cancels cleaning missions that start at a particular time, they may be recommended a personalized NRT schedule for the time periods when they frequently cancel missions. The controller circuit 512 can generate mission control signals to suspend or pause missions within time windows as specified in the NRT schedule.

[0079] As an alternative to, or in addition to, scheduled NRT, the suspension or pause of a mission may be triggered by the detection of a specific trigger event or user behavior, or by an incoming instruction. Examples of trigger events may include a doorbell ringing, a phone ringing, a calendar event, turning on a baby monitor, or user engagement with a sound-sensitive event such as attending a meeting, watching television, listening to music, or having a conversation. In this example, the trigger event may be automatically detected based on the operating state (or change in the operating state) of one or more Internet-connected devices, such as a smart device 540 associated with the user's residence, which may be communicatively coupled to the mobile cleaning robot 510. For example, when a smartphone detects a phone ring or incoming call, it may send a signal to the mobile cleaning robot 510, triggering the execution of a routine 533 that does not interfere with the controller circuit 512 by suspending or pausing cleaning the environment as long as the smartphone detects that the user is on a phone call. In another example, a smart TV, upon detecting that it is powered on, can send a signal to the controller circuit 512, which can then execute a non-interfering routine 533 to suspend or pause the cleaning mission as long as the smart TV remains powered on. In yet another example, a smart doorbell, upon activation, can send a signal to the controller circuit 512, which can then execute a non-interfering routine 533 to temporarily suspend or pause the cleaning mission as long as it detects that the smart door is unlocked. The controller circuit 512 may suspend the mission or modify the mission routine by pausing it or until the voice-sensitive event has ended, or by rescheduling or postponing tasks that interfere with the voice-sensitive event, as instructed by the user.

[0080] In the example, the non-intrusive routine 533 may include suspending or pausing certain robotic actions or sounds, or specific tasks of a mission. Some robotic actions, such as automatic discharge of collected waste into the dock's receptacle, cleaning certain floor types or conditions (e.g., the edges of carpeted areas), or certain cleaning modes (e.g., thorough cleaning), may generate loud noises that interfere with user activities in the environment, such as sound-sensitive activities. Instead of suspending the entire mission, the example may include suspending or pausing certain robotic actions or sounds, or avoiding certain floor conditions or certain cleaning modes that would normally generate loud noises. As described above, the suspension or pausing may be based on time (e.g., NRT schedule) or triggered by a trigger event or user action. Therefore, the non-disturbing routine 533 could include, for example, "Do not automatically discharge after 9 p.m. when I am asleep," "Do not clean the carpet between 8 p.m. and 10 p.m.," "Do not automatically discharge when I am watching TV," "Do not thoroughly clean when I am on the phone," or similar wording. The user can specify that the mobile robot can proceed with cleaning at night, but should not perform automatic discharge during this time. The controller circuit 512 can accordingly pause or suspend the corresponding robot action or cleaning activity at the specified time or after detecting a specified trigger event. In the example, according to the non-disturbing routine 533, the controller circuit 512 can modify some robot actions to reduce the noise generated, such as slowing down the movement speed, reducing the cleaning power, or similar.

[0081] In the example, the suspension or pause of a mission may be triggered by a room occupancy status, indicating whether or not someone is in the room. The user can create a non-intrusive routine 533, such as "Do not clean the kitchen when someone is in it." Room occupancy may be automatically detected based on the operating status (or change in the operating status) of one or more Internet-connected devices, such as a smart device 540 associated with the user's residence, which is communicatively coupled to the mobile cleaning robot 510. Examples of smart devices for this purpose may include a smart security camera or smart speaker in the room. Alternatively, room occupancy may be detected by the mobile robot's camera or other sensors. The controller circuit 512 may, accordingly, when it detects that a room is occupied, modify the mission routine by pausing or suspending the mission, changing the cleaning order of the rooms, or postponing tasks scheduled to be performed in the occupied room until it is no longer occupied, or according to the user's command.

[0082] In accordance with the No-Run Time routine 533, the mobile cleaning robot 510 may be unresponsive to cleaning commands. In the example, such an "unresponsive" state can be overridden via the mobile device 520 (e.g., via the user interface and through the mobile application), via voice control, or directly on the cleaning robot 510. Both the mobile device UI and the smart speaker can give the user reminders and alerts when the house is in a designated No-Run Time routine and provide the user with the option to override the NRT. In the example, a push notification or alert may be generated and presented to the user (e.g., via the mobile device 520) to indicate that the No-Run Time routine 533 is about to start or is about to end, such as the end of the time window for No-Run Time or the end of a trigger event (e.g., the end of a phone call, the power off of a smart TV). The user can use UI controls on the user interface 522 to confirm, reject, or modify the No-Run Time routine. Users can still initiate cleaning by pressing a physical button on the mobile robot in NRT, but they may have the option in the mobile device UI to disable this physical button as a special precaution. Users may also have the option in the mobile device UI to disable other robot sounds or voices as part of a non-intrusive routine, such as error messages or location information.

[0083] The controller circuit 512 can resume the mission in response to an instruction indicating that the “No-Run Time” has expired or that the conditions for triggering the non-disturb routine 533 are no longer met (for example, that a voice-sensitive event has ended or the room is no longer occupied), or in accordance with a user command. In the example, the controller circuit 512 can operate the mobile cleaning robot 510 in multi-mission mode 518. This may allow the mobile cleaning robot to complete cleaning missions in multiple separate sessions at different times, such as a series of time windows spanning a specified number of days (for example, 3 or 7 days). The controller circuit 512 can track the progress of the mission, including the mission completion status, such as areas that have been cleaned or areas that have been left incomplete due to the “No-Run Time” or “Do-Not-Disturb” routine, or a time-constrained routine (for example, a time-box mission 535 as described below). At the end of the "Do-Not Disturb" period, the controller circuit 512 can trigger the mobile cleaning robot to immediately resume any incomplete jobs or to postpone any incomplete jobs to a later scheduled time window. A notification containing a summary of mission coverage across different time windows, along with other metrics, may be displayed to the user. For example, the user may be presented with suggestions such as adjusting the multi-mission schedule to future time windows spanning a specified number of days.

[0084] Guest routines involving time-box missions A guest routine 534 can include a mission to be performed within a preset time period, which can be shorter than the time generally required to complete an entire mission when the mobile robot operates in its typical cleaning mode (for example, when the mobile robot moves at normal speed, cleans uniformly using full cleaning power, and cleans all reachable floor surfaces in the area specified by the mission). Such time-constrained missions are also referred to as time-box missions 535. In contrast to some cleaning missions that claim to maximize the amount of dirt or debris removed, one objective of a guest routine 534 is to maximize the visible area cleaned under time constraints. For example, in a scenario where cleaning is performed before a guest arrives within 30 minutes (hence the name "guest routine"), the goal of cleaning is to make only the visible areas appear clean. The mobile cleaning robot does not need to clean areas that are not visible to the guest or are less noticeable, but instead can prioritize visible areas such as large open spaces that the guest would see or places where they might notice visible dirt.

[0085] A time box mission 535 can be created or modified by the user via the user interface 522. For example, the user can define a time window by specifying a start time and an end time. Alternatively, the user can give the time box mission 535 a duration (time window), such as, but not limited to, a 15-minute time window, a 30-minute time window, or a 45-minute time window. In the example, the user can choose from several pre-filled time windows for the time box mission 535. Other durations can also be given or selected by the user. In the example, the user can create a time box mission for one or more user-specified number of days, each with its own preset time window, such as a 30-minute time box mission every day from Monday to Thursday, and a 45-minute time box mission every day on Saturday and Sunday.

[0086] Time Box Mission 535 is described herein in relation to Guest Routine 534, but this is provided as an example and is not limited thereto. In the example, Time Box Mission 535 may be combined with other routines, such as, among others, Out Routine 531, Return Routine 532, or Do Not Disturb Routine 533. Examples of such routines may include, for example, “Start cleaning for 30 minutes when I leave the house,” or “Start cleaning for 10 minutes before I return home.”

[0087] A time box mission 535 includes one or more areas to be cleaned within a pre-set time window. The user can specify or select one or more areas to be included in the time box mission 535 via the user interface 522. An example of a time box mission 535 created in this way may be represented as "Clean the kitchen and dining room in 15 minutes." In the example, the mobile cleaning robot 510 can dynamically determine one or more areas to be included in the time box mission 535 based on the estimated completion time (ETC) for cleaning each area. For example, if a 15-minute window is selected for the time box mission 535, and the ETC (based on previous cleaning experience, etc.) is 8 minutes for cleaning the kitchen, 6 minutes for cleaning the dining room, and 20 minutes for cleaning the living room, the mobile robot will include only the kitchen and dining room in the time box mission 535 so as to fit within the 15-minute time window.

[0088] A time-box mission 535 can be initiated based on time, defined by user-specified start and end times. Alternatively, a time-box mission 535 can be initiated by a user command, such as through a mobile application using the user interface 522 or via a voice command. In the example, a time-box mission 535 can be initiated by a trigger event. An example of a trigger event is an instruction indicating that the user is entering or leaving a predefined geographic zone relating to the user's place of residence. As described above with reference to the out-of-home routine 531 and the return-to-home routine 532, the state of the user being away from home or on their way home can be detected or validated using the location information service 523 and the geofencing module 524. An example of a time-box mission 535 thus created may be expressed as "Start cleaning when I am away from home, but finish cleaning within 30 minutes." In response to an instruction indicating that the mobile device 520 is leaving the geofence (indicating the user is away from home), the mobile cleaning robot 510 may be automatically activated to perform the time-box mission 535 of the guest routine 534. Alternatively, the mobile cleaning robot 510 may be triggered to perform a time-boxing mission 535 in response to an instruction indicating that the mobile device 520 is entering a geofence (indicating that the user is on their way home). Another example of a trigger event to initiate a time-boxing mission 535 could include the detection of specific user behavior, such as that detected by one or more internet-connected devices associated with the user's residence, as described above with reference to the out-of-home routine 531 and the return-home routine 532.

[0089] The user can provide a name or identifier for the guest routine 534, such as "Quick Clean Routine," "30-minute Pre-party routine," or similar. The created guest routine 534 may be stored in the memory 526 of the mobile device 520. Alternatively, the mission routine may be stored in a cloud computing system 530 accessible by the mobile device 520.

[0090] The time-box mission 535 of the guest routine 534 is generally constrained by a short time window, so the mission may be left incomplete when the time window expires, especially if the mobile robot is configured to clean a large floor area or if the mobile robot is operating in normal mode 515. On some occasions, it may be desirable to avoid or reduce the possibility of an incomplete mission and maximize the mission completion rate. The controller circuit 512 of the mobile cleaning robot 510 can automatically or in response to a user command to operate the mobile cleaning robot in one of several different modes, including, for example, normal mode 515, turbo mode 516, or multi-mission mode 518. Normal mode 515 refers to thoroughly cleaning a designated area with normal crossing speed and normal cleaning power. In contrast to normal mode 515, turbo mode 516 refers to rapid or prioritized cleaning due to time constraints (e.g., time-box mission 535), etc., at the expense of thorough cleaning. Multi-mission mode 518 refers to scheduling a mission by dividing it into multiple time-separated sessions. Turbo mode 516 is described herein in relation to the time-box mission 535 of guest routine 534, but this is provided as an example and is not limited thereto. In the example, turbo mode 516 may be used in conjunction with other missions, such as out-of-town routine 531, return-to-home routine 532, or uninterrupted routine 533, among others.

[0091] Referring to Figure 5B, Turbo Mode 516 can be activated by one or more of the Prioritized Cleaning Module 582, Planning Module 584, Quick Motion Module 586, and Coordinated Cleaning Module 588. One or more of these modules can, among other things, reduce mission operation time and avoid or reduce the possibility of incomplete missions, such as time-box missions 535. The Prioritized Cleaning Module 582 can prioritize areas based on one or more floor conditions or characteristics, and the mobile robot can then generate a mission control signal that triggers the mobile cleaning robot to perform missions according to the prioritized areas in a preset time window.

[0092] In the example, the prioritized cleaning module 582 can prioritize cleaning areas based on its location and observability. Since one objective of the guest routine 534 is to maximize the visible areas that are cleaned, the prioritized cleaning module 582 can be used to identify those visible areas (e.g., large open spaces where dirt is more noticeable, if any) and prioritize them higher than areas that are not visible or less noticeable (e.g., floors under furniture such as couches, low tables, and beds, closets, bedrooms, or floors in other rooms or areas that are less likely to be accessed by guests), thereby reducing cleaning time and thus avoiding unfinished missions.

[0093] In the example, the prioritized cleaning module 582 can prioritize cleaning areas based on the spatial distribution of dirt detected in one or more areas. The mobile robot can detect dirty areas in the environment and generate dirt detection events. Dirty areas may be detected based on images taken by imaging sensors attached to the mobile robot (e.g., a front camera) or images taken by an external camera associated with the environment. In the example, the external camera may be an internet-connected smart camera that communicates with the mobile cleaning robot 510 and the mobile device 520. An external camera mounted higher up in the room can provide better information indicating which parts of the environment are dirty when viewed from a higher vantage point. The external camera can also provide a real-time map of a portion of the environment without the mobile cleaning robot having to move around the house, facilitating the prioritization of cleaning areas based on the dirtiness within that portion.

[0094] Mobile robots can prioritize areas with more dirt over areas with less dirt. In some cases, a dirt density heatmap can be generated that represents the spatial distribution of dirt detection events across one or more areas. Based on the dirt density heatmap, mobile robots can prioritize areas with higher cleaning frequency or higher cleaning thoroughness over areas with lower cleaning frequency or lower cleaning thoroughness.

[0095] In the example, a prioritized cleaning module 582 can prioritize cleaning areas based on its floor type. Some floor types ("dirt-concealing" floor types, e.g., thick carpet) are more likely to conceal dirt or debris than other floor types ("dirt-revealing" floor types, e.g., hardwood floors or short-pile carpet). When different floor types are involved in one or more areas of the time box mission 535, the mobile robot can prioritize dirt-revealing floor types over dirt-concealing floor types when performing the time box mission 535.

[0096] In the example, the prioritized cleaning module 582 can prioritize cleaning areas based on the color of the floor. For example, a light-colored floor may have high contrast even under low lighting conditions, which makes it easier to spot dirt or debris compared to a dark-colored floor with low contrast. When floors of different colors are involved in one or more areas of a cleaning mission (e.g., a time box mission 535), the prioritized cleaning module 582 can prioritize light-colored floors over dark-colored floors so that light-colored floors are cleaned before dark-colored floors.

[0097] The path planning module 584 can identify one or more avoidance spots within one or more areas, such as scattered objects or obstacles. In some examples, information about avoidance spots can be identified by the user on a map of the environment. The path planning module 584 can schedule a coverage path that covers at least a portion of one or more areas and avoids the avoidance spots. The controller circuit 512 can navigate the mobile cleaning robot 510 to traverse one or more areas according to the coverage path scheduled to carry out a mission (for example, a time-box mission 535).

[0098] Avoidance spots may, in addition to or alternatively, include floor areas close to walls. Cleaning areas close to walls can cause the mobile robot to wall-follow, and while doing so, the mobile robot frequently adjusts its heading to maintain engagement with the wall, which can be time-consuming. Avoiding wall areas can reduce the likelihood of wall-following. Alternatively, additional sensors may be used to allow the mobile cleaning robot to stay close to walls without constantly adjusting its heading.

[0099] Avoidance spots may include dangerous areas where mobile robots are likely to get stuck. Getting stuck during a mission and having to get out can be time-consuming and reduce the chances of mission completion. For urgent time-box missions with tight time constraints (e.g., short time windows), avoiding hazards can save a significant amount of time and improve the efficiency of mission execution. For example, more thorough, higher-risk cleaning of specific areas that are difficult to clean is generally desirable, but less aggressive, safer cleaning may be more suitable for turbo mode cleaning. In addition, because mobile robots can move at faster speeds (e.g., enabled by motion module 586 as described below) and therefore with greater momentum in turbo mode, obstacles in the environment may not pose much of a risk to the robot getting stuck. However, wedge-shaped hazards can be considered high-risk because the faster the robot moves, the deeper it is likely to get stuck in these hazards. Therefore, in some examples, the path planning module 584 can schedule coverage paths to avoid wedge-shaped hazards, particularly when the mobile robot is moving at higher speeds in turbo mode.

[0100] The path planning module 584 can, in addition, schedule coverage paths in improved meandering patterns. A meandering pattern is a path that includes one set of straight path segments connected by a number of 180-degree turns (changes in direction of motion) between them. Movement in a meandering pattern can be faster than wall following. Various improvements to the meandering pattern are being considered by the inventors. In one example, a meandering pattern may be characterized by reducing the number of 180-degree turns connecting the straight path segments. When turning, the robot can hit an obstacle, stop, back up, and turn again before starting the next rank. This action takes time. By selecting a meander that minimizes the number of turns, the meandering cleaning rate can be increased compared to turbo mode. In another example, a meandering pattern may involve faster turns between ranks. For example, a mobile cleaning robot can use a front camera to detect obstacles before hitting them. In yet another example, a meandering pattern may include an expansion of rank width, such as that made possible by a wider cleaning head. In another example, the meandering pattern may be characterized by reducing the overlap between adjacent ranks. Reducing rank overlap allows the mobile robot to achieve a faster cleaning speed by reducing the number of ranks per meander. Mobile robots are generally faster when moving in a straight line than when turning, because in the latter case, the mobile robot typically needs to decelerate before turning and accelerate after turning. Turn minimization or turn reduction techniques and the resulting meandering patterns are described in U.S. Patent Application No. 20200089255, which is incorporated herein by reference in its entirety. In some examples, the meandering pattern may include negative rank overlap, represented by gaps between ranks. Gap areas may be left uncleaned or may be cleaned by side brushes that agitate any dirt or debris contained within and are picked up by the mobile robot.Meandering with negative rank overlap can substantially improve cleaning rates without significantly affecting the perceived cleanliness.

[0101] The quick motion module 586 can generate control signals to a drive system 514 that move the mobile cleaning robot 510 at a speed based on the time allocated to the mission, such as the boxed time for the time-box mission 535. In another example, the quick motion module 586 can generate control signals to the cleaning system of the mobile robot that drive the electric cleaning elements (e.g., an actuator 116 that drives the cleaning roller 114 or the side brush assembly 122, and a suction fan motor 316 that powers the vacuum cleaner assembly 124) at a power based on the time allocated to the mission, such as the boxed time for the time-box mission 535. For example, the drive speed of the mobile robot or the motor power driving the cleaning elements is inversely proportional to the time allocated to the time-box mission 535, and the mobile robot can operate at a faster drive speed or greater cleaning power under tighter time constraints (e.g., a shorter time window).

[0102] In some missions, there are priority constraints between robots, which may require two or more mobile robots to perform their respective tasks sequentially or alternately. For example, a kitchen floor may be cleaned first by a mobile dry cleaning robot (e.g., a vacuum cleaner robot) and then by a mobile wet cleaning robot (e.g., a mopping robot). Sequential cleaning by such two mobile robots can be time-consuming for time-box missions. The coordinated cleaning module 588 can schedule coordinated cleaning between at least two mobile robots (or different cleaning modes in one mobile robot) to reduce the time required to complete missions such as time-box missions 535. The controller circuit 512 can navigate the mobile cleaning robots 510 to traverse the environment according to the scheduled coordinated cleaning. In the above example of using two mobile robots to clean a kitchen, the coordinated cleaning module 588 can generate a schedule that keeps the dry cleaning robot only in floor areas that the wet cleaning robot cannot clean. In the example, the wet cleaning robot can clean some areas that are not first cleaned by the dry cleaning robot. A wet cleaning robot's cleaning pad is likely to collect more debris than a dry cleaning robot would normally clean. As a result, the coverage of the area being cleaned may be wider, even if some floor areas are not as clean. In one example, the cooperative cleaning module 588 can schedule the respective areas that each robot should cover. In another example, since wet cleaning is generally slower than dry cleaning, the cooperative cleaning module 588 can generate a schedule that uses only dry cleaning robots. In yet another example, a front camera (or sensor on the underside of the robot) may be used to identify sticky spots on the floor surface that are difficult to clean with dry cleaning. In this case, the wet cleaning robot may be used only to perform spot cleaning on the identified sticky spots, while the dry cleaning robot picks up dry debris in all areas.To improve the efficiency of coordinated cleaning, various mobile robots (e.g., dry cleaning robots and wet cleaning robots) can communicate with each other. For example, the various robots may be networked and managed by a smart home automation ecosystem. Improved coordination can improve mission completion rates under time constraints. For instance, a dry cleaning robot can avoid wasting time waiting for a wet cleaning robot or performing dry cleaning activities faster than usual.

[0103] As described above with reference to Figure 5B, turbo mode 516 can help improve cleaning efficiency and reduce the likelihood that the mission will be incomplete by the end of the allocated time. Returning to Figure 5A, upon the expiration of the preset time window for the time box mission 535, the controller circuit 512 can generate a mission control signal that triggers the mobile cleaning robot 510 to return to the dock, regardless of the mission completion status. In the example, the controller circuit 512 can track the progress of the mission, including the mission completion status. If the mission is incomplete by the time window expires, the controller circuit 512 can generate a mission control signal that triggers the mobile cleaning robot to abort, suspend, or pause the incomplete mission.

[0104] Multi-mission mode In some examples, the controller circuit 512 can operate the mobile cleaning robot 510 in multi-mission mode 518. This allows the mobile cleaning robot 510 to schedule cleaning missions across multiple sessions at different times, such as a series of time windows spanning a specified number of days (e.g., 3 or 7 days). The controller circuit 512 can track the progress of the missions, including mission completion status, such as the areas cleaned and areas left incomplete by the time window expires. The controller circuit 512 can trigger the mobile cleaning robot to resume any incomplete missions in the next time window according to the multi-mission schedule. For example, but not limited to, a time-box mission 535 may be performed under multi-mission mode 518, and any incomplete jobs at the expiration of the current time window may be automatically assigned to the next scheduled time window. Multi-mission mode 518 can also be used when the mobile robot is performing other missions or routines, such as out-of-office routines, return-to-home routines 532, or no-disturbance routines. Notifications such as summaries of mission coverage across different time windows may be displayed to the user along with other metrics. In some cases, the user may be presented with suggestions such as adjusting the multi-mission schedule for future time windows spanning a specified number of days.

[0105] Automated scheduling for mobile robots Figure 6 illustrates an example of a system 600 that uses a cleanliness score to prioritize cleaning by a mobile cleaning robot (e.g., robot 100 (Figure 1)). System 600 can include multiple components that communicate with each other. For example, as shown in Figure 6, system 600 can include a mobile component 610 (e.g., a mobile device 404 (Figure 4A)), an Internet of Things (IoT component 620) (e.g., a cloud computing system 406 (Figure 4A)), and a data platform component 630 (e.g., robot 408 (Figure 4A), any other device connected to the mobile component 610 or IoT component 620, or similar).

[0106] The mobile component 610 can enable communication between a user (e.g., user 60 (Figure 1)) and a robot (e.g., robot 100). The user can interface with the mobile component 610 to view a cleanliness summary 612 and invoke a smart cleaning call to action (CTA) or smart cleaning command 614. The mobile component 610 can generate a cleanliness summary 612 and transmit smart cleaning commands 614 to the IoT component 620. The user can also select one or more preferences, parameters, or controls to assist the system 600 in scheduling and prioritizing room cleaning schedules.

[0107] The IoT component 620 can enable cross-platform communication between one or more systems, components, or similar entities of system 600. For example, the IoT component 620 can generate a map of cleanliness scores 622 to update a cleanliness summary 612. The IoT component 620 can update the map of cleanliness scores 622 using data from the data platform component 630. The IoT component 620 can use information from the mobile component 610 or the data platform component 630 to update reports, summaries, data packets, or similar entities, and transmit the updated reports, summaries, data packets, or similar entities to the mobile component 610, the data platform component 630, or any other component of system 600.

[0108] The data platform component 630 may be configured to analyze, process, or store data to help the robot 100 schedule or prioritize the cleaning of different rooms to be cleaned by the mobile cleaning robot 100. The data platform component 630 can transmit a cleanliness score service 632 to the IoT component 620 so that the IoT component 620 can update the map cleanliness score 622 for each room to be cleaned by the robot 100. In an example, the cleanliness score service 632 may be updated by any pipeline of the scoring pipeline 637. The scoring pipeline 637 may update the cleanliness score service 632 using the mission history database 634, the trash detection database 636, the mission history summary 626, or the map service 628. The data platform component 630 may also generate a smart cleaning application programming interface (smart cleaning api 644) using one or more of the cleanliness score service 632, intelligent room sequence 638, or smart cleaning preferences 640. The data platform component 630 can transmit the smart cleaning API 644 to the IoT component 620 or the mobile component 610, one or more of which can communicate with the mobile cleaning robot 100 via the IoT broker 624 of the IoT component 620.

[0109] The IoT broker 624 can communicate with the mobile cleaning robot (e.g., robot 100) to provide commands, priorities, or updates to the mobile cleaning robot from either the mobile component 610, the IoT component 620, or the data platform component 630. The IoT broker 624 can also receive an operational summary 650 from the mobile cleaning robot. The operational summary 650 may include location data of the mobile cleaning robot, debris detection data from the mobile cleaning robot during cleaning operations, or debris extraction data. The debris detection or extraction data may include the amount or type of debris detected or extracted by the mobile cleaning robot. The IoT component 620 can generate a mission history summary 626 based on one or more of the mobile cleaning robot's location data, debris detection data from the mobile cleaning robot during cleaning operations, or debris extraction data. The IoT component 620 can transmit the mission history summary 626 to the data platform component 630 for storage (e.g., in the mission history database 634).

[0110] The map service 628 of the IoT component 620 can also provide a map updated based on the operation summary 650 of the robot 100. For example, the map service 628 may be updated based on information from one or more of the following: location data of the mobile cleaning robot, garbage detection data from the mobile cleaning robot during cleaning operations, and garbage extraction data. The IoT component 620 can transmit the map service 628 to the data platform component 630 for storage (for example, in the garbage detection database 636).

[0111] The data platform component 630 can also generate cleaning time estimates using the cleaning time estimation service 642. The cleaning time estimation service can use data from the IoT broker 624, mission history summary 626, map service 628, mission history database 634, trash detection database 636, cleanliness score service 632, intelligent room sequence 638, smart cleaning preference 640, smart cleaning API 644, or any other component of the mobile component 610, IoT component 620, or data platform component 630 to generate a time estimate of the cleaning service required to properly clean each room planned to be cleaned by the robot 100. The cleaning time estimation service 642 can be transmitted by the data platform component 630 to the preference service 615 and shared with the user in the smart cleaning command 614 of the mobile component 610.

[0112] The scoring pipeline 637 can use two different pipelines to calculate cleanliness scores (e.g., cleanliness score service 632), cleaning insights, smart cleaning preferences (e.g., smart cleaning preferences 640), and room order (e.g., intelligent room order 638). The first pipeline of the scoring pipeline 637 may include a decay pipeline. The decay pipeline may include a batch pipeline that can decrease the cleanliness of each room over time. In the example, this pipeline may be configured to operate at different time intervals. For example, this pipeline may operate at any time increment up to every hour, every two hours, every three hours, every four hours, every five hours, every six hours, or daily or weekly. The first pipeline of the scoring pipeline 637 will be further described with reference to Figure 8.

[0113] A second pipeline in the scoring pipeline 637 may be a recovery pipeline. The recovery pipeline may be an event-driven pipeline that updates smart cleaning commands by calculating cleanliness scores (e.g., cleanliness score service 632), cleaning insights, smart cleaning preferences (e.g., smart cleaning preferences 640), and the room order for each room as a result of a cleaning mission (e.g., intelligent room order 638) (e.g., from the mission history summary 626 or the mission history database 634). In the example, the second pipeline in the scoring pipeline 637 may be triggered when a mission is completed or when a user edits the map. When a mission is completed, the second pipeline can update the cleanliness scores for the cleaned rooms. When a user updates the map, the second pipeline can calculate cleanliness scores for the updated spaces. The second pipeline in the scoring pipeline 637 is described with reference to Figure 7.

[0114] In a working example of system 600, a user can interact with the mobile component 610 to select a space (for example, a map of cleanliness summary 612) and review a trash detection or dirt detection function for that space. The dirt detection function may be populated with data by calling the cleanliness score 622. The cleanliness score 622 can pull cleaning scores from the smart cleaning API 644 and update the map for the user to review. The smart cleaning command 614 may be populated with data by calling the favorites service 615. The favorites service 615 can retrieve the current smart cleaning command from the smart cleaning API 644. The user can then execute the smart cleaning command for the selected space.

[0115] In response to a user executing a smart cleaning command, the mobile component 610 can publish the smart cleaning command 614 to the IoT broker 624. The IoT broker 624 can publish the smart cleaning command 614 to a robot (for example, robot 100). Robot 100 can execute the smart cleaning command 614.

[0116] In response to a user scheduling a smart cleaning command for a later date (for example, at a time other than now), IoT component 620 can store the smart cleaning command in a scheduling service module (scheduling service 617). For example, IoT component 620 can store the smart cleaning command 614 in the scheduling service 617 along with a time setting command to execute the smart cleaning command 614. When the time setting command arrives, scheduling service 617 can transmit the smart cleaning command 614 to IoT broker 624, which can then publish the smart cleaning command 614 to a robot (for example, robot 100), and the robot can execute the smart cleaning command 614.

[0117] Figure 7 illustrates an example of a room rank order (e.g., intelligent room order 638) for prioritizing room cleaning for a mobile cleaning robot (e.g., robot 100 (Figure 1)). As shown in Figure 7, the intelligent room order 638 may include a cleanliness score 710, one or more room parameters 730, and one or more cleaning preferences 750.

[0118] The cleanliness score 710 may be updated, for example, by the data platform component 630 (Figure 6) based on debris detected or extracted by the mobile cleaning robot. The cleanliness score 710 may also be updated based on historical data stored in the mission history database 634 and the debris detection database 636. The cleanliness score 710 may be affected by the cleanliness decay module 712, the unknown cleanliness module 714, or the cleanliness recovery module 716.

[0119] The cleanliness decay module 712 may be configured to update the cleanliness score for each room based on historical data of debris detected or extracted from the room. As such, the cleanliness decay module 712 can access the mission history database 634 or the debris detection database 636 (Figure 6) and update the cleanliness score 710 based on information from the mission history database 634 or the debris detection database 636. For example, based on information in the mission history database 634 and the debris detection database 636, the cleanliness decay module 712 can determine the typical cleanliness decay for each room cleaned by the mobile cleaning robot. Here, the cleanliness decay module 712 can determine the expected rate of cleanliness decay for each room by comparing the length of time between cleanings with the amount of debris extracted or detected in each of those cleanings. Thus, the cleanliness decay module 712 can predict the cleanliness decay for each room cleaned by the mobile cleaning robot to update the cleanliness score 710 as a function of time between cleanings.

[0120] The Unknown Cleanliness Module 714 may be configured to modify the cleanliness score 710 when the cleanliness of a room or part of a room is unknown, based on information from the mission history database 634 or the debris detection database 636. The Unknown Cleanliness Module 714 can analyze the information in the mission history database 634 or the debris detection database 636 to determine rooms or parts of rooms that were not covered by the mobile cleaning robot, thereby increasing the uncertainty of the cleanliness score for each room or part of a room. Thus, the Unknown Cleanliness Module 714 can update the cleanliness score 710 based on the uncertainty of the cleanliness of each room or part of a room that the robot may have missed in a previous cleaning mission.

[0121] The cleanliness recovery module 716 may be configured to update the cleanliness score 710 for each room cleaned by the mobile cleaning robot. The cleanliness recovery module 716 obtains this information based on the information stored in the mission history database 634 or the debris detection database 636 for each mobile cleaning mission of the mobile cleaning robot. For example, the cleanliness recovery module 716 may compare the data in the mission history database 634 or the debris detection database 636 with the historical average of detected debris and extracted debris to estimate the cleanliness of each room, or a portion of each room, after each cleaning operation by the mobile cleaning robot. The cleanliness recovery module 716 may also calculate cleanliness recovery by comparing detected debris with extracted debris (for example, using the dirt sensor 144) and update the cleanliness score 710 for each room cleaned by the mobile cleaning robot.

[0122] One or more room parameters 730 can also affect the intelligent room order 638. One or more room parameters 730 may include one or more of either room types 732 or mission types 734. Room types 732 may include one or more of bedrooms, kitchens, bathrooms, laundry rooms, dining rooms, entryways, children's rooms, basements, porches, pet rooms, or similar. Mission types 734 may include one or more of vacuuming, mopping, or similar.

[0123] One or more room parameters 730 may be used simultaneously to influence the intelligent room order 638 by determining which room types (e.g., children's rooms, kitchens, bathrooms, pet rooms, etc.) require more frequent cleaning than other room types (e.g., guest bedrooms, formal family rooms, home offices, etc.) and are therefore cleaned by mobile cleaning robots. Thus, the room types 732 can help the data platform component 630 update the intelligent room order 638 by comparing each of the room types 732 and prioritizing the room types that require more frequent cleaning.

[0124] Mission type 734 also allows the data platform component 630 to help update the intelligent room order 638, but it also allows the data platform component 630 to help prioritize different cleaning modes based on a number of factors. For example, the data platform component 630 may prioritize rooms with more mopping if the trash can is nearly full, or it may prioritize rooms with more vacuuming if the mobile cleaning robot is running low on detergent.

[0125] In the example, the data platform component 630 can use a combination of room type 732 and mission type 734 to update the intelligent room order 638. For example, if it is determined that one room requires cleaning more frequently than a second room, and both rooms require mopping, the data platform component 630 can prioritize mopping in the room requiring cleaning more frequently than the other rooms to ensure that mopping is completed in the room that is more likely to require cleaning more urgently.

[0126] One or more smart cleaning preferences 750 may be configured to help the data platform component 630 update the intelligent room order 638. One or more cleaning preferences 750 may include a room size 752 and a floor type 754 for each room to be cleaned by the mobile cleaning robot. The data platform component 630 may update the intelligent room order 638 using the room size 752 and floor type 754 (e.g., hardwood, vinyl, stone, linoleum, carpet type (e.g., twist carpet, loop carpet, pattern carpet, or similar), carpet length (e.g., low pile, medium pile, high pile height), or similar).

[0127] The room size 752 can help the data platform component 630 prioritize rooms based on the time available to complete cleaning. For example, a user can set a preferred time for the mobile cleaning robot to perform cleaning operations, and the data platform component 630 can predict the length of time required to clean the rooms based on the room size 752. In this way, the data platform component 630 can use the room size 752 to help provide information to the intelligent room sequencer 638, ensuring that all necessary or the dirtiest rooms are cleaned within the preferred cleaning time.

[0128] The floor type 754 can help the data platform component 630 prioritize rooms based on the cleaning type (e.g., mission type 734) required to clean each room by the mobile cleaning robot. The floor type 754 can also affect one or more operating parameters of the cleaning system (e.g., cleaning system 310 (Figure 3)). The floor type 754 can adjust the suction motor fan (e.g., suction fan motor 316 (Figure 3)) to increase or decrease the amount of suction required to clean each room based on the floor type 754 of each room. For example, if carpets have a high pile height, the suction motor fan can operate at a faster speed than carpets with a low pile height, which can result in a shorter cleaning duration before recharging. Thus, the data platform component 630 can use the floor type 754 to prioritize rooms to be cleaned by the robot, ensuring that rooms with similar room types that require the most cleaning have a higher priority on the intelligent room order 638.

[0129] Figure 8 illustrates an example of a decrease in cleanliness. Figure 8 shows a sample map 801 and a cleanliness recovery and decay chart 803. As described above, the decrease in cleanliness can be tracked by the cleanliness decay module 712 (Figure 7). In the illustrative schematic diagram shown in sample map 801, each of the rooms (e.g., the first room 802, the second room 804, and the third room 806) may have its own cleanliness score (e.g., cleanliness score 808 for the first room, cleanliness score 810 for the second room, and cleanliness score 812 for the third room) and dust detection scores (e.g., first dust detection score 814, second dust detection score 816, and third dust detection score 818). As described herein, over time, the data platform component 630 may initiate the cleanliness decay module 712 to update the cleanliness score, and after each mission, the data platform component 630 may update the dust detection score for each room.

[0130] The cleanliness recovery and decay chart 803 may include a first cleaning instance 832, a second cleaning instance 834, a third cleaning instance 836, and a fourth cleaning instance 838. As shown in sample map 801, the third room 806 had the highest (e.g., worst) cleanliness score and the highest debris detection score, and therefore the third room 806 was commanded to be cleaned between the first cleaning instance 832, the second cleaning instance 834, and the fourth cleaning instance 838. In contrast, the first room 802 had the lowest cleanliness score and the lowest debris detection score, and therefore the first room 802 was commanded to be cleaned only between the third cleaning instance 836 and the fourth cleaning instance 838.

[0131] As shown in the cleanliness recovery and decay chart 803, each cleaning instance can reset the cleanliness score, and as time progresses, the cleanliness of each room can decay at least partially based on the debris detected in the previous cleaning instance. Thus, since each room has a different debris detection score, each room can have its own unique or individualized rate of cleanliness decay. As such, when the seasons change or the user's habits change, the cleanliness decay can be updated by the cleanliness decay module 712 when the cleanliness score and debris detection score change.

[0132] In the example, there may be a partial recovery incident, as shown in the third cleaning instance 836 for the first room 802. In a partial recovery incident, the cleanliness recovery module 716 (Figure 7) can compare the cleaned area to the known area of ​​the first room 802 via the operational summary 650 (Figure 6) or another data source within the system 600 (Figure 6). In such a calculation, the cleanliness recovery module 716 can consider and adjust the number of times the robot used to clean the first room 802 (e.g., robot 100 (Figure 1)) has passed through, and adjust the cleanliness recovery accordingly (e.g., increase or decrease).

[0133] Figures 9 to 11 are described together below. Figure 9 illustrates an example of a raw missed space heatmap 900 for a mobile cleaning robot (e.g., robot 100 (Figure 1)). Figure 10 illustrates an example of a scaled and smoothed missed space heatmap 1000 for a mobile cleaning robot. Figure 11 illustrates an example of a map boundary line along with a missed space heatmap 1100 for a mobile cleaning robot. The raw missed space heatmap 900, the scaled and smoothed missed space heatmap 1000, and the missed space heatmap 1100 can be updated by the mobile component 610, the IoT component 620, or the data platform component 630. For example, the raw missed space heatmap 900, the scaled and smoothed missed space heatmap 1000, and the missed space heatmap 1100 may be updated by the IoT broker 624 when the IoT broker 624 generates the map service 628, or by the unknown cleanliness module 714 for determining areas of the cleaning environment of a mobile cleaning robot, including unknown cleanliness.

[0134] The raw missed space heatmap 900 can show raw collected data including areas, rooms, or parts of rooms missed by the mobile cleaning robot during its cleaning operation. The raw missed space heatmap 900 can be scaled and smoothed by the mobile component 610, IoT component 620, or data platform component 630, thereby removing noise and generating a scaled and smoothed missed space heatmap 1000. The mobile component 610, IoT component 620, or data platform component 630 can then generate a missed space heatmap 1100 from the scaled and smoothed missed space heatmap 1000 to generate a map of the areas cleaned by the mobile cleaning robot, including appropriate boundaries that highlight the areas, rooms, or parts of rooms missed during the cleaning operation. In the example, system 600 (Figure 6) can send a signal to the user (e.g., user 60 (Figure 1)) suggesting that these areas, rooms, or parts of rooms be prioritized for cleaning, or that the room be modified to allow the mobile cleaning robot access to the missed areas, rooms, or parts of rooms.

[0135] Figures 12–17 are exemplary UI interfaces that may be displayed on a mobile device 1200 (for example, mobile device 404 (Figure 4), mobile device 520 (Figure 5), mobile component 610 (Figure 6), or similar).

[0136] Figure 12 shows an exemplary user interface 1201 on a mobile device 1200. As shown in Figure 12, the user interface 1201 on the mobile device 1200 may include a smart cleaning toggle 1202 that allows the user to turn smart cleaning mode on or off. In the example, smart cleaning mode can activate system 600 to automatically prioritize and schedule room cleaning. The user interface 1201 may also include a map floor menu 1204, which may allow the user to select the level of the house where the mobile cleaning robot is located and customize the cleaning behavior at each level of the house. The user interface may also list each of the rooms 1206 for the floor selected via the map floor menu 1204.

[0137] Figure 13 shows an exemplary user interface 1301 on a mobile device 1200. As shown in Figure 13, the user interface 1301 on the mobile device 1200 may include a map 1208 of the floor selected in the map floor menu 1204 (Figure 12). The map 1208 may include the cleanliness score (e.g., cleanliness score 710 (Figure 7)) for each room shown on the map 1208. The user interface 1301 on the mobile device 1200 may also include a smart cleaning preview 1210 that can show the estimated cleaning time for a proposed schedule from system 600 (Figure 6). The next-round listing 1212 may also include a listing of planned cleaning for robot 100 (Figure 1). Each of the next-round listings 1212 may include a toggle instruction 1214 that can be selected by the user to skip the planned cleaning in the next-round listing 1212.

[0138] Figure 14 shows an exemplary user interface 1401 on a mobile device 1200. The user interface 1401 may include a smart cleaning schedule 1402, a smart cleaning customization button 1404, and a start button 1406. The smart cleaning schedule 1402 may include an intelligent room sequence 638 (Figure 6), a planned operation time, and a date on which the cleaning operation is scheduled to be completed. In the example, the smart cleaning schedule 1402 can be for any length of time. For example, the smart cleaning schedule 1402 could be for today, the next 2-3 days, the next few days, the next week, or the next month. In the example, a user (e.g., user 60) can customize what is shown in the smart cleaning schedule 1402.

[0139] The smart cleaning customization button 1404 can provide the user (user 60) with the opportunity to create a cleaning schedule or adjust one or more elements of the intelligent room sequence 638. For example, the smart cleaning customization button 1404 can instruct the mobile cleaning robot to vacuum only a room, skip a room, or prioritize a different room over a planned room, instead of vacuuming and mopping the room. In the example, user 60 could also set a time when they want all rooms on the intelligent room sequence 638 to be cleaned, which can override the uninterrupted routine 533 (Figures 5A and 5B).

[0140] The Start Now instruction 1406 may be selected to command the mobile component 610, the IoT component 620, or the data platform component 630, or any other component of the system 600, to send a signal to the mobile cleaning robot to begin cleaning the environment (such as environment 40) based on the intelligent room sequence 638. The instruction 1406 may be selected to override any other constraints on the operation of the mobile cleaning robot to begin cleaning the room based on the intelligent room sequence 638 before the planned start time of the cleaning operation.

[0141] Figures 15 to 17 are described together below. Figure 15 shows an exemplary user interface 1501 on a mobile device 1200. Figure 16 shows an exemplary user interface 1501 on a mobile device 1200. Figure 17 shows an exemplary user interface 1501 on a mobile device 1200.

[0142] The user interface 1501 may include a smart cleaning toggle instruction 1502, a map floor menu 1204 (for selecting the floor on which the mobile cleaning robot is performing a cleaning operation), and a smart cleaning preview 1210. As shown in Figure 15, the smart cleaning toggle instruction 1502 can be switched on, thereby causing the smart cleaning preview 1210 to present each room on the intelligent room sequence 638 containing cleaning information (mission type, cleaning parameters, or similar). The user can select a start now instruction 1406, which causes the mobile component 610, the IoT component 620, or the data platform component 630, or any other component of the system 600, to send a signal to the mobile cleaning robot to start cleaning in the order determined by the intelligent room sequence 638.

[0143] As shown in Figure 16, the smart cleaning toggle instruction 1502 can be switched off, and the smart cleaning preview 1210 can present each room on the intelligent room sequence 638, including cleaning information (mission type, cleaning parameters, or similar). The user can press the Start Now instruction button 1406, which causes the mobile component 610, the IoT component 620, or the data platform component 630, or any other component of the system 600, to send a signal to the mobile cleaning robot to start cleaning in the order determined by the intelligent room sequence 638.

[0144] As shown in Figure 17, the smart cleaning toggle instruction 1502 can be switched off, and the smart cleaning preview 1210 can present each room on the intelligent room sequence 638 without any additional information about cleaning (mission type, cleaning parameters, or similar). The user can select the start now instruction 1406, which causes the mobile component 610, the IoT component 620, or the data platform component 630, or any other component of the system 600, to send a signal to the mobile cleaning robot to start cleaning in the order determined by the intelligent room sequence 638.

[0145] Figure 18 illustrates a block diagram of an exemplary machine 1800 in which one or more of the techniques (e.g., methods) described herein may be performed. The example may include, or be operated by, logic or a number of components or mechanisms within the machine 1800 as described herein. A circuit (e.g., a processing circuit) is a collection of circuits implemented on a tangible entity of the machine 1800, including hardware (e.g., simple circuits, gates, logic, or the like). Member relationships between circuits may change flexibly over time. A circuit includes members that, individually or in combination, can perform a specified operation when operating. In the example, the hardware of a circuit may be designed immutably to perform a particular operation (e.g., hardwiring). In the example, the hardware of a circuit may include variably connected physical components (e.g., execution units, transistors, simple circuits, or the like) that include a machine-readable medium (e.g., a magnetic, electrical, movable arrangement of particles of invariant mass, or the like) that is physically modified to encode instructions for a particular operation. When connecting physical components, the fundamental electrical properties of the hardware components are changed, for example, from insulator to conductor, or from conductor to insulator. Instructions allow embedded hardware (e.g., an execution unit or loading mechanism) to create members of a circuit in the hardware via variable connections in order to perform a specific part of an operation during operation. Thus, in the example, machine-readable media elements are either part of a circuit or are coupled in a communicative manner to other components of a circuit when the device is operating. In the example, any of the physical components may be used by multiple members of multiple circuits. For example, during operation, an execution unit may be used at one point in a first circuit of a first set of circuits, and at a different point in time by a second circuit within the first set of circuits, or a third circuit in a second set of circuits. An example of additional these components relating to machine 1800 is shown below.

[0146] In alternative examples, machine 1800 may operate as a standalone device or may be connected to other machines (e.g., network-connected). In a network-connected deployment, machine 1800 may operate as a server machine, a client machine, or both in a server-client network environment. In the example, machine 1800 may operate as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. Machine 1800 may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, web appliance, network router, switch or bridge, or any machine capable of executing instructions (sequentially or otherwise) that specify actions to be performed by that machine. Furthermore, although only a single machine is illustrated, the term “machine” shall be interpreted to include a collection of machines that individually or in conjunction execute a set of instructions (or more sets of instructions) to perform one or more of the methods described herein, such as cloud computing, software as a service (SaaS), and other computer cluster configurations.

[0147] The machine (e.g., a computer system) 1800 includes a hardware processor 1802 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), main memory 1804, static memory (e.g., memory or storage for firmware, microcode, basic input / output (BIOS), Unified Extensible Firmware Interface (UEFI), or similar) 1806, and mass storage device 1808 (e.g., a hard drive, tape drive, flash storage, or other block device), some or all of which may communicate with each other via an interlink (e.g., a bus) 1830. The machine 1800 may further include a display unit 1810, an alphanumeric input device 1812 (e.g., a keyboard), and a user interface (UI) navigation device 1814 (e.g., a mouse). In the example, the display unit 1810, the input device 1812, and the UI navigation device 1814 may be touchscreen displays. The machine 1800 may further include a storage device (e.g., a drive unit) 1808, a signal generating device 1818 (e.g., a speaker), a network interface device 1820, and one or more sensors 1816 such as a Global Positioning System (GPS) sensor, a compass, an accelerometer, or other sensor. The machine 1800 may also include an output controller 1828 such as a serial (e.g., Universal Serial Bus (USB)), parallel, or other wired or wireless (e.g., infrared (IR), near-field communication (NFC), or similar) connection for communicating with or controlling one or more peripheral devices (e.g., a printer, a card reader, or similar).

[0148] The registers of processor 1802, main memory 1804, static memory 1806, or mass storage device 1808 may be, or include, a machine-readable medium 1822 in which one or more sets of data structures or instructions 1824 (e.g., software) that are embodied or utilized by one or more of the techniques or functions described herein are stored. The instructions 1824 may also reside, fully or at least partially, in any of the registers of processor 1802, main memory 1804, static memory 1806, or mass storage device 1808 while they are being executed by machine 1800. In the example, one or any combination of the hardware processor 1802, main memory 1804, static memory 1806, or mass storage device 1808 may constitute the machine-readable medium 1822. Although machine-readable medium 1822 is exemplified as a single medium, the term “machine-readable medium” may include a single or multiple mediums configured to store one or more instructions 1824, such as a centralized or distributed database, or associated caches and servers.

[0149] The term “machine-readable medium” can include any medium on which instructions for execution by machine 1800 can be stored, encoded, or carried, or used by or associated with such instructions, or which can store, encode, or carry, instructions causing machine 1800 to perform one or more of the technologies of the present disclosure. Examples of non-limiting machine-readable mediums can include solid memory, optical mediums, magnetic mediums, and signals (e.g., radio frequency signals, other photon-based signals, sound signals, or similar). In examples, a non-temporary machine-readable medium includes a machine-readable medium having a plurality of particles having an immutable (e.g., stationary) mass, and is therefore a composition of a substance. Thus, a non-temporary machine-readable medium is a machine-readable medium that does not contain a transient propagating signal. Specific examples of non-temporary machine-readable media include non-volatile memory such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices, magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks.

[0150] In the example, information stored on machine-readable medium 1822 or otherwise provided in any way may represent instruction 1824 itself, or instruction 1824 in any format from which instruction 1824 can be derived. This format from which instruction 1824 can be derived may include source code, encoded instructions (e.g., in a compressed or encrypted form), packaged instructions (e.g., divided into multiple packages), or the like. Information representing instruction 1824 in machine-readable medium 1822 may be processed by a processing circuit into instructions for performing any of the operations described herein. For example, deriving instruction 1824 from information (e.g., processing by a processing circuit) may include compiling (e.g., from source code, object code, or the like), interpreting, loading, organizing (e.g., dynamically or statically linking), encoding, decrypting, encrypting, decrypting, packaging, unpackaging, or otherwise manipulating the information into instruction 1824.

[0151] In the example, the derivation of instruction 1824 may involve assembling, compiling, or interpreting information (e.g., by a processing circuit) to create instruction 1824 from some intermediate or pre-processed format provided by machine-readable medium 1822. When the information is provided in multiple parts, it may be combined, decompressed, and modified to create instruction 1824. For example, the information may take the form of multiple compressed source code packages (or object code, or binary executable code, or similar) on one or more remote servers. The source code packages may be encrypted, decrypted, decompressed if necessary, assembled (e.g., linked), compiled or interpreted on the local machine (e.g., into a library, a standalone executable, or similar) as they are transferred over the network, and executed by the local machine.

[0152] Instruction 1824 may also be transmitted or received over a communication network 1826 using a transmission medium via a network interface device 1820 that utilizes any one of a number of transport protocols (e.g., Frame Relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), or similar). Illustrative communication networks may include, among others, local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), LoRa® / LoRaWAN®, or satellite communication networks, mobile phone networks (e.g., cellular networks such as those conforming to 3G, 4G LTE / LTE-A, or 5G standards), legacy telephone service (POTS) networks, and wireless data networks (e.g., the IEEE 502.11 family of standards, the IEEE 502.15.4 family of standards, and peer-to-peer (P2P) networks, known as Wi-Fi®). In the example, the network interface device 1820 may include one or more plug jacks (e.g., Ethernet, coaxial, or telephone plug jacks) or one or more antennas for connecting to the communication network 1826. In the example, the network interface device 1820 may include multiple antennas for wireless communication using at least one of the following technologies: single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO). The term “transmission medium” is to be interpreted as including any intangible medium on which instructions for execution by machine 1800 can be stored, encoded, or carried, including digital or analog communication signals, or other intangible medium for facilitating such software communication. The transmission medium is a machine-readable medium.

[0153] The following non-limiting examples illustrate in detail certain aspects of the subject matter, particularly in order to solve the problems described herein and to provide advantages.

[0154] Example 1 is a method for prioritizing the cleaning of rooms in an environment for a mobile cleaning robot, the method comprising: generating a cleanliness score for each room in the environment using a controller, each cleanliness score indicating the amount of dirt expected in each room by the mobile cleaning robot; generating room cleaning priorities based at least in part on the cleanliness score for each room; and scheduling the actions of the mobile cleaning robot for a planned mission based on the room cleaning priority for each room in the environment.

[0155] In Example 2, the subject of Example 1 involves updating a cleaning report that includes a cleanliness score for each room cleaned by the mobile cleaning robot.

[0156] In Example 3, the subject of Example 2 involves updating the cleanliness score for each room based on the past cleanliness degradation of each room in the environment, where the past cleanliness degradation of each room is based on past cleaning data and the length of time that has elapsed since the mobile cleaning robot cleaned each room.

[0157] In Example 4, the subject of Example 3 includes location data of a mobile cleaning robot while the cleaning report is performing one or more cleaning operations within each room, and the method includes determining the portion of the room that was not cleaned by the mobile cleaning robot based on the location data of the mobile cleaning robot from the cleaning report, and updating the cleanliness score for each room based on the portion of the room that was not cleaned by the mobile cleaning robot.

[0158] In Example 5, the subject of Example 4 is to generate a room cleaning ranking, which includes updating the room cleaning ranking based on one or more of the following: updated cleanliness score, room type for each room in the environment, room size for each room in the environment, floor type for each room in the environment, and mission type for each room in the environment.

[0159] In Example 6, the subject of Example 5 is further defined as follows: the room cleaning priority includes a cleanliness score and a mission command for each respective room, the mission command includes one or more operational parameters for the mobile cleaning robot, and the one or more operational parameters include one or more of the following: the mission type of the planned mission by the mobile cleaning robot, cleaning parameters for the mission type, and estimated operating time for the mission.

[0160] In Example 7, the subject of Example 6 includes the fact that the mission type includes a vacuuming mission, a mopping mission, or a vacuuming and mopping mission.

[0161] In Example 8, the subject matter of Examples 6-7 includes one or more cleaning parameters, which include one or more of the following: vacuum cleaner suction power, cleaning roller rotation speed, side brush rotation speed, liquid discharge volume, liquid discharge speed, scrubbing action to remove dirt, mission type, or cleaning pattern proposed for a mobile cleaning robot.

[0162] Example 9 is a mobile cleaning robot comprising a drive system configured to move the mobile cleaning robot around an environment, a cleaning system, a memory device containing instructions, and one or more processors coupled to the memory device, the one or more processors including a processing circuit which, when in operation, generates a cleanliness score for each room of the environment based on instructions, each cleanliness score indicating the expected amount of dirt in each room by the mobile cleaning robot, generates a room cleaning priority based at least in part on the cleanliness score of each room, and is configured to schedule the operation of the mobile cleaning robot for a planned mission based on the room cleaning priority of each room in the environment.

[0163] In Example 10, the subject of Example 9 is configured such that the instruction causes a processing circuit to update a cleaning report that includes a cleanliness score for each room cleaned by the mobile cleaning robot.

[0164] In Example 11, the subject of Example 10 is configured such that a command causes a processing circuit to update a cleanliness score for each room based on the past cleanliness degradation of each room in the environment, the past cleanliness degradation of each room being based on past cleaning data and the length of time that has elapsed since the mobile cleaning robot cleaned each room.

[0165] In Example 12, the subject of Example 11 includes location data of the mobile cleaning robot while it is performing one or more cleaning operations within each room, and the instruction configures a processing circuit to determine the portion of the room that was not cleaned by the mobile cleaning robot based on the location data of the mobile cleaning robot from the cleaning report, and to update the cleanliness score for each room based on the portion of the room that was not cleaned by the mobile cleaning robot.

[0166] In Example 13, the subject of Example 12 is to generate a room cleaning ranking, which includes configuring the instruction to update the room cleaning ranking based on one or more of the following: updated cleanliness score, room type for each room in the environment, room size for each room in the environment, floor type for each room in the environment, and mission type for each room in the environment.

[0167] In Example 14, the subject of Example 13 is further defined, wherein the room cleaning priority includes a cleanliness score and a mission command for each respective room, the mission command includes one or more operational parameters for the mobile cleaning robot, and the one or more operational parameters include one or more of the mission type of the planned mission by the mobile cleaning robot, cleaning parameters for the mission type, and estimated operating time for the mission.

[0168] Example 15 is a mobile robotic system for prioritizing the cleaning of rooms in an environment, comprising a mobile cleaning robot including a drive system configured to move the mobile cleaning robot around the environment, a mobile device that operably communicates with the mobile cleaning robot, a memory device that stores instructions, and one or more processors coupled to the memory device, the one or more processors including a processing circuit that, when operating, generates a cleanliness score for each room in the environment by instructions, each cleanliness score indicating the expected amount of dirt in each room by the mobile cleaning robot, generates a room cleaning priority based at least in part on the cleanliness score of each room, and is configured to schedule the operation of the mobile cleaning robot for a planned mission based on the room cleaning priority of each room in the environment.

[0169] In Example 16, the subject of Example 15 is configured such that the instruction causes a processing circuit to update a cleaning report that includes a cleanliness score for each room cleaned by the mobile cleaning robot.

[0170] In Example 17, the subject of Example 16 is configured such that the instruction causes a processing circuit to update a cleanliness score for each room based on the past cleanliness degradation of each room in the environment, the past cleanliness degradation of each room being based on past cleaning data and the length of time that has elapsed since the mobile cleaning robot cleaned each room.

[0171] Example 18 includes the subject of Example 17 being the location data of the mobile cleaning robot while it is performing one or more cleaning operations in each of its rooms, and the instruction is configured to configure a processing circuit to determine the portion of the room that was not cleaned by the mobile cleaning robot based on the location data of the mobile cleaning robot from the cleaning report, and to update the cleanliness score for each room based on the portion of the room that was not cleaned by the mobile cleaning robot.

[0172] In Example 19, the subject of Example 18 is to generate a room cleaning ranking, which includes configuring the instruction to update the room cleaning ranking based on one or more of the following: updated cleanliness score, room type for each room in the environment, room size for each room in the environment, floor type for each room in the environment, and mission type for each room in the environment.

[0173] In Example 20, the subject of Example 19 is further defined as follows: the room cleaning priority includes a cleanliness score and a mission command for each respective room, the mission command includes one or more operational parameters for the mobile cleaning robot, and the one or more operational parameters include one or more of the mission type of the planned mission by the mobile cleaning robot, cleaning parameters for the mission type, and estimated operating time for the mission.

[0174] Example 21 is at least one machine-readable medium containing instructions that, when executed by a processing circuit, cause the processing circuit to perform an action to implement any of Examples 1 to 20.

[0175] Example 22 is a device that includes means for implementing any of Examples 1 to 20.

[0176] Example 23 is a system for implementing any of Examples 1 through 20.

[0177] Example 24 is a method for implementing any of Examples 1 through 20.

[0178] Example 25 is at least one machine-readable medium, device, system, or method that includes any element from any of Examples 1 to 20.

[0179] The description detailed above includes references to the accompanying drawings, which form part of the detailed description. The drawings illustrate specific examples of possible implementations. These embodiments are also referred to herein as “examples.” Such examples may include elements in addition to those illustrated or described. However, the inventors also intend examples in which only the illustrated or described elements are provided. Furthermore, the inventors also intend examples using any combination or permutation of those illustrated or described elements (or one or more embodiments thereof) with respect to a particular example (or one or more embodiments thereof) or to other examples (or one or more embodiments thereof) shown or described herein.

[0180] All publications, patents, and patent documents referenced herein are incorporated herein by reference in their entirety, as if they were incorporated individually by reference. In the event of any conflict in usage between this specification and the documents incorporated by reference, the usage of the incorporated document shall be considered supplementary to the usage of this specification, and in the event of an incompatible conflict, the usage of this specification shall prevail.

[0181] In this specification, the word “one” ("a" or "an") is used to include one or more, as is common in patent literature, and is not related to any other examples or uses of “at least one” or “one or more.” In this specification, the word “or” is used to refer to non-exclusive or such that “A or B” includes “A but not B,” “B but not A,” and “A and B.” In the appended claims, “including” and “in which” in the English original are used as plain English paraphrases of “comprising” and “wherein,” respectively. Also, in the following claims, “including” and “comprising” in the English original are open-ended; that is, a system, device, article, or process that includes elements in addition to the elements listed after such words in the claim is still considered to fall within the scope of that claim. Furthermore, in the following claims, the terms “first,” “second,” and “third,” or similar terms, are used merely as labels and are not intended to impose numerical requirements on the subject.

[0182] As used herein, the term “approximately” means roughly, within a range, about, or around that range. When the term “approximately” is used with a numerical range, it modifies that range by extending the boundary above and below the given number. Generally, the term “approximately” is used herein to modify a number with a 10% variance above and below the stated number. In one embodiment, the term “approximately” means plus or minus 10% of the numerical value of the number in which it is used. Thus, approximately 50% means within the range of 45% to 55%. Numerical ranges referred to by endpoints herein include all numbers and fractions that fall within that range (for example, 1 to 5 includes 1, 1.5, 2, 2.75, 3, 3.90, 4, 4.24, and 5). Similarly, numerical ranges described herein by endpoints include subranges that fall within that range (for example, 1 to 5 includes 1 to 1.5, 1.5 to 2, 2 to 2.75, 2.75 to 3, 3 to 3.90, 3.90 to 4, 4 to 4.24, 4.24 to 5, 2 to 5, 3 to 5, 1 to 4, and 2 to 4). It should also be understood that all numbers and fractions are presumed to be modified by the word “approximately”.

[0183] The above description is intended to be illustrative and not restrictive. For example, the examples (or one or more embodiments thereof) described above may be used in combination with each other. Other examples may be used by those skilled in the art who have reviewed the above description. The abstract is submitted with the understanding that it is intended to allow the reader to quickly confirm the nature of the technical disclosure and is not to be used to interpret or limit the claims or their meaning. Also, in the abstract of the invention above, various features may be grouped together in order to streamline the disclosure. This should not be interpreted as meaning that the disclosed features not claimed are essential to any claim. Rather, the subject matter of the invention may be found in fewer features than all the features of a particular disclosed embodiment. Accordingly, the following claims are incorporated into the abstract of the invention such that each claim stands as a distinct embodiment in itself. The scope of the examples should be determined with reference to the supplementary claims, along with the entire scope of the equivalents that are the subject of the supplementary claims. [Explanation of Symbols]

[0184] 40 Environment 42 rooms Rooms 42a-42e 44 beds 46 tables 48. Countertop in the center of the kitchen 50 floor surface 50a~50e Floor surface 52 Rugs 54 Behavioral Control Zone 60 users 100 Mobile Cleaning Robots 102 Main body 104 Mopping System 106 Arm 106a, 106b Arms 108 Cleaning Pad Assembly 109 Bumper 111 Controller 113 Cleaning Assembly 114 Cleaning Roller 114a, 114b Cleaning rollers 115 Actuator 116 Actuators, motors Actuators 116a and 116b 118 drive wheels 118a, 118b drive wheels 120 caster wheels 122 Side Brush Assembly 124 Vacuum Cleaner Assembly 126 memory 128 sensors 129 Brake 130 Cleaning Bin 132 tanks 134 Pumps 139 Bump Sensor 140 Image Capture Devices 141 Pad Tray 142 Mop-wiping pad 144 Dirt Sensor 300 Control Architectures 303 Controller Circuit 305 Communication Systems 306 Beacon Communication Module 307 Wireless Communication Module 310 Cleaning System 311 Drive System 316 Suction fan motor 317 Motor Sensor 320 Sensor System 323 Cliff Sensor 324 processors 325 Vision Sensor 326 Input / Output Units 336 Proximity Sensor 339 Bumper Sensor 344 memory storage elements 364 Inertial Measurement Unit (IMU) 400A Communication Network 400B process 402 User 404 Mobile Devices 406 Cloud Computing Systems 408 Robots 410 hours spent cleaning 412 Status Data 414 Areas to be cleaned 416 Robot Status Data 418-hour estimated data 420-hour estimated data 422 Rooms that should be cleaned 426-hour estimate 430 Controller 432 Command signal 434 Action 438 Mission Summary 442 processors 444 processors 500 Mobile Robot Systems 510 Mobile Cleaning Robot 512 Controller Circuit 514 Drive System 515 Normal Mode 516 Turbo Mode 518 Multi-Mission Mode 520 mobile devices 522 User Interface 523 Location Services 524 Geofencing Module 525 Smart Home Automation Module 526 memory 530 Cloud Computing Systems 531 Routine while out and about 532 Going home routine 533 Non-interfering routine 534 Guest Routines 535 Hour Box Mission 540 Smart Home Devices 550 Smart Home Ecosystem 582 Prioritized Cleaning Modules 584 Route Planning Module 586 Quick Motion Module 588 Coordinated Cleaning Module 600 System 610 Mobile Components 612 Cleanliness Summary 614 Smart Cleaning Call to Action (CTA) or Smart Cleaning Command 615 Favorite Services 617 Schedule Service 620 IoT Components 622 Cleanliness Score, Cleanliness Summary 624 IoT Broker 626 Mission History Summary 628 Map Services 630 Data Platform Components 632 Cleanliness Score Service 634 Mission History Database 636 Garbage Detection Database 637 Scoring Pipeline 638 Intelligent Room Ordering 640 Smart Cleaning Preference 642 Cleaning Time Estimation Service 644 Smart Cleaning API 650 Operation Summary 710 Cleanliness Score 712 Cleanliness Attenuation Module 714 Module with unknown cleanliness level 716 Cleanliness Recovery Module 730 Room Parameters 732 Room Types 734 Mission Type 750 Smart Cleaning Preference 752 Room size 754 Floor Type 801 Sample Map Room 802, Room 1 803 Cleanliness Recovery and Attenuation Chart Room 804, Room 2 Room 806, Third Room 808 Cleanliness score of Room 1 810 Cleanliness score for the second room 812 Cleanliness score of the third room 814 First waste detection score 816 Second garbage detection score 818 Third waste detection score 832 First cleaning instance 834 Second cleaning instance 836 Third Cleaning Instance 838 Fourth Cleaning Instance 900 Live Missed Viewing Space Heatmap 1000 Missed Space Heatmap 1100 Overlooked Space Heatmap 1200 mobile devices 1201 User Interface 1202 Smart Cleaning Toggle 1204 Map Floor Menu Room 1206 1208 Map 1210 Smart Cleaning Preview 1212 Next listing 1214 Toggle Instruction 1301 User Interface 1401 User Interface 1402 Smart Cleaning Schedule 1404 Smart Cleaning Customization Button 1406 Start Now button, Start Now instruction 1501 User Interface 1502 Smart Cleaning Toggle Instruction 1800 machines 1802 Hardware Processor 1804 Main Memory 1806 Static Memory 1808 Mass Storage 1810 Display Devices 1812 Alphanumeric input device 1814 User Interface (UI) Navigation Devices 1816 Sensor 1818 Signal Generating Devices 1820 Network Interface Device 1822 Machine-readable media 1824 command 1826 Communication Network 1828 Output Controller 1830 Interlink

Claims

1. A method for prioritizing the cleaning of rooms in an environment for mobile cleaning robots, A step of using a controller to generate a cleanliness score for each room in the environment, wherein each of the cleanliness scores indicates the amount of dirt expected in each room by the mobile cleaning robot, A step of generating a room cleaning priority based at least partially on the cleanliness score of each of the rooms, The steps include scheduling the operation of the mobile cleaning robot for a mission planned based on the cleaning priority of each of the rooms in the environment, A method that includes this.

2. The method according to claim 1, further comprising the step of updating a cleaning report which includes the cleanliness score for each room cleaned by the mobile cleaning robot.

3. The method according to claim 2, comprising the step of updating the cleanliness score for each room based on the past cleanliness degradation of each room in the environment, wherein the past cleanliness degradation of each room is based on past cleaning data and the length of time that has elapsed since the mobile cleaning robot cleaned each room.

4. The cleaning report includes location data of the mobile cleaning robot while it is performing one or more cleaning operations in each of the rooms, and the method is A step of determining the portion of the room that was not cleaned by the mobile cleaning robot based on the location information data of the mobile cleaning robot from the cleaning report, A step of updating the cleanliness score for each room based on the portion of the room that was not cleaned by the mobile cleaning robot, The method according to claim 3, including the method described in claim 3.

5. The steps to generate a room cleaning ranking are: The method according to claim 4, further comprising the step of updating the room cleaning ranking based on one or more of the updated cleanliness score, the room type of each room in the environment, the room size of each room in the environment, the floor type of each room in the environment, and the mission type of each room in the environment.

6. The room cleaning priority includes the cleanliness score and a mission command for each room, the mission command includes one or more operational parameters for the mobile cleaning robot, and the one or more operational parameters are The mission type of the planned mission by the aforementioned mobile cleaning robot, Cleaning parameters for the aforementioned mission type, and The method according to claim 5, comprising one or more of the estimated operating times for the aforementioned mission.

7. The method according to claim 6, wherein the mission type includes a vacuuming mission, a mopping mission, or a vacuuming and mopping mission.

8. The method according to claim 6 or 7, wherein the one or more cleaning parameters include one or more of the following: the suction power of the vacuum cleaner, the rotational speed of the cleaning roller, the rotational speed of the side brush, the amount of liquid discharged, the liquid discharge rate, the scrubbing action to remove dirt, the mission type, or the cleaning pattern proposed for the mobile cleaning robot.

9. It is a mobile cleaning robot, A drive system configured to move the aforementioned mobile cleaning robot around in the environment, Cleaning system and A memory device containing instructions, The memory device is coupled to one or more processors, the one or more processors include a processing circuit, and the processing circuit operates according to instructions. A cleanliness score is generated for each room in the aforementioned environment, and each of the cleanliness scores indicates the expected amount of dirt in each room as determined by the mobile cleaning robot. A room cleaning priority is generated based at least partially on the cleanliness score of each of the rooms. A mobile cleaning robot configured to schedule the operation of the mobile cleaning robot for missions planned based on the cleaning priority of each of the rooms in the environment.

10. The instruction controls the processing circuit, The mobile cleaning robot according to claim 9, configured to update a cleaning report including the cleanliness score for each room cleaned by the mobile cleaning robot.

11. The instruction controls the processing circuit, The mobile cleaning robot according to claim 10, configured to update the cleanliness score for each room based on the past cleanliness degradation of each room in the environment, wherein the past cleanliness degradation of each room is based on past cleaning data and the length of time elapsed since the mobile cleaning robot cleaned each room.

12. The cleaning report includes location data of the mobile cleaning robot while performing one or more cleaning operations in each respective room, and the instruction controls the processing circuit, Based on the location information data of the mobile cleaning robot from the cleaning report, the portion of the room that was not cleaned by the mobile cleaning robot is determined. The mobile cleaning robot according to claim 11, configured to update the cleanliness score for each room based on the portion of the room that was not cleaned by the mobile cleaning robot.

13. The step of generating a room cleaning ranking is that the instruction performs the processing circuit The mobile cleaning robot according to claim 12, comprising the step of configuring it to update the room cleaning ranking based on one or more of the updated cleanliness score, the room type of each room in the environment, the room size of each room in the environment, the floor type of each room in the environment, and the mission type of each room in the environment.

14. The room cleaning priority includes the cleanliness score and a mission command for each room, the mission command includes one or more operational parameters for the mobile cleaning robot, and the one or more operational parameters are The mission type of the planned mission by the aforementioned mobile cleaning robot, Cleaning parameters for the aforementioned mission type, and The mobile cleaning robot according to claim 13, comprising one or more of the estimated operating times for the aforementioned mission.

15. A mobile robotic system for prioritizing the cleaning of environmental rooms, A drive system configured to allow a mobile cleaning robot to move around in an environment, A mobile cleaning robot equipped with a cleaning system, A mobile device that communicates with the aforementioned mobile cleaning robot in an operable manner, A memory device containing instructions, One or more processors coupled to the memory device, The processor comprises one or more processors, and the processing circuit operates according to instructions. A cleanliness score is generated for each room in the aforementioned environment, and each of the cleanliness scores indicates the expected amount of dirt in each room as determined by the mobile cleaning robot. A room cleaning priority is generated based at least partially on the cleanliness score of each of the rooms. A mobile robot system configured to schedule the operation of the mobile cleaning robot for missions planned based on the cleaning priority of each of the rooms in the environment.

16. The instruction controls the processing circuit, The mobile robot system according to claim 15, configured to update a cleaning report including the cleanliness score for each room cleaned by the mobile cleaning robot.

17. The instruction controls the processing circuit, The mobile robot system according to claim 16, configured to update the cleanliness score for each room based on the past decrease in cleanliness of each room in the environment, wherein the past decrease in cleanliness of each room is based on past cleaning data and the length of time that has elapsed since the mobile cleaning robot cleaned each room.

18. The cleaning report includes location data of the mobile cleaning robot while performing one or more cleaning operations in each respective room, and the instruction controls the processing circuit, Based on the location information data of the mobile cleaning robot from the cleaning report, the portion of the room that was not cleaned by the mobile cleaning robot is determined. The mobile robot system according to claim 17, configured to update the cleanliness score for each room based on the portion of the room that was not cleaned by the mobile cleaning robot.

19. The step of generating a room cleaning ranking is that the instruction performs the processing circuit The mobile robot system according to claim 18, comprising the step of configuring the system to update the room cleaning ranking based on one or more of the updated cleanliness score, the room type of each room in the environment, the room size of each room in the environment, the floor type of each room in the environment, and the mission type of each room in the environment.

20. The room cleaning priority includes the cleanliness score and a mission command for each room, the mission command includes one or more operational parameters for the mobile cleaning robot, and the one or more operational parameters are The mission type of the planned mission by the aforementioned mobile cleaning robot, Cleaning parameters for the aforementioned mission type, and The mobile robot system according to claim 19, comprising one or more of the estimated operating times for the aforementioned mission.

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

  • Turn-minimizing or turn-reducing robot coverage

    US20200089255A1

  • Method and system for robot localization and confinement

    US7196487B2