Patent Description:
Cleaning robots include mobile robots that autonomously perform cleaning tasks within an environment, e.g., a home. Many kinds of cleaning robots are autonomous to some degree and in different ways. The cleaning robots include a controller that is configured to autonomously navigate the cleaning robot about the environment such that the cleaning robot can ingest debris as it moves.

<CIT>, <CIT>, <CIT> propose scheduling techniques for autonomous cleaning robots.

An application executed on a mobile device can be used to control scheduling cleaning missions for an autonomous cleaning robot. The user can, through the mobile application, change cleaning parameters, scheduling, etc., of the autonomous cleaning robot. During a cleaning mission, the autonomous cleaning robot performs cleaning tasks (e.g., vacuuming, mopping, etc.) as the autonomous cleaning robot traverses the environment. Scheduling interfaces of the mobile application allow the user to add, delete, change, etc., times, cleaning parameters, areas (e.g., rooms, floors, etc.), and other types of information used in the cleaning mission. In some examples, through the mobile application, the user can perform room-by-room cleaning, create different schedules for different days, create different schedules for different rooms or collections of rooms, and create recurring schedules.

Described herein are examples of methods and devices for scheduling and using mobile robots configured to traverse floor surfaces and perform various operations including, but not limited to, cleaning. Advantages of the foregoing may include, but are not limited to, those described below and herein elsewhere.

Generating custom schedules allows a user to perform cleaning of particular areas (e.g., rooms, floors) of the user's home when the user desires. For example, the user may direct the autonomous cleaning robot to clean a downstairs area every Monday, Wednesday, and Friday, at <NUM>:00AM, perhaps after the user has left home so the cleaning will not be disruptive to the user. Scheduling cleaning missions allows a user to set recurring cleaning missions so the user does not have to remember to manually initiate cleaning missions. Scheduling cleaning missions may also be done through the mobile application when the user is away from home.

According to the present invention, a method of operating an autonomous cleaning robot is provided. The method includes receiving, at a handheld computing device, a first input representing a first set of cleaning schedule parameters for a first cleaning schedule for the autonomous cleaning robot, the first cleaning schedule corresponding to a first area. The method also includes presenting, on a display of the handheld computing device, the first cleaning schedule. The method also includes receiving, at the handheld computing device, a second input representing a second set of cleaning schedule parameters for a second cleaning schedule for the autonomous cleaning robot, the second cleaning schedule corresponding to a second area different from the first area. The method also includes presenting, on the display of the handheld computing device, a scheduling list including the second cleaning schedule and the first cleaning schedule. The first cleaning schedule presented on the display is selectable to activate or deactivate the first cleaning schedule. The method also includes initiating a transmission to the autonomous cleaning robot, based on the first cleaning schedule or the second cleaning schedule, the transmission including data for causing the autonomous cleaning robot to initiate a cleaning mission. The first area comprises a first set of rooms and the second area comprises a second set of rooms, at least one room in the second set of rooms being different from the first set of rooms.

In some implementations, the first cleaning schedule and the second cleaning schedule are scheduled for the same day.

In some implementations, the first set of cleaning schedule parameters includes a setting for a number of cleaning passes.

In some implementations, at least one of the first cleaning schedule and the second cleaning schedule is selectable to be activated in a recurring manner.

In some implementations, at least one of the first cleaning schedule and the second cleaning schedule is selectable to be activated for a single instance.

In some implementations, the first set of cleaning schedule parameters includes at least one parameter representing a cleaning area for the first cleaning schedule, and the second set of cleaning schedule parameters includes at least one parameter representing a cleaning area for the second cleaning schedule.

In some implementations, at least one of the first set of cleaning schedule parameters and the second set of cleaning schedule parameters includes selectable rooms for cleaning by the autonomous cleaning robot.

In some implementations, at least one of the first set of cleaning schedule parameters and the second set of cleaning schedule parameters includes a selection to clean all areas during the cleaning mission.

In some implementations, at least one of the first set of cleaning schedule parameters and the second set of cleaning schedule parameters includes selectable floors for cleaning by the autonomous cleaning robot.

In another aspect, a handheld computing device is provided. The handheld computing device includes one or more input devices configured to receive a first input representing a first set of cleaning schedule parameters for a first cleaning schedule for an autonomous cleaning robot, the first cleaning schedule corresponding to a first area, and receive a second input representing a second set of cleaning schedule parameters for a second cleaning schedule for the autonomous cleaning robot, the second cleaning schedule corresponding to a second area different from the first area. The handheld cleaning device also includes a display. The handheld cleaning device includes a processor configured to perform the steps of any one of the methods described above.

An application executed by a mobile device can be used to control scheduling cleaning missions for an autonomous cleaning robot. The user can, through the mobile application, change cleaning parameters, scheduling, etc., of the autonomous cleaning robot. During a cleaning mission, the autonomous cleaning robot performs cleaning tasks (e.g., vacuuming, mopping, etc.) as the autonomous cleaning robot traverses the environment. Scheduling interfaces of the mobile application allow the user to add, delete, change, etc., times, cleaning parameters, areas (e.g., rooms, floors, etc.), and other types of information used in the cleaning mission. In some examples, through the mobile application, the user can perform room-by-room cleaning, create different schedules for different days, and create recurring schedules.

Referring to <FIG>, an autonomous cleaning robot <NUM> is located on a floor surface <NUM> within a room <NUM>. The autonomous cleaning robot <NUM> is configured to communicate with a mobile device <NUM>. A mobile device <NUM> as described herein may include a smart phone, a cellular phone, personal digital assistant, laptop computer, tablet, smart watch, other portable (e.g., handheld) computing device, etc., capable of transmitting and receiving signals related to a robot cleaning mission. The mobile device <NUM> is configured to present, on a display <NUM>, information relating to a robot training run, cleaning mission, etc. and receive an input from a user. The mobile device <NUM> includes a processor <NUM> configured to initiate data transmission and reception (via the internet, etc.) with the autonomous cleaning robot <NUM> and run a mobile application <NUM> configured to present scheduling interfaces on the display <NUM> of the mobile device <NUM>. The scheduling interfaces presented on the display <NUM> of the mobile device <NUM> allow the user to create custom schedules.

Referring to <FIG>, a schematic <NUM> depicts communication among a user <NUM>, a mobile device <NUM>, a cloud computing system <NUM>, and an autonomous cleaning robot <NUM>. A mobile application <NUM>, executed by a processor <NUM> on the mobile device <NUM>, presents (<NUM>) an interface including a prompt to create a cleaning schedule for the autonomous cleaning robot <NUM>. The user <NUM>, through at least one input (e.g., a button, a touch screen display, etc.) of the mobile device <NUM>, selects (<NUM>) cleaning schedule parameters. Cleaning schedule parameters include scheduling parameters (time, day, frequency, etc.) and cleaning parameters (spot cleaning, edge cleaning, etc.), to define the schedule. The cloud computing system <NUM>, checks (<NUM>), by a processor <NUM>, whether parameters of the selected cleaning schedule conflict with previously stored cleaning schedules. In some implementations, cleaning schedules may not overlap, may not be within a certain amount of time (e.g., <NUM> hours) after another cleaning schedule (e.g., to allow time for completion of the cleaning schedule and charging time), etc. If the selected cleaning schedule conflicts with another cleaning schedule, an error message is presented (<NUM>) on the mobile device <NUM> and the user <NUM> is prompted (<NUM>) to create a new cleaning schedule. If the selected cleaning schedule does not conflict with another cleaning schedule, the selected cleaning schedule is presented (<NUM>) on a list of cleaning schedules.

At a time corresponding to a scheduled time of the cleaning schedule, the mobile device <NUM> transmits (<NUM>) data to the autonomous cleaning robot <NUM> to cause the autonomous cleaning robot <NUM> to initiate a cleaning mission according to the cleaning schedule. A processor <NUM> of the autonomous cleaning robot <NUM> causes the autonomous cleaning robot to execute (<NUM>) the cleaning mission according to the schedule. The cleaning schedule may instruct the autonomous cleaning robot <NUM> to perform specific cleaning tasks, clean specific areas (e.g., rooms, floors), etc., as discussed below with respect to <FIG>.

Overall, <FIG> illustrate various types of information that can be presented, edited, etc. on the mobile device <NUM>. By presenting this information and allowing the user <NUM> to edit the information, custom cleaning schedules can be generated. The autonomous cleaning robot <NUM> performs cleaning missions defined by (e.g., what area, what time, how often, etc.) the custom cleaning schedules.

Referring to <FIG>, an interface <NUM> is presented on a display of the mobile device <NUM>. The interface <NUM> includes a display area <NUM> configured to present a list of stored cleaning schedules. In this instance, the display area <NUM> is empty. Selecting an add button <NUM> allows the user <NUM> to open a scheduling interface (as shown in <FIG>) to create a new cleaning schedule. The interface <NUM> also presents a suggested schedule <NUM>, including a time <NUM> and a list of days <NUM> that may be added to the scheduling list <NUM> and would be presented in the area <NUM>. Selecting a schedule button <NUM> adds the suggested schedule <NUM> to the scheduling list <NUM> and schedules the autonomous cleaning robot <NUM> for a cleaning mission. In this example, a recurring cleaning mission that takes place at <NUM>:00AM on Mondays, Wednesdays, and Fridays is created when button <NUM> is selected.

Referring to <FIG>, an interface <NUM> is presented on the display of the mobile device <NUM>. The interface <NUM> is configured to allow the user <NUM> to set a cleaning schedule for the autonomous cleaning robot <NUM> by selecting a time and frequency (section <NUM>), rooms (section <NUM>), and settings (section <NUM>) for the cleaning schedule. The time section <NUM> includes a time selector <NUM>, a button <NUM> (to set a cleaning mission for a single day), referred to as a "once button", and a button <NUM> (to set recurring cleaning missions) referred to as a "weekly button". The time selector <NUM> is configured to be adjusted to a desired time for the cleaning mission. The once button <NUM> may be selected to configure the cleaning mission as a one-time cleaning mission. In such instances, as shown here, a one-time cleaning mission will schedule the cleaning mission at the time indicated on the time selector <NUM>. A text indicator <NUM> informs the user <NUM> that the autonomous cleaning robot <NUM> will perform the cleaning mission at the set time (here, at <NUM>:00AM on the next day, as <NUM>:00AM on the current day has already passed). When the autonomous cleaning robot <NUM> is still learning the user's space (e.g., the user's home), room-by-room cleaning is not available in the rooms section <NUM>. Text <NUM> informs the user that room-by-room cleaning is unavailable and that the autonomous cleaning robot (here, named "Alfred") learns as it cleans. Referring to <FIG>, if the user <NUM> has enabled privacy settings in the mobile application <NUM> to prohibit the storing of maps, an interface <NUM> is presented that indicates, via text <NUM> in a room section <NUM>, that room-by-room cleaning is unavailable.

Referring back to <FIG>, in the settings section <NUM>, a cleaning preferences option <NUM> is selectable. Selecting the cleaning preferences option <NUM> opens an interface such as interface <NUM> shown in <FIG>. Cleaning preferences may be selected for the schedule created in interface <NUM>. Cleaning preferences may include, for example, a number of cleaning passes, edge cleaning, spot cleaning, a vacuum power, etc. In some implementations, cleaning preferences may be selectable on interface <NUM> without the need to select the cleaning preferences option <NUM> and open a separate interface <NUM>. When the user <NUM> is finished selecting cleaning schedule parameters in the time section <NUM>, rooms section <NUM>, and settings section <NUM>, the user <NUM> selects the save button <NUM> to add the schedule to the list <NUM> shown in <FIG>.

Referring to <FIG>, an interface <NUM> for setting a cleaning schedule for the autonomous cleaning robot <NUM> is presented. The interface <NUM>, which is similar to interface <NUM>, includes a time section <NUM>, a rooms section <NUM>, and a settings section <NUM>. In the time section <NUM>, a once button <NUM> and a weekly button <NUM> are presented along with a time selector <NUM>. On interface <NUM>, because the weekly button <NUM> is selected, an array of day buttons <NUM> (the buttons each corresponding to a day of the week) is presented. The user <NUM> may select individual day buttons in the array <NUM> to have the schedule repeat on each of the corresponding days of the week. For example, the schedule set in interface <NUM> will cause the mobile device <NUM> to transmit data to the autonomous cleaning robot <NUM> to initiate a cleaning mission at <NUM>:00AM on every Monday, Wednesday, and Friday. In some implementations, data may be sent in a single transmission, a series of transmissions, etc., to provide data to the autonomous cleaning robot <NUM>. As mentioned previously with respect to <FIG>, room-by-room cleaning is unavailable until the autonomous cleaning robot <NUM> has learned the user's space. The user <NUM> may select cleaning parameters via a cleaning preferences option <NUM> in the settings section <NUM>.

Referring to <FIG>, an interface <NUM> is presented on the display of the mobile device <NUM>. The interface <NUM>, similar to interfaces <NUM> and <NUM> discussed previously, includes a time section <NUM>, a rooms section <NUM>, and a settings section <NUM>. In the time section <NUM>, a once button <NUM> and a weekly button <NUM> are presented along with a time selector <NUM>. Cleaning parameters may be set by selecting cleaning preferences option <NUM> in the setting section <NUM>. Array <NUM> including day of the week buttons is presented as the weekly button <NUM> is selected. In the rooms section <NUM>, a choose rooms button <NUM> and a clean all button <NUM> are presented. Selecting the clean all button <NUM> configures the schedule to instruct the autonomous cleaning robot to clean all available space during the scheduled cleaning mission. As the clean all button <NUM> is selected, text <NUM> is presented informing the user <NUM> that all available areas will be cleaned during the cleaning mission. Selecting the choose rooms button <NUM> causes the mobile application to present interface <NUM> (shown in <FIG>), where the user <NUM> may select individual rooms for inclusion in the cleaning mission.

Referring to <FIG>, an interface <NUM> shows scheduling options for scheduling a recurring cleaning mission for the autonomous cleaning robot <NUM> in individual rooms. The interface <NUM>, similar to interfaces <NUM>, <NUM>, and <NUM> discussed previously, includes a time section <NUM>, a rooms section <NUM>, and a settings section <NUM>. In the time section <NUM>, a once button <NUM> and a weekly button <NUM> are presented along with a time selector <NUM>. Cleaning parameters may be set by selecting cleaning preferences option <NUM> in the setting section <NUM>. Array <NUM> including day of the week buttons is presented as the weekly button <NUM> is selected. In the rooms section <NUM>, a choose rooms button <NUM> and a clean all button <NUM> are presented.

Upon selecting the choose rooms button <NUM>, a list of rooms <NUM> is presented in the rooms section <NUM>. The list of rooms <NUM> includes room labels, e.g., label <NUM>. Each room label on the list of rooms <NUM> corresponds to a room in the user's space (e.g., the user's home) that has been learned by the autonomous cleaning robot <NUM>. Rooms may be learned by the autonomous cleaning robot <NUM> traversing the room during cleaning missions or training missions. During training missions, the autonomous cleaning robot <NUM> may not perform cleaning functions (e.g., vacuuming, mopping, etc.) as it traverses the room. Each room label on the list of rooms <NUM> that is selected is included in the schedule. For example, in the interface <NUM>, if room label <NUM> is selected, a transmission is initiated to be sent to the autonomous cleaning robot <NUM> to initiate a cleaning mission to clean the Living Room (corresponding to room label <NUM>) at <NUM>:00AM on Tuesdays and Thursdays. If the user <NUM> attempts to store (e.g. by selecting save button <NUM>) the schedule of interface <NUM> without selecting at least one room label, an interface <NUM>, as shown in <FIG>, is presented. The interface <NUM> includes an error message <NUM> that the schedule is invalid for not including at least one room in the schedule. The cleaning mission is run according to a set of cleaning parameters defined through selecting a cleaning preferences option <NUM> in the settings section <NUM>.

Referring to <FIG>, an interface <NUM> presents a menu <NUM> of cleaning parameters to be used to define cleaning operations performed during a scheduled cleaning mission. The menu <NUM> includes cleaning pass options <NUM>, <NUM>, and <NUM> corresponding to automatic cleaning, one pass cleaning, and two pass cleaning, respectively. If option <NUM> is selected, the autonomous cleaning robot selects one or two pass cleaning based on a size of the area being cleaned. If option <NUM> is selected, the autonomous cleaning robot <NUM> covers the area in a single cleaning pass and if option <NUM> is selected, the autonomous cleaning robot <NUM> covers the area a second time. In some implementations, additional or alternative cleaning parameters may be presented for selection by the user <NUM>, e.g., spot cleaning, edge cleaning, vacuum power, cleaning type (e.g., vacuuming, sweeping, mopping), etc. In some implementations, cleaning parameters, such as those in menu <NUM>, may be presented on the interface <NUM> (shown in <FIG>) in the settings section <NUM> for selection.

Referring to <FIG>, an interface <NUM> shows a list of cleaning schedules including a first cleaning schedule <NUM> and a second cleaning schedule <NUM>. The first cleaning schedule <NUM> is a clean all cleaning schedule for <NUM>:00AM on Mondays, Wednesdays, and Fridays. The first cleaning schedule is deactivated as shown by the a toggle <NUM> being in a first position. In some implementations, the first schedule may be shown on the interface <NUM> as greyed out, in a different color, etc. The first cleaning schedule may be activated by selecting a toggle <NUM>. The second cleaning schedule <NUM> is a room-specific cleaning schedule for <NUM>:00AM on Tuesdays and Thursdays. The second cleaning schedule <NUM> includes instructions to clean the Kitchen, Living Room, Entryway, and Dining Room. The second cleaning schedule <NUM> is activated as shown by a toggle <NUM>, which may be selected to turn the second cleaning schedule <NUM> off. In the implementation shown by <FIG>, the mobile device <NUM> initiates a cleaning mission corresponding to the second cleaning schedule <NUM> (which is activated), but not the first cleaning schedule <NUM> (which is deactivated). The user <NUM> may add and customize additional cleaning schedules by selecting an add button <NUM> on the interface <NUM>, which will bring the user <NUM> to interfaces like interfaces <NUM>, <NUM>, <NUM>, and/or <NUM>, as discussed above.

In some implementations, multiple autonomous cleaning robots may be configured to navigate a space and communicate with the mobile device <NUM>. As shown in an interface <NUM> in <FIG>, a second autonomous cleaning robot may be configured to follow a first autonomous cleaning robot and perform a different cleaning task. For example, interface <NUM> shows an option <NUM> for the second autonomous cleaning robot to perform a mopping function after the first autonomous cleaning robot performs a vacuuming function. This option <NUM> may be activated and deactivated by toggle <NUM>. The user <NUM> may select a choose rooms button <NUM> or a clean all button <NUM> and may select cleaning parameters through cleaning presets option <NUM>. The interface <NUM> allows for coordinated cleaning between the first autonomous cleaning robot and the second autonomous cleaning robot. The mobile application <NUM> and the first and second autonomous cleaning robots communicate to send the second autonomous cleaning robot to perform the mopping function after the first autonomous cleaning robot has completed vacuuming in the area of interest.

Referring to <FIG>, a flow chart <NUM> depicts a process for operating the autonomous cleaning robot <NUM>. The process includes receiving (<NUM>), at a handheld computing device (e.g., mobile device <NUM>), a first input representing a first set of cleaning schedule parameters for a first cleaning schedule for the autonomous cleaning robot <NUM>. The process also includes presenting (<NUM>), on a display of the handheld computing device, the first cleaning schedule. The process also includes receiving (<NUM>), at the handheld computing device, a second input representing a second set of cleaning schedule parameters for a second cleaning schedule for the autonomous cleaning robot. The process also includes presenting (<NUM>), on the display of the handheld computing device, the second cleaning schedule and the first cleaning schedule. The process also includes initiating (<NUM>) a transmission to the autonomous cleaning robot <NUM>, based on the first cleaning schedule or the second cleaning schedule, the transmission including data for causing the autonomous cleaning robot <NUM> to initiate a cleaning mission.

The robots and techniques described herein, or portions thereof, can be controlled by a computer program product that includes instructions that are stored on one or more non-transitory machine-readable storage media, and that are executable on one or more processing devices to control (e.g., to coordinate) the operations described herein. The robots described herein, or portions thereof, can be implemented as all or part of an apparatus or electronic system that can include one or more processing devices and memory to store executable instructions to implement various operations.

Operations associated with implementing all or part of the robot operation and control described herein can be performed by one or more programmable processors executing one or more computer programs to perform the functions described herein. For example, the mobile device, a cloud computing system configured to communicate with the mobile device and the autonomous cleaning robot, and the robot's controller may all include processors programmed with computer programs for executing functions such as transmitting signals, computing estimates, or interpreting signals.

The controllers and mobile devices described herein can include one or more processors. Generally, a processor will receive instructions and data from a read-only storage area or a random access storage area or both. Elements of a computer include one or more processors for executing instructions and one or more storage area devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from, or transfer data to, or both, one or more machine-readable storage media, such as mass PCBs for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Machine-readable storage media suitable for embodying computer program instructions and data include all forms of non-volatile storage area, including by way of example, semiconductor storage area devices, e.g., EPROM, EEPROM, and flash storage area devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

The robot control and operating techniques described herein may be applicable to controlling other mobile robots aside from cleaning robots. For example, a lawn mowing robot or a space-monitoring robot may be trained to perform operations in specific portions of a lawn or space as described herein.

Claim 1:
A method of operating an autonomous cleaning robot (<NUM>; <NUM>), the method comprising:
receiving, at a handheld computing device (<NUM>; <NUM>), a first input representing a first set of cleaning schedule parameters for a first cleaning schedule (<NUM>) for the autonomous cleaning robot, the first cleaning schedule corresponding to a first area;
presenting, on a display (<NUM>) of the handheld computing device, the first cleaning schedule;
receiving, at the handheld computing device, a second input representing a second set of cleaning schedule parameters for a second cleaning schedule (<NUM>) for the autonomous cleaning robot, the second cleaning schedule corresponding to a second area different from the first area;
presenting, on the display of the handheld computing device, a scheduling list (<NUM>) including the second cleaning schedule and the first cleaning schedule,
wherein the first cleaning schedule presented on the display is selectable to activate or deactivate the first cleaning schedule; and
initiating a transmission to the autonomous cleaning robot, based on the first cleaning schedule or the second cleaning schedule, the transmission comprising data for causing the autonomous cleaning robot to initiate a cleaning mission,
wherein the first area comprises a first set of rooms and the second area comprises a second set of rooms, at least one room in the second set of rooms being different from the first set of rooms, and
wherein each the first and the second cleaning schedule are scheduled for multiple days of the week.