SETTINGS FOR MOBILE ROBOT CONTROL

A method of operating a mobile cleaning robot system including a mobile cleaning robot and a display device can include displaying a room cleaning settings indication selectable to set one or more cleaning settings for a previously-mapped specified room. When the room cleaning settings indication is selected, a cleaning mode indication can be displayed where the cleaning mode indication is selectable to set a cleaning mode setting of the specified room.

BACKGROUND

Autonomous mobile robots can move about an environment and can perform functions and operations in a variety of 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, can perform cleaning tasks autonomously within an environment, e.g., a home. Many kinds of cleaning robots are autonomous to some degree and in different ways. For example, a cleaning robot can conduct cleaning missions, where the robot traverses and simultaneously ingests (e.g., vacuums) debris from the floor surface of their environment.

SUMMARY

An autonomous mobile robot can be controlled locally (e.g. via controls on the robot) or remotely (e.g. via a remote handheld device) to move about an environment. A mobile application, such as an application implemented on a handheld computing device (e.g., a mobile phone), can be configured to display various information about the mobile robot organized in user interface views. A user can use the mobile application to select settings for the operation of the mobile robot. In some instances, a map of the environment in which the mobile robot operates can be produced by a network or the mobile device and can be displayed on the device. The map can include multiple rooms of the environment, which can have different characteristics such as sizes, shapes, or floor types. In such a situation, it may be desirable to select different cleaning settings for different rooms.

The devices, systems, or methods of this application can help to address this issue by presenting a room cleaning settings indication selectable by a user to set the cleaning settings of the mobile robot for one or more mapped rooms. For example, the user can select a kitchen room cleaning settings indication to change the room cleaning settings for operation of the mobile robot within the kitchen room, as indicated or defined by the map.

Once the room cleaning settings indication is selected, a room cleaning settings screen can be presented where a user can select one or more settings for the room. For example, a user can select a vacuuming only mode or a vacuuming and mopping mode (such as where the mobile robot is a two-in-one or vacuuming and mopping type robot). In either mode, the user can select a number of vacuuming passes. In the vacuuming and mopping mode, the user can select a rate at which fluid is dispensed. Also, when the mobile robot is a mopping robot, the room cleaning settings can include mopping rank overlap percentage. The various settings can be user-selected for each mapped room of the environment, allowing the user to customize cleaning settings for one or more cleaning missions to be performed by the robot in the mapped environment.

In one example, a method of operating a mobile cleaning robot system including a mobile cleaning robot and a display device can include displaying a room cleaning settings indication selectable to set one or more cleaning settings for a previously-mapped specified room. When the room cleaning settings indication is selected, a cleaning mode indication can be displayed where the cleaning mode indication is selectable to set a cleaning mode setting of the specified room.

DETAILED DESCRIPTION

Robot Operation Summary

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

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

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

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

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

Robot Example

FIG.2Aillustrates an isometric view of a mobile cleaning robot100with a pad assembly in a stored position.FIG.2Billustrates an isometric view of the mobile cleaning robot100with the pad assembly in an extended position.FIG.2Cillustrates an isometric view of the mobile cleaning robot100with the pad assembly in a mopping position.FIGS.2A-2Calso show orientation indicators Front and Rear.FIGS.2A-2Care discussed together below.

The mobile cleaning robot100can include a body102and a mopping system104. The mopping system104can include arms106aand106b(referred to together as arms106) and a pad assembly108. The robot100can also include a bumper109and other features such as an extractor (including rollers), one or more side brushes, a vacuum system, a controller, a drive system (e.g., motor, geartrain, and wheels), a caster, and sensors, as discussed in further detail below. A distal portion of the arms106can be connected to the pad assembly108and a proximal portion of the arms106aand106bcan be connected to an internal drive system to drive the arms106to move the pad assembly108.

FIGS.2A-2Cshow how the robot100can be operated to move the pad assembly108from a stored position inFIG.2Ato a transition or partially deployed position inFIG.2B, to a mopping or a deployed position inFIG.2C. In the stored position ofFIG.2A, the robot100can perform only vacuuming operations. In the deployed position ofFIG.2C, the robot100can perform vacuuming operations or mopping operations.FIGS.2D-2Ediscuss additional components of the robot100.

Components of the Robot

FIG.2Dillustrates a bottom view of the mobile cleaning robot100andFIG.2Eillustrates a top isometric view of the robot100.FIGS.2D and2Eare discussed together below. The robot100ofFIGS.2D and2Ecan be consistent withFIGS.2A-2C;FIGS.2D-2Eshow additional details of the robot100For example,FIGS.2D-2Eshow that the robot100can include a body102, a bumper109, an extractor113(including rollers114aand114b), motors116aand116b, drive wheels118aand118b, a caster120, a side brush assembly122, a vacuum assembly124, memory126, sensors128, and a debris bin130. The mopping system104can also include a tank132and a pump134.

The cleaning robot100can be an autonomous cleaning robot that autonomously traverses the floor surface50(ofFIG.1) while ingesting the debris from different parts of the floor surface50. As shown inFIG.2D, the robot100can include the body102that can be movable across the floor surface50. The body102can include multiple connected structures to which movable or fixed components of the cleaning robot100are mounted. The connected structures can include, for example, an outer housing to cover internal components of the cleaning robot100, a chassis to which the drive wheels118aand118band the cleaning rollers114aand114b(of the cleaning assembly113) are mounted, the bumper109mounted to the outer housing, etc. The caster wheel120can support the front portion of the body102above the floor surface50, and the drive wheels118aand118bcan support the middle and rear portions of the body102(but can also support a majority of the weight of the robot100) above the floor surface50.

As shown inFIG.2D, the body102includes a front portion that has a substantially semicircular shape that can be connected to the bumper109, and a rear portion that has a substantially semicircular shape. In other examples, the body102can have other shapes such as a square front or straight front. The robot100can also include a drive system including the actuators116aand116b, e.g., motors. The actuators116aand116bcan be connected to the body102and can be operably connected to the drive wheels118aand118b, which can be rotatably mounted to the body102. The drive wheels118aand118bcan support the body102above the floor surface50. The actuators116aand116b, when driven, can rotate the drive wheels118aand118bto enable the robot100to autonomously move across the floor surface50.

The vacuum assembly124can be carried within the body102of the robot100, e.g., in a rear portion of the body102, and can be located in other locations in other examples. The vacuum assembly124can include a motor to drive an impeller that generates the airflow when rotated. The airflow and the cleaning rollers114, when rotated, can cooperate to ingest the debris into the robot100. The cleaning bin130can be mounted in the body102and can contain the debris ingested by the robot100. A filter in the body102can separate the debris from the airflow before the airflow enters the vacuum assembly124and is exhausted out of the body102. In this regard, the debris can be captured in both the cleaning bin130and the filter before the airflow is exhausted from the body102. In some examples, the vacuum assembly124and extractor113can be optionally included or can be of a different type.

The cleaning rollers114aand114bcan be operably connected to an actuator115, e.g., a motor, through a gearbox. The cleaning head113and the cleaning rollers114aand114bcan be positioned forward of the cleaning bin130. The cleaning rollers114can be mounted to an underside of the body102so that the cleaning rollers114aand114bengage debris on the floor surface50during the cleaning operation when the underside of the body102faces the floor surface50.

The controller111can be located within the housing and can be a programmable controller, such as a single or multi-board computer, a direct digital controller (DDC), a programmable logic controller (PLC), or the like. In other examples, the controller111can be any computing device, such as a handheld computer, for example, a smart phone, a tablet, a laptop, a desktop computer, or any other computing device including a processor, memory, and communication capabilities. The memory126can 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 memory126can be located within the housing102, connected to the controller111and accessible by the controller111.

The controller111can operate the actuators116aand116bto autonomously navigate the robot100about the floor surface50during a cleaning operation. The actuators116aand116bcan be operable to drive the robot100in a forward drive direction, in a backwards direction, and to turn the robot100. The controller111can operate the vacuum assembly124to generate an airflow that flows through an air gap near the cleaning rollers114, through the body102, and out of the body102.

The control system can further include a sensor system with one or more electrical sensors. The sensor system, as described herein, can generate a signal indicative of a current location of the robot100, and can generate signals indicative of locations of the robot100as the robot100travels along the floor surface50. The sensors128(shown inFIG.2A) can be located along a bottom portion of the housing102. Each of the sensors128can be an optical sensor that can be configured to detect a presence or absence of an object below the optical sensor, such as the floor surface50. The sensors128(optionally cliff sensors) can be connected to the controller111and can be used by the controller111to navigate the robot100within the environment40. In some examples, the cliff sensors can be used to detect a floor surface type which the controller111can use to selectively operate the mopping system104.

The cleaning pad assembly108can be a cleaning pad connected to the bottom portion of the body102(or connected to a moving mechanism configured to move the assembly108between a stored position and a cleaning position), such as to the cleaning bin130in a location to the rear of the extractor113. The tank132can be a water tank configured to store water or fluid, such as cleaning fluid, for delivery to a mopping pad142. The pump134can be connected to the controller111and can be in fluid communication with the tank132. The controller111can be configured to operate the pump134to deliver fluid to the mopping pad142during mopping operations. In some examples, the pad142can be a dry pad such as for dusting or dry debris removal. The pad142can also be any cloth, fabric, or the like configured for cleaning (either wet or dry) of a floor surface.

Operation of the Robot

In operation of some examples, the controller111can be used to instruct the robot100to perform a mission. In such a case, the controller111can operate the motors116to drive the drive wheels118and propel the robot100along the floor surface50. The robot100can be propelled in a forward drive direction or a rearward drive direction. The robot100can also be propelled such that the robot100turns in place or turns while moving in the forward drive direction or the rearward drive direction. In addition, the controller111can operate the motors115to cause the rollers113aand113bto rotate, can operate the side brush assembly122, and can operate the motor of the vacuum system118to generate airflow. The controller111can execute software stored on the memory126to cause the robot100to perform various navigational and cleaning behaviors by operating the various motors of the robot100.

The various sensors of the robot100can be used to help the robot navigate and clean within the environment40. For example, the cliff sensors can detect obstacles such as drop-offs and cliffs below portions of the robot100where the cliff sensors are disposed. The cliff sensors can transmit signals to the controller111so that the controller111can redirect the robot100based on signals from the sensors.

Proximity sensors can produce a signal based on a presence or the absence of an object in front of the optical sensor. For example, detectable objects include obstacles such as furniture, walls, persons, and other objects in the environment40of the robot100. The proximity sensors can transmit signals to the controller111so that the controller111can redirect the robot100based on signals from the proximity sensors. In some examples, a bump sensor can be used to detect movement of the bumper109along a fore-aft axis of the robot100. A bump sensor139can also be used to detect movement of the bumper109along one or more sides of the robot100and can optionally detect vertical bumper movement. The bump sensors139can transmit signals to the controller111so that the controller111can redirect the robot100based on signals from the bump sensors139.

The robot100can also optionally include one or more dirt sensors144connected to the body102and in communication with the controller111. The dirt sensors144can be a microphone, piezoelectric sensor, optical sensor, or the like located in or near a flowpath of debris, such as near an opening of the cleaning rollers114or in one or more ducts within the body102. This can allow the dirt sensor(s)144to detect how much dirt is being ingested by the vacuum assembly124(e.g., via the extractor113) at any time during a cleaning mission. Because the robot100can be aware of its location, the robot100can keep a log or record of which areas or rooms of the map are dirtier or where more dirt is collected. This information can be used in several ways, as discussed further below.

The image capture device140can be configured to generate a signal based on imagery of the environment40of the robot100as the robot100moves about the floor surface50. The image capture device140can transmit such a signal to the controller111. The controller111can use the signal or signals from the image capture device140for various tasks, algorithms, or the like, as discussed in further detail below.

In some examples, the obstacle following sensors can detect detectable objects, including obstacles such as furniture, walls, persons, and other objects in the environment of the robot100. In some implementations, the sensor system can include an obstacle following sensor along the side surface, and the obstacle following sensor can detect the presence or the absence an object adjacent to the side surface. The one or more obstacle following sensors can also serve as obstacle detection sensors, similar to the proximity sensors described herein.

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

The controller111can use data collected by the sensors of the sensor system to control navigational behaviors of the robot100during the mission. For example, the controller111can use the sensor data collected by obstacle detection sensors of the robot100, (the cliff sensors, the proximity sensors, and the bump sensors) to enable the robot100to avoid obstacles within the environment of the robot100during the mission.

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

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

The persistent data, including the persistent map, can help to enable the robot100to efficiently clean the floor surface50. For example, the map can enable the controller111to direct the robot100toward open floor space and to avoid nontraversable space. In addition, for subsequent missions, the controller111can use the map to optimize paths taken during the missions to help plan navigation of the robot100through the environment40.

The controller111can also send commands to a motor (internal to the body102) to drive the arms106to move the pad assembly108between the stored position (shown inFIGS.2A and2D) and the deployed position (shown inFIGS.2C and2E). In the deployed position, the pad assembly108(the mopping pad142) can be used to mop a floor surface of any room of the environment40.

The mopping pad142can be a dry pad or a wet pad. Optionally, when the mopping pad142is a wet pad, the pump134can be operated by the controller111to spray or drop fluid (e.g., water or a cleaning solution) onto the floor surface50or the mopping pad142. The wetted mopping pad142can then be used by the robot100to perform wet mopping operations on the floor surface50of the environment40. As discussed in further detail below, a user can select in which rooms of the environment which cleaning functions should be performed and at can select particular settings for each cleaning function of each room.

Network Examples

FIG.3is a diagram illustrating by way of example and not limitation a communication network400that enables networking between the mobile robot100and one or more other devices, such as a mobile device404(including a controller444), a cloud computing system406(including a controller442), or another autonomous robot408separate from the mobile robot100. Using the communication network400, the robot100, the mobile device100, the robot408, and the cloud computing system406can communicate with one another to transmit and receive data from one another. In some examples, the robot100, the robot408, or both the robot100and the robot408communicate with the mobile device404through the cloud computing system406. Alternatively, or additionally, the robot100, the robot408, or both the robot100and the robot408communicate directly with the mobile device404. Various types and combinations of wireless networks (e.g., Bluetooth, radio frequency, optical based, etc.) and network architectures (e.g., wi-fi or mesh networks) can be employed by the communication network400.

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

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

According to some examples discussed herein, the mobile device404can include a user interface configured to display a map of the robot environment. A robot path, such as that identified by a coverage planner, can also be displayed on the map. The interface can receive a user instruction to modify the environment map, such as by adding, removing, or otherwise modifying a keep-out zone in the environment; adding, removing, or otherwise modifying a focused cleaning zone in the environment (such as an area that requires repeated cleaning); restricting a robot traversal direction or traversal pattern in a portion of the environment; or adding or changing a cleaning rank, among others.

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

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

FIG.4is a diagram illustrating an exemplary process401of exchanging information among devices in the communication network400, including the mobile robot100, the cloud computing system406, and the mobile device404and of operating the mobile robot100. In operation of some examples, a cleaning mission can be initiated by pressing a button on the mobile robot100(or the mobile device404) or can be scheduled for a future time or day. The user can select a set of rooms to be cleaned during the cleaning mission or can instruct the robot to clean all rooms. The user can also select a set of cleaning parameters to be used in each room during the cleaning mission.

During a cleaning mission, the mobile robot100can track410its status, including its location, any operational events occurring during cleaning, and time spent cleaning. The operational events can include tracking of debris ingested by the robot during vacuuming mode. For example, using the debris sensor144, an amount of debris, where it was ingested, at what time it was ingested, or the like, can be can be logged or stored or transmitted12to the cloud computing system406. Either the robot100or the cloud computing system406can use this and other data to develop a cleaning history414of the robot100within the environment40. The robot100or the cloud computing system406can also produce recommended settings414for the robot in each room or in the entire environment based on the cleaning history or other variables.

The cloud computing system406can transmit416the cleaning history or the recommended settings to the mobile device404. The mobile device404can present418, such as by a processor444, the room settings, such as cleaning settings for one or more rooms of the environment as defined by the map. The recommended settings or settings of each room can be presented on the display of the mobile device404as any of a number of graphical representations editable to select cleaning settings for the robot100within the environment40.

A user402can view420the settings or recommended settings on the display and can input422new settings or can accept settings that are recommended. Various settings can be selected by the user402to present additional setting options, as discussed below inFIGS.5A-8. Accordingly, any of the settings discussed inFIGS.5A-8below can be implemented or selected in the steps414-422. The user402can also add rooms or delete rooms which can each be assigned individual settings.

The display of the mobile device404can be updated424as the user402changes the settings or accepts the proposed settings. For example, if the user402selects the kitchen cleaning settings indication, various settings can be displayed on the mobile device404where the user can then select the cleaning settings for that room, such as a number of vacuuming passes, a mopping overlap, a vacuum suction setting, or a mopping fluid dispense rate. The room settings indication can then be updated on the mobile device404based on the one or more selections by the user402.

Based on the inputs from the user402, the settings can be transmitted to the robot100or to the cloud computing system406. The robot100can then execute behaviors426based on any of the received settings discussed above or below. For example, if a number of vacuuming passes is set to two passes in the kitchen, the robot100can perform two vacuuming passes each time it is instructed to complete a cleaning mission in the kitchen.

Upon executing a behavior, the controller430can check to see if the cleaning behaviors are executed and can track410its status, including its location, any operational events occurring during cleaning, and time spent cleaning using the new settings and can update cleaning history and optionally produce new recommended settings as the loop continues.

In some examples, communications can occur between the mobile robot100and the mobile device404directly. For example, the mobile device404can be used to transmit one or more instructions through a wireless method of communication, such as Bluetooth or Wi-fi, to instruct the mobile robot100to perform a cleaning operation (mission). Operations for the process401and other processes described herein, such one or more steps discussed with respect toFIGS.5A-8can be executed in a distributed manner. For example, the cloud computing system406, the mobile robot100, and the mobile device404can execute one or more of the operations in concert with one another. Operations described as executed by one of the cloud computing system406, the mobile robot100, and the mobile device404are, in some implementations, executed at least in part by two or all of the cloud computing system406, the mobile robot100, and the mobile device404.

User Interface Examples

FIGS.5A-8show examples of a user interface for creating or performing a cleaning mission routine and controlling a mobile robot to execute the cleaning mission in an environment. The user interface can be a part of a handheld computing device, such as a smart phone, a cellular phone, a personal digital assistant, a laptop computer, a tablet, a smart watch, or other portable computing device capable of transmitting and receiving signals related to a robot cleaning mission. In an example, the handheld computing device is the mobile device404.

The user interface can be configured to present, on a display, information about one or more robots in a user's home and their respective operating status, one or more editable mission routines (e.g., a cleaning mission), a progress of a mission being executed. In some examples, cleaning settings for each room can be presented for editing or selecting by the user. The user interface can also receive user instructions or settings for controlling the robot navigation and mission execution.

FIG.5Aillustrates an example of a device500A configured to display a view of creation or editing of a new job or mission. The device500A can include a display502configured to display a user interface504A. Through a single user interface504(as shown inFIGS.5A-8), a user can coordinate behaviors of a robot. The user interface504A can include one or more user interface controls (e.g., buttons, selectable indications, checkboxes, dropdown lists, list boxes, sliders, links, tabstrips, text boxes, charts, windows, or the like) that can allow a user to select various functions or settings of mission scheduling and robot control.

The user interface504A can be a user interface for creating a new job or new cleaning routine or can be an interface for editing a job or cleaning routine. For example, the user interface504A can include a save as favorite indication506that can be user-selectable to save the settings of the new job as a new favorite job or cleaning routine. The user interface504A can also include a start now indication508that can be user-selectable to start the new job now, where selection can transmit an instruction to the robot100to start the cleaning mission based on the selected parameters of the user interface504A (optionally among others).

The user interface504A can also include one or more shelves510, which can be collections or groupings of indications, buttons, lists, text boxes, or the like. The user interface504A can be configured to display the shelves510A-510C representing rooms to be cleaned in a new job screen. The rooms can optionally be ordered for cleaning sequencing, e.g., 1, 2, 3, or the like, indicating an order that the rooms of the map will be cleaned. Each shelf510can include a name indication512, a time estimate514, and a room cleaning settings indication516.

The name indication512can display or indicate a name of the room of the map. Each room can be previously named by a user following map generation by the robot100or the cloud computing system406, which can be developed, at least in part, during cleaning or mapping routines, as discussed above.

The time estimate indication514can display a time or estimated time to complete a portion of a cleaning mission to be performed within the room of the shelf510. For example, the shelf510A for the Kitchen can have a time estimate indication514A of about 12 minutes, which can be an estimated time to complete a portion of the cleaning mission or job that occurs within the Kitchen, based on the selected settings. Optionally, the time estimate indication514can be updated based on user changes to the room cleaning settings, such as by selecting the room cleaning settings indication516and changing or entering one or more settings, as discussed in further detail below. The user can thereby be provided with a time estimate for cleaning each room to be cleaned based on their selected cleaning settings.

Each room cleaning settings indication516can be user-selectable to produce or display on the device500, a screen for user selection of one or more cleaning settings for that previously-mapped specified room. For example, selection (e.g., by a user) of kitchen room cleaning settings indication516A can produce the user interface shown inFIG.5Bwhere a user can select, enter, or accept one or more cleaning mode settings, as discussed in further detail below with respect toFIG.5B.

Each of the room cleaning settings indications516can include icons or images representing selected, default, or recommended settings. For example, the kitchen room cleaning settings indication516A shows a vacuuming passes indication518A, a vacuuming indication520A, and a mopping indication522A. The vacuuming passes indication518A can represent a number of vacuuming passes that is selected as planned to be performed during the planned cleaning mission or job. The vacuuming indication520A can represent that vacuuming will be performed in the planned cleaning mission or can represent a vacuuming speed that is selected to be performed on the planned cleaning mission or job. The mopping indication522A can represent a rate at which fluid will be discharged from the robot during a mopping mode. Optionally, the drop icon can vary to show a small amount (or low amount), a medium amount, or a high amount. For example, an empty drop can indicate a low amount and a filled drop can represent a high amount. Further, as shown in the room cleaning settings indication516C for the Dining Room, the room cleaning settings indication516C can show a mopping indication522C that is grayed-out or dashed, which can indicate that it has been selected, or the current setting is set to, not perform any mopping in the indicated room. Similarly, any of the indications516can be grayed out to indicate that the setting the indication represents is not selected or is turned off.

FIG.5Billustrates a user interface504B of the handheld device500B that displays a cleaning mode indication, among others. The handheld device500and the display502can be similar to those discussed above where the user interface504B can be changed with respect to the user interface504A shown inFIG.5A.

FIG.5Bshows that, when the room cleaning settings indication516A of the user interface504A is selected, the user interface504B can be displayed such that the settings for the indicated or selected room of the environment are displayed and selectable. For example, a cleaning mode indication524can be displayed, which can include a text indication526that can display text to indicate which setting is selectable using the indication, such as Cleaning Mode for the cleaning mode indication524. The cleaning mode indication524can be selectable to set a cleaning mode setting of the specified room. For example, a vacuuming only indication528can be selectable so that only vacuuming operations are performed in the room (e.g., the Kitchen) of the environment40. Alternatively, a mopping and vacuuming indication530can be selected so that both vacuuming and mopping operations are performed in the room (e.g., the Kitchen) of the environment40. The vacuuming only indication528can be represented by a vacuuming image, such as that of a side brush or other vacuuming component. The mopping and vacuuming indication530can be both a vacuuming component and a liquid drop icon or any other mopping component icon (e.g., spray nozzle or pad).

The selected cleaning mode indication524can change various indications or image presentations on the user interface504B. For example, the selected indication of the cleaning mode indication524can be of a different color than the non-selected indication. For example, the vacuuming only indication528is selected and can be displayed in white and the mopping and vacuuming indication530is not selected and can be displayed in gray. Other colors can be used. The selected cleaning mode indication524can also vary text532, which can list in text which mode is displayed. For example, as the vacuuming only indication528is selected, the text532displays Vacuum.

Further, when the vacuuming only indication528of the cleaning mode indication524is selected, a cleaning passes indication534can be displayed. The user interface504B can include a text indication536which can display text to indicate what is selectable using the indication, such as Cleaning Passes for the indication534. The cleaning passes indication534can include indications selectable to determine or select a number of vacuuming cleaning passes of a mobile cleaning robot. For example, the cleaning passes indication534can include a single pass indication538and a two-pass indication540. The single pass indication538can be user selectable to instruct the robot to perform only a single vacuuming pass in the selected room (e.g., the Kitchen). The two-pass indication540can user selectable to instruct the robot to perform two vacuuming passes in the selected room. The cleaning passes indication534can optionally include indications for more passes, such as 3, 4, 5, 10, or the like.

The selected cleaning mode indication524can also vary text542, which can list in text how many cleaning passes are displayed. For example, as vacuuming single pass indication538is selected, the text532displays “One”. The indications of the cleaning mode indication524can also change colors or can change appearance in other ways (similar to the cleaning mode indication524). Other indications discussed below can also change appearance. Because vacuuming is performed when either the vacuuming only indication528or the mopping and vacuuming indication530indication is selected, the cleaning passes indication534can be displayed when either of the cleaning mode indication524options are selected.

FIG.5Cillustrates a user interface504C of the handheld device500C that displays a cleaning mode indication, among others. The handheld device500and the display502can be similar to those discussed above where the user interface504C can be changed with respect to the user interfaces504A shown inFIG.5A.

FIG.5Cshows that when the mopping and vacuuming indication530of the cleaning mode indication524is selected, the indications and settings produced can be different. The cleaning passes indication534can still be produced and user selectable to select vacuuming passes; however, when the mopping and vacuuming indication530is selected, a fluid rate indication544can be produced or displayed by a processor on the user interface504B. The fluid rate indication544can be selectable to set a rate at which a fluid is discharged from the robot100during mopping in the selected (or specific) room (e.g., the Kitchen).

The user interface504C can include a text indication546which can display text to indicate what is selectable using the indication, such as “Liquid Amount” for the indication534. The fluid rate indication544can include a low indication548, a medium indication550, and a high indication552. The low indication548can be selected to set a low rate at which a fluid is discharged from the robot100in mopping mode. The medium indication550can be selected to set a medium rate at which a fluid is discharged from the robot100in mopping mode. The high indication552can be selected to set a high rate at which a fluid is discharged from the robot100in mopping mode. The indications544-548can change in appearance based on which is selected, as discussed above with respect to other indications. The selected liquid amount indication544can also vary text554, which can list in text the rate of fluid to be dispensed, such as “Medium.” In this way, the user interface504B can be used by a user to set the settings for any room of the environment40for a vacuuming and mopping robot.

FIG.6Aillustrates an example of a device600A configured to display a view of creation or editing of a new job or mission. The device600A can include a display602configured to display a user interface604A, which can be similar to the device500A and user interface504A, where like numerals can represent like components. The device user interface604A can differ in that the user interface604A can display an interface for selecting settings for a mopping only device, such as a mopping robot. That is, the room cleaning settings indications616can be selectable to display mopping settings within a particular room.

Each of the room cleaning settings indications616can include icons or images indicated selected, default, or recommended settings. For example, the room cleaning settings indication616A can include an overlap percentage indication656A and a fluid rate indication620A. The overlap percentage indication656A can represent a selected overlap percentage.

FIG.6Billustrates a user interface604B of the handheld device600B that displays a cleaning mode indication, among others. The handheld device600and the display602can be similar to those discussed above where the user interface604B can be changed with respect to the user interface604A shown inFIG.6A.

For example, the user interface604B can be changed to display one or more cleaning settings when the indication616A is user-selected to show a fluid rate indication644, which can be similar to the fluid rate indication544discussed above. The user interface604B can also show a mopping overlap indication660that is selectable to set an amount that a mopping pad rank for a given pass of the mopping pad will overlap the mopping pad rank of the previous pass. Stated another way, the overlap percentage is the amount the mopping pad overlaps in adjacent mopping passes.

The mopping overlap indication660can include a low indication664, a medium indication666, and a high indication668. The low indication664can be selected to set a low percentage of mopping pad overlap in the room for the selected job or mission. The medium indication666can be selected to set a medium percentage of mopping pad overlap. The high indication668can be selected to set a high percentage of mopping pad overlap. For example, the low overlap percentage can be between 5 percent and 40 percent, the medium overlap percentage can be between 25 percent and 80 percent, and the high overlap percentage can be between 60 percent and 100 percent. In one example, the low overlap percentage can be 25 percent, the medium overlap can be 67 percent, and the high overlap can be 85 percent. More or fewer overlap percentage indications can be used, such as 2, 4, 5, 6, 10, or the like. The selected mopping overlap indication644can also vary text670, which can list in text the overlap amount, such as “Medium.” In this way, the user interface604B can be used by a user to set one or more mopping performance settings for any room of the environment40for a mopping robot.

FIG.7illustrates an example of a device700configured to display a view of creation or editing of a new job or mission. The device700can include a display702configured to display a user interface704, which can be similar to the user interface504or604, where like numerals can represent like components. The device user interface704can differ in that the user interface704can display an interface for selecting settings for a vacuuming only device, such as a vacuuming robot. However, the indications and features of the device700can be used with any of the previously discussed devices or interfaces.

The user interface704can display a settings indication including a cleaning passes indication734, which can be similar to the indication534discussed above. The user interface704can also display a suction power indication772(or vacuum speed indication), which can be selectable to set a speed of a vacuum system of a mobile cleaning robot. The user interface704can include a text indication774which can display text to indicate what is selectable using the indication, such as “Suction” for the text indication774.

The suction power indication772can include a low suction indication776, a medium suction indication778, and a high suction indication780. The low suction indication776can be selected to set a low suction rate of the vacuum system of the robot100in the selected room for the selected job. The medium suction indication778can be selected to set a medium suction rate of the vacuum system of the robot100. The high suction indication780can be selected to set a high suction rate of the vacuum system of the robot100. The indications776-780can change in appearance based on which is selected, as discussed above with respect to other indications. The selected suction power indication772can also vary text782, which can list in text the suction setting of the robot100, such as “Medium.” In this way, the user interface704can be used by a user to set one or more vacuum settings for any room of the environment40.

In any of the user interfaces504-704discussed above, the presented settings can be presented as default settings before a user selects the settings. Alternatively, one or more of the presented cleaning settings can be presented based on a cleaning history of the robot100. As discussed above with respect toFIGS.3and4, cleaning history of the robot100can be used to develop recommended cleaning settings, which can then be displayed on any of the interfaces504-704for user acceptance or modification. In some examples, the settings can be presented based on previously selected settings or based on settings of other rooms. These settings can optionally be accepted using any of the interfaces discussed above. Alternatively, the recommended settings can be presented via a single indication selectable to select all recommended cleaning settings for the robot, either in a single room or for all rooms of the environment.

Any of the settings discussed above with respect toFIGS.3-7can be transmitted by the device (e.g., device500) to the cloud computing system406or the robot100to control the robot in accordance with such settings during a cleaning operation of the robot100or during any future cleaning operation of the robot100using a saved job.

Though the settings are discussed as being for cleaning settings of the robot100, the settings can be selectable for any number of mobile cleaning robots including a vacuuming robot, a mopping robot, or a two-in-one (i.e., vacuuming and mopping) robot.

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

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

NOTES AND EXAMPLES

Example 1 is a method of operating a mobile cleaning robot system including a mobile cleaning robot and a display device, the method comprising: displaying a room cleaning settings indication selectable to set one or more cleaning settings for a previously-mapped specified room; and displaying, when the room cleaning settings indication is selected, a cleaning mode indication selectable to set a cleaning mode setting of the specified room.

In Example 2, the subject matter of Example 1 optionally includes performing a cleaning mission using the cleaning mode setting of the specified room when the mobile cleaning robot is located within the specified room.

In Example 3, the subject matter of any one or more of Examples 1-2 optionally include wherein the room cleaning settings indication includes a vacuuming only or vacuuming and mopping indication.

In Example 4, the subject matter of Example 3 optionally includes displaying, when either vacuuming only or vacuuming and mopping is selected, a cleaning passes indication selectable to set a number of vacuuming cleaning passes of a mobile cleaning robot.

In Example 5, the subject matter of Example 4 optionally includes wherein the cleaning passes indication is selectable to set the number of passes of the mobile cleaning robot to between one and three passes.

In Example 6, the subject matter of any one or more of Examples 3-5 optionally include displaying, when the vacuuming and mopping indication is selected, a fluid rate indication selectable to set a rate at which a fluid is discharged from a mobile cleaning robot.

In Example 7, the subject matter of Example 6 optionally includes wherein the fluid rate indication is selectable to set the rate at which the fluid is discharged between a low amount, a medium amount, and a high amount.

In Example 8, the subject matter of any one or more of Examples 1-7 optionally include wherein the room cleaning settings indication includes a vacuum speed indication selectable to set a speed of a vacuum system of a mobile cleaning robot.

In Example 9, the subject matter of any one or more of Examples 1-8 optionally include wherein the room cleaning settings indication includes an overlap indication selectable to set an overlap percentage of a mopping pad.

In Example 10, the subject matter of Example 9 optionally includes wherein the room cleaning settings indication includes a fluid rate indication selectable to set a rate at which a fluid is discharged from a mobile cleaning robot.

In Example 11, the subject matter of any one or more of Examples 1-10 optionally include present a recommended cleaning setting based on a cleaning history.

In Example 12, the subject matter of Example 11 optionally includes receive a dirt detection signal from a mobile cleaning robot; and determine the cleaning history based on the dirt detection signal.

Example 13 is a machine-readable medium including instructions for presenting a user interface, which when executed by a processor, cause the processor to: display a room cleaning settings indication selectable to set one or more cleaning settings for a previously-mapped specified room; and display, when the room cleaning settings indication is selected, a cleaning mode indication selectable to set a cleaning mode setting of the specified room.

In Example 14, the subject matter of Example 13 optionally includes wherein the room cleaning settings indication includes a vacuuming only or vacuuming and mopping indication.

In Example 15, the subject matter of Example 14 optionally includes the processor further configured to: display, when either vacuuming only or vacuuming and mopping is selected, a cleaning passes indication selectable to set a number of vacuuming cleaning passes of a mobile cleaning robot.

In Example 16, the subject matter of Example 15 optionally includes wherein the cleaning passes indication is selectable to set the number of passes of the mobile cleaning robot to between one and three passes.

In Example 17, the subject matter of any one or more of Examples 14-16 optionally include the processor further configured to: display, when the vacuuming and mopping indication is selected, a fluid rate indication selectable to set a rate at which a fluid is discharged from a mobile cleaning robot.

In Example 18, the subject matter of Example 17 optionally includes wherein the fluid rate indication is selectable to set the rate at which the fluid is discharged between a low amount, a medium amount, and a high amount.

In Example 19, the subject matter of any one or more of Examples 13-18 optionally include wherein the room cleaning settings indication includes a vacuum speed indication selectable to set a speed of a vacuum system of a mobile cleaning robot.

In Example 20, the subject matter of any one or more of Examples 13-19 optionally include wherein the room cleaning settings indication includes an overlap indication selectable to set an overlap percentage of a mopping pad.

In Example 21, the subject matter of Example 20 optionally includes wherein the room cleaning settings indication includes a fluid rate indication selectable to set a rate at which a fluid is discharged from a mobile cleaning robot.

In Example 22, the subject matter of any one or more of Examples 13-21 optionally include the processor further configured to: present a recommended cleaning setting based on a cleaning history.

In Example 23, the subject matter of Example 22 optionally includes the processor further configured to: receive a dirt detection signal from a mobile cleaning robot; and determine the cleaning history based on the dirt detection signal.

In Example 24, the subject matter of any one or more of Examples 22-23 optionally include wherein the recommended cleaning setting is one or more of a number of vacuuming passes, a mopping overlap, a vacuum suction setting, or a mopping fluid dispense rate.

Example 25 is a mobile cleaning robot system including a mobile cleaning robot, the system comprising: a display configured to present a user interface; and processing circuitry in communication with the mobile cleaning robot and the display, the processing circuitry configured to: display a room cleaning settings indication selectable to set one or more cleaning settings for a previously-mapped specified room; and display, when the room cleaning settings indication is selected, a cleaning mode indication selectable to set a cleaning mode setting of the specified room.

In Example 26, the subject matter of Example 25 optionally includes wherein the room cleaning settings indication includes a vacuuming only or vacuuming and mopping indication.

In Example 27, the subject matter of Example 26 optionally includes the processing circuitry further configured to: display, when either vacuuming only or vacuuming and mopping is selected, a cleaning passes indication selectable to set a number of vacuuming cleaning passes of a mobile cleaning robot.

In Example 28, the subject matter of Example 27 optionally includes the processing circuitry further configured to: display, when the vacuuming and mopping indication is selected, a fluid rate indication selectable to set a rate at which a fluid is discharged from the mobile cleaning robot.

In Example 29, the subject matter of any one or more of Examples 25-28 optionally include the processing circuitry further configured to: present a recommended cleaning setting based on a cleaning history.

In Example 30, the subject matter of Example 29 optionally includes the processing circuitry further configured to: receive a dirt detection signal from the mobile cleaning robot; and determine the cleaning history based on the dirt detection signal.

In Example 31, the apparatuses, systems, or methods of any one or any combination of Examples 1-30 can optionally be configured such that all elements or options recited are available to use or select from.

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